https://bugs.documentfoundation.org/show_bug.cgi?id=96387

            Bug ID: 96387
           Summary: deadlock in HSQLDB
           Product: LibreOffice
           Version: 5.1.0.0.alpha0+ Master
          Hardware: x86-64 (AMD64)
                OS: Linux (All)
            Status: UNCONFIRMED
          Severity: minor
          Priority: medium
         Component: Base
          Assignee: [email protected]
          Reporter: [email protected]

just got a deadlock inside HSQLDB code, in JunitTest_dbaccess_complex with few
days old master.

probably it's pretty obscure so not sure if it's worth fixing...

jstack says:


2015-12-10 14:34:34
Full thread dump OpenJDK 64-Bit Server VM (25.65-b01 mixed mode):

"Attach Listener" #278239 daemon prio=9 os_prio=0 tid=0x00000000024ac800
nid=0x2061 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Thread-278228" #278238 prio=5 os_prio=0 tid=0x0000000002364000 nid=0x6203
waiting for monitor entry [0x00002b2ddf2ba000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at
org.hsqldb.lib.HsqlTimer$TaskQueue.signalTaskCancelled(HsqlTimer.java:926)
    - waiting to lock <0x00000005c9e11e98> (a
org.hsqldb.lib.HsqlTimer$TaskQueue)
    at org.hsqldb.lib.HsqlTimer$Task.cancel(HsqlTimer.java:728)
    at org.hsqldb.lib.HsqlTimer$Task.setPeriod(HsqlTimer.java:803)
    - locked <0x000000077ebd9d78> (a org.hsqldb.lib.HsqlTimer$Task)
    at org.hsqldb.lib.HsqlTimer.setPeriod(HsqlTimer.java:428)
    at
org.hsqldb.scriptio.ScriptWriterBase.setWriteDelay(ScriptWriterBase.java:418)
    at org.hsqldb.persist.Log.setWriteDelay(Log.java:529)
    at org.hsqldb.persist.Logger.setWriteDelay(Logger.java:386)
    - locked <0x00000005ca892608> (a org.hsqldb.persist.Logger)
    at
org.hsqldb.DatabaseCommandInterpreter.processSet(DatabaseCommandInterpreter.java:2361)
    at
org.hsqldb.DatabaseCommandInterpreter.executePart(DatabaseCommandInterpreter.java:308)
    at
org.hsqldb.DatabaseCommandInterpreter.execute(DatabaseCommandInterpreter.java:170)
    at org.hsqldb.Session.sqlExecuteDirectNoPreChecks(Session.java:1037)
    - locked <0x00000005ca845200> (a org.hsqldb.Database)
    at org.hsqldb.Session.execute(Session.java:899)
    - locked <0x00000005ca845200> (a org.hsqldb.Database)
    at org.hsqldb.jdbc.jdbcStatement.fetchResult(jdbcStatement.java:1581)
    at org.hsqldb.jdbc.jdbcStatement.execute(jdbcStatement.java:628)

"HSQLDB Timer @287caa38" #11 daemon prio=5 os_prio=0 tid=0x0000000002295000
nid=0x6237 waiting for monitor entry [0x00002b2e08b61000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at org.hsqldb.lib.HsqlTimer$Task.getNextScheduled(HsqlTimer.java:763)
    - waiting to lock <0x000000077ebd9d78> (a org.hsqldb.lib.HsqlTimer$Task)
    at org.hsqldb.lib.HsqlTimer.compare(HsqlTimer.java:108)
    at org.hsqldb.lib.HsqlArrayHeap.add(HsqlArrayHeap.java:122)
    - locked <0x00000005c9e11e98> (a org.hsqldb.lib.HsqlTimer$TaskQueue)
    at org.hsqldb.lib.HsqlTimer$TaskQueue.addTask(HsqlTimer.java:841)
    at org.hsqldb.lib.HsqlTimer.nextTask(HsqlTimer.java:558)
    at org.hsqldb.lib.HsqlTimer$TaskRunner.run(HsqlTimer.java:610)
    at java.lang.Thread.run(Thread.java:745)

"Service Thread" #9 daemon prio=9 os_prio=0 tid=0x00000000020ac000 nid=0x6232
runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C1 CompilerThread3" #8 daemon prio=9 os_prio=0 tid=0x0000000002056000
nid=0x6231 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread2" #7 daemon prio=9 os_prio=0 tid=0x0000000002053800
nid=0x6230 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread1" #6 daemon prio=9 os_prio=0 tid=0x0000000002051000
nid=0x622f waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" #5 daemon prio=9 os_prio=0 tid=0x0000000002043800
nid=0x622e waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" #4 daemon prio=9 os_prio=0 tid=0x0000000002041800
nid=0x622d runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" #3 daemon prio=8 os_prio=0 tid=0x000000000200f000 nid=0x622b in
Object.wait() [0x00002b2e06e41000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000005c9e3b998> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
    - locked <0x00000005c9e3b998> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)

"Reference Handler" #2 daemon prio=10 os_prio=0 tid=0x0000000002007800
nid=0x622a in Object.wait() [0x00002b2e06640000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:502)
    at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:157)
    - locked <0x00000005c9e3bbb0> (a java.lang.ref.Reference$Lock)

"VM Thread" os_prio=0 tid=0x0000000002002000 nid=0x6229 runnable 

"GC task thread#0 (ParallelGC)" os_prio=0 tid=0x0000000001f8e000 nid=0x621f
runnable 

"GC task thread#1 (ParallelGC)" os_prio=0 tid=0x0000000001f8f800 nid=0x6220
runnable 

"GC task thread#2 (ParallelGC)" os_prio=0 tid=0x0000000001f91800 nid=0x6221
runnable 

"GC task thread#3 (ParallelGC)" os_prio=0 tid=0x0000000001f93000 nid=0x6222
runnable 

"GC task thread#4 (ParallelGC)" os_prio=0 tid=0x0000000001f95000 nid=0x6223
runnable 

"GC task thread#5 (ParallelGC)" os_prio=0 tid=0x0000000001f96800 nid=0x6224
runnable 

"GC task thread#6 (ParallelGC)" os_prio=0 tid=0x0000000001f98800 nid=0x6225
runnable 

"GC task thread#7 (ParallelGC)" os_prio=0 tid=0x0000000001f9a800 nid=0x6226
runnable 

"GC task thread#8 (ParallelGC)" os_prio=0 tid=0x0000000001f9c000 nid=0x6227
runnable 

"GC task thread#9 (ParallelGC)" os_prio=0 tid=0x0000000001f9e000 nid=0x6228
runnable 

"VM Periodic Task Thread" os_prio=0 tid=0x00000000020ae800 nid=0x6233 waiting
on condition 

JNI global references: 184


Found one Java-level deadlock:
=============================
"Thread-278228":
  waiting to lock monitor 0x000000000200d448 (object 0x00000005c9e11e98, a
org.hsqldb.lib.HsqlTimer$TaskQueue),
  which is held by "HSQLDB Timer @287caa38"
"HSQLDB Timer @287caa38":
  waiting to lock monitor 0x000000000200dc88 (object 0x000000077ebd9d78, a
org.hsqldb.lib.HsqlTimer$Task),
  which is held by "Thread-278228"

Java stack information for the threads listed above:
===================================================
"Thread-278228":
    at
org.hsqldb.lib.HsqlTimer$TaskQueue.signalTaskCancelled(HsqlTimer.java:926)
    - waiting to lock <0x00000005c9e11e98> (a
org.hsqldb.lib.HsqlTimer$TaskQueue)
    at org.hsqldb.lib.HsqlTimer$Task.cancel(HsqlTimer.java:728)
    at org.hsqldb.lib.HsqlTimer$Task.setPeriod(HsqlTimer.java:803)
    - locked <0x000000077ebd9d78> (a org.hsqldb.lib.HsqlTimer$Task)
    at org.hsqldb.lib.HsqlTimer.setPeriod(HsqlTimer.java:428)
    at
org.hsqldb.scriptio.ScriptWriterBase.setWriteDelay(ScriptWriterBase.java:418)
    at org.hsqldb.persist.Log.setWriteDelay(Log.java:529)
    at org.hsqldb.persist.Logger.setWriteDelay(Logger.java:386)
    - locked <0x00000005ca892608> (a org.hsqldb.persist.Logger)
    at
org.hsqldb.DatabaseCommandInterpreter.processSet(DatabaseCommandInterpreter.java:2361)
    at
org.hsqldb.DatabaseCommandInterpreter.executePart(DatabaseCommandInterpreter.java:308)
    at
org.hsqldb.DatabaseCommandInterpreter.execute(DatabaseCommandInterpreter.java:170)
    at org.hsqldb.Session.sqlExecuteDirectNoPreChecks(Session.java:1037)
    - locked <0x00000005ca845200> (a org.hsqldb.Database)
    at org.hsqldb.Session.execute(Session.java:899)
    - locked <0x00000005ca845200> (a org.hsqldb.Database)
    at org.hsqldb.jdbc.jdbcStatement.fetchResult(jdbcStatement.java:1581)
    at org.hsqldb.jdbc.jdbcStatement.execute(jdbcStatement.java:628)
"HSQLDB Timer @287caa38":
    at org.hsqldb.lib.HsqlTimer$Task.getNextScheduled(HsqlTimer.java:763)
    - waiting to lock <0x000000077ebd9d78> (a org.hsqldb.lib.HsqlTimer$Task)
    at org.hsqldb.lib.HsqlTimer.compare(HsqlTimer.java:108)
    at org.hsqldb.lib.HsqlArrayHeap.add(HsqlArrayHeap.java:122)
    - locked <0x00000005c9e11e98> (a org.hsqldb.lib.HsqlTimer$TaskQueue)
    at org.hsqldb.lib.HsqlTimer$TaskQueue.addTask(HsqlTimer.java:841)
    at org.hsqldb.lib.HsqlTimer.nextTask(HsqlTimer.java:558)
    at org.hsqldb.lib.HsqlTimer$TaskRunner.run(HsqlTimer.java:610)
    at java.lang.Thread.run(Thread.java:745)

Found 1 deadlock.

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Libreoffice-bugs mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs

Reply via email to