ok, thanks for the information.

On Mon, Apr 18, 2011 at 11:34 PM, Richard S. Hall <[email protected]>wrote:

> This is likely related to:
>
>    https://issues.apache.org/jira/browse/FELIX-2913
>
> Which was ultimately impacted by the following changes for framework 3.2.0:
>
>    https://issues.apache.org/jira/browse/FELIX-2748
>
> We need to think about this a little bit to see if there is an alternative
> (more loose way) to achieve what was implemented in FELIX-2748, because it
> is definitely necessary.
>
> -> richard
>
>
> On 4/18/11 17:07, Pierre De Rop wrote:
>
>> Hi everyone;
>>
>> It seems that I can't stop anymore the framework from the Gogo shell, when
>> typing Ctrl-C ?
>> I'm using the following bundles, including latest web console:
>>
>> 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 Configuration Admin Service (1.2.8)
>>     3|Active     |    1|Apache Felix Gogo Command (0.8.0)
>>     4|Active     |    1|Apache Felix Gogo Runtime (0.8.0)
>>     5|Active     |    1|Apache Felix Gogo Shell (0.8.0)
>>     6|Active     |    1|Apache Felix Http Jetty (2.2.0)
>>     7|Active     |    1|Apache Felix Log Service (1.0.1)
>>     8|Active     |    1|Apache Felix Metatype Service (1.0.4)
>>     9|Active     |    1|Apache Felix Shell Service (1.4.2)
>>    10|Active     |    1|Apache Felix Web Management Console (3.1.8)
>>
>> And when I type "Ctrl-C", the shell is hanging, and does not exit.
>>
>> In the following jstack dump (taken after having typed "Ctrl-C" on gogo
>> shell), jetty seems to be blocked while
>> stopping:  (see the thread "Jetty HTTP Service") ?
>>
>> ->
>>
>> Full thread dump Java HotSpot(TM) Server VM (19.0-b09 mixed mode):
>>
>> "Attach Listener" daemon prio=10 tid=0x796f7000 nid=0xb65 runnable
>> [0x00000000]
>>    java.lang.Thread.State: RUNNABLE
>>
>> "FelixShutdown" prio=10 tid=0x08d97400 nid=0xb57 in Object.wait()
>> [0x79176000]
>>    java.lang.Thread.State: WAITING (on object monitor)
>>     at java.lang.Object.wait(Native Method)
>>     - waiting on<0xa24455f0>  (a java.lang.Integer)
>>     at java.lang.Object.wait(Object.java:485)
>>     at
>>
>> org.apache.felix.framework.StartLevelImpl.setStartLevelAndWait(StartLevelImpl.java:129)
>>     - locked<0xa24455f0>  (a java.lang.Integer)
>>     at
>>
>> org.apache.felix.framework.Felix$SystemBundleActivator.stop(Felix.java:4537)
>>     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.Felix$3.run(Felix.java:876)
>>     at java.lang.Thread.run(Thread.java:662)
>>
>> "Felix Shutdown Hook" prio=10 tid=0x7a019c00 nid=0xb56 in Object.wait()
>> [0x79125000]
>>    java.lang.Thread.State: WAITING (on object monitor)
>>     at java.lang.Object.wait(Native Method)
>>     - waiting on<0xa2ad2bc8>  (a
>> org.apache.felix.framework.util.ThreadGate)
>>     at
>> org.apache.felix.framework.util.ThreadGate.await(ThreadGate.java:79)
>>     - locked<0xa2ad2bc8>  (a org.apache.felix.framework.util.ThreadGate)
>>     at org.apache.felix.framework.Felix.waitForStop(Felix.java:916)
>>     at org.apache.felix.main.Main$1.run(Main.java:271)
>>
>> "SIGINT handler" daemon prio=10 tid=0xb6afd000 nid=0xb54 in Object.wait()
>> [0x791c7000]
>>    java.lang.Thread.State: WAITING (on object monitor)
>>     at java.lang.Object.wait(Native Method)
>>     - waiting on<0xa2ae4190>  (a org.apache.felix.main.Main$1)
>>     at java.lang.Thread.join(Thread.java:1186)
>>     - locked<0xa2ae4190>  (a org.apache.felix.main.Main$1)
>>     at java.lang.Thread.join(Thread.java:1239)
>>     at
>>
>> java.lang.ApplicationShutdownHooks.runHooks(ApplicationShutdownHooks.java:79)
>>     at
>> java.lang.ApplicationShutdownHooks$1.run(ApplicationShutdownHooks.java:24)
>>     at java.lang.Shutdown.runHooks(Shutdown.java:79)
>>     at java.lang.Shutdown.sequence(Shutdown.java:123)
>>     at java.lang.Shutdown.exit(Shutdown.java:168)
>>     - locked<0x7a6b18c8>  (a java.lang.Class for java.lang.Shutdown)
>>     at java.lang.Terminator$1.handle(Terminator.java:35)
>>     at sun.misc.Signal$1.run(Signal.java:195)
>>     at java.lang.Thread.run(Thread.java:662)
>>
>> "Timer-0" daemon prio=10 tid=0x7a002400 nid=0xb46 in Object.wait()
>> [0x79218000]
>>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
>>     at java.lang.Object.wait(Native Method)
>>     - waiting on<0xa2326b40>  (a java.util.TaskQueue)
>>     at java.util.TimerThread.mainLoop(Timer.java:509)
>>     - locked<0xa2326b40>  (a java.util.TaskQueue)
>>     at java.util.TimerThread.run(Timer.java:462)
>>
>> "23738549@qtp-2545159-0" prio=10 tid=0x7a003400 nid=0xb44 in
>> Object.wait()
>> [0x792ba000]
>>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
>>     at java.lang.Object.wait(Native Method)
>>     - waiting on<0xa21c2ca8>  (a
>> org.mortbay.thread.QueuedThreadPool$PoolThread)
>>     at
>>
>> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:626)
>>     - locked<0xa21c2ca8>  (a
>> org.mortbay.thread.QueuedThreadPool$PoolThread)
>>
>> "Jetty HTTP Service" daemon prio=10 tid=0x79e7c400 nid=0xb43 in
>> Object.wait() [0x7930b000]
>>    java.lang.Thread.State: WAITING (on object monitor)
>>     at java.lang.Object.wait(Native Method)
>>     - waiting on<0xa2ad3d90>  (a [Ljava.lang.Object;)
>>     at java.lang.Object.wait(Object.java:485)
>>     at org.apache.felix.framework.Felix.acquireBundleLock(Felix.java:4930)
>>     - locked<0xa2ad3d90>  (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<0xa2a47118>  (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<0xa208b1d0>  (a java.lang.Object)
>>     at
>> org.mortbay.jetty.servlet.ServletHandler.doStop(ServletHandler.java:174)
>>     - locked<0xa206fb78>  (a org.mortbay.jetty.servlet.ServletHandler)
>>     at
>> org.mortbay.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:76)
>>     - locked<0xa206fbe0>  (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<0xa2011050>  (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<0xa2011058>  (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<0xa1dae120>  (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:662)
>>
>> "Gogo shell" daemon prio=10 tid=0x79e6e800 nid=0xb42 runnable [0x7935c000]
>>    java.lang.Thread.State: RUNNABLE
>>     at java.io.FileInputStream.readBytes(Native Method)
>>     at java.io.FileInputStream.read(FileInputStream.java:199)
>>     at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
>>     at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
>>     - locked<0xa2a43158>  (a java.io.BufferedInputStream)
>>     at
>>
>> org.apache.felix.gogo.runtime.threadio.ThreadInputStream.read(ThreadInputStream.java:77)
>>     at org.apache.felix.gogo.shell.Console.getLine(Console.java:117)
>>     at org.apache.felix.gogo.shell.Console.run(Console.java:53)
>>     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:662)
>>
>> "CM Event Dispatcher" daemon prio=10 tid=0x79e77400 nid=0xb41 in
>> Object.wait() [0x793ad000]
>>    java.lang.Thread.State: WAITING (on object monitor)
>>     at java.lang.Object.wait(Native Method)
>>     - waiting on<0xa2a6a310>  (a java.util.LinkedList)
>>     at java.lang.Object.wait(Object.java:485)
>>     at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:76)
>>     - locked<0xa2a6a310>  (a java.util.LinkedList)
>>     at java.lang.Thread.run(Thread.java:662)
>>
>> "CM Configuration Updater" daemon prio=10 tid=0x79e5ac00 nid=0xb40 in
>> Object.wait() [0x793fe000]
>>    java.lang.Thread.State: WAITING (on object monitor)
>>     at java.lang.Object.wait(Native Method)
>>     - waiting on<0xa2a67c30>  (a java.util.LinkedList)
>>     at java.lang.Object.wait(Object.java:485)
>>     at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:76)
>>     - locked<0xa2a67c30>  (a java.util.LinkedList)
>>     at java.lang.Thread.run(Thread.java:662)
>>
>> "FelixPackageAdmin" daemon prio=10 tid=0xb6ad0000 nid=0xb3f in
>> Object.wait()
>> [0x7955c000]
>>    java.lang.Thread.State: WAITING (on object monitor)
>>     at java.lang.Object.wait(Native Method)
>>     - waiting on<0xa2a683b0>  (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<0xa2a683b0>  (a org.apache.felix.framework.PackageAdminImpl)
>>     at java.lang.Thread.run(Thread.java:662)
>>
>> "FelixStartLevel" daemon prio=10 tid=0x79680c00 nid=0xb3e waiting for
>> monitor entry [0x795ad000]
>>    java.lang.Thread.State: BLOCKED (on object monitor)
>>     at org.osgi.util.tracker.ServiceTracker.close(ServiceTracker.java:380)
>>     - waiting to lock<0xa2a47118>  (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.Felix.setActiveStartLevel(Felix.java:1202)
>>     at
>> org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:264)
>>     at java.lang.Thread.run(Thread.java:662)
>>
>> "FelixDispatchQueue" prio=10 tid=0x79623800 nid=0xb3d in Object.wait()
>> [0x795fe000]
>>    java.lang.Thread.State: WAITING (on object monitor)
>>     at java.lang.Object.wait(Native Method)
>>     - waiting on<0xa2a93b20>  (a java.util.ArrayList)
>>     at java.lang.Object.wait(Object.java:485)
>>     at
>>
>> org.apache.felix.framework.util.EventDispatcher.run(EventDispatcher.java:924)
>>     - locked<0xa2a93b20>  (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:662)
>>
>> "Low Memory Detector" daemon prio=10 tid=0xb6a98c00 nid=0xb3b runnable
>> [0x00000000]
>>    java.lang.Thread.State: RUNNABLE
>>
>> "CompilerThread1" daemon prio=10 tid=0xb6a97000 nid=0xb3a waiting on
>> condition [0x00000000]
>>    java.lang.Thread.State: RUNNABLE
>>
>> "CompilerThread0" daemon prio=10 tid=0xb6a95000 nid=0xb39 waiting on
>> condition [0x00000000]
>>    java.lang.Thread.State: RUNNABLE
>>
>> "Signal Dispatcher" daemon prio=10 tid=0xb6a93400 nid=0xb38 runnable
>> [0x00000000]
>>    java.lang.Thread.State: RUNNABLE
>>
>> "Finalizer" daemon prio=10 tid=0xb6a83c00 nid=0xb37 in Object.wait()
>> [0x79f7d000]
>>    java.lang.Thread.State: WAITING (on object monitor)
>>     at java.lang.Object.wait(Native Method)
>>     - waiting on<0xa2a94078>  (a java.lang.ref.ReferenceQueue$Lock)
>>     at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
>>     - locked<0xa2a94078>  (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=0xb6a82400 nid=0xb36 in
>> Object.wait()
>> [0x79bb2000]
>>    java.lang.Thread.State: WAITING (on object monitor)
>>     at java.lang.Object.wait(Native Method)
>>     - waiting on<0xa2a201a0>  (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<0xa2a201a0>  (a java.lang.ref.Reference$Lock)
>>
>> "main" prio=10 tid=0xb6a04000 nid=0xb32 in Object.wait() [0xb6b69000]
>>    java.lang.Thread.State: WAITING (on object monitor)
>>     at java.lang.Object.wait(Native Method)
>>     - waiting on<0xa2ad2bc8>  (a
>> org.apache.felix.framework.util.ThreadGate)
>>     at
>> org.apache.felix.framework.util.ThreadGate.await(ThreadGate.java:79)
>>     - locked<0xa2ad2bc8>  (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=10 tid=0xb6a7fc00 nid=0xb35 runnable
>>
>> "GC task thread#0 (ParallelGC)" prio=10 tid=0xb6a0b400 nid=0xb33 runnable
>>
>> "GC task thread#1 (ParallelGC)" prio=10 tid=0xb6a0cc00 nid=0xb34 runnable
>>
>> "VM Periodic Task Thread" prio=10 tid=0xb6a9a800 nid=0xb3c waiting on
>> condition
>>
>> JNI global references: 1409
>>
>> Is there an issue here ?
>>
>> thanks for your help;
>> /pierre
>>
>>

Reply via email to