-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Eduardo,

On 8/22/19 10:18, Eduardo Quintanilla wrote:
> Chris,
> 
> The crash dump and logs[1] from my dev environment.
> 
> [1]https://1drv.ms/u/s!AjSSUmqOgKmfi1g7z4wUvfYPksCk?e=CLH6VF

Okay, as I suspected, it's a SIGSEGV, or what Java programmers would
call a NullPointerException.

The C code is computing a pointer with a 44 byte offset to a NULL
pointer and trying to dereference it, which causes the problem.

I'm not sure which field has a 44-byte offset into the structure it's
supposed to be contained in. That highly depends upon the
architecture, compiler, etc. and those are the things I don't have
access to.

If someone in the community is able to build tcnative for Windows in
the same way[1] that the Tomcat team builds it, can you identify the
following:

1. What line of code corresponds to tcnative-1.dll+0x14d32
2. Which structure is being used
3. Which field is 44 bytes into that structure

Knowing all those things should make this a very easy fix.

Of course, the "fix" will involve throwing an exception back over into
the Java space, to the application will still throw an error. But at
least it won't bring-down the whole JVM.

>> 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.

That's ... interesting. If Tomcat knows it can't write to the
stream... why is it still writing to the stream?

Note that the crash dump you posted is for an error in
jni.Address.get() and not the one for Socket.sendb(). If you can
generate a crash dump in Socket.sendb() that would be helpful, too.

Also, please see:

https://bz.apache.org/bugzilla/show_bug.cgi?id=62626
https://bz.apache.org/bugzilla/show_bug.cgi?id=63405

- -chris

> 
> 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(ZLjav
a
>
>> 
/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/ByteBuffe
r
>
>> 
;)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.
> 
-----BEGIN PGP SIGNATURE-----
Comment: Using GnuPG with Thunderbird - https://www.enigmail.net/

iQIzBAEBCAAdFiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAl1eyVAACgkQHPApP6U8
pFhZGg//SjOsRFjkeXF/pCqjGI8O0w/Ap98RyR9IV1/XfY8CrhNo4dRHnqhwmkx9
lNUEOK9VMhQWH4B8MNQ/AqdyYoN5+zAjkUIH0Q+bpldXmqQFl8RKI/9mvO5jcBGJ
1IO6TtsHc3SsW2qWxyloBt30iZ83Vc97yLkUVzYt9FCJZMN2RD1wE633WgiRr5HO
Vlh2UVKInMak62V00RdvyoxWrzxhcH0qLoun7AqKpq8aGuLy8gi44sSx7n+SgcFH
l3o2EdJRWDSSS+2sg2Y0AZLnFE8RkrZn7O0F9wPuSZ/ksuRPZJKouO+mYLda1yBv
fc98yCg88etcqYVLneYpSbyPTYReDBYMprAyNfBFcxM28m6JyOBEvavifDbkzR1z
IuIr716NK/CW30GJDIbYp5Z9zWD45A1p2rhcNhlLofpojwfKpv6Acf+oOJlCZ4it
Ra561uXnwXth0MOujISUmdBpg6oy6UvRDwquc1T/WqpmhtqT7vVFhRHLZDgQs5Tx
6WFZn4dAJnDp42aPJkiQNE4uNTpi1lWHFzBkipH75Kx5YzzBwh2orNYjXYLFXyfs
6RV81kpP2cbVpKMiYb75+CxsVEwK3X+LXYIM85ZIuoE0SMUSBfE+IU3tRW6+4Tfn
w7sV9lyiIolKE0T3tpIMjJHIB3FO0DNik9m47jd5qr5dHlvUnIg=
=gR2W
-----END PGP SIGNATURE-----

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

Reply via email to