jmeter-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From unjc email <unjc.em...@gmail.com>
Subject Re: Remote testing does not exit
Date Mon, 16 Jul 2012 20:32:41 GMT
I was using OpenJDK 1.6.  I have just installed the Oracle JRE (java
version "1.6.0_33") on Centos release 6.2.
However, I am still experiencing the same problem.

When I tried to put the process to background by doing Ctrl-Z then
"bg", it would exit by itself.  But if I try to leave it in foreground
running untouched, it would hang there forever.

^Z
[2]+  Stopped                 java -jar ApacheJMeter.jar -n -t
../jmx/test.jmx -R 192.168.1.12
bin]#
bin]# bg
[2]+ java -jar ApacheJMeter.jar -n -t ../jmx/test.jmx -R 192.168.1.12 &
bin]# ... end of run
[2]+  Done                    java -jar ApacheJMeter.jar -n -t
../jmx/test.jmx -R 192.168.1.12
bin]#




On Mon, Jul 16, 2012 at 1:04 PM, sebb <sebbaz@gmail.com> wrote:
> On 16 July 2012 17:54, Shmuel Krakower <shmulikk@gmail.com> wrote:
>> 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.
>
> Indeed.
>
> Try creating a very simple test plan, i.e. just one sampler.
> This could even be a Java Test sampler as that does not need a server.
>
> Check it runs OK locally in non-GUI mode, then check it runs OK in
> non-GUI mode with your server host(s).
>
>> Try using Oralce's JDK/JRE instead of OpenJDK.
>
> Good idea.
>
> There have been problems with ensuring that RMI exits cleanly even on
> the standard Oracle JDK.
> The workround may perhaps not be suitable for 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
>>>
>>>
>
> ---------------------------------------------------------------------
> 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
View raw message