Menu

#35 Synchronisation problems in ClasspathMonitor

v1.6
closed-fixed
nobody
2
2016-02-29
2016-02-24
No

ClasspathMonitor hangs sometimes. A thread dump shows that it is wating in isDoublet:

"Thread-8" #33 prio=5 os_prio=0 tid=0x000000001766d000 nid=0x2524 runnable [0x000000001c03e000]
   java.lang.Thread.State: RUNNABLE
                at java.util.WeakHashMap.get(WeakHashMap.java:403)
                at patterntesting.runtime.monitor.ClasspathMonitor.isDoublet_aroundBody2(ClasspathMonitor.java:510)
                at patterntesting.runtime.monitor.ClasspathMonitor.isDoublet_aroundBody3$advice(ClasspathMonitor.java:56)
                at patterntesting.runtime.monitor.ClasspathMonitor.isDoublet(ClasspathMonitor.java:1)
                at patterntesting.runtime.monitor.ClasspathMonitor$DoubletDigger.run(ClasspathMonitor.java:1918)
                at java.lang.Thread.run(Thread.java:745)

   Locked ownable synchronizers:

                - None

"Thread-7" #32 prio=5 os_prio=0 tid=0x000000001766e800 nid=0x1de8 runnable [0x000000001bf3f000]
   java.lang.Thread.State: RUNNABLE
                at java.util.WeakHashMap.get(WeakHashMap.java:403)
                at patterntesting.runtime.monitor.ClasspathMonitor.isDoublet_aroundBody2(ClasspathMonitor.java:510)
                at patterntesting.runtime.monitor.ClasspathMonitor.isDoublet_aroundBody3$advice(ClasspathMonitor.java:56)
                at patterntesting.runtime.monitor.ClasspathMonitor.isDoublet(ClasspathMonitor.java:1)
                at patterntesting.runtime.monitor.ClasspathMonitor$DoubletDigger.run(ClasspathMonitor.java:1918)
                at java.lang.Thread.run(Thread.java:745)

   Locked ownable synchronizers:

                - None

"main" #1 prio=5 os_prio=0 tid=0x0000000001e45800 nid=0x15b4 in Object.wait() [0x0000000001e0d000]
   java.lang.Thread.State: WAITING (on object monitor)
                at java.lang.Object.wait(Native Method)

                - waiting on <0x00000000fe792738> (a java.lang.Thread)
                at java.lang.Thread.join(Thread.java:1245)
                - locked <0x00000000fe792738> (a java.lang.Thread)
                at java.lang.Thread.join(Thread.java:1319)
                at patterntesting.runtime.monitor.ClasspathMonitor.getDoubletListParallel(ClasspathMonitor.java:1864)
                at patterntesting.runtime.monitor.ClasspathMonitor.getDoubletList_aroundBody4(ClasspathMonitor.java:610)
                at patterntesting.runtime.monitor.ClasspathMonitor.getDoubletList_aroundBody5$advice(ClasspathMonitor.java:56)
                at patterntesting.runtime.monitor.ClasspathMonitor.getDoubletList(ClasspathMonitor.java:1)
                - locked <0x00000000f0229c68> (a patterntesting.runtime.monitor.ClasspathMonitor)
                at patterntesting.runtime.monitor.ClasspathMonitor.getIncompatibleClassList_aroundBody20(ClasspathMonitor.java:1421)
                at patterntesting.runtime.monitor.ClasspathMonitor.getIncompatibleClassList_aroundBody21$advice(ClasspathMonitor.java:56)
                at patterntesting.runtime.monitor.ClasspathMonitor.getIncompatibleClassList(ClasspathMonitor.java:1)
                - locked <0x00000000f0229c68> (a patterntesting.runtime.monitor.ClasspathMonitor)
                at patterntesting.runtime.monitor.ClasspathMonitor.getIncompatibleClasspathURIs(ClasspathMonitor.java:1473)
                at patterntesting.runtime.monitor.ClasspathMonitor.getIncompatibleClasspath(ClasspathMonitor.java:1467)

Discussion

  • Oliver Boehm

    Oliver Boehm - 2016-02-29
    • status: open --> closed-fixed
     
  • Oliver Boehm

    Oliver Boehm - 2016-02-29

    fixed with 1.6.1

     
MongoDB Logo MongoDB