For ECL queries that FAIL
Any WorkflowException is reported twice: once before workunit state is set to failed, once after workunit state is set to failed.
After the workunit is updated with the failed state, the regression tests complete. Roxie may not have had enough time to add the second exception.
This means that ./ecl-test run has tests failing in an unpredictable manner, depending on how quickly the second exception is added to the workunit.
A Possible solution to this problem is: Don't report exceptions twice.
- The exact locations of the relevant function calls in roxie are:
ccdlistener.cpp *line 1263 calls the function process() defined in *ccdcontext.cpp
ccdcontext.cpp line 2811 adds the exception
ccdlistener.cpp line 1273 sets the workunit state to failed
ccdlistener.cpp line 1279 adds the second exception to the workunit (but the regression test may have already finished). This function call also sets the workunit state to failed, a second time.
An example of a regression test that this affected can be found at