bundle stop hangs for http-2.2.0 in felix-3.2.0
-----------------------------------------------
Key: FELIX-2924
URL: https://issues.apache.org/jira/browse/FELIX-2924
Project: Felix
Issue Type: Bug
Components: Framework
Affects Versions: framework-3.2.0
Environment: Mac OSX java version "1.6.0_24"
Reporter: Derek Baum
stopping http jetty 2.2.0 hangs framework.
it is fine with http jetty 2.0.4 in framework 3.2.0
or with http jetty 2.2.0 in framework 3.0.9
$ cd felix-framework-3.2.0
$ java -jar bin/felix.jar
____________________________
Welcome to Apache Felix Gogo
g! [INFO] Started jetty 6.1.x at port(s) HTTP:8080
g! lb
START LEVEL 1
ID|State |Level|Name
0|Active | 0|System Bundle (3.2.0)
1|Active | 1|Apache Felix Bundle Repository (1.6.2)
2|Active | 1|Apache Felix Gogo Command (0.8.0)
3|Active | 1|Apache Felix Gogo Runtime (0.8.0)
4|Active | 1|Apache Felix Gogo Shell (0.8.0)
5|Active | 1|Apache Felix Http Jetty (2.2.0)
g! stop 5
[ HANGS HERE ]
THREAD DUMP:
^\2011-04-20 19:07:35
Full thread dump Java HotSpot(TM) 64-Bit Server VM (19.1-b02-334 mixed mode):
"Timer-0" daemon prio=5 tid=102a5f000 nid=0x10ac9c000 in Object.wait()
[10ac9b000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <7f30aa0d0> (a java.util.TaskQueue)
at java.util.TimerThread.mainLoop(Timer.java:509)
- locked <7f30aa0d0> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:462)
"Poller SunPKCS11-Darwin" daemon prio=1 tid=1019c0800 nid=0x10ab99000 waiting
on condition [10ab98000]
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:680)
"918201446@qtp-896472140-0" prio=5 tid=1029cf800 nid=0x10a93c000 in
Object.wait() [10a93b000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <7f42b2040> (a
org.mortbay.thread.QueuedThreadPool$PoolThread)
at
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:626)
- locked <7f42b2040> (a org.mortbay.thread.QueuedThreadPool$PoolThread)
"Jetty HTTP Service" daemon prio=5 tid=1029cd000 nid=0x10a839000 in
Object.wait() [10a837000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <7f437f998> (a [Ljava.lang.Object;)
at java.lang.Object.wait(Object.java:485)
at org.apache.felix.framework.Felix.acquireBundleLock(Felix.java:4930)
- locked <7f437f998> (a [Ljava.lang.Object;)
at
org.apache.felix.framework.Felix.removeServiceListener(Felix.java:2844)
at
org.apache.felix.framework.BundleContextImpl.removeServiceListener(BundleContextImpl.java:256)
at org.osgi.util.tracker.ServiceTracker.close(ServiceTracker.java:391)
- locked <7f4344008> (a
org.apache.felix.http.base.internal.listener.HttpSessionAttributeListenerManager)
at
org.apache.felix.http.base.internal.HttpServiceController.unregister(HttpServiceController.java:144)
at
org.apache.felix.http.base.internal.DispatcherServlet.destroy(DispatcherServlet.java:54)
at
org.mortbay.jetty.servlet.ServletHolder.destroyInstance(ServletHolder.java:318)
at
org.mortbay.jetty.servlet.ServletHolder.doStop(ServletHolder.java:289)
at
org.mortbay.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:76)
- locked <7f42f4cb0> (a java.lang.Object)
at
org.mortbay.jetty.servlet.ServletHandler.doStop(ServletHandler.java:174)
- locked <7f42f49c8> (a org.mortbay.jetty.servlet.ServletHandler)
at
org.mortbay.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:76)
- locked <7f42f4a38> (a java.lang.Object)
at
org.mortbay.jetty.handler.HandlerWrapper.doStop(HandlerWrapper.java:142)
at
org.mortbay.jetty.servlet.SessionHandler.doStop(SessionHandler.java:125)
at
org.mortbay.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:76)
- locked <7f42f51a8> (a java.lang.Object)
at
org.mortbay.jetty.handler.HandlerWrapper.doStop(HandlerWrapper.java:142)
at
org.mortbay.jetty.handler.ContextHandler.doStop(ContextHandler.java:591)
at
org.mortbay.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:76)
- locked <7f42f4890> (a java.lang.Object)
at
org.mortbay.jetty.handler.HandlerWrapper.doStop(HandlerWrapper.java:142)
at org.mortbay.jetty.Server.doStop(Server.java:283)
at
org.mortbay.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:76)
- locked <7f42f1d30> (a java.lang.Object)
at
org.apache.felix.http.jetty.internal.JettyService.stopJetty(JettyService.java:127)
at
org.apache.felix.http.jetty.internal.JettyService.run(JettyService.java:300)
at java.lang.Thread.run(Thread.java:680)
"Gogo shell" daemon prio=5 tid=102ab8800 nid=0x10a736000 waiting for monitor
entry [10a733000]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.osgi.util.tracker.ServiceTracker.close(ServiceTracker.java:380)
- waiting to lock <7f4344008> (a
org.apache.felix.http.base.internal.listener.HttpSessionAttributeListenerManager)
at
org.apache.felix.http.base.internal.HttpServiceController.unregister(HttpServiceController.java:144)
at
org.apache.felix.http.base.internal.AbstractHttpActivator.doStop(AbstractHttpActivator.java:52)
at
org.apache.felix.http.jetty.internal.JettyActivator.doStop(JettyActivator.java:39)
at
org.apache.felix.http.base.internal.AbstractActivator.stop(AbstractActivator.java:47)
at
org.apache.felix.framework.util.SecureAction.stopActivator(SecureAction.java:651)
at org.apache.felix.framework.Felix.stopBundle(Felix.java:2226)
at org.apache.felix.framework.BundleImpl.stop(BundleImpl.java:963)
at org.apache.felix.gogo.command.Basic.stop(Basic.java:817)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.felix.gogo.runtime.Reflective.method(Reflective.java:136)
at
org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:82)
at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:469)
at
org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:395)
at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)
at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183)
at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120)
at
org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:89)
at org.apache.felix.gogo.shell.Console.run(Console.java:62)
at org.apache.felix.gogo.shell.Shell.console(Shell.java:203)
at org.apache.felix.gogo.shell.Shell.gosh(Shell.java:128)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.felix.gogo.runtime.Reflective.method(Reflective.java:136)
at
org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:82)
at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:469)
at
org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:395)
at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)
at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183)
at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120)
at
org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:89)
at org.apache.felix.gogo.shell.Activator.run(Activator.java:75)
at java.lang.Thread.run(Thread.java:680)
"FelixPackageAdmin" daemon prio=5 tid=102a6c000 nid=0x10a623000 in
Object.wait() [10a622000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <7f43306d0> (a org.apache.felix.framework.PackageAdminImpl)
at java.lang.Object.wait(Object.java:485)
at
org.apache.felix.framework.PackageAdminImpl.run(PackageAdminImpl.java:350)
- locked <7f43306d0> (a org.apache.felix.framework.PackageAdminImpl)
at java.lang.Thread.run(Thread.java:680)
"FelixStartLevel" daemon prio=5 tid=102ac0000 nid=0x10a520000 in Object.wait()
[10a51f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <7f4340e10> (a java.util.ArrayList)
at java.lang.Object.wait(Object.java:485)
at
org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:242)
- locked <7f4340e10> (a java.util.ArrayList)
at java.lang.Thread.run(Thread.java:680)
"FelixDispatchQueue" prio=5 tid=102900000 nid=0x10a401000 in Object.wait()
[10a400000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <7f4340fc8> (a java.util.ArrayList)
at java.lang.Object.wait(Object.java:485)
at
org.apache.felix.framework.util.EventDispatcher.run(EventDispatcher.java:924)
- locked <7f4340fc8> (a java.util.ArrayList)
at
org.apache.felix.framework.util.EventDispatcher.access$000(EventDispatcher.java:54)
at
org.apache.felix.framework.util.EventDispatcher$1.run(EventDispatcher.java:106)
at java.lang.Thread.run(Thread.java:680)
"Low Memory Detector" daemon prio=5 tid=101830000 nid=0x109f90000 runnable
[00000000]
java.lang.Thread.State: RUNNABLE
"CompilerThread1" daemon prio=9 tid=10182f000 nid=0x109e8d000 waiting on
condition [00000000]
java.lang.Thread.State: RUNNABLE
"CompilerThread0" daemon prio=9 tid=10182e800 nid=0x109d8a000 waiting on
condition [00000000]
java.lang.Thread.State: RUNNABLE
"Signal Dispatcher" daemon prio=9 tid=10182d800 nid=0x109c87000 waiting on
condition [00000000]
java.lang.Thread.State: RUNNABLE
"Surrogate Locker Thread (CMS)" daemon prio=5 tid=102886800 nid=0x109b84000
waiting on condition [00000000]
java.lang.Thread.State: RUNNABLE
"Finalizer" daemon prio=8 tid=10287e000 nid=0x1097fc000 in Object.wait()
[1097fb000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <7f4341540> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
- locked <7f4341540> (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=10287d000 nid=0x1096f9000 in
Object.wait() [1096f8000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <7f42b0210> (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 <7f42b0210> (a java.lang.ref.Reference$Lock)
"main" prio=5 tid=102801000 nid=0x100601000 in Object.wait() [100600000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <7f4341648> (a org.apache.felix.framework.util.ThreadGate)
at org.apache.felix.framework.util.ThreadGate.await(ThreadGate.java:79)
- locked <7f4341648> (a org.apache.felix.framework.util.ThreadGate)
at org.apache.felix.framework.Felix.waitForStop(Felix.java:916)
at org.apache.felix.main.Main.main(Main.java:295)
"VM Thread" prio=9 tid=102878800 nid=0x1095f6000 runnable
"Gang worker#0 (Parallel GC Threads)" prio=9 tid=102802800 nid=0x10176a000
runnable
"Gang worker#1 (Parallel GC Threads)" prio=9 tid=102803000 nid=0x102301000
runnable
"Concurrent Mark-Sweep GC Thread" prio=9 tid=10284d800 nid=0x109302000 runnable
"VM Periodic Task Thread" prio=10 tid=101841800 nid=0x10a093000 waiting on
condition
"Exception Catcher Thread" prio=10 tid=102801800 nid=0x100704000 runnable
JNI global references: 947
Heap
par new generation total 19136K, used 3672K [7f3000000, 7f44c0000, 7f44c0000)
eden space 17024K, 13% used [7f3000000, 7f3249bb8, 7f40a0000)
from space 2112K, 62% used [7f42b0000, 7f43fc778, 7f44c0000)
to space 2112K, 0% used [7f40a0000, 7f40a0000, 7f42b0000)
concurrent mark-sweep generation total 63872K, used 0K [7f44c0000, 7f8320000,
7fae00000)
concurrent-mark-sweep perm gen total 21248K, used 10352K [7fae00000,
7fc2c0000, 800000000)
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira