jmeter-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Shmuel Krakower <shmul...@gmail.com>
Subject Re: Remote testing does not exit
Date Mon, 16 Jul 2012 16:54:49 GMT
Hi,
It seems like it hangs in a hard-coded 5000 ms sleep command.
Can you please reproduce and take two thread dumps with 10 seconds between
them - to see that it really hangs on that sleep command.

If it is - it might be related to OS / JDK that you are using.
Try using Oralce's JDK/JRE instead of OpenJDK.
What OS are you using?

Best,
Shmuel Krakower.

On Mon, Jul 16, 2012 at 6:57 PM, unjc email <unjc.email@gmail.com> wrote:

> Anyone has an idea?
>
>
> On Thu, Jul 12, 2012 at 10:31 AM, unjc email <unjc.email@gmail.com> wrote:
> > Hi Shmuel,
> >
> > Thanks for your reply.  I have the same problem even I run the remote
> > call on the same machine that has Jmeter server running.
> >
> > Here is the thread dump of the remote process when it "hangs".  It
> > seems like it's in sleeping mode?!
> >
> > [root@bin]# 2012-07-12 14:25:27
> > Full thread dump OpenJDK 64-Bit Server VM (20.0-b12 mixed mode):
> >
> > "Thread-1" daemon prio=10 tid=0x00007f958c001000 nid=0x951
> > sleeping[0x00007f95f87f7000]
> >    java.lang.Thread.State: TIMED_WAITING (sleeping)
> >  at java.lang.Thread.sleep(Native Method)
> >  at org.apache.jmeter.JMeter$ListenToTest.run(JMeter.java:966)
> >  at java.lang.Thread.run(Thread.java:679)
> >
> > "DestroyJavaVM" prio=10 tid=0x00007f95fc007000 nid=0x934 waiting on
> > condition [0x0000000000000000]
> >    java.lang.Thread.State: RUNNABLE
> >
> > "RMI TCP Connection(1)-192.168.1.12" daemon prio=10
> > tid=0x00007f9594001000 nid=0x94d runnable [0x00007f95f88f8000]
> >    java.lang.Thread.State: RUNNABLE
> >  at java.net.SocketInputStream.socketRead0(Native Method)
> >  at java.net.SocketInputStream.read(SocketInputStream.java:146)
> >  at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
> >  at java.io.BufferedInputStream.read(BufferedInputStream.java:254)
> >  - locked <0x00000000e21e9028> (a java.io.BufferedInputStream)
> >  at java.io.FilterInputStream.read(FilterInputStream.java:83)
> >  at
> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
> >  at
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808)
> >  at
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667)
> >  at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> >  at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> >  at java.lang.Thread.run(Thread.java:679)
> >
> > "RMI Reaper" prio=10 tid=0x00007f95fc257000 nid=0x94b in Object.wait()
> > [0x00007f95f89f9000]
> >    java.lang.Thread.State: WAITING (on object monitor)
> >  at java.lang.Object.wait(Native Method)
> >  - waiting on <0x00000000e19804a8> (a java.lang.ref.ReferenceQueue$Lock)
> >  at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:133)
> >  - locked <0x00000000e19804a8> (a java.lang.ref.ReferenceQueue$Lock)
> >  at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:149)
> >  at sun.rmi.transport.ObjectTable$Reaper.run(ObjectTable.java:350)
> >  at java.lang.Thread.run(Thread.java:679)
> >
> > "RMI TCP Accept-0" daemon prio=10 tid=0x00007f95fc35b000 nid=0x94a
> > runnable [0x00007f95f8afa000]
> >    java.lang.Thread.State: RUNNABLE
> >  at java.net.PlainSocketImpl.socketAccept(Native Method)
> >  at
> java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:375)
> >  at java.net.ServerSocket.implAccept(ServerSocket.java:470)
> >  at java.net.ServerSocket.accept(ServerSocket.java:438)
> >  at
> sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:387)
> >  at
> sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:359)
> >  at java.lang.Thread.run(Thread.java:679)
> >
> > "GC Daemon" daemon prio=10 tid=0x00007f95fc1fd000 nid=0x948 in
> > Object.wait() [0x00007f95f8bfb000]
> >    java.lang.Thread.State: TIMED_WAITING (on object monitor)
> >  at java.lang.Object.wait(Native Method)
> >  - waiting on <0x00000000a4c0fc58> (a sun.misc.GC$LatencyLock)
> >  at sun.misc.GC$Daemon.run(GC.java:117)
> >  - locked <0x00000000a4c0fc58> (a sun.misc.GC$LatencyLock)
> >
> > "RMI RenewClean-[192.168.1.12:52010]" daemon prio=10
> > tid=0x00007f95fc225000 nid=0x947 in Object.wait() [0x00007f95f8cfc000]
> >    java.lang.Thread.State: TIMED_WAITING (on object monitor)
> >  at java.lang.Object.wait(Native Method)
> >  - waiting on <0x00000000a4c17be0> (a java.lang.ref.ReferenceQueue$Lock)
> >  at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:133)
> >  - locked <0x00000000a4c17be0> (a java.lang.ref.ReferenceQueue$Lock)
> >  at
> sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCClient.java:534)
> >  at java.lang.Thread.run(Thread.java:679)
> >
> > "RMI Scheduler(0)" daemon prio=10 tid=0x00007f95fc251800 nid=0x946
> > waiting on condition [0x00007f95f8dfd000]
> >    java.lang.Thread.State: TIMED_WAITING (parking)
> >  at sun.misc.Unsafe.park(Native Method)
> >  - parking to wait for  <0x00000000a4c08078> (a
> > java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
> >  at
> java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
> >  at
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2081)
> >  at java.util.concurrent.DelayQueue.take(DelayQueue.java:193)
> >  at
> java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:688)
> >  at
> java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:681)
> >  at
> java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1043)
> >  at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1103)
> >  at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> >  at java.lang.Thread.run(Thread.java:679)
> >
> > "Low Memory Detector" daemon prio=10 tid=0x00007f95fc0a4000 nid=0x943
> > runnable [0x0000000000000000]
> >    java.lang.Thread.State: RUNNABLE
> >
> > "C2 CompilerThread1" daemon prio=10 tid=0x00007f95fc0a2000 nid=0x942
> > waiting on condition [0x0000000000000000]
> >    java.lang.Thread.State: RUNNABLE
> >
> > "C2 CompilerThread0" daemon prio=10 tid=0x00007f95fc09f000 nid=0x941
> > waiting on condition [0x0000000000000000]
> >    java.lang.Thread.State: RUNNABLE
> >
> > "Signal Dispatcher" daemon prio=10 tid=0x00007f95fc09d800 nid=0x940
> > waiting on condition [0x0000000000000000]
> >    java.lang.Thread.State: RUNNABLE
> >
> > "Finalizer" daemon prio=10 tid=0x00007f95fc07f000 nid=0x93f in
> > Object.wait() [0x00007f9600a40000]
> >    java.lang.Thread.State: WAITING (on object monitor)
> >  at java.lang.Object.wait(Native Method)
> >  - waiting on <0x00000000a4c0fe98> (a java.lang.ref.ReferenceQueue$Lock)
> >  at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:133)
> >  - locked <0x00000000a4c0fe98> (a java.lang.ref.ReferenceQueue$Lock)
> >  at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:149)
> >  at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:177)
> >
> > "Reference Handler" daemon prio=10 tid=0x00007f95fc07d000 nid=0x93e in
> > Object.wait() [0x00007f9600b41000]
> >    java.lang.Thread.State: WAITING (on object monitor)
> >  at java.lang.Object.wait(Native Method)
> >  - waiting on <0x00000000a4c0fc38> (a java.lang.ref.Reference$Lock)
> >  at java.lang.Object.wait(Object.java:502)
> >  at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)
> >  - locked <0x00000000a4c0fc38> (a java.lang.ref.Reference$Lock)
> >
> > "VM Thread" prio=10 tid=0x00007f95fc076000 nid=0x93d runnable
> >
> > "GC task thread#0 (ParallelGC)" prio=10 tid=0x00007f95fc011800
> > nid=0x935 runnable
> >
> > "GC task thread#1 (ParallelGC)" prio=10 tid=0x00007f95fc013800
> > nid=0x936 runnable
> >
> > "GC task thread#2 (ParallelGC)" prio=10 tid=0x00007f95fc015800
> > nid=0x937 runnable
> >
> > "GC task thread#3 (ParallelGC)" prio=10 tid=0x00007f95fc017000
> > nid=0x938 runnable
> >
> > "GC task thread#4 (ParallelGC)" prio=10 tid=0x00007f95fc019000
> > nid=0x939 runnable
> >
> > "GC task thread#5 (ParallelGC)" prio=10 tid=0x00007f95fc01b000
> > nid=0x93a runnable
> >
> > "GC task thread#6 (ParallelGC)" prio=10 tid=0x00007f95fc01d000
> > nid=0x93b runnable
> >
> > "GC task thread#7 (ParallelGC)" prio=10 tid=0x00007f95fc01e800
> > nid=0x93c runnable
> >
> > "VM Periodic Task Thread" prio=10 tid=0x00007f95fc0af000 nid=0x944
> > waiting on condition
> >
> > JNI global references: 1144
> >
> > Heap
> >  PSYoungGen      total 27264K, used 9910K [0x00000000e1960000,
> > 0x00000000e37c0000, 0x0000000100000000)
> >   eden space 23424K, 42% used
> > [0x00000000e1960000,0x00000000e230db80,0x00000000e3040000)
> >   from space 3840K, 0% used
> > [0x00000000e3040000,0x00000000e3040000,0x00000000e3400000)
> >   to   space 3840K, 0% used
> > [0x00000000e3400000,0x00000000e3400000,0x00000000e37c0000)
> >  PSOldGen        total 62336K, used 1176K [0x00000000a4c00000,
> > 0x00000000a88e0000, 0x00000000e1960000)
> >   object space 62336K, 1% used
> > [0x00000000a4c00000,0x00000000a4d26390,0x00000000a88e0000)
> >  PSPermGen       total 21248K, used 11732K [0x000000009a600000,
> > 0x000000009bac0000, 0x00000000a4c00000)
> >   object space 21248K, 55% used
> > [0x000000009a600000,0x000000009b175038,0x000000009bac0000)
> >
> >
> >
> > Thanks,
> > Jacky
> >
> > On Thu, Jul 12, 2012 at 7:21 AM, Shmuel Krakower <shmulikk@gmail.com>
> wrote:
> >> Hi,
> >> I usually have problems like this when I have firewalls between the
> master
> >> and the slave.
> >> Anyway - I'd suggest you to take a thread dump out of JMeter's JVM, both
> >> for the master and the slave and post them here / in bugzilla.
> >> This info will help to understand why this hanging happens.
> >>
> >> (google for thread+dump+jvm)
> >>
> >> Best Regards,
> >> Shmuel.
> >>
> >> On Wed, Jul 11, 2012 at 7:23 PM, unjc email <unjc.email@gmail.com>
> wrote:
> >>
> >>> Hello there,
> >>>
> >>> I encounter a problem with remote testing.  I have two jmeter servers
> >>> running.  When I start a remote nongui testing using a simple test
> >>> plan, the remote process does not exit even though after the tests are
> >>> completed successfully on both remote servers.  The process seems hung
> >>> there and didn't get terminated.  I have tried "-X" option as well,
> >>> and the problem persists even the remote jmeter servers do exit after
> >>> the completion of the test.  The version of Jmeter I am using is
> >>> Version 2.6 r1237317.  All machines have the same version of Jmeter
> >>> with java "1.6.0_24".  Please advise the proper way to run the remote
> >>> testing.
> >>>
> >>>
> >>> Console Output:
> >>> [root@bin]# java -jar ApacheJMeter.jar -n -t test.jmx -R
> >>> 192.168.1.12,192.168.1.13
> >>> Created the tree successfully using test.jmx
> >>> Configuring remote engine for 192.168.1.12
> >>> Using remote object: UnicastRef [liveRef:
> >>> [endpoint:[192.168.1.12:52010
> ](remote),objID:[-310e3d54:13872d7fdb9:-7fff,
> >>> 4757255373403868018]]]
> >>> Configuring remote engine for 192.168.1.13
> >>> Using remote object: UnicastRef [liveRef:
> >>> [endpoint:[192.168.1.13:55110
> ](remote),objID:[-1174d7:138721a1ddf:-7fff,
> >>> -6734490503268367282]]]
> >>> Starting remote engines
> >>> Starting the test @ Wed Jul 11 16:07:37 GMT-00:00 2012 (1342022857988)
> >>> Starting the test on host 192.168.1.12 @ Wed Jul 11 16:07:38 GMT-00:00
> >>> 2012 (1342022858153)
> >>> Remote engines have been started
> >>> Finished the test on host 192.168.1.12 @ Wed Jul 11 16:07:38 GMT-00:00
> >>> 2012 (1342022858194)
> >>> Tidying up remote @ Wed Jul 11 16:07:38 GMT-00:00 2012 (1342022858227)
> >>>
> >>> ^C
> >>>
> >>>
> >>> test.jmx:
> >>> <?xml version="1.0" encoding="UTF-8"?>
> >>> <jmeterTestPlan version="1.2" properties="2.2">
> >>>   <hashTree>
> >>>     <TestPlan guiclass="TestPlanGui" testclass="TestPlan"
> >>> testname="Test Plan" enabled="true">
> >>>       <stringProp name="TestPlan.comments"></stringProp>
> >>>       <boolProp name="TestPlan.functional_mode">false</boolProp>
> >>>       <boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
> >>>       <elementProp name="TestPlan.user_defined_variables"
> >>> elementType="Arguments" guiclass="ArgumentsPanel"
> >>> testclass="Arguments" testname="User Defined Variables"
> >>> enabled="true">
> >>>         <collectionProp name="Arguments.arguments"/>
> >>>       </elementProp>
> >>>       <stringProp name="TestPlan.user_define_classpath"></stringProp>
> >>>     </TestPlan>
> >>>     <hashTree>
> >>>       <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup"
> >>> testname="Thread Group" enabled="true">
> >>>         <stringProp
> >>> name="ThreadGroup.on_sample_error">continue</stringProp>
> >>>         <elementProp name="ThreadGroup.main_controller"
> >>> elementType="LoopController" guiclass="LoopControlPanel"
> >>> testclass="LoopController" testname="Loop Controller" enabled="true">
> >>>           <boolProp
> name="LoopController.continue_forever">false</boolProp>
> >>>           <stringProp name="LoopController.loops">1</stringProp>
> >>>         </elementProp>
> >>>         <stringProp name="ThreadGroup.num_threads">1</stringProp>
> >>>         <stringProp name="ThreadGroup.ramp_time">1</stringProp>
> >>>         <longProp
> name="ThreadGroup.start_time">1342019550000</longProp>
> >>>         <longProp name="ThreadGroup.end_time">1342019550000</longProp>
> >>>         <boolProp name="ThreadGroup.scheduler">false</boolProp>
> >>>         <stringProp name="ThreadGroup.duration"></stringProp>
> >>>         <stringProp name="ThreadGroup.delay"></stringProp>
> >>>       </ThreadGroup>
> >>>       <hashTree>
> >>>         <HTTPSamplerProxy guiclass="HttpTestSampleGui"
> >>> testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true">
> >>>           <elementProp name="HTTPsampler.Arguments"
> >>> elementType="Arguments" guiclass="HTTPArgumentsPanel"
> >>> testclass="Arguments" testname="User Defined Variables"
> >>> enabled="true">
> >>>             <collectionProp name="Arguments.arguments"/>
> >>>           </elementProp>
> >>>           <stringProp
> name="HTTPSampler.domain">192.168.1.11</stringProp>
> >>>           <stringProp name="HTTPSampler.port"></stringProp>
> >>>           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
> >>>           <stringProp name="HTTPSampler.response_timeout"></stringProp>
> >>>           <stringProp name="HTTPSampler.protocol">http</stringProp>
> >>>           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
> >>>           <stringProp name="HTTPSampler.path">index.html</stringProp>
> >>>           <stringProp name="HTTPSampler.method">GET</stringProp>
> >>>           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
> >>>           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
> >>>           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
> >>>           <boolProp
> name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
> >>>           <boolProp name="HTTPSampler.monitor">false</boolProp>
> >>>           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
> >>>         </HTTPSamplerProxy>
> >>>         <hashTree/>
> >>>       </hashTree>
> >>>     </hashTree>
> >>>   </hashTree>
> >>> </jmeterTestPlan>
> >>>
> >>>
> >>>
> >>> Thanks,
> >>> Jacky
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: user-unsubscribe@jmeter.apache.org
> >>> For additional commands, e-mail: user-help@jmeter.apache.org
> >>>
> >>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@jmeter.apache.org
> For additional commands, e-mail: user-help@jmeter.apache.org
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message