> However, closing a socket usually stops the I/O, so I've started
> adding "interrupt" methods to some of the samplers, in particular
> HTTP.

Just wanted to say it's a great idea Sebb! 

Regards,
Sonam
-----Original Message-----
From: sebb [mailto:[email protected]] 
Sent: Wednesday, 8 April 2009 10:41 AM
To: JMeter Users List
Subject: Re: JMeter not shutting down in non-gui mode

It will also hang in GUI testing if the server fails to respond.

By the way, the Test Action "stop test" suggestion won't work because
thread interrupt does not terminate normal I/O.

However, closing a socket usually stops the I/O, so I've started
adding "interrupt" methods to some of the samplers, in particular
HTTP.

The idea being that any such active samplers will be interrupted if
the test is forcibly stopped.

On 08/04/2009, Sonam Chauhan <[email protected]> wrote:
> With non-GUI testing, I've seen JMeter 'hang' when the 'system under
>  test' hangs due to some bug, but does not close the connection to the
>  JMeter client.
>
>  You can try using sampler-specific timeout settings but I don't have
any
>  experience with those.
>
>  The way I've done it is run JMeter from a Perl wrapper which forks
off a
>  watchdog process with a user-definable timeout period and waits for
the
>  JMeter processes to complete. If the watchdog finds that the wrapper
>  process (and by implication, its JMeter child processes) are still
alive
>  at the end of the kill timeout period, a Perl library is used to kill
>  the entire process tree. I hope to release related code in a couple
of
>  days (planned to earlier but hit issues in sourceforge - will try
>  googlecode).
>
>  Regards,
>  Sonam Chauhan
>
>
>  -----Original Message-----
>  From: Bob Cotton [mailto:[email protected]]
>  Sent: Saturday, 4 April 2009 10:24 AM
>  To: jmeter-user
>  Subject: JMeter not shutting down in non-gui mode
>
>  [One more time]
>  JMeter 2.3.2
>  Java 1.5 OS X Leopard
>  /usr/bin/java -server -Xms256m -Xmx2g -XX:NewSize=128m
>  -XX:MaxNewSize=128m
>  -XX:MaxTenuringThreshold=2 -Dsun.rmi.dgc.client.gcInterval=600000
>  -Dsun.rmi.dgc.server.gcInterval=600000 -XX:PermSize=64m
>  -XX:MaxPermSize=64m
>  -jar jakarta-jmeter-2.3.2/bin/ApacheJMeter.jar -j jmeter.log -t
>
jmeter-scenarios/loadtest-no-wait-constant-transactions-with-delete.jmx
>  -p
>  ../resources/filters/tbuser1.properties -n -l
>  loadtest_germanium-43-2009-04-03_00-01-10/load-test.jtl
>  -Djmeter.save.saveservice.output_format=csv -Jtest_duration=3600
>  -Jfinal_thread_count=7 -Jthread_start_interval=100
>
>  We run our load test under hudson on a nightly basis.
>
>  Jmeter is configured to run for a set amount of time, usually 1 hour
>
>  On most nights, jmeter will not shutdown and hang the build. Here's
the
>  kill
>  -QUIT from the process.
>
>  see anything strange, or should I employ some other means to kill the
>  process?
>
>  Thanks
>  -bob
>
>  Full thread dump Java HotSpot(TM) Server VM (1.5.0_16-133 mixed
mode):
>
>  "Thread Group 1-6" prio=5 tid=0x0021ccc0 nid=0x83a000 runnable
>  [0xb19e9000..0xb19e9d90]
>
>
>
>         at java.net.SocketInputStream.socketRead0(Native Method)
>         at java.net.SocketInputStream.read(SocketInputStream.java:129)
>         at
>  java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
>         at
>  java.io.BufferedInputStream.read1(BufferedInputStream.java:256)
>
>
>
>         at
>  java.io.BufferedInputStream.read(BufferedInputStream.java:313)
>         - locked <0x129e2890> (a java.io.BufferedInputStream)
>         at
>  sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:681)
>         at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:626)
>
>
>
>         at
>
sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnec
>  tion.java:957)
>         - locked <0x129e28e0> (a
>  sun.net.www.protocol.http.HttpURLConnection)
>         at
>
sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnec
>  tion.java:1923)
>
>
>
>         at
>  java.net.URLConnection.getHeaderFieldInt(URLConnection.java:573)
>         at
>  java.net.URLConnection.getContentLength(URLConnection.java:468)
>         at
>
org.apache.jmeter.protocol.http.sampler.HTTPSampler.readResponse(HTTPSam
>  pler.java:203)
>
>
>
>         at
>
org.apache.jmeter.protocol.http.sampler.HTTPSampler.sample(HTTPSampler.j
>  ava:463)
>         at
>
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSampl
>  erBase.java:1021)
>         at
>
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSampl
>  erBase.java:1007)
>
>
>
>         at
>  org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:290)
>         at java.lang.Thread.run(Thread.java:613)
>
>  "Thread Group 1-2" prio=5 tid=0x0021a460 nid=0x823600 runnable
>  [0xb107d000..0xb107dd90]
>
>
>
>         at java.net.SocketInputStream.socketRead0(Native Method)
>         at java.net.SocketInputStream.read(SocketInputStream.java:129)
>         at
>  java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
>         at
>  java.io.BufferedInputStream.read1(BufferedInputStream.java:256)
>
>
>
>         at
>  java.io.BufferedInputStream.read(BufferedInputStream.java:313)
>         - locked <0x129e4aa8> (a java.io.BufferedInputStream)
>         at
>  sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:681)
>         at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:626)
>
>
>
>         at
>
sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnec
>  tion.java:957)
>         - locked <0x129e4af8> (a
>  sun.net.www.protocol.http.HttpURLConnection)
>         at
>
sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnec
>  tion.java:1923)
>
>
>
>         at
>  java.net.URLConnection.getHeaderFieldInt(URLConnection.java:573)
>         at
>  java.net.URLConnection.getContentLength(URLConnection.java:468)
>         at
>
org.apache.jmeter.protocol.http.sampler.HTTPSampler.readResponse(HTTPSam
>  pler.java:203)
>
>
>
>         at
>
org.apache.jmeter.protocol.http.sampler.HTTPSampler.sample(HTTPSampler.j
>  ava:463)
>         at
>
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSampl
>  erBase.java:1021)
>         at
>
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSampl
>
> erBase.java:1007)
>
>
>
>         at
>  org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:290)
>         at java.lang.Thread.run(Thread.java:613)
>
>  "Thread Group 1-1" prio=5 tid=0x00219410 nid=0x822800 runnable
>  [0xb0eff000..0xb0effd90]
>
>
>
>         at java.net.SocketInputStream.socketRead0(Native Method)
>         at java.net.SocketInputStream.read(SocketInputStream.java:129)
>         at
>  java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
>         at
>  java.io.BufferedInputStream.read1(BufferedInputStream.java:256)
>
>
>
>         at
>  java.io.BufferedInputStream.read(BufferedInputStream.java:313)
>         - locked <0x129e6cc0> (a java.io.BufferedInputStream)
>         at
>  sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:681)
>         at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:626)
>
>
>
>         at
>
sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnec
>  tion.java:957)
>         - locked <0x129e6d10> (a
>  sun.net.www.protocol.http.HttpURLConnection)
>         at
>
sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnec
>
> tion.java:1923)
>
>
>
>         at
>  java.net.URLConnection.getHeaderFieldInt(URLConnection.java:573)
>         at
>  java.net.URLConnection.getContentLength(URLConnection.java:468)
>         at
>
org.apache.jmeter.protocol.http.sampler.HTTPSampler.readResponse(HTTPSam
>  pler.java:203)
>
>
>
>         at
>
org.apache.jmeter.protocol.http.sampler.HTTPSampler.sample(HTTPSampler.j
>  ava:463)
>         at
>
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSampl
>  erBase.java:1021)
>         at
>
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSampl
>
> erBase.java:1007)
>
>
>
>         at
>  org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:290)
>         at java.lang.Thread.run(Thread.java:613)
>
>  "AWT-AppKit" daemon prio=5 tid=0x002168a0 nid=0xa086b720 runnable
>  [0x00000000..0xbfffd9a8]
>
>
>
>
>  "DestroyJavaVM" prio=5 tid=0x00201600 nid=0xb0801000 waiting on
>  condition [0x00000000..0xb0800060]
>
>  "Low Memory Detector" daemon prio=5 tid=0x0020a8b0 nid=0x81b600
>  runnable [0x00000000..0x00000000]
>
>
>
>
>  "CompilerThread1" daemon prio=9 tid=0x00209e00 nid=0x81a800 waiting
on
>  condition [0x00000000..0xb0c093b8]
>
>  "CompilerThread0" daemon prio=9 tid=0x00209900 nid=0x819a00 waiting
on
>  condition [0x00000000..0xb0b883b8]
>
>
>
>
>  "AdapterThread" daemon prio=9 tid=0x00209290 nid=0x815c00 waiting on
>  condition [0x00000000..0x00000000]
>
>  "Signal Dispatcher" daemon prio=9 tid=0x00208e60 nid=0x808600 waiting
>  on condition [0x00000000..0x00000000]
>
>
>
>
>  "Finalizer" daemon prio=8 tid=0x002085a0 nid=0x818c00 in
Object.wait()
>  [0xb0a05000..0xb0a05d90]
>         at java.lang.Object.wait(Native Method)
>         - waiting on <0x0e9e09a8> (a
java.lang.ref.ReferenceQueue$Lock)
>
>
>
>         at
java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:120)
>         - locked <0x0e9e09a8> (a java.lang.ref.ReferenceQueue$Lock)
>         at
java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:136)
>         at
>  java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
>
>
>
>
>  "Reference Handler" daemon prio=10 tid=0x002081c0 nid=0x817400 in
>  Object.wait() [0xb0984000..0xb0984d90]
>         at java.lang.Object.wait(Native Method)
>         - waiting on <0x0e9e08c8> (a java.lang.ref.Reference$Lock)
>
>
>
>         at java.lang.Object.wait(Object.java:474)
>         at
>  java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
>         - locked <0x0e9e08c8> (a java.lang.ref.Reference$Lock)
>
>  "VM Thread" prio=9 tid=0x00207910 nid=0x80b800 runnable
>
>
>
>
>  "VM Periodic Task Thread" prio=9 tid=0x0020b490 nid=0x81c400 waiting
>  on condition
>
>  "Exception Catcher Thread" prio=10 tid=0x00201850 nid=0x809800
runnable
>
>
> The information contained in this email and any attached files are
strictly
>  private and confidential. This email should be read by the intended
addressee
>  only.  If the recipient of this message is not the intended
addressee, please
>  call Corporate Express Australia Limited on +61 2 9335 0555 or
Corporate Express
>  New Zealand Limited on +64 9 279 2555 and promptly delete this email
and any
>  attachments.  The intended recipient of this email may only use,
reproduce,
>  disclose or distribute the information contained in this email and
any attached
>  files with Corporate Express' permission. If you are not the intended
addressee,
>  you are strictly prohibited from using, reproducing, disclosing or
distributing
>  the information contained in this email and any attached files.
Corporate
>  Express advises that this email and any attached files should be
scanned to
>  detect viruses. Corporate Express accepts no liability for loss or
damage
>  (whether caused by negligence or not) resulting from the use of any
attached
>  files.
>
>  ---------------------------------------------------------------------
>  To unsubscribe, e-mail: [email protected]
>  For additional commands, e-mail: [email protected]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


The information contained in this email and any attached files are strictly
private and confidential. This email should be read by the intended addressee
only.  If the recipient of this message is not the intended addressee, please
call Corporate Express Australia Limited on +61 2 9335 0555 or Corporate Express
New Zealand Limited on +64 9 279 2555 and promptly delete this email and any
attachments.  The intended recipient of this email may only use, reproduce,
disclose or distribute the information contained in this email and any attached
files with Corporate Express' permission. If you are not the intended addressee,
you are strictly prohibited from using, reproducing, disclosing or distributing
the information contained in this email and any attached files.  Corporate
Express advises that this email and any attached files should be scanned to
detect viruses. Corporate Express accepts no liability for loss or damage
(whether caused by negligence or not) resulting from the use of any attached
files.

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to