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

            Bug ID: 60461
           Summary: SIGSEGV in SSLSocket.getInfos
           Product: Tomcat 8
           Version: 8.5.8
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: regression
          Priority: P2
         Component: Catalina
          Assignee: dev@tomcat.apache.org
          Reporter: l.pe...@senat.fr
  Target Milestone: ----

Created attachment 34512
  --> https://bz.apache.org/bugzilla/attachment.cgi?id=34512&action=edit
JVM crash log

I recently upgraded my development setup from Tomcat 8.5.6 to 8.5.8 and
experiences a lot of SIGSEGV in Tomcat Native since then.

It always happens when calling SSLSocket.getInfos, but not on every call.

My HTTPS connector is configured this way :

    <Connector port="8443" SSLEnabled="true"
                protocol="org.apache.coyote.http11.Http11AprProtocol"
                maxThreads="150" scheme="https" secure="true"
                sslProtocol="TLS"
               
sslImplementationName="org.apache.tomcat.util.net.openssl.OpenSSLImplementation"
                SSLCertificateFile="${catalina.home}/conf/certificate.crt"
                SSLCertificateKeyFile="${catalina.home}/conf/privateKey.key"
                server="Apache-Coyote/1.1"
                URIEncoding="UTF-8">
      <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
    </Connector>

I use Google Chrome 55 as HTTP client.

Debugging the project with Netbeans and attaching GDB to the java process, I
get the following stacktrace when SEGV :

__GI_raise (sig=6, sig@entry=6) 
__GI_abort ()   
os::abort(bool) ()      
VMError::report_and_die() ()    
JVM_handle_linux_signal ()      
signalHandler(int, siginfo*, void*) ()  
<signal handler called> ()      
Java_org_apache_tomcat_jni_SSLSocket_getInfoS (e=0x7fc41861b1f8,
o=0x7fc37a6f2b68, sock=140478657220768, what=2)        

So, the violation occurs on the last line of :

TCN_IMPLEMENT_CALL(jstring, SSLSocket, getInfoS)(TCN_STDARGS, jlong sock,
                                                 jint what)
{
    tcn_socket_t   *a = J2P(sock, tcn_socket_t *);
    tcn_ssl_conn_t *s;
    jstring value = NULL;
    apr_status_t rv = APR_SUCCESS;

    UNREFERENCED(o);
    TCN_ASSERT(sock != 0);

    s = (tcn_ssl_conn_t *)(a->opaque);

Please find attached the JVM crash log.

To debug, I configure native with :

    ./configure CC=${IDE_CC} CXX=${IDE_CXX} CFLAGS="-g3 -gdwarf-2"
CXXFLAGS="-g3 -gdwarf-2" --with-java-home=/usr/lib/jvm/java-8-oracle
--with-ssl=/home/lpenet/devoss/openssl-1.0.2j

and configure openssl 1.0.2j with the following command line :

    ./config no-shared -fPIC

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to