Hi All:

This could have nothing to do with HttpCore code and all to do with
whatever else was going on on my machine at the time but I still wanted to
post this as I got the following running AsyncFileServerExample in a
'forever' test.

...
2018-11-20 22:35:15.489 -0700 | 127.0.0.1:8080<->127.0.0.1:36505 | serving
file C:\temp\one-byte.txt
2018-11-20 22:35:15.489 -0700 | 127.0.0.1:8080<->127.0.0.1:36507 | serving
file C:\temp\one-byte.txt
2018-11-20 22:35:15.489 -0700 | 127.0.0.1:8080<->127.0.0.1:36509 | serving
file C:\temp\one-byte.txt
File C:\temp\one-byte.txt not found
Exception in thread "server-dispatch-2" java.lang.OutOfMemoryError
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at
org.apache.hc.core5.http.nio.BasicResponseProducer.<init>(BasicResponseProducer.java:66)
at
org.apache.hc.core5.http.nio.BasicResponseProducer.<init>(BasicResponseProducer.java:74)
at
org.apache.hc.core5.http.examples.AsyncFileServerExample$1.handle(AsyncFileServerExample.java:120)
at
org.apache.hc.core5.http.examples.AsyncFileServerExample$1.handle(AsyncFileServerExample.java:1)
at
org.apache.hc.core5.http.nio.support.BasicServerExchangeHandler.handle(BasicServerExchangeHandler.java:67)
at
org.apache.hc.core5.http.nio.support.AbstractServerExchangeHandler$2.completed(AbstractServerExchangeHandler.java:139)
at
org.apache.hc.core5.http.nio.BasicRequestConsumer.consumeRequest(BasicRequestConsumer.java:99)
at
org.apache.hc.core5.http.nio.support.AbstractServerExchangeHandler.handleRequest(AbstractServerExchangeHandler.java:134)
at
org.apache.hc.core5.http.nio.support.BasicAsyncServerExpectationDecorator.handleRequest(BasicAsyncServerExpectationDecorator.java:90)
at
org.apache.hc.core5.http.impl.nio.ServerHttp1StreamHandler.consumeHeader(ServerHttp1StreamHandler.java:251)
at
org.apache.hc.core5.http.impl.nio.ServerHttp1StreamDuplexer.consumeHeader(ServerHttp1StreamDuplexer.java:327)
at
org.apache.hc.core5.http.impl.nio.ServerHttp1StreamDuplexer.consumeHeader(ServerHttp1StreamDuplexer.java:1)
at
org.apache.hc.core5.http.impl.nio.AbstractHttp1StreamDuplexer.onInput(AbstractHttp1StreamDuplexer.java:283)
at
org.apache.hc.core5.http.impl.nio.AbstractHttp1IOEventHandler.inputReady(AbstractHttp1IOEventHandler.java:63)
at
org.apache.hc.core5.http.impl.nio.ServerHttp1IOEventHandler.inputReady(ServerHttp1IOEventHandler.java:1)
at
org.apache.hc.core5.reactor.InternalDataChannel.onIOEvent(InternalDataChannel.java:163)
at
org.apache.hc.core5.reactor.InternalChannel.handleIOEvent(InternalChannel.java:51)
at
org.apache.hc.core5.reactor.SingleCoreIOReactor.processEvents(SingleCoreIOReactor.java:174)
at
org.apache.hc.core5.reactor.SingleCoreIOReactor.doExecute(SingleCoreIOReactor.java:124)
at
org.apache.hc.core5.reactor.AbstractSingleCoreIOReactor.execute(AbstractSingleCoreIOReactor.java:80)
at org.apache.hc.core5.reactor.IOReactorWorker.run(IOReactorWorker.java:44)
at java.lang.Thread.run(Thread.java:745)

I launched this example with the argument 'C:\temp', from Eclipse, using
Oracle Java 7 on Windows 10:

Java version: 1.7.0_80, vendor: Oracle Corporation, runtime: C:\Program
Files\Java\jdk1.7.0_80\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 8.1", version: "6.3", arch: "amd64", family: "windows"

I had left this test running while AFK, but based on the JMeter output, I'd
say the test had been running for 334K requests over 2,654,360
milliseconds  or ~44 minutes.

As a side question, I am wondering if, in the design of HttpCore 5, any
effort was made to put less pressure on the GC, regardless of whether the
above is a real issue or not?

Thank you,
Gary

Reply via email to