You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Andreas Røsdal <an...@gmail.com> on 2016/09/17 15:55:58 UTC

Severe errors in log on Tomcat 8.5.5

Hello!

Freeciv-web runs Tomcat on https://play.freeciv.org/ and I have some
questions about some error messages that I get in the Tomcat logs. I
recently upgraded from Tomcat 8.0.37 to Tomcat 8.5.5. I think that there
are some stability issues which came as a result of the upgrade to Tomcat
8.5.5.

The source code of the Java web application can be found here:
https://github.com/freeciv/freeciv-web/tree/develop/freeciv-web

Nginx runs in front of Tomcat as a HTTP 2 proxy.

 Server version:        Apache Tomcat/8.5.5
 Server built:          Aug 31 2016 19:51:16 UTC
 Server number:         8.5.5.0
 OS Name:               Linux
 OS Version:            4.4.0-36-generic
 Architecture:          amd64
 Java Home:             /opt/jdk/jdk1.8.0_73/jre
 JVM Version:           1.8.0_73-b02
 JVM Vendor:            Oracle Corporation


These are some of the errors that I see in the Tomcat logs:

17-Sep-2016 17:44:27.241 INFO [http-nio-8080-exec-10]
org.apache.coyote.http11.Http11Processor.service Error parsing HTTP request
header
 Note: further occurrences of HTTP header parsing errors will be logged at
DEBUG level.
 java.lang.IllegalArgumentException: Invalid character found in method
name. HTTP method names must be tokens
        at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(
Http11InputBuffer.java:462)
        at org.apache.coyote.http11.Http11Processor.service(
Http11Processor.java:667)
        at org.apache.coyote.AbstractProcessorLight.process(
AbstractProcessorLight.java:66)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(
AbstractProtocol.java:802)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.
doRun(NioEndpoint.java:1410)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(
SocketProcessorBase.java:49)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(
ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(
ThreadPoolExecutor.java:617)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(
TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:745)



java.lang.NullPointerException
        at org.apache.coyote.http11.Http11OutputBuffer.commit(
Http11OutputBuffer.java:332)
        at org.apache.coyote.http11.Http11Processor.prepareResponse(
Http11Processor.java:1288)
        at org.apache.coyote.AbstractProcessor.action(
AbstractProcessor.java:261)
        at org.apache.coyote.http11.Http11Processor.endRequest(
Http11Processor.java:1457)
        at org.apache.coyote.http11.Http11Processor.service(
Http11Processor.java:823)
        at org.apache.coyote.AbstractProcessorLight.process(
AbstractProcessorLight.java:66)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(
AbstractProtocol.java:802)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.
doRun(NioEndpoint.java:1410)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(
SocketProcessorBase.java:49)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(
ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(
ThreadPoolExecutor.java:617)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(
TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:745)

17-Sep-2016 17:45:17.466 SEVERE [http-nio-8080-exec-20]
org.apache.coyote.http11.Http11Processor.service Error processing request
 java.lang.NullPointerException
        at org.apache.catalina.connector.CoyoteAdapter.service(
CoyoteAdapter.java:389)
        at org.apache.coyote.http11.Http11Processor.service(
Http11Processor.java:784)
        at org.apache.coyote.AbstractProcessorLight.process(
AbstractProcessorLight.java:66)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(
AbstractProtocol.java:802)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.
doRun(NioEndpoint.java:1410)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(
SocketProcessorBase.java:49)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(
ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(
ThreadPoolExecutor.java:617)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(
TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:745)

17-Sep-2016 17:45:17.467 SEVERE [http-nio-8080-exec-20]
org.apache.coyote.http11.Http11Processor.endRequest Error finishing response
 java.lang.NullPointerException
        at org.apache.coyote.http11.Http11OutputBuffer.flushBuffer(
Http11OutputBuffer.java:514)
        at org.apache.coyote.http11.Http11OutputBuffer.finishResponse(
Http11OutputBuffer.java:301)
        at org.apache.coyote.http11.Http11Processor.endRequest(
Http11Processor.java:1458)
        at org.apache.coyote.http11.Http11Processor.service(
Http11Processor.java:823)
        at org.apache.coyote.AbstractProcessorLight.process(
AbstractProcessorLight.java:66)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(
AbstractProtocol.java:802)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.
doRun(NioEndpoint.java:1410)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(
SocketProcessorBase.java:49)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(
ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(
ThreadPoolExecutor.java:617)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(
TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:745)


Any advice about what could cause these errors?

Regards,
Andreas R.

Re: Severe errors in log on Tomcat 8.5.5

Posted by Christopher Schultz <ch...@christopherschultz.net>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Andreas,

On 9/17/16 11:55 AM, Andreas R�sdal wrote:
> Freeciv-web runs Tomcat on https://play.freeciv.org/ and I have
> some questions about some error messages that I get in the Tomcat
> logs.

(Cool! I had never heard of freeciv-web. "No more turns.... no more
turns... no more turns! :)

> I recently upgraded from Tomcat 8.0.37 to Tomcat 8.5.5. I think
> that there are some stability issues which came as a result of the
> upgrade to Tomcat 8.5.5.
> 
> The source code of the Java web application can be found here: 
> https://github.com/freeciv/freeciv-web/tree/develop/freeciv-web
> 
> Nginx runs in front of Tomcat as a HTTP 2 proxy.
> 
> Server version:        Apache Tomcat/8.5.5 Server built:
> Aug 31 2016 19:51:16 UTC Server number:         8.5.5.0 OS Name:
> Linux OS Version:            4.4.0-36-generic Architecture:
> amd64 Java Home:             /opt/jdk/jdk1.8.0_73/jre JVM Version:
> 1.8.0_73-b02 JVM Vendor:            Oracle Corporation
> 
> 
> These are some of the errors that I see in the Tomcat logs:
> 
> 17-Sep-2016 17:44:27.241 INFO [http-nio-8080-exec-10] 
> org.apache.coyote.http11.Http11Processor.service Error parsing HTTP
> request header Note: further occurrences of HTTP header parsing
> errors will be logged at DEBUG level. 
> java.lang.IllegalArgumentException: Invalid character found in
> method name. HTTP method names must be tokens at
> org.apache.coyote.http11.Http11InputBuffer.parseRequestLine( 
> Http11InputBuffer.java:462) at
> org.apache.coyote.http11.Http11Processor.service( 
> Http11Processor.java:667) at
> org.apache.coyote.AbstractProcessorLight.process( 
> AbstractProcessorLight.java:66) at
> org.apache.coyote.AbstractProtocol$ConnectionHandler.process( 
> AbstractProtocol.java:802) at
> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor. 
> doRun(NioEndpoint.java:1410) at
> org.apache.tomcat.util.net.SocketProcessorBase.run( 
> SocketProcessorBase.java:49) at
> java.util.concurrent.ThreadPoolExecutor.runWorker( 
> ThreadPoolExecutor.java:1142) at
> java.util.concurrent.ThreadPoolExecutor$Worker.run( 
> ThreadPoolExecutor.java:617) at
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run( 
> TaskThread.java:61) at java.lang.Thread.run(Thread.java:745)

This looks like a client error. Can you get a byte-level protocol
trace of the request/response?

> java.lang.NullPointerException at
> org.apache.coyote.http11.Http11OutputBuffer.commit( 
> Http11OutputBuffer.java:332) at
> org.apache.coyote.http11.Http11Processor.prepareResponse( 
> Http11Processor.java:1288) at
> org.apache.coyote.AbstractProcessor.action( 
> AbstractProcessor.java:261) at
> org.apache.coyote.http11.Http11Processor.endRequest( 
> Http11Processor.java:1457) at
> org.apache.coyote.http11.Http11Processor.service( 
> Http11Processor.java:823) at
> org.apache.coyote.AbstractProcessorLight.process( 
> AbstractProcessorLight.java:66) at
> org.apache.coyote.AbstractProtocol$ConnectionHandler.process( 
> AbstractProtocol.java:802) at
> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor. 
> doRun(NioEndpoint.java:1410) at
> org.apache.tomcat.util.net.SocketProcessorBase.run( 
> SocketProcessorBase.java:49) at
> java.util.concurrent.ThreadPoolExecutor.runWorker( 
> ThreadPoolExecutor.java:1142) at
> java.util.concurrent.ThreadPoolExecutor$Worker.run( 
> ThreadPoolExecutor.java:617) at
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run( 
> TaskThread.java:61) at java.lang.Thread.run(Thread.java:745)

That error is that the socketWrapper object is null. :(

http://svn.apache.org/viewvc/tomcat/tc8.5.x/tags/TOMCAT_8_5_5/java/org/a
pache/coyote/http11/Http11OutputBuffer.java?revision=1758670&view=markup
#l332

Looks like the response object or facade has been trashed.

> 17-Sep-2016 17:45:17.466 SEVERE [http-nio-8080-exec-20] 
> org.apache.coyote.http11.Http11Processor.service Error processing
> request java.lang.NullPointerException at
> org.apache.catalina.connector.CoyoteAdapter.service( 
> CoyoteAdapter.java:389) at
> org.apache.coyote.http11.Http11Processor.service( 
> Http11Processor.java:784) at
> org.apache.coyote.AbstractProcessorLight.process( 
> AbstractProcessorLight.java:66) at
> org.apache.coyote.AbstractProtocol$ConnectionHandler.process( 
> AbstractProtocol.java:802) at
> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor. 
> doRun(NioEndpoint.java:1410) at
> org.apache.tomcat.util.net.SocketProcessorBase.run( 
> SocketProcessorBase.java:49) at
> java.util.concurrent.ThreadPoolExecutor.runWorker( 
> ThreadPoolExecutor.java:1142) at
> java.util.concurrent.ThreadPoolExecutor$Worker.run( 
> ThreadPoolExecutor.java:617) at
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run( 
> TaskThread.java:61) at java.lang.Thread.run(Thread.java:745)

Any of the request, its mapping data, or the context it was mapped to
has been trashed.

http://svn.apache.org/viewvc/tomcat/tc8.5.x/tags/TOMCAT_8_5_5/java/org/a
pache/catalina/connector/CoyoteAdapter.java?revision=1758670&view=markup
#l389

> 17-Sep-2016 17:45:17.467 SEVERE [http-nio-8080-exec-20] 
> org.apache.coyote.http11.Http11Processor.endRequest Error finishing
> response java.lang.NullPointerException at
> org.apache.coyote.http11.Http11OutputBuffer.flushBuffer( 
> Http11OutputBuffer.java:514) at
> org.apache.coyote.http11.Http11OutputBuffer.finishResponse( 
> Http11OutputBuffer.java:301) at
> org.apache.coyote.http11.Http11Processor.endRequest( 
> Http11Processor.java:1458) at
> org.apache.coyote.http11.Http11Processor.service( 
> Http11Processor.java:823) at
> org.apache.coyote.AbstractProcessorLight.process( 
> AbstractProcessorLight.java:66) at
> org.apache.coyote.AbstractProtocol$ConnectionHandler.process( 
> AbstractProtocol.java:802) at
> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor. 
> doRun(NioEndpoint.java:1410) at
> org.apache.tomcat.util.net.SocketProcessorBase.run( 
> SocketProcessorBase.java:49) at
> java.util.concurrent.ThreadPoolExecutor.runWorker( 
> ThreadPoolExecutor.java:1142) at
> java.util.concurrent.ThreadPoolExecutor$Worker.run( 
> ThreadPoolExecutor.java:617) at
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run( 
> TaskThread.java:61) at java.lang.Thread.run(Thread.java:745)

http://svn.apache.org/viewvc/tomcat/tc8.5.x/tags/TOMCAT_8_5_5/java/org/a
pache/coyote/http11/Http11OutputBuffer.java?revision=1758670&view=markup
#l514

Again, the socketWrapper is null.

> Any advice about what could cause these errors?

My first guess, without reading the source, would be that the
application is storing request and/or response objects past their
validity periods.

That first error might be due to an incoming request being trashed by
another thread retaining a reference to that request, and recycling it
at an inopportune moment.

- -chris
-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBCAAGBQJX3XVAAAoJEBzwKT+lPKRYUsMQALPykd58TQrAE2vuOHRGkG9G
PAO+m9WUyHiI7PnsHFQeVTE2gQv5Lea3WlmI1YMw1l1ScLOMv7GCP7oDSFv3sGIu
zHe6pEz34LaMcUroKZPOFvjC8Rw4WDZ7hqfkovaSS25TJY8SGI/VqZlfLFWn9UdJ
EN3gNOMHwwAsk9PS0auwSCP4VmOwXGLpxnQCpde9ZA2GNxVyaLSo/KeFIUzjAIej
lx9+ZisEb2i2jAknw4EtwYlmcMXVQmVry2JK9brrr4xLTGs5tnfhBQnZ6g0RaDXU
qKbwVskaarRQsXkzi3uI1Sk7ZCKoDqR1eSWFjdGOT4PqV65piEW0GJYp82ihRd0Y
CEm0JUAUWg1KPh2/69Z7r6S8UZTXuXIj8tUxYWf+W3FRfU0d9rKEXH+YJ9nDrCPu
WMM8bMFTvwP8Z152+Suiu+BnWUdu07OzONpwY26JWTgfY5rB17p7CUzxeWCFT+tA
+ETENPYA6t04JDBL2udYDLyue7+72e/lwr9Ka1YHiF7wHqDCndOh/C++/6H7tOsb
2rA6XaGUeU/mkLHT8O6OLrtcSiigLJVqk6bpFBVI6gW1xROtVWMIPm34xtGBC/A5
WWm0ZoH+dkuVgalVLn1j+7UTbUPhbvdHsPqQPgo5jFcIbcQpbL14zL5o73GoBIQW
z0QCSeYnbUJ+TiLV/eMq
=X47g
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org