Uploaded image for project: 'i2b2 Core Software'
  1. i2b2 Core Software
  2. CORE-149

JDBC calls to interrupted threads throw sqlexceptions - Queries do not leave medium queue

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.7.03
    • Fix Version/s: 1.7.06
    • Component/s: CRC Cell
    • Labels:
      None
    • Environment:
      Java SE Runtime Environment (build 1.6.0_16-b01)
      JBoss AS 7.1.1.Final
    • Rank:
      0|i001hj:
    • i2b2 Feature/s:
      Queries - Large
    • i2b2 Sponsored Project/s:
      i2b2 Core
    • Affects Database/s:
      Oracle
    • Affects Web Browser/s:
      All Web Browsers
    • Developer Notes:
      Development done by Mike Mendis
    • Testing Notes:
      Hide
      Test Date: 04/10/2015
      Build Number:
      Test Status: Passed

      Test Comments:
      Tested with the latest web client build and it appears to be working correctly. The query is now running to completion and the status in Previous Queries is being updated correctly.

      Clients Tested :
           i2b2 Web Client

      Environments Tested :
           Browsers: Not applicable for this test
           Databases: SQL Server and Oracle
           Client OS: Mac OS and Windows

      ++++++++++++++++++++++++++++++++++++++++++++++++++++++++

      Test Date: 04/09/2015
      Build Number:
      Test Status: Failed

      Test Comments:
      Tested with the latest web client build and it is not working correctly. The query never finishes running. It stays in a processing state. It will go from the small to medium queue but it does not appear to go from the medium to large queue. It remains in the medium queue and is never updated with an end date.

      Clients Tested :
           i2b2 Web Client

      Environments Tested :
           Browsers: Not applicable for this test
           Databases: SQL Server and Oracle
           Client OS: Mac OS and Windows
      Show
      Test Date: 04/10/2015 Build Number: Test Status: Passed Test Comments: Tested with the latest web client build and it appears to be working correctly. The query is now running to completion and the status in Previous Queries is being updated correctly. Clients Tested :      i2b2 Web Client Environments Tested :      Browsers: Not applicable for this test      Databases: SQL Server and Oracle      Client OS: Mac OS and Windows ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Test Date: 04/09/2015 Build Number: Test Status: Failed Test Comments: Tested with the latest web client build and it is not working correctly. The query never finishes running. It stays in a processing state. It will go from the small to medium queue but it does not appear to go from the medium to large queue. It remains in the medium queue and is never updated with an end date. Clients Tested :      i2b2 Web Client Environments Tested :      Browsers: Not applicable for this test      Databases: SQL Server and Oracle      Client OS: Mac OS and Windows

      Description

      When moving from small to medium queue, the thread processing the query is interrupted (edu.harvard.i2b2.crc.ejb.QueryManagerBeanUtil:234). The interruptedException is being caught by the jboss jdbc adapters (BaseWrapperManagedConnection.tryLock(BaseWrapperManagedConnection.java:384)) upon any calls to the database and throwing a general sqlexception (java.sql.SQLException: Interrupted attempting lock).

      The below error is shown in the logs (and additional related errors upon calls to clean up the temporary tables, etc.). The query never finishes, and shows a processing in the database. As a temporary fix, we've commented out the t.interrupt() call without any ill effects.

      09:01:57,048 INFO [stdout] (Thread-203) insert into i2b2data.DX ( patient_num ) select * from ( select distinct patient_num from i2b2data.QUERY_GLOBAL_TEMP where panel_count = 1 ) q
      09:06:50,376 ERROR [edu.harvard.i2b2.crc.dao.CRCDAO] (Thread-203) Error while executing sql: java.sql.SQLException: Interrupted attempting lock: org.jboss.jca.adapters.jdbc.local.LocalManagedConnection@998944
              at org.jboss.jca.adapters.jdbc.BaseWrapperManagedConnection.tryLock(BaseWrapperManagedConnection.java:384)
              at org.jboss.jca.adapters.jdbc.WrappedConnection.lock(WrappedConnection.java:146)
              at org.jboss.jca.adapters.jdbc.WrappedStatement.lock(WrappedStatement.java:110)
              at org.jboss.jca.adapters.jdbc.WrappedStatement.executeUpdate(WrappedStatement.java:359)
              at edu.harvard.i2b2.crc.dao.setfinder.QueryExecutorHelperDao.executeQuery(QueryExecutorHelperDao.java:309) [CRC-core.jar:]
              at edu.harvard.i2b2.crc.dao.setfinder.QueryExecutorDao.executeSQL(QueryExecutorDao.java:320) [CRC-core.jar:]
              at edu.harvard.i2b2.crc.ejb.ExecRunnable.processQueryRequest(ExecRunnable.java:469) [CRC-core.jar:]
              at edu.harvard.i2b2.crc.ejb.ExecRunnable.run(ExecRunnable.java:184) [CRC-core.jar:]
              at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_51]

        Attachments

          Activity

            People

            • Votes:
              0 Vote for this issue
              Watchers:
              10 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Git Source Code