You are viewing a plain text version of this content. The canonical link for it is here.
Posted to proton@qpid.apache.org by "Ken Giusti (JIRA)" <ji...@apache.org> on 2015/10/15 15:43:05 UTC

[jira] [Resolved] (PROTON-1018) Crash in pn_transport_finalize(transport.c) when logging level set to PN_TRACE_DRV

     [ https://issues.apache.org/jira/browse/PROTON-1018?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ken Giusti resolved PROTON-1018.
--------------------------------
       Resolution: Fixed
    Fix Version/s: 0.11
                   0.10.1

Analysis:

application registers a transport logging callback
app logging callback uses transport->context when logging
transport finalize frees the transport context attachment
transport finalize frees SSL instance
SSL instance issues debug log during cleanup
app logging callback is passed state transport->context ptr
crash.

Solution:

move free of transport context to the end of the transport finalize function, after logging has been completed.


> Crash in pn_transport_finalize(transport.c) when logging level set to PN_TRACE_DRV
> ----------------------------------------------------------------------------------
>
>                 Key: PROTON-1018
>                 URL: https://issues.apache.org/jira/browse/PROTON-1018
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: proton-c
>    Affects Versions: 0.10
>            Reporter: Ganesh Murthy
>            Assignee: Ken Giusti
>            Priority: Minor
>             Fix For: 0.10.1, 0.11
>
>
> When the logging level is set to PN_TRACE_DRV, the pn_ssl_free(transport) call ( inside the pn_transport_finalize(void *object)) logs messages. 
> But the transport's context is prematurely freed and the logging framework that uses this context ends up crashing.
> Following is the backtrace from the qdrouter application- 
> (gdb) bt
> #0  0x00007ffff7bc05ab in qd_transport_tracer (transport=0x7fffe4011710, message=0x7fffe403b720 "SSL socket freed.") at /home/gmurthy/opensource/dispatch/src/server.c:74
> #1  0x00007ffff7972932 in ssl_vlog (ap=0x7fffe9b0b2f8, fmt=0x7ffff7978aad "SSL socket freed.", transport=<optimized out>) at /home/gmurthy/opensource/qpid-proton/proton-c/src/ssl/openssl.c:160
> #2  ssl_log (transport=<optimized out>, fmt=fmt@entry=0x7ffff7978aad "SSL socket freed.") at /home/gmurthy/opensource/qpid-proton/proton-c/src/ssl/openssl.c:171
> #3  0x00007ffff797474c in pn_ssl_free (transport=<optimized out>) at /home/gmurthy/opensource/qpid-proton/proton-c/src/ssl/openssl.c:793
> #4  0x00007ffff7961ff4 in pn_transport_finalize (object=0x7fffe4011710) at /home/gmurthy/opensource/qpid-proton/proton-c/src/transport/transport.c:616
> #5  0x00007ffff7952c28 in pn_class_decref (clazz=0x7ffff7b885c0 <clazz>, object=0x7fffe4011710) at /home/gmurthy/opensource/qpid-proton/proton-c/src/object/object.c:97
> #6  0x00007ffff7960890 in pn_event_finalize (event=0x7fffe400dbc0) at /home/gmurthy/opensource/qpid-proton/proton-c/src/events/event.c:212
> #7  pn_event_finalize_cast (object=0x7fffe400dbc0) at /home/gmurthy/opensource/qpid-proton/proton-c/src/events/event.c:257
> #8  0x00007ffff7952c28 in pn_class_decref (clazz=0x7ffff7b884c0 <clazz>, object=0x7fffe400dbc0) at /home/gmurthy/opensource/qpid-proton/proton-c/src/object/object.c:97
> #9  0x00007ffff7952e62 in pn_decref (object=<optimized out>) at /home/gmurthy/opensource/qpid-proton/proton-c/src/object/object.c:255
> #10 0x00007ffff7960a42 in pn_collector_pop (collector=collector@entry=0x7fffe40052f0) at /home/gmurthy/opensource/qpid-proton/proton-c/src/events/event.c:189
> #11 0x00007ffff7960ac8 in pn_collector_drain (collector=0x7fffe40052f0) at /home/gmurthy/opensource/qpid-proton/proton-c/src/events/event.c:56
> #12 pn_collector_release (collector=0x7fffe40052f0) at /home/gmurthy/opensource/qpid-proton/proton-c/src/events/event.c:118
> #13 0x00007ffff7960ae9 in pn_collector_free (collector=0x7fffe40052f0) at /home/gmurthy/opensource/qpid-proton/proton-c/src/events/event.c:109
> #14 0x00007ffff7bc28f4 in thread_run (arg=0x80b060) at /home/gmurthy/opensource/dispatch/src/server.c:720
> #15 0x00007ffff772552a in start_thread () from /lib64/libpthread.so.0
> #16 0x00007ffff6c8722d in clone () from /lib64/libc.so.6



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)