Uploaded image for project: 'Derby'
  1. Derby
  2. DERBY-2689

Deadlock with GenericPreparedStatement

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • 10.2.2.0
    • 10.3.1.4, 10.4.1.3
    • JDBC
    • None
    • Windows

    Description

      We encountered two times a deadlock inside of derby. It seems that we can't workaround it. The involved two threads are attached, it looks like a classical deadlock:

      "Thread-22" daemon prio=6 tid=0x0cdaa400 nid=0x1c0 waiting for monitor entry [0x1317f000..0x1317fd4c]
      java.lang.Thread.State: BLOCKED (on object monitor)
      at org.apache.derby.impl.sql.GenericPreparedStatement.finish(Unknown Source)

      • waiting to lock <0x052f4d70> (a org.apache.derby.impl.sql.GenericPreparedStatement)
        at org.apache.derby.impl.sql.execute.BaseActivation.close(Unknown Source)
        at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.addActivation(Unknown Source)
        at org.apache.derby.impl.sql.execute.BaseActivation.initFromContext(Unknown Source)
        at org.apache.derby.impl.services.reflect.LoadedGeneratedClass.newInstance(Unknown Source)
        at org.apache.derby.impl.services.reflect.ReflectGeneratedClass.newInstance(Unknown Source)
        at org.apache.derby.impl.sql.GenericActivationHolder.<init>(Unknown Source)
        at org.apache.derby.impl.sql.GenericPreparedStatement.getActivation(Unknown Source)
      • locked <0x05306f88> (a org.apache.derby.impl.sql.GenericPreparedStatement)
        at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(Unknown Source)
        at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(Unknown Source)
        at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(Unknown Source)
        at org.apache.derby.impl.jdbc.EmbedPreparedStatement40.<init>(Unknown Source)
        at org.apache.derby.jdbc.Driver40.newEmbedPreparedStatement(Unknown Source)
        at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source)
      • locked <0x047beb00> (a org.apache.derby.impl.jdbc.EmbedConnection40)
        at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source)
        [custom methods]

      "ThreadPoolThread-SyncScheduler-3-1" prio=2 tid=0x0e620400 nid=0xfec waiting for monitor entry [0x10a7e000..0x10a7fa14]
      java.lang.Thread.State: BLOCKED (on object monitor)
      at org.apache.derby.impl.sql.GenericPreparedStatement.finish(Unknown Source)

      • waiting to lock <0x05306f88> (a org.apache.derby.impl.sql.GenericPreparedStatement)
        at org.apache.derby.impl.sql.execute.BaseActivation.close(Unknown Source)
        at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.addActivation(Unknown Source)
        at org.apache.derby.impl.sql.execute.BaseActivation.initFromContext(Unknown Source)
        at org.apache.derby.impl.services.reflect.LoadedGeneratedClass.newInstance(Unknown Source)
        at org.apache.derby.impl.services.reflect.ReflectGeneratedClass.newInstance(Unknown Source)
        at org.apache.derby.impl.sql.GenericActivationHolder.<init>(Unknown Source)
        at org.apache.derby.impl.sql.GenericPreparedStatement.getActivation(Unknown Source)
      • locked <0x052f4d70> (a org.apache.derby.impl.sql.GenericPreparedStatement)
        at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(Unknown Source)
        at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(Unknown Source)
        at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(Unknown Source)
        at org.apache.derby.impl.jdbc.EmbedPreparedStatement40.<init>(Unknown Source)
        at org.apache.derby.jdbc.Driver40.newEmbedPreparedStatement(Unknown Source)
        at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source)
      • locked <0x04225178> (a org.apache.derby.impl.jdbc.EmbedConnection40)
        at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source)
        [custom methods]

      Attachments

        1. TestDerbyPreparedStatements.java
          2 kB
          Jim Newsham
        2. deadlock.patch.txt
          3 kB
          Manish Khettry
        3. deadlock2.patch.txt
          3 kB
          Manish Khettry
        4. deadlock3.patch.txt
          3 kB
          Manish Khettry

        Issue Links

          Activity

            People

              mkhettry Manish Khettry
              mewert Marc Ewert
              Votes:
              1 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: