Chris,

The crash dump and logs[1] from my dev environment.

[1]https://1drv.ms/u/s!AjSSUmqOgKmfi1g7z4wUvfYPksCk?e=CLH6VF


> Do you always get the "stream is not writable" error before the JVM
> performs the crash-dump?
Yes but only in the Tomcat of the production environment.

Best regards,
Eduardo Quintanilla
Software Developer

From: Christopher Schultz <ch...@christopherschultz.net>
Sent: jueves, 22 de agosto de 2019 8:25 a. m.
To: users@tomcat.apache.org
Subject: Re: Tomcat 8.5 - Native Library - Crash


Eduardo,

On 8/21/19 17:36, Eduardo Quintanilla wrote:
> We have been getting some crashes in Tomcat 8.5.43 lately.
>
> The environment is: * JDK 1.8.0_202 * Windows Server 2012 R2
>
> The logs shows a tcnative exception.
>
> Crash Log: Current thread JavaThread
> "https-openssl-apr-8081-exec-298" daemon _thread_in_native Java
> frames: (J=compiled Java code, j=interpreted, Vv=VM code) J 15034
> org.apache.tomcat.jni.Socket.sendb(JLjava/nio/ByteBuffer;II)I (0
> bytes) @ 0x0000000002962ddf [0x0000000002962d80+0x5f] J 29164 C2
> org.apache.tomcat.util.net.AprEndpoint$AprSocketWrapper.doWrite(ZLjava
/nio/ByteBuffer;)V
> (242 bytes) @ 0x0000000006d6933c [0x0000000006d68b20+0x81c] J 27479
> C2 org.apache.tomcat.util.net.SocketWrapperBase.flush(Z)Z (20
> bytes) @ 0x00000000053f6144 [0x00000000053f60a0+0xa4] J 24666 C2
> org.apache.coyote.http2.Http2OutputBuffer.doWrite(Ljava/nio/ByteBuffer
;)I
> (28 bytes) @ 0x0000000006b51b74 [0x0000000006b51660+0x514] J 24689
> C2 org.apache.catalina.connector.OutputBuffer.writeBytes([BII)V (38
> bytes) @ 0x00000000031c09f8 [0x00000000031c04c0+0x538] J 27348 C2
> org.apache.catalina.connector.CoyoteOutputStream.write([BII)V (26
> bytes) @ 0x00000000071d51a8 [0x00000000071d5120+0x88]

What's the actual error? Can you post the entire crash dump?

> Tomcat logs: org.apache.catalina.connector.ClientAbortException:
> org.apache.coyote.CloseNowException: Connection [214], Stream
> [279], This stream is not writable

Do you always get the "stream is not writable" error before the JVM
performs the crash-dump?

I believe there is at least one lingering SEGV hiding in
Socket.sendb(), possibly only on Windows. I don't have a Windows
development environment to be able to disassemble the crash dump and
locate the line of code being executed when the SEGV occurs, so I have
added NULL-checks to everything I can find in there but it looks like
it's not enough. Something is missing, somewhere.

-chris



The information transmitted is intended only for the person or entity to which 
it is addressed and may contain confidential and/or privileged material. Any 
review, retransmission, dissemination or other use of, or taking of any action 
in reliance upon, this information by persons or entities other than the 
intended recipient is prohibited. If you received this in error, please contact 
the sender and delete the material from any computer.
La información transmitida está destinada únicamente a la persona o entidad a 
quien que va dirigida y puede contener información confidencial y/o material 
privilegiado. Cualquier revisión, retransmisión, difusión u otros usos, o 
cualquier acción tomada por personas o entidades distintas al destinatario 
basándose en esta información está prohibida. Si usted recibe este mensaje por 
error, por favor contacte al remitente y elimine el material de cualquier 
computadora.

Reply via email to