You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@jmeter.apache.org by Ivan Rancati <iv...@gmail.com> on 2016/03/03 10:20:23 UTC

IOException: Stream closed with OS Process Sampler

Good morning,

I am using the OS Process sampler to start an ipsec (StrongSwan)
connection, and it’s working well until I hit about 100 threads, then the
following exception appears

WARN  - jorphan.exec.StreamCopier: Error writing stream
java.io.IOException: Stream closed

and the samples start timing out





2016/03/01 13:44:30 INFO  - jmeter.reporters.Summariser: summary +     50
in  30.2s =    1.7/s Avg: 18785 Min: 14642 Max: 23661 Err:     0 (0.00%)
Active: 99 Started: 99 Finished: 0

2016/03/01 13:44:30 INFO  - jmeter.reporters.Summariser: summary =    338
in   320s =    1.1/s Avg:  6789 Min:   101 Max: 23661 Err:     0 (0.00%)

2016/03/01 13:44:32 INFO  - jmeter.threads.JMeterThread: Thread started:
Open ipsec connections 1-100

2016/03/01 13:45:01 INFO  - jmeter.reporters.Summariser: summary +     49
in  30.2s =    1.6/s Avg: 21878 Min: 17053 Max: 26981 Err:     0 (0.00%)
Active: 100 Started: 100 Finished: 0

2016/03/01 13:45:01 INFO  - jmeter.reporters.Summariser: summary =    387
in   350s =    1.1/s Avg:  8700 Min:   101 Max: 26981 Err:     0 (0.00%)

2016/03/01 13:45:14 WARN  - jorphan.exec.StreamCopier: Error writing stream
java.io.IOException: Stream closed

        at
java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:170)

        at java.io.BufferedInputStream.read1(BufferedInputStream.java:291)

        at java.io.BufferedInputStream.read(BufferedInputStream.java:345)

        at java.io.FilterInputStream.read(FilterInputStream.java:107)

        at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1792)

        at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1769)

        at org.apache.jorphan.exec.StreamCopier.run(StreamCopier.java:57)





My configuration:

I am running Jmeter 2.13 in text (non-GUI) mode on a Ubuntu 15.10 server. I
also tried the nightly build r1732820 as I saw a possibly related bugfix
**, no change

java version "1.8.0_74" (Oracle Jdk). I have also tried the OpenJdk, no
change



The testplan looks so



setUp Thread Group

  os Process Sampler: restart networking

  os Process Sampler: delete a ipsec log file, so it does not grow too big

  os Process Sampler: start the ipsec services

  constant timer, wait 5 seconds



main thread group: 100 threads, run 1 hour with scheduler, rampup 10 minutes

  os Process Sampler: ipsec up (the name of the connection is a fixed
string plus the thread number)

     verify that an ip address is given, return code is 0, the string
“successfully is displayed”

  constant timer, wait 30 seconds

  os Process Sampler: ipsec down (name of the connection as above)



tearDown

  os Process Sampler: stop the ipsec services



In the test plan, there are a “View Results Tree” and an “Aggregate
Report”, which I assume are not used in text mode.

I have the same test plan on another computer, where I copy the .jtl file
and use JMeter in GUI Mode to look at the results.



During the execution of the tests, the server does not show overload
(cpu/memory, checked with top)

I have also verified manually (for loop in bash) that the ipsec connections
configured in ipsec.conf start correctly



In the test plan, I tried two variants to execute the command

1: use /bin/bash as the Command, and /usr/local/sbin/ipsec as a parameter
(other parameters are then “up” and the name of the connection)

2: use directly /usr/local/sbin/ipsec as the Command, parameters as above

Here there is also no difference


Is there a limit on the number of open streams?

I have tried to run the test with 99 threads, the “Stream closed” exception
still appears, if I let the test run long enough, so it does not look like
there is a hard coded limit of 100



Thanks for any suggestion and best regards

Ivan





** Use Java7 try with resources

Close stream leak

Remove commented code

Fix synchro issue in comparison


git-svn-id: https://svn.apache.org/repos/asf/jmeter/trunk@1719558

Re: IOException: Stream closed with OS Process Sampler

Posted by Ivan Rancati <iv...@gmail.com>.
hello and thanks for the suggestions.

I will try a distributed configuration today. Right now I suspect a limit
in the vm, or possibly in jorphan, so splitting over 2 servers should help.

At the OS level (logs in /var/logs, number of open files...) I don't see
anything suspicious

IPSec is most likely not the problem either, I tried with a simple bash
loop and I can open all 100 connections.
for conn in {1..100} ; do ipsec up env-$conn & echo ; done

With "ipsec status" I see there are 100 active tunnels; with "ip addr show"
I see there are 100 ip addresses, and the 100 tunnels do work (I tried
another bash loop to send a dns request to a server, using dig -b <address>
@<server in the vpn>...)

So, narrowing it down towards a Java (VM, or the Jorphan classes). Thanks
and I'll post an update, it might be interesting for other testers who use
the OS Process Sampler

best regards
Ivan

On Tue, Mar 8, 2016 at 11:11 PM, Sergio Boso <se...@bosoconsulting.it>
wrote:

> HI,
> also, I would check the IPSEC client configuration.
> It looks like you are hitting some configuration limit somewhere.
>
> A distributed configuration would work around these values.
>
> Regards
>
> Sergio
>
>
> Il 08/03/2016 19.59, chaitanya bhatt ha scritto:
>
>> Have you looked at linux kernel/os logs?
>>
>>   Also, to prove OS is not the bottleneck try launching 2 Jmeter instances
>> on the same machine with 50 threads on each. If you still see the problem
>> OS could be the culprit.
>>
>> Thanks
>> Chaitanya M Bhatt
>>
>> On Tue, Mar 8, 2016 at 3:02 AM, Ivan Rancati <iv...@gmail.com>
>> wrote:
>>
>> Hello again,
>>>
>>> I am still struggling with the "IOException: Stream closed" problem.
>>> Quick question: as BufferedInputStream is not a file object (it's VM
>>> internal), there is no point in investigating file descriptor limits at
>>> the
>>> OS (Linux) level, correct?
>>>
>>> Other than this, suggestions or also hints how to further troubleshoot
>>> are
>>> welcome.
>>>
>>>
>>>
>>> Best regards
>>> Ivan
>>>
>>>
>>>
>>> On Thu, Mar 3, 2016 at 10:20 AM, Ivan Rancati <iv...@gmail.com>
>>> wrote:
>>>
>>> Good morning,
>>>>
>>>> I am using the OS Process sampler to start an ipsec (StrongSwan)
>>>> connection, and it’s working well until I hit about 100 threads, then
>>>> the
>>>> following exception appears
>>>>
>>>> WARN  - jorphan.exec.StreamCopier: Error writing stream
>>>> java.io.IOException: Stream closed
>>>>
>>>> and the samples start timing out
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> 2016/03/01 13:44:30 INFO  - jmeter.reporters.Summariser: summary +
>>>>  50
>>>> in  30.2s =    1.7/s Avg: 18785 Min: 14642 Max: 23661 Err:     0 (0.00%)
>>>> Active: 99 Started: 99 Finished: 0
>>>>
>>>> 2016/03/01 13:44:30 INFO  - jmeter.reporters.Summariser: summary =
>>>> 338
>>>> in   320s =    1.1/s Avg:  6789 Min:   101 Max: 23661 Err:     0 (0.00%)
>>>>
>>>> 2016/03/01 13:44:32 INFO  - jmeter.threads.JMeterThread: Thread started:
>>>> Open ipsec connections 1-100
>>>>
>>>> 2016/03/01 13:45:01 INFO  - jmeter.reporters.Summariser: summary +
>>>>  49
>>>> in  30.2s =    1.6/s Avg: 21878 Min: 17053 Max: 26981 Err:     0 (0.00%)
>>>> Active: 100 Started: 100 Finished: 0
>>>>
>>>> 2016/03/01 13:45:01 INFO  - jmeter.reporters.Summariser: summary =
>>>> 387
>>>> in   350s =    1.1/s Avg:  8700 Min:   101 Max: 26981 Err:     0 (0.00%)
>>>>
>>>> 2016/03/01 13:45:14 WARN  - jorphan.exec.StreamCopier: Error writing
>>>> stream java.io.IOException: Stream closed
>>>>
>>>>          at
>>>> java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:170)
>>>>
>>>>          at
>>>>
>>> java.io.BufferedInputStream.read1(BufferedInputStream.java:291)
>>>
>>>>          at
>>>> java.io.BufferedInputStream.read(BufferedInputStream.java:345)
>>>>
>>>>          at java.io.FilterInputStream.read(FilterInputStream.java:107)
>>>>
>>>>          at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1792)
>>>>
>>>>          at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1769)
>>>>
>>>>          at
>>>> org.apache.jorphan.exec.StreamCopier.run(StreamCopier.java:57)
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> My configuration:
>>>>
>>>> I am running Jmeter 2.13 in text (non-GUI) mode on a Ubuntu 15.10
>>>> server.
>>>> I also tried the nightly build r1732820 as I saw a possibly related
>>>>
>>> bugfix
>>>
>>>> **, no change
>>>>
>>>> java version "1.8.0_74" (Oracle Jdk). I have also tried the OpenJdk, no
>>>> change
>>>>
>>>>
>>>>
>>>> The testplan looks so
>>>>
>>>>
>>>>
>>>> setUp Thread Group
>>>>
>>>>    os Process Sampler: restart networking
>>>>
>>>>    os Process Sampler: delete a ipsec log file, so it does not grow too
>>>>
>>> big
>>>
>>>>    os Process Sampler: start the ipsec services
>>>>
>>>>    constant timer, wait 5 seconds
>>>>
>>>>
>>>>
>>>> main thread group: 100 threads, run 1 hour with scheduler, rampup 10
>>>> minutes
>>>>
>>>>    os Process Sampler: ipsec up (the name of the connection is a fixed
>>>> string plus the thread number)
>>>>
>>>>       verify that an ip address is given, return code is 0, the string
>>>> “successfully is displayed”
>>>>
>>>>    constant timer, wait 30 seconds
>>>>
>>>>    os Process Sampler: ipsec down (name of the connection as above)
>>>>
>>>>
>>>>
>>>> tearDown
>>>>
>>>>    os Process Sampler: stop the ipsec services
>>>>
>>>>
>>>>
>>>> In the test plan, there are a “View Results Tree” and an “Aggregate
>>>> Report”, which I assume are not used in text mode.
>>>>
>>>> I have the same test plan on another computer, where I copy the .jtl
>>>> file
>>>> and use JMeter in GUI Mode to look at the results.
>>>>
>>>>
>>>>
>>>> During the execution of the tests, the server does not show overload
>>>> (cpu/memory, checked with top)
>>>>
>>>> I have also verified manually (for loop in bash) that the ipsec
>>>> connections configured in ipsec.conf start correctly
>>>>
>>>>
>>>>
>>>> In the test plan, I tried two variants to execute the command
>>>>
>>>> 1: use /bin/bash as the Command, and /usr/local/sbin/ipsec as a
>>>> parameter
>>>> (other parameters are then “up” and the name of the connection)
>>>>
>>>> 2: use directly /usr/local/sbin/ipsec as the Command, parameters as
>>>> above
>>>>
>>>> Here there is also no difference
>>>>
>>>>
>>>> Is there a limit on the number of open streams?
>>>>
>>>> I have tried to run the test with 99 threads, the “Stream closed”
>>>> exception still appears, if I let the test run long enough, so it does
>>>>
>>> not
>>>
>>>> look like there is a hard coded limit of 100
>>>>
>>>>
>>>>
>>>> Thanks for any suggestion and best regards
>>>>
>>>> Ivan
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> ** Use Java7 try with resources
>>>>
>>>> Close stream leak
>>>>
>>>> Remove commented code
>>>>
>>>> Fix synchro issue in comparison
>>>>
>>>>
>>>> git-svn-id: https://svn.apache.org/repos/asf/jmeter/trunk@1719558
>>>>
>>>>
>
> --
>
> Ing. Sergio Boso
>
>
>
>

Re: IOException: Stream closed with OS Process Sampler

Posted by Sergio Boso <se...@bosoconsulting.it>.
HI,
also, I would check the IPSEC client configuration.
It looks like you are hitting some configuration limit somewhere.

A distributed configuration would work around these values.

Regards

Sergio

Il 08/03/2016 19.59, chaitanya bhatt ha scritto:
> Have you looked at linux kernel/os logs?
>
>   Also, to prove OS is not the bottleneck try launching 2 Jmeter instances
> on the same machine with 50 threads on each. If you still see the problem
> OS could be the culprit.
>
> Thanks
> Chaitanya M Bhatt
>
> On Tue, Mar 8, 2016 at 3:02 AM, Ivan Rancati <iv...@gmail.com> wrote:
>
>> Hello again,
>>
>> I am still struggling with the "IOException: Stream closed" problem.
>> Quick question: as BufferedInputStream is not a file object (it's VM
>> internal), there is no point in investigating file descriptor limits at the
>> OS (Linux) level, correct?
>>
>> Other than this, suggestions or also hints how to further troubleshoot are
>> welcome.
>>
>>
>>
>> Best regards
>> Ivan
>>
>>
>>
>> On Thu, Mar 3, 2016 at 10:20 AM, Ivan Rancati <iv...@gmail.com>
>> wrote:
>>
>>> Good morning,
>>>
>>> I am using the OS Process sampler to start an ipsec (StrongSwan)
>>> connection, and it’s working well until I hit about 100 threads, then the
>>> following exception appears
>>>
>>> WARN  - jorphan.exec.StreamCopier: Error writing stream
>>> java.io.IOException: Stream closed
>>>
>>> and the samples start timing out
>>>
>>>
>>>
>>>
>>>
>>> 2016/03/01 13:44:30 INFO  - jmeter.reporters.Summariser: summary +     50
>>> in  30.2s =    1.7/s Avg: 18785 Min: 14642 Max: 23661 Err:     0 (0.00%)
>>> Active: 99 Started: 99 Finished: 0
>>>
>>> 2016/03/01 13:44:30 INFO  - jmeter.reporters.Summariser: summary =    338
>>> in   320s =    1.1/s Avg:  6789 Min:   101 Max: 23661 Err:     0 (0.00%)
>>>
>>> 2016/03/01 13:44:32 INFO  - jmeter.threads.JMeterThread: Thread started:
>>> Open ipsec connections 1-100
>>>
>>> 2016/03/01 13:45:01 INFO  - jmeter.reporters.Summariser: summary +     49
>>> in  30.2s =    1.6/s Avg: 21878 Min: 17053 Max: 26981 Err:     0 (0.00%)
>>> Active: 100 Started: 100 Finished: 0
>>>
>>> 2016/03/01 13:45:01 INFO  - jmeter.reporters.Summariser: summary =    387
>>> in   350s =    1.1/s Avg:  8700 Min:   101 Max: 26981 Err:     0 (0.00%)
>>>
>>> 2016/03/01 13:45:14 WARN  - jorphan.exec.StreamCopier: Error writing
>>> stream java.io.IOException: Stream closed
>>>
>>>          at
>>> java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:170)
>>>
>>>          at
>> java.io.BufferedInputStream.read1(BufferedInputStream.java:291)
>>>          at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
>>>
>>>          at java.io.FilterInputStream.read(FilterInputStream.java:107)
>>>
>>>          at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1792)
>>>
>>>          at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1769)
>>>
>>>          at org.apache.jorphan.exec.StreamCopier.run(StreamCopier.java:57)
>>>
>>>
>>>
>>>
>>>
>>> My configuration:
>>>
>>> I am running Jmeter 2.13 in text (non-GUI) mode on a Ubuntu 15.10 server.
>>> I also tried the nightly build r1732820 as I saw a possibly related
>> bugfix
>>> **, no change
>>>
>>> java version "1.8.0_74" (Oracle Jdk). I have also tried the OpenJdk, no
>>> change
>>>
>>>
>>>
>>> The testplan looks so
>>>
>>>
>>>
>>> setUp Thread Group
>>>
>>>    os Process Sampler: restart networking
>>>
>>>    os Process Sampler: delete a ipsec log file, so it does not grow too
>> big
>>>    os Process Sampler: start the ipsec services
>>>
>>>    constant timer, wait 5 seconds
>>>
>>>
>>>
>>> main thread group: 100 threads, run 1 hour with scheduler, rampup 10
>>> minutes
>>>
>>>    os Process Sampler: ipsec up (the name of the connection is a fixed
>>> string plus the thread number)
>>>
>>>       verify that an ip address is given, return code is 0, the string
>>> “successfully is displayed”
>>>
>>>    constant timer, wait 30 seconds
>>>
>>>    os Process Sampler: ipsec down (name of the connection as above)
>>>
>>>
>>>
>>> tearDown
>>>
>>>    os Process Sampler: stop the ipsec services
>>>
>>>
>>>
>>> In the test plan, there are a “View Results Tree” and an “Aggregate
>>> Report”, which I assume are not used in text mode.
>>>
>>> I have the same test plan on another computer, where I copy the .jtl file
>>> and use JMeter in GUI Mode to look at the results.
>>>
>>>
>>>
>>> During the execution of the tests, the server does not show overload
>>> (cpu/memory, checked with top)
>>>
>>> I have also verified manually (for loop in bash) that the ipsec
>>> connections configured in ipsec.conf start correctly
>>>
>>>
>>>
>>> In the test plan, I tried two variants to execute the command
>>>
>>> 1: use /bin/bash as the Command, and /usr/local/sbin/ipsec as a parameter
>>> (other parameters are then “up” and the name of the connection)
>>>
>>> 2: use directly /usr/local/sbin/ipsec as the Command, parameters as above
>>>
>>> Here there is also no difference
>>>
>>>
>>> Is there a limit on the number of open streams?
>>>
>>> I have tried to run the test with 99 threads, the “Stream closed”
>>> exception still appears, if I let the test run long enough, so it does
>> not
>>> look like there is a hard coded limit of 100
>>>
>>>
>>>
>>> Thanks for any suggestion and best regards
>>>
>>> Ivan
>>>
>>>
>>>
>>>
>>>
>>> ** Use Java7 try with resources
>>>
>>> Close stream leak
>>>
>>> Remove commented code
>>>
>>> Fix synchro issue in comparison
>>>
>>>
>>> git-svn-id: https://svn.apache.org/repos/asf/jmeter/trunk@1719558
>>>


-- 

Ing. Sergio Boso




---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@jmeter.apache.org
For additional commands, e-mail: user-help@jmeter.apache.org


Re: IOException: Stream closed with OS Process Sampler

Posted by chaitanya bhatt <bh...@gmail.com>.
Have you looked at linux kernel/os logs?

 Also, to prove OS is not the bottleneck try launching 2 Jmeter instances
on the same machine with 50 threads on each. If you still see the problem
OS could be the culprit.

Thanks
Chaitanya M Bhatt

On Tue, Mar 8, 2016 at 3:02 AM, Ivan Rancati <iv...@gmail.com> wrote:

> Hello again,
>
> I am still struggling with the "IOException: Stream closed" problem.
> Quick question: as BufferedInputStream is not a file object (it's VM
> internal), there is no point in investigating file descriptor limits at the
> OS (Linux) level, correct?
>
> Other than this, suggestions or also hints how to further troubleshoot are
> welcome.
>
>
>
> Best regards
> Ivan
>
>
>
> On Thu, Mar 3, 2016 at 10:20 AM, Ivan Rancati <iv...@gmail.com>
> wrote:
>
> > Good morning,
> >
> > I am using the OS Process sampler to start an ipsec (StrongSwan)
> > connection, and it’s working well until I hit about 100 threads, then the
> > following exception appears
> >
> > WARN  - jorphan.exec.StreamCopier: Error writing stream
> > java.io.IOException: Stream closed
> >
> > and the samples start timing out
> >
> >
> >
> >
> >
> > 2016/03/01 13:44:30 INFO  - jmeter.reporters.Summariser: summary +     50
> > in  30.2s =    1.7/s Avg: 18785 Min: 14642 Max: 23661 Err:     0 (0.00%)
> > Active: 99 Started: 99 Finished: 0
> >
> > 2016/03/01 13:44:30 INFO  - jmeter.reporters.Summariser: summary =    338
> > in   320s =    1.1/s Avg:  6789 Min:   101 Max: 23661 Err:     0 (0.00%)
> >
> > 2016/03/01 13:44:32 INFO  - jmeter.threads.JMeterThread: Thread started:
> > Open ipsec connections 1-100
> >
> > 2016/03/01 13:45:01 INFO  - jmeter.reporters.Summariser: summary +     49
> > in  30.2s =    1.6/s Avg: 21878 Min: 17053 Max: 26981 Err:     0 (0.00%)
> > Active: 100 Started: 100 Finished: 0
> >
> > 2016/03/01 13:45:01 INFO  - jmeter.reporters.Summariser: summary =    387
> > in   350s =    1.1/s Avg:  8700 Min:   101 Max: 26981 Err:     0 (0.00%)
> >
> > 2016/03/01 13:45:14 WARN  - jorphan.exec.StreamCopier: Error writing
> > stream java.io.IOException: Stream closed
> >
> >         at
> > java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:170)
> >
> >         at
> java.io.BufferedInputStream.read1(BufferedInputStream.java:291)
> >
> >         at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
> >
> >         at java.io.FilterInputStream.read(FilterInputStream.java:107)
> >
> >         at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1792)
> >
> >         at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1769)
> >
> >         at org.apache.jorphan.exec.StreamCopier.run(StreamCopier.java:57)
> >
> >
> >
> >
> >
> > My configuration:
> >
> > I am running Jmeter 2.13 in text (non-GUI) mode on a Ubuntu 15.10 server.
> > I also tried the nightly build r1732820 as I saw a possibly related
> bugfix
> > **, no change
> >
> > java version "1.8.0_74" (Oracle Jdk). I have also tried the OpenJdk, no
> > change
> >
> >
> >
> > The testplan looks so
> >
> >
> >
> > setUp Thread Group
> >
> >   os Process Sampler: restart networking
> >
> >   os Process Sampler: delete a ipsec log file, so it does not grow too
> big
> >
> >   os Process Sampler: start the ipsec services
> >
> >   constant timer, wait 5 seconds
> >
> >
> >
> > main thread group: 100 threads, run 1 hour with scheduler, rampup 10
> > minutes
> >
> >   os Process Sampler: ipsec up (the name of the connection is a fixed
> > string plus the thread number)
> >
> >      verify that an ip address is given, return code is 0, the string
> > “successfully is displayed”
> >
> >   constant timer, wait 30 seconds
> >
> >   os Process Sampler: ipsec down (name of the connection as above)
> >
> >
> >
> > tearDown
> >
> >   os Process Sampler: stop the ipsec services
> >
> >
> >
> > In the test plan, there are a “View Results Tree” and an “Aggregate
> > Report”, which I assume are not used in text mode.
> >
> > I have the same test plan on another computer, where I copy the .jtl file
> > and use JMeter in GUI Mode to look at the results.
> >
> >
> >
> > During the execution of the tests, the server does not show overload
> > (cpu/memory, checked with top)
> >
> > I have also verified manually (for loop in bash) that the ipsec
> > connections configured in ipsec.conf start correctly
> >
> >
> >
> > In the test plan, I tried two variants to execute the command
> >
> > 1: use /bin/bash as the Command, and /usr/local/sbin/ipsec as a parameter
> > (other parameters are then “up” and the name of the connection)
> >
> > 2: use directly /usr/local/sbin/ipsec as the Command, parameters as above
> >
> > Here there is also no difference
> >
> >
> > Is there a limit on the number of open streams?
> >
> > I have tried to run the test with 99 threads, the “Stream closed”
> > exception still appears, if I let the test run long enough, so it does
> not
> > look like there is a hard coded limit of 100
> >
> >
> >
> > Thanks for any suggestion and best regards
> >
> > Ivan
> >
> >
> >
> >
> >
> > ** Use Java7 try with resources
> >
> > Close stream leak
> >
> > Remove commented code
> >
> > Fix synchro issue in comparison
> >
> >
> > git-svn-id: https://svn.apache.org/repos/asf/jmeter/trunk@1719558
> >
>

Re: IOException: Stream closed with OS Process Sampler

Posted by Ivan Rancati <iv...@gmail.com>.
Hello again,

I am still struggling with the "IOException: Stream closed" problem.
Quick question: as BufferedInputStream is not a file object (it's VM
internal), there is no point in investigating file descriptor limits at the
OS (Linux) level, correct?

Other than this, suggestions or also hints how to further troubleshoot are
welcome.



Best regards
Ivan



On Thu, Mar 3, 2016 at 10:20 AM, Ivan Rancati <iv...@gmail.com>
wrote:

> Good morning,
>
> I am using the OS Process sampler to start an ipsec (StrongSwan)
> connection, and it’s working well until I hit about 100 threads, then the
> following exception appears
>
> WARN  - jorphan.exec.StreamCopier: Error writing stream
> java.io.IOException: Stream closed
>
> and the samples start timing out
>
>
>
>
>
> 2016/03/01 13:44:30 INFO  - jmeter.reporters.Summariser: summary +     50
> in  30.2s =    1.7/s Avg: 18785 Min: 14642 Max: 23661 Err:     0 (0.00%)
> Active: 99 Started: 99 Finished: 0
>
> 2016/03/01 13:44:30 INFO  - jmeter.reporters.Summariser: summary =    338
> in   320s =    1.1/s Avg:  6789 Min:   101 Max: 23661 Err:     0 (0.00%)
>
> 2016/03/01 13:44:32 INFO  - jmeter.threads.JMeterThread: Thread started:
> Open ipsec connections 1-100
>
> 2016/03/01 13:45:01 INFO  - jmeter.reporters.Summariser: summary +     49
> in  30.2s =    1.6/s Avg: 21878 Min: 17053 Max: 26981 Err:     0 (0.00%)
> Active: 100 Started: 100 Finished: 0
>
> 2016/03/01 13:45:01 INFO  - jmeter.reporters.Summariser: summary =    387
> in   350s =    1.1/s Avg:  8700 Min:   101 Max: 26981 Err:     0 (0.00%)
>
> 2016/03/01 13:45:14 WARN  - jorphan.exec.StreamCopier: Error writing
> stream java.io.IOException: Stream closed
>
>         at
> java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:170)
>
>         at java.io.BufferedInputStream.read1(BufferedInputStream.java:291)
>
>         at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
>
>         at java.io.FilterInputStream.read(FilterInputStream.java:107)
>
>         at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1792)
>
>         at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1769)
>
>         at org.apache.jorphan.exec.StreamCopier.run(StreamCopier.java:57)
>
>
>
>
>
> My configuration:
>
> I am running Jmeter 2.13 in text (non-GUI) mode on a Ubuntu 15.10 server.
> I also tried the nightly build r1732820 as I saw a possibly related bugfix
> **, no change
>
> java version "1.8.0_74" (Oracle Jdk). I have also tried the OpenJdk, no
> change
>
>
>
> The testplan looks so
>
>
>
> setUp Thread Group
>
>   os Process Sampler: restart networking
>
>   os Process Sampler: delete a ipsec log file, so it does not grow too big
>
>   os Process Sampler: start the ipsec services
>
>   constant timer, wait 5 seconds
>
>
>
> main thread group: 100 threads, run 1 hour with scheduler, rampup 10
> minutes
>
>   os Process Sampler: ipsec up (the name of the connection is a fixed
> string plus the thread number)
>
>      verify that an ip address is given, return code is 0, the string
> “successfully is displayed”
>
>   constant timer, wait 30 seconds
>
>   os Process Sampler: ipsec down (name of the connection as above)
>
>
>
> tearDown
>
>   os Process Sampler: stop the ipsec services
>
>
>
> In the test plan, there are a “View Results Tree” and an “Aggregate
> Report”, which I assume are not used in text mode.
>
> I have the same test plan on another computer, where I copy the .jtl file
> and use JMeter in GUI Mode to look at the results.
>
>
>
> During the execution of the tests, the server does not show overload
> (cpu/memory, checked with top)
>
> I have also verified manually (for loop in bash) that the ipsec
> connections configured in ipsec.conf start correctly
>
>
>
> In the test plan, I tried two variants to execute the command
>
> 1: use /bin/bash as the Command, and /usr/local/sbin/ipsec as a parameter
> (other parameters are then “up” and the name of the connection)
>
> 2: use directly /usr/local/sbin/ipsec as the Command, parameters as above
>
> Here there is also no difference
>
>
> Is there a limit on the number of open streams?
>
> I have tried to run the test with 99 threads, the “Stream closed”
> exception still appears, if I let the test run long enough, so it does not
> look like there is a hard coded limit of 100
>
>
>
> Thanks for any suggestion and best regards
>
> Ivan
>
>
>
>
>
> ** Use Java7 try with resources
>
> Close stream leak
>
> Remove commented code
>
> Fix synchro issue in comparison
>
>
> git-svn-id: https://svn.apache.org/repos/asf/jmeter/trunk@1719558
>