Notice: In order to edit this ticket you need to be either: a Product Owner, The owner or the reporter of the ticket, or, in case of a Task not yet assigned, a team_member"

Task #5786 (closed)

Opened 8 years ago

Closed 8 years ago

Bug: background process can cease work on error

Reported by: jamoore Owned by: jamoore
Priority: blocker Milestone: OMERO-Beta4.3
Component: Services Version: n.a.
Keywords: n.a. Cc: cxallan
Resources: n.a. Referenced By: n.a.
References: n.a. Remaining Time: 0.0d
Sprint: 2011-06-16 (14)

Description (last modified by jmoore)

An exception (#5787) caused the background pixel data thread to become inactive The issue is that when there is a Pixels object which is deleted before it can be processed, the query which join against the pixels table returns null. Moving the join of the pixels into the subselect should solve this issue.

Change History (5)

comment:1 Changed 8 years ago by jmoore

jstack output:

2011-06-06 13:36:46
Full thread dump Java HotSpot(TM) 64-Bit Server VM (16.3-b01 mixed mode):

"Attach Listener" daemon prio=10 tid=0x000000004100f800 nid=0x7c11 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Java2D Disposer" daemon prio=10 tid=0x0000000041047000 nid=0x5467 in Object.wait() [0x00007f8322000000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00007f8333a1c090> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
	- locked <0x00007f8333a1c090> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
	at sun.java2d.Disposer.run(Disposer.java:125)
	at java.lang.Thread.run(Thread.java:619)

"pool-3-thread-5" prio=10 tid=0x000000004152b800 nid=0x4a3b waiting on condition [0x00007f832295e000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00007f8333064450> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
	at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
	at java.lang.Thread.run(Thread.java:619)

"pool-3-thread-4" prio=10 tid=0x0000000041978800 nid=0x49fd waiting on condition [0x00007f8322a5f000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00007f8333064450> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
	at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
	at java.lang.Thread.run(Thread.java:619)

"pool-3-thread-3" prio=10 tid=0x0000000041968800 nid=0x49fa waiting on condition [0x00007f8322b60000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00007f8333064450> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
	at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
	at java.lang.Thread.run(Thread.java:619)

"PixelData-0-Ice.SelectorThread" prio=10 tid=0x00007f832508b000 nid=0x49f8 runnable [0x00007f8322c61000]
   java.lang.Thread.State: RUNNABLE
	at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
	at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:210)
	at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:65)
	at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
	- locked <0x00007f8333350e00> (a sun.nio.ch.Util$1)
	- locked <0x00007f8333350e18> (a java.util.Collections$UnmodifiableSet)
	- locked <0x00007f8333350d88> (a sun.nio.ch.EPollSelectorImpl)
	at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
	at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:84)
	at IceInternal.Selector.select(Selector.java:139)
	at IceInternal.SelectorThread.run(SelectorThread.java:120)
	at IceInternal.SelectorThread$HelperThread.run(SelectorThread.java:273)

"PixelData-0-Ice.ThreadPool.Client-0" prio=10 tid=0x00007f8325465000 nid=0x49f7 runnable [0x00007f8322d62000]
   java.lang.Thread.State: RUNNABLE
	at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
	at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:210)
	at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:65)
	at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
	- locked <0x00007f83333633d8> (a sun.nio.ch.Util$1)
	- locked <0x00007f83333633f0> (a java.util.Collections$UnmodifiableSet)
	- locked <0x00007f8333363360> (a sun.nio.ch.EPollSelectorImpl)
	at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
	at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:84)
	at IceInternal.Selector.select(Selector.java:139)
	at IceInternal.ThreadPool.run(ThreadPool.java:335)
	at IceInternal.ThreadPool.access$100(ThreadPool.java:12)
	at IceInternal.ThreadPool$EventHandlerThread.run(ThreadPool.java:971)

"PixelData-0-Ice.EndpointHostResolverThread" prio=10 tid=0x00007f8326515800 nid=0x49f6 in Object.wait() [0x00007f8322e63000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00007f8333364908> (a IceInternal.EndpointHostResolver)
	at java.lang.Object.wait(Object.java:485)
	at IceInternal.EndpointHostResolver.run(EndpointHostResolver.java:77)
	- locked <0x00007f8333364908> (a IceInternal.EndpointHostResolver)
	at IceInternal.EndpointHostResolver$HelperThread.run(EndpointHostResolver.java:146)

"PixelData-0-Ice.ThreadPool.Server-0" prio=10 tid=0x0000000040c2d800 nid=0x49f5 runnable [0x00007f8322f64000]
   java.lang.Thread.State: RUNNABLE
	at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
	at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:210)
	at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:65)
	at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
	- locked <0x00007f83333752d8> (a sun.nio.ch.Util$1)
	- locked <0x00007f83333752f0> (a java.util.Collections$UnmodifiableSet)
	- locked <0x00007f8333375260> (a sun.nio.ch.EPollSelectorImpl)
	at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
	at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:84)
	at IceInternal.Selector.select(Selector.java:139)
	at IceInternal.ThreadPool.run(ThreadPool.java:335)
	at IceInternal.ThreadPool.access$100(ThreadPool.java:12)
	at IceInternal.ThreadPool$EventHandlerThread.run(ThreadPool.java:971)

"PixelData-0-Ice.Timer" prio=10 tid=0x00007f832617c000 nid=0x49f4 in Object.wait() [0x00007f832316d000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00007f833337edf0> (a IceInternal.Timer)
	at IceInternal.Timer.run(Timer.java:211)
	- locked <0x00007f833337edf0> (a IceInternal.Timer)

"pool-3-thread-2" prio=10 tid=0x000000004169d000 nid=0x49f3 waiting on condition [0x00007f832326e000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00007f8333064450> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
	at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
	at java.lang.Thread.run(Thread.java:619)

"pool-3-thread-1" prio=10 tid=0x0000000041559800 nid=0x49f2 waiting on condition [0x00007f832336f000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00007f8333064450> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
	at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
	at java.lang.Thread.run(Thread.java:619)

"OMERO.scheduler_QuartzSchedulerThread" prio=10 tid=0x00000000408ac000 nid=0x49ea waiting on condition [0x00007f8323470000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
	at java.lang.Thread.sleep(Native Method)
	at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:272)

"Ice.Timer" prio=10 tid=0x0000000040a58000 nid=0x49e9 in Object.wait() [0x00007f8323571000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00007f8333063500> (a IceInternal.Timer)
	at IceInternal.Timer.run(Timer.java:211)
	- locked <0x00007f8333063500> (a IceInternal.Timer)

"bitronix-scheduler" daemon prio=10 tid=0x0000000040964000 nid=0x49e4 waiting on condition [0x00007f8323672000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
	at java.lang.Thread.sleep(Native Method)
	at bitronix.tm.timer.TaskScheduler.run(TaskScheduler.java:194)

"Thread-1" daemon prio=10 tid=0x00007f8324541000 nid=0x49de waiting on condition [0x00007f8323aa1000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
	at java.lang.Thread.sleep(Native Method)
	at org.apache.log4j.helpers.FileWatchdog.run(FileWatchdog.java:103)

"perf4j-async-stats-appender-sink-CoalescingStatistics" daemon prio=10 tid=0x00007f8324549800 nid=0x49dd waiting on condition [0x00007f8323ba2000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00007f83303ee348> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
	at java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:317)
	at org.perf4j.log4j.AsyncCoalescingStatisticsAppender$StopWatchesFromQueueIterator.getNext(AsyncCoalescingStatisticsAppender.java:404)
	at org.perf4j.log4j.AsyncCoalescingStatisticsAppender$StopWatchesFromQueueIterator.hasNext(AsyncCoalescingStatisticsAppender.java:368)
	at org.perf4j.helpers.GroupingStatisticsIterator.getNext(GroupingStatisticsIterator.java:144)
	at org.perf4j.helpers.GroupingStatisticsIterator.hasNext(GroupingStatisticsIterator.java:97)
	at org.perf4j.log4j.AsyncCoalescingStatisticsAppender$Dispatcher.run(AsyncCoalescingStatisticsAppender.java:323)
	at java.lang.Thread.run(Thread.java:619)

"Low Memory Detector" daemon prio=10 tid=0x00007f832409b800 nid=0x4963 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"CompilerThread1" daemon prio=10 tid=0x00007f8324099000 nid=0x4962 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"CompilerThread0" daemon prio=10 tid=0x00007f8324096000 nid=0x4961 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" daemon prio=10 tid=0x00007f8324094000 nid=0x4960 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=10 tid=0x00007f8324074000 nid=0x4954 in Object.wait() [0x00007f8328742000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00007f8330655350> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
	- locked <0x00007f8330655350> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
	at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=10 tid=0x00007f8324072000 nid=0x4953 in Object.wait() [0x00007f8328843000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00007f8330655308> (a java.lang.ref.Reference$Lock)
	at java.lang.Object.wait(Object.java:485)
	at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
	- locked <0x00007f8330655308> (a java.lang.ref.Reference$Lock)

"main" prio=10 tid=0x000000004079c800 nid=0x493e in Object.wait() [0x00007f8342aeb000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00007f8333374990> (a IceInternal.ObjectAdapterFactory)
	at java.lang.Object.wait(Object.java:485)
	at IceInternal.ObjectAdapterFactory.waitForShutdown(ObjectAdapterFactory.java:65)
	- locked <0x00007f8333374990> (a IceInternal.ObjectAdapterFactory)
	at Ice.CommunicatorI.waitForShutdown(CommunicatorI.java:29)
	at ome.services.blitz.Entry.start(Entry.java:209)
	at ome.services.blitz.Entry.main(Entry.java:114)

"VM Thread" prio=10 tid=0x00007f832406d800 nid=0x494f runnable 

"GC task thread#0 (ParallelGC)" prio=10 tid=0x00000000407af800 nid=0x4940 runnable 

"GC task thread#1 (ParallelGC)" prio=10 tid=0x00000000407b1000 nid=0x4948 runnable 

"GC task thread#2 (ParallelGC)" prio=10 tid=0x00000000407b3000 nid=0x4949 runnable 

"GC task thread#3 (ParallelGC)" prio=10 tid=0x00000000407b5000 nid=0x494a runnable 

"GC task thread#4 (ParallelGC)" prio=10 tid=0x00000000407b6800 nid=0x494b runnable 

"GC task thread#5 (ParallelGC)" prio=10 tid=0x00000000407b8800 nid=0x494c runnable 

"GC task thread#6 (ParallelGC)" prio=10 tid=0x00007f8324001000 nid=0x494d runnable 

"GC task thread#7 (ParallelGC)" prio=10 tid=0x00007f8324002800 nid=0x494e runnable 

"VM Periodic Task Thread" prio=10 tid=0x00007f832409e000 nid=0x4964 waiting on condition 

JNI global references: 986

Connection to gretzky closed.

comment:2 Changed 8 years ago by jmoore

  • Description modified (diff)

comment:3 Changed 8 years ago by jmoore

  • Description modified (diff)
  • Remaining Time changed from 0.4 to 0.25

comment:4 Changed 8 years ago by jmoore <josh@…>

(In [e210f8bcdec1488a5ad9fc71a8d6e1961c81f270/ome.git] on branch develop) Moving join of pixels into subselect (See #5786)

comment:5 Changed 8 years ago by jmoore

  • Description modified (diff)
  • Remaining Time changed from 0.25 to 0
  • Resolution set to fixed
  • Status changed from new to closed

The previous "first issue" regarding System.exit was wrong. The invocation by Quartz will start a new context as necessary. The previous commit should fix everything.

Note: See TracTickets for help on using tickets. You may also have a look at Agilo extensions to the ticket.

1.3.13-PRO © 2008-2011 Agilo Software all rights reserved (this page was served in: 0.83775 sec.)

We're Hiring!