Details
Description
When a query errors out in the medium or large queue it is locking up or dropping the queue thread so no other queries are being run. The only way to free up the queue is to restart WildFly.
What Should Happen
If a query generates an error while running in any of the queues the following should occur.
* The statuses are updated in the QT_QUERY_INSTANCE and QT_QUERY_RESULT_INSTANCE tables.
* The END_DATE in the tables is updated to indicate the query is done running.
* The queue should be free to begin running the next query.
What Should Happen
If a query generates an error while running in any of the queues the following should occur.
* The statuses are updated in the QT_QUERY_INSTANCE and QT_QUERY_RESULT_INSTANCE tables.
* The END_DATE in the tables is updated to indicate the query is done running.
* The queue should be free to begin running the next query.
Attachments
Issue Links
Activity
Description |
An error is returned whenever a query times out. The query appears to be running in the medium queue but the CRC always returns an error when it times out and goes into the next queue. Eventually results will be returned but the user will not know because in the client they see a status of ERROR.
The initial issue (error returned) was introduced in Release 1.7.08. Queries run in an earlier version will not have this issue. However, during our testing we found a number of other issues related to the queues that may or may not have existed in earlier versions of the i2b2. The additional issues are: 1. When a query errors out in the medium or large queue it is locking up or dropping the queue thread so no other queries are being run. 2. Queries will continue to run even though they have "timed out" of the large queue. The thread is not ending correctly when the query reaches the maximum run time defined in the crc.properties file. The next query waiting in the large queue will run. 3. Statuses are not being updated correctly when a query times out of the large queue or an error occurred. In the QT_QUERY_RESULT_INSTANCE and QT_QUERY_INSTANCE tables the STATUS_TYPE_ID is either INCOMPLETE, PROCESSING or QUEUED when it should be TIMEDOUT or ERROR. |
When testing An error is returned whenever a query times out. The query appears to be running in the medium queue but the CRC always returns an error when it times out and goes into the next queue. Eventually results will be returned but the user will not know because in the client they see a status of ERROR. The initial issue (error returned) was introduced in Release 1.7.08. Queries run in an earlier version will not have this issue. However, during our testing we found a number of other issues related to the queues that may or may not have existed in earlier versions of the i2b2. The additional issues are: 1. When a query errors out in the medium or large queue it is locking up or dropping the queue thread so no other queries are being run. 2. Queries will continue to run even though they have "timed out" of the large queue. The thread is not ending correctly when the query reaches the maximum run time defined in the crc.properties file. The next query waiting in the large queue will run. 3. Statuses are not being updated correctly when a query times out of the large queue or an error occurred. In the QT_QUERY_RESULT_INSTANCE and QT_QUERY_INSTANCE tables the STATUS_TYPE_ID is either INCOMPLETE, PROCESSING or QUEUED when it should be TIMEDOUT or ERROR. |
Description |
When testing An error is returned whenever a query times out. The query appears to be running in the medium queue but the CRC always returns an error when it times out and goes into the next queue. Eventually results will be returned but the user will not know because in the client they see a status of ERROR. The initial issue (error returned) was introduced in Release 1.7.08. Queries run in an earlier version will not have this issue. However, during our testing we found a number of other issues related to the queues that may or may not have existed in earlier versions of the i2b2. The additional issues are: 1. When a query errors out in the medium or large queue it is locking up or dropping the queue thread so no other queries are being run. 2. Queries will continue to run even though they have "timed out" of the large queue. The thread is not ending correctly when the query reaches the maximum run time defined in the crc.properties file. The next query waiting in the large queue will run. 3. Statuses are not being updated correctly when a query times out of the large queue or an error occurred. In the QT_QUERY_RESULT_INSTANCE and QT_QUERY_INSTANCE tables the STATUS_TYPE_ID is either INCOMPLETE, PROCESSING or QUEUED when it should be TIMEDOUT or ERROR. |
When a query errors out in the medium or large queue it is locking up or dropping the queue thread so no other queries are being run. The only way to free up the queue is to restart WildFly.
What Should Happen If a query generates an error while running in any of the queues the following should occur. * The statuses are updated in the QT_QUERY_INSTANCE and QT_QUERY_RESULT_INSTANCE tables. * The END_DATE in the tables is updated to indicate the query is done running. * The queue should be free to begin running the next query. |
Testing Notes |
In summary, the testing involved verifying the following occurred as expected.
1. Queries move through the queues as expected. 2. The query/thread stops appropriately when a query times out. 3. The appropriate status is assigned in the database and displays correctly in both the i2b2 Web Client and Workbench. 4. If WildFly goes down, the queries waiting in the medium and large queues will run when WildFly is restarted. Attached to this issue is the full checklist of what was tested. |
In summary, the testing involved verifying the next query in a queue would run when a query generates an error.
NOTE: This issue was tested in conjunction with |
Developer Notes | Fixed by Mike Mendis and is included in Release 1.7.08a | |
Server Plug-in/s Modified | edu.harvard.i2b2.crc [ 10114 ] |
i2b2 Feature/s | Queries [ 10081 ] | |
Status | New [ 10000 ] | Open [ 1 ] |
Status | Open [ 1 ] | In Progress [ 3 ] |
Resolution | Fixed [ 1 ] | |
Status | In Progress [ 3 ] | Resolved [ 5 ] |
Status | Resolved [ 5 ] | Closed [ 6 ] |