Modify

Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

#13632 closed defect (fixed)

Unit tests hanging on Jenkins

Reported by: Don-vip Owned by: team
Priority: major Milestone: 16.10
Component: Unit tests Version:
Keywords: regression Cc: michael2402

Description

Builds for r10997 and r10998 hang in unit tests when running CombineWayActionTest.
I managed to get stacktraces with kill-3:

test:
     [echo] Running unit tests with JUnit
[jacoco:coverage] Enhancing junit with coverage
    [junit] Running org.openstreetmap.josm.MainTest
    [junit] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 5.172 sec
    [junit] Running org.openstreetmap.josm.actions.AddImageryLayerActionTest
    [junit] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 5.492 sec
    [junit] Running org.openstreetmap.josm.actions.AlignInLineActionTest
    [junit] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 24.967 sec
    [junit] Running org.openstreetmap.josm.actions.CombineWayActionTest
    [junit] 2016-09-13 23:54:59
    [junit] Full thread dump OpenJDK 64-Bit Server VM (25.91-b14 mixed mode):
    [junit] 
    [junit] "Map Status Collector" #44 daemon prio=6 os_prio=0 tid=0x00007f342c1ef800 nid=0x2ebc waiting on condition [0x00007f3460565000]
    [junit]    java.lang.Thread.State: WAITING (parking)
    [junit] 	at sun.misc.Unsafe.park(Native Method)
    [junit] 	- parking to wait for  <0x000000077c5ff6a8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    [junit] 	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
    [junit] 	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
    [junit] 	at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
    [junit] 	at org.openstreetmap.josm.gui.MapStatus$Collector.run(MapStatus.java:380)
    [junit] 	at java.lang.Thread.run(Thread.java:745)
    [junit] 
    [junit] "Timer-0" #43 prio=6 os_prio=0 tid=0x00007f342c16d000 nid=0x2e73 in Object.wait() [0x00007f3460866000]
    [junit]    java.lang.Thread.State: WAITING (on object monitor)
    [junit] 	at java.lang.Object.wait(Native Method)
    [junit] 	- waiting on <0x000000077c9f5bb8> (a java.util.TaskQueue)
    [junit] 	at java.lang.Object.wait(Object.java:502)
    [junit] 	at java.util.TimerThread.mainLoop(Timer.java:526)
    [junit] 	- locked <0x000000077c9f5bb8> (a java.util.TaskQueue)
    [junit] 	at java.util.TimerThread.run(Timer.java:505)
    [junit] 
    [junit] "TimerQueue" #35 daemon prio=5 os_prio=0 tid=0x00007f342c062800 nid=0x2e17 waiting on condition [0x00007f3460967000]
    [junit]    java.lang.Thread.State: WAITING (parking)
    [junit] 	at sun.misc.Unsafe.park(Native Method)
    [junit] 	- parking to wait for  <0x00000006c6431538> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    [junit] 	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
    [junit] 	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
    [junit] 	at java.util.concurrent.DelayQueue.take(DelayQueue.java:211)
    [junit] 	at javax.swing.TimerQueue.run(TimerQueue.java:171)
    [junit] 	at java.lang.Thread.run(Thread.java:745)
    [junit] 
    [junit] "File Watcher" #12 prio=5 os_prio=0 tid=0x00007f342c011000 nid=0x2e16 waiting on condition [0x00007f34626bc000]
    [junit]    java.lang.Thread.State: WAITING (parking)
    [junit] 	at sun.misc.Unsafe.park(Native Method)
    [junit] 	- parking to wait for  <0x00000006c5411e90> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    [junit] 	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
    [junit] 	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
    [junit] 	at java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:492)
    [junit] 	at java.util.concurrent.LinkedBlockingDeque.take(LinkedBlockingDeque.java:680)
    [junit] 	at sun.nio.fs.AbstractWatchService.take(AbstractWatchService.java:118)
    [junit] 	at org.openstreetmap.josm.io.FileWatcher.processEvents(FileWatcher.java:114)
    [junit] 	at org.openstreetmap.josm.io.FileWatcher$$Lambda$3/288306765.run(Unknown Source)
    [junit] 	at java.lang.Thread.run(Thread.java:745)
    [junit] 
    [junit] "AWT-EventQueue-0" #33 prio=6 os_prio=0 tid=0x00007f349c62f000 nid=0x2e15 waiting for monitor entry [0x00007f3461093000]
    [junit]    java.lang.Thread.State: BLOCKED (on object monitor)
    [junit] 	at org.openstreetmap.josm.gui.layer.LayerManager.realRemoveLayer(LayerManager.java)
    [junit] 	- waiting to lock <0x00000006c54e1980> (a org.openstreetmap.josm.gui.layer.MainLayerManager)
    [junit] 	at org.openstreetmap.josm.gui.layer.LayerManager.lambda$removeLayer$1(LayerManager.java:206)
    [junit] 	at org.openstreetmap.josm.gui.layer.LayerManager$$Lambda$60/1363567471.run(Unknown Source)
    [junit] 	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
    [junit] 	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
    [junit] 	at java.awt.EventQueue.access$500(EventQueue.java:97)
    [junit] 	at java.awt.EventQueue$3.run(EventQueue.java:709)
    [junit] 	at java.awt.EventQueue$3.run(EventQueue.java:703)
    [junit] 	at java.security.AccessController.doPrivileged(Native Method)
    [junit] 	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    [junit] 	at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
    [junit] 	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    [junit] 	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    [junit] 	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    [junit] 	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    [junit] 	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    [junit] 	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
    [junit] 
    [junit] "AWT-Shutdown" #34 prio=5 os_prio=0 tid=0x00007f349c62e000 nid=0x2e14 in Object.wait() [0x00007f34629bd000]
    [junit]    java.lang.Thread.State: WAITING (on object monitor)
    [junit] 	at java.lang.Object.wait(Native Method)
    [junit] 	- waiting on <0x00000006c55a1bb8> (a java.lang.Object)
    [junit] 	at java.lang.Object.wait(Object.java:502)
    [junit] 	at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:295)
    [junit] 	- locked <0x00000006c55a1bb8> (a java.lang.Object)
    [junit] 	at java.lang.Thread.run(Thread.java:745)
    [junit] 
    [junit] "Java2D Disposer" #19 daemon prio=10 os_prio=0 tid=0x00007f343c0e3800 nid=0x2d3c in Object.wait() [0x00007f3462e0b000]
    [junit]    java.lang.Thread.State: WAITING (on object monitor)
    [junit] 	at java.lang.Object.wait(Native Method)
    [junit] 	- waiting on <0x00000006c5645680> (a java.lang.ref.ReferenceQueue$Lock)
    [junit] 	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
    [junit] 	- locked <0x00000006c5645680> (a java.lang.ref.ReferenceQueue$Lock)
    [junit] 	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
    [junit] 	at sun.java2d.Disposer.run(Disposer.java:148)
    [junit] 	at java.lang.Thread.run(Thread.java:745)
    [junit] 
    [junit] "Thread-2" #11 daemon prio=5 os_prio=0 tid=0x00007f349c595000 nid=0x2ceb runnable [0x00007f34633e5000]
    [junit]    java.lang.Thread.State: RUNNABLE
    [junit] 	at sun.nio.fs.LinuxWatchService.poll(Native Method)
    [junit] 	at sun.nio.fs.LinuxWatchService.access$600(LinuxWatchService.java:47)
    [junit] 	at sun.nio.fs.LinuxWatchService$Poller.run(LinuxWatchService.java:314)
    [junit] 	at java.lang.Thread.run(Thread.java:745)
    [junit] 
    [junit] "Service Thread" #9 daemon prio=9 os_prio=0 tid=0x00007f349c46c800 nid=0x2c93 runnable [0x0000000000000000]
    [junit]    java.lang.Thread.State: RUNNABLE
    [junit] 
    [junit] "C1 CompilerThread2" #8 daemon prio=9 os_prio=0 tid=0x00007f349c41e000 nid=0x2c91 waiting on condition [0x0000000000000000]
    [junit]    java.lang.Thread.State: RUNNABLE
    [junit] 
    [junit] "C2 CompilerThread1" #7 daemon prio=9 os_prio=0 tid=0x00007f349c388000 nid=0x2c90 waiting on condition [0x0000000000000000]
    [junit]    java.lang.Thread.State: RUNNABLE
    [junit] 
    [junit] "C2 CompilerThread0" #6 daemon prio=9 os_prio=0 tid=0x00007f349c3ab800 nid=0x2c8f waiting on condition [0x0000000000000000]
    [junit]    java.lang.Thread.State: RUNNABLE
    [junit] 
    [junit] "Signal Dispatcher" #4 daemon prio=9 os_prio=0 tid=0x00007f349c175000 nid=0x2c7e waiting on condition [0x0000000000000000]
    [junit]    java.lang.Thread.State: RUNNABLE
    [junit] 
    [junit] "Finalizer" #3 daemon prio=8 os_prio=0 tid=0x00007f349c14d800 nid=0x2c7b in Object.wait() [0x00007f348881e000]
    [junit]    java.lang.Thread.State: WAITING (on object monitor)
    [junit] 	at java.lang.Object.wait(Native Method)
    [junit] 	- waiting on <0x00000006c5416b60> (a java.lang.ref.ReferenceQueue$Lock)
    [junit] 	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
    [junit] 	- locked <0x00000006c5416b60> (a java.lang.ref.ReferenceQueue$Lock)
    [junit] 	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
    [junit] 	at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)
    [junit] 
    [junit] "Reference Handler" #2 daemon prio=10 os_prio=0 tid=0x00007f349c149000 nid=0x2c7a in Object.wait() [0x00007f348891f000]
    [junit]    java.lang.Thread.State: WAITING (on object monitor)
    [junit] 	at java.lang.Object.wait(Native Method)
    [junit] 	- waiting on <0x00000006c5416d78> (a java.lang.ref.Reference$Lock)
    [junit] 	at java.lang.Object.wait(Object.java:502)
    [junit] 	at java.lang.ref.Reference.tryHandlePending(Reference.java:191)
    [junit] 	- locked <0x00000006c5416d78> (a java.lang.ref.Reference$Lock)
    [junit] 	at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)
    [junit] 
    [junit] "main" #1 prio=5 os_prio=0 tid=0x00007f349c00d000 nid=0x2c72 in Object.wait() [0x00007f34a293b000]
    [junit]    java.lang.Thread.State: WAITING (on object monitor)
    [junit] 	at java.lang.Object.wait(Native Method)
    [junit] 	- waiting on <0x000000076fa65ac8> (a java.awt.EventQueue$1AWTInvocationLock)
    [junit] 	at java.lang.Object.wait(Object.java:502)
    [junit] 	at java.awt.EventQueue.invokeAndWait(EventQueue.java:1315)
    [junit] 	- locked <0x000000076fa65ac8> (a java.awt.EventQueue$1AWTInvocationLock)
    [junit] 	at java.awt.EventQueue.invokeAndWait(EventQueue.java:1296)
    [junit] 	at javax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:1348)
    [junit] 	at org.openstreetmap.josm.gui.util.GuiHelper.runInEDTAndWaitWithException(GuiHelper.java:141)
    [junit] 	at org.openstreetmap.josm.gui.layer.LayerManager.removeLayer(LayerManager.java:206)
    [junit] 	at org.openstreetmap.josm.gui.layer.LayerManager.resetState(LayerManager.java:423)
    [junit] 	- locked <0x00000006c54e1980> (a org.openstreetmap.josm.gui.layer.MainLayerManager)
    [junit] 	at org.openstreetmap.josm.gui.layer.MainLayerManager.resetState(MainLayerManager.java:376)
    [junit] 	- locked <0x00000006c54e1980> (a org.openstreetmap.josm.gui.layer.MainLayerManager)
    [junit] 	at org.openstreetmap.josm.testutils.JOSMTestRules.cleanUpFromJosmFixture(JOSMTestRules.java:249)
    [junit] 	at org.openstreetmap.josm.testutils.JOSMTestRules.before(JOSMTestRules.java:180)
    [junit] 	at org.openstreetmap.josm.testutils.JOSMTestRules$CreateJosmEnvironment.evaluate(JOSMTestRules.java:286)
    [junit] 	at org.junit.rules.RunRules.evaluate(RunRules.java:20)
    [junit] 	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
    [junit] 	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
    [junit] 	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
    [junit] 	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    [junit] 	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    [junit] 	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    [junit] 	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    [junit] 	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    [junit] 	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    [junit] 	at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:38)
    [junit] 	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:535)
    [junit] 	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1182)
    [junit] 	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:1004)
    [junit] 
    [junit] "VM Thread" os_prio=0 tid=0x00007f349c141800 nid=0x2c79 runnable 
    [junit] 
    [junit] "GC task thread#0 (ParallelGC)" os_prio=0 tid=0x00007f349c022000 nid=0x2c73 runnable 
    [junit] 
    [junit] "GC task thread#1 (ParallelGC)" os_prio=0 tid=0x00007f349c023800 nid=0x2c74 runnable 
    [junit] 
    [junit] "GC task thread#2 (ParallelGC)" os_prio=0 tid=0x00007f349c025800 nid=0x2c75 runnable 
    [junit] 
    [junit] "GC task thread#3 (ParallelGC)" os_prio=0 tid=0x00007f349c027000 nid=0x2c76 runnable 
    [junit] 
    [junit] "VM Periodic Task Thread" os_prio=0 tid=0x00007f349c46e000 nid=0x2c94 waiting on condition 
    [junit] 
    [junit] JNI global references: 5928
    [junit] 
    [junit] Heap
    [junit]  PSYoungGen      total 267264K, used 66383K [0x000000076c700000, 0x000000077f180000, 0x00000007c0000000)
    [junit]   eden space 256512K, 21% used [0x000000076c700000,0x000000076fd56350,0x000000077c180000)
    [junit]   from space 10752K, 99% used [0x000000077c300000,0x000000077cd7da08,0x000000077cd80000)
    [junit]   to   space 24576K, 0% used [0x000000077d980000,0x000000077d980000,0x000000077f180000)
    [junit]  ParOldGen       total 129536K, used 48650K [0x00000006c5400000, 0x00000006cd280000, 0x000000076c700000)
    [junit]   object space 129536K, 37% used [0x00000006c5400000,0x00000006c8382b88,0x00000006cd280000)
    [junit]  Metaspace       used 42951K, capacity 44156K, committed 44288K, reserved 1087488K
    [junit]   class space    used 5387K, capacity 5773K, committed 5888K, reserved 1048576K

Any idea why?

Attachments (0)

Change History (3)

comment:1 by michael2402, 9 years ago

I think I found the source of it - resetState() is called outside the EDT. I'll commit a patch (after I run all tests...)

comment:2 by michael2402, 9 years ago

Resolution: fixed
Status: newclosed

In 10999/josm:

Force resetState() to run in the EDT thread to prevent deadlocks. Fixes #13632

comment:3 by simon04, 9 years ago

Milestone: 16.0916.10

Milestone renamed

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain team.
as The resolution will be set.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.