Neither <ee:Startup/> nor <resin:Service/> has any observable effect. There's definitely some sort of cpu loop; as soon as I enqueue one entry, one core goes to 99% for the java process. Occasionally the thread hops between cores.
* It happens with both jms:FileQueue and jms:MemoryQueue. * There seems to be a 1 or 2 second delay before the CPU pegs. There's nothing obvious to me in the thread dump, but here it is... 2010-07-20 17:01:15 Full thread dump Java HotSpot(TM) 64-Bit Server VM (16.3-b01-279 mixed mode): "resin-11" daemon prio=5 tid=101aca000 nid=0x1185fb000 waiting on condition [1185fa000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:283) at com.caucho.env.thread.ResinThread.waitForTask(ResinThread.java:199) at com.caucho.env.thread.ResinThread.runTasks(ResinThread.java:157) at com.caucho.env.thread.ResinThread.run(ResinThread.java:126) "resin-10" daemon prio=5 tid=101ac9000 nid=0x1184f8000 runnable [1184f7000] java.lang.Thread.State: RUNNABLE at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at java.net.SocketInputStream.read(SocketInputStream.java:182) at com.caucho.hessian.io.Hessian2StreamingInput$StreamingInputStream.readChunkLength(Hessian2StreamingInput.java:241) at com.caucho.hessian.io.Hessian2StreamingInput$StreamingInputStream.startPacket(Hessian2StreamingInput.java:167) at com.caucho.hessian.io.Hessian2StreamingInput.startPacket(Hessian2StreamingInput.java:94) at com.caucho.hmtp.HmtpReader.readPacket(HmtpReader.java:102) at com.caucho.hmtp.HmtpLink.run(HmtpLink.java:111) at com.caucho.env.thread.ResinThread.runTasks(ResinThread.java:169) at com.caucho.env.thread.ResinThread.run(ResinThread.java:126) "process reaper" daemon prio=5 tid=101a89800 nid=0x1183f5000 runnable [1183f4000] java.lang.Thread.State: RUNNABLE at java.lang.UNIXProcess.waitForProcessExit(Native Method) at java.lang.UNIXProcess.access$900(UNIXProcess.java:17) at java.lang.UNIXProcess$2$1.run(UNIXProcess.java:86) "watchdog-" daemon prio=5 tid=10199c800 nid=0x1181a6000 in Object.wait() [1181a5000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <106b74888> (a java.lang.UNIXProcess) at java.lang.Object.wait(Object.java:485) at java.lang.UNIXProcess.waitFor(UNIXProcess.java:115) - locked <106b74888> (a java.lang.UNIXProcess) at com.caucho.boot.WatchdogChildProcess.run(WatchdogChildProcess.java:145) at com.caucho.boot.WatchdogChildTask.run(WatchdogChildTask.java:174) at com.caucho.env.thread.ResinThread.runTasks(ResinThread.java:169) at com.caucho.env.thread.ResinThread.run(ResinThread.java:126) "watchdog-process-log-0-1" daemon prio=5 tid=10199c000 nid=0x1180a3000 runnable [1180a2000] java.lang.Thread.State: RUNNABLE at java.io.FileInputStream.readBytes(Native Method) at java.io.FileInputStream.read(FileInputStream.java:199) at java.lang.UNIXProcess$DeferredCloseInputStream.read(UNIXProcess.java:227) at java.io.BufferedInputStream.fill(BufferedInputStream.java:218) at java.io.BufferedInputStream.read1(BufferedInputStream.java:258) at java.io.BufferedInputStream.read(BufferedInputStream.java:317) - locked <106b76e48> (a java.io.BufferedInputStream) at com.caucho.boot.WatchdogChildProcess$WatchdogProcessLogThread.run(WatchdogChildProcess.java:745) at com.caucho.env.thread.ResinThread.runTasks(ResinThread.java:169) at com.caucho.env.thread.ResinThread.run(ResinThread.java:126) "resin-7" daemon prio=5 tid=10199b000 nid=0x117fa0000 waiting on condition [117f9f000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:283) at com.caucho.env.thread.ResinThread.waitForTask(ResinThread.java:199) at com.caucho.env.thread.ResinThread.runTasks(ResinThread.java:157) at com.caucho.env.thread.ResinThread.run(ResinThread.java:126) "resin-6" daemon prio=5 tid=10199a800 nid=0x117e9d000 waiting on condition [117e9c000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:283) at com.caucho.env.thread.ResinThread.waitForTask(ResinThread.java:199) at com.caucho.env.thread.ResinThread.runTasks(ResinThread.java:157) at com.caucho.env.thread.ResinThread.run(ResinThread.java:126) "resin-5" daemon prio=5 tid=1031c1800 nid=0x117d9a000 waiting on condition [117d99000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:283) at com.caucho.env.thread.ResinThread.waitForTask(ResinThread.java:199) at com.caucho.env.thread.ResinThread.runTasks(ResinThread.java:157) at com.caucho.env.thread.ResinThread.run(ResinThread.java:126) "resin-4" daemon prio=5 tid=1031c0800 nid=0x117c97000 waiting on condition [117c96000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:283) at com.caucho.env.thread.ResinThread.waitForTask(ResinThread.java:199) at com.caucho.env.thread.ResinThread.runTasks(ResinThread.java:157) at com.caucho.env.thread.ResinThread.run(ResinThread.java:126) "resin-3" daemon prio=5 tid=1031c0000 nid=0x117b94000 waiting on condition [117b93000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:283) at com.caucho.env.thread.ResinThread.waitForTask(ResinThread.java:199) at com.caucho.env.thread.ResinThread.runTasks(ResinThread.java:157) at com.caucho.env.thread.ResinThread.run(ResinThread.java:126) "resin-2" daemon prio=5 tid=1031bf000 nid=0x117a91000 waiting on condition [117a90000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:283) at com.caucho.env.thread.ResinThread.waitForTask(ResinThread.java:199) at com.caucho.env.thread.ResinThread.runTasks(ResinThread.java:157) at com.caucho.env.thread.ResinThread.run(ResinThread.java:126) "resin-1" daemon prio=5 tid=1031be800 nid=0x11798e000 waiting on condition [11798d000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:283) at com.caucho.env.thread.ResinThread.waitForTask(ResinThread.java:199) at com.caucho.env.thread.ResinThread.runTasks(ResinThread.java:157) at com.caucho.env.thread.ResinThread.run(ResinThread.java:126) "com.caucho.util.alarm$coordinatorthr...@39dd3812-1" daemon prio=10 tid=101999800 nid=0x11788b000 runnable [11788a000] java.lang.Thread.State: RUNNABLE at sun.misc.Unsafe.park(Native Method) at java.util.concurrent.locks.LockSupport.parkUntil(LockSupport.java:351) at com.caucho.env.thread.TaskWorker.run(TaskWorker.java:149) at java.lang.Thread.run(Thread.java:637) "resin-thread-launcher" daemon prio=5 tid=101999000 nid=0x117788000 waiting on condition [117787000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:283) at com.caucho.env.thread.ThreadPool$ThreadLauncher.startConnection(ThreadPool.java:981) at com.caucho.env.thread.ThreadPool$ThreadLauncher.run(ThreadPool.java:1003) "resin-timer" daemon prio=10 tid=10319b800 nid=0x117685000 waiting on condition [117684000] java.lang.Thread.State: TIMED_WAITING (parking) at sun.misc.Unsafe.park(Native Method) at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:317) at com.caucho.util.Alarm$AlarmThread.run(Alarm.java:567) "Poller SunPKCS11-Darwin" daemon prio=1 tid=10319a800 nid=0x117582000 waiting on condition [117581000] java.lang.Thread.State: TIMED_WAITING (sleeping) at java.lang.Thread.sleep(Native Method) at sun.security.pkcs11.SunPKCS11$TokenPoller.run(SunPKCS11.java:692) at java.lang.Thread.run(Thread.java:637) "Low Memory Detector" daemon prio=5 tid=103091000 nid=0x117190000 runnable [00000000] java.lang.Thread.State: RUNNABLE "CompilerThread1" daemon prio=9 tid=101819800 nid=0x11708d000 waiting on condition [00000000] java.lang.Thread.State: RUNNABLE "CompilerThread0" daemon prio=9 tid=101819000 nid=0x116f8a000 waiting on condition [00000000] java.lang.Thread.State: RUNNABLE "Signal Dispatcher" daemon prio=9 tid=101818000 nid=0x116e87000 waiting on condition [00000000] java.lang.Thread.State: RUNNABLE "Surrogate Locker Thread (CMS)" daemon prio=5 tid=101817800 nid=0x116d84000 waiting on condition [00000000] java.lang.Thread.State: RUNNABLE "Finalizer" daemon prio=8 tid=101801800 nid=0x116a0f000 in Object.wait() [116a0e000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <107cf3c38> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118) - locked <107cf3c38> (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=101801000 nid=0x11690c000 in Object.wait() [11690b000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <107cf0860> (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 <107cf0860> (a java.lang.ref.Reference$Lock) "main" prio=5 tid=103000800 nid=0x100501000 in Object.wait() [100500000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <10809c708> (a com.caucho.boot.ResinBoot) at com.caucho.boot.ResinBoot.main(ResinBoot.java:324) - locked <10809c708> (a com.caucho.boot.ResinBoot) "VM Thread" prio=9 tid=103089800 nid=0x116809000 runnable "Gang worker#0 (Parallel GC Threads)" prio=9 tid=103002000 nid=0x102201000 runnable "Gang worker#1 (Parallel GC Threads)" prio=9 tid=103002800 nid=0x102304000 runnable "Concurrent Mark-Sweep GC Thread" prio=9 tid=103042000 nid=0x116511000 runnable "VM Periodic Task Thread" prio=10 tid=103092800 nid=0x117293000 waiting on condition "Exception Catcher Thread" prio=10 tid=103001800 nid=0x10171b000 runnable JNI global references: 975 Heap par new generation total 19136K, used 7024K [106810000, 107cd0000, 107cd0000) eden space 17024K, 28% used [106810000, 106cdc108, 1078b0000) from space 2112K, 100% used [1078b0000, 107ac0000, 107ac0000) to space 2112K, 0% used [107ac0000, 107ac0000, 107cd0000) concurrent mark-sweep generation total 63872K, used 2737K [107cd0000, 10bb30000, 10e610000) concurrent-mark-sweep perm gen total 21248K, used 14067K [10e610000, 10fad0000, 113a10000) On Tue, Jul 20, 2010 at 4:42 PM, Scott Ferguson <f...@caucho.com> wrote: > Jeff Schnitzer wrote: >> By the way, I was able to work past the lazy-init issue (presumably) >> by using this block instead: >> >> <cfg:MessageBeanConfig> >> <cfg:class>test.DeliveryListener</cfg:class> >> <cfg:destination>#{delivery}</cfg:destination> >> </cfg:MessageBeanConfig> >> >> However, enqueueing a message doesn't produce calls on my Listener. >> It seems to produce some sort of spin-loop inside Resin. >> > Try adding a <ee:Startup/> or <resin:Service/>. Otherwise the bean will > never get instantiated. It shouldn't spin, though. > > Although, this is a pretty twisted way of working around the issue :) > > -- Scott >> Jeff >> >> On Tue, Jul 20, 2010 at 1:17 PM, Jeff Schnitzer <j...@infohazard.org> wrote: >> >>> On Tue, Jul 20, 2010 at 12:21 PM, Scott Ferguson <f...@caucho.com> wrote: >>> >>>> Thanks. It's a timing issue in CanDI. The jms:FileQueue was added to a >>>> lazy-init which wasn't being evaluated when the #{delivery} was >>>> processed. The fix will be in the next snapshot. >>>> >>> Cool. If you get to a point where this is checked into Resin trunk, >>> I'd love to help you test it :-) >>> >>> Jeff >>> >>> >> >> >> _______________________________________________ >> resin-interest mailing list >> resin-interest@caucho.com >> http://maillist.caucho.com/mailman/listinfo/resin-interest >> > > > > _______________________________________________ > resin-interest mailing list > resin-interest@caucho.com > http://maillist.caucho.com/mailman/listinfo/resin-interest > _______________________________________________ resin-interest mailing list resin-interest@caucho.com http://maillist.caucho.com/mailman/listinfo/resin-interest