[
https://issues.apache.org/jira/browse/DISPATCH-1859?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17247420#comment-17247420
]
ASF subversion and git services commented on DISPATCH-1859:
-----------------------------------------------------------
Commit 4caac05aae5c259a44385006f9bdf03bae22f8a6 in qpid-dispatch's branch
refs/heads/master from Ken Giusti
[ https://gitbox.apache.org/repos/asf?p=qpid-dispatch.git;h=4caac05 ]
DISPATCH-1869: discard invalid messages arriving from core
DISPATCH-1859: re-work server connection cleanup
> HTTP1: crash on access to null codec state on server-facing connection
> ----------------------------------------------------------------------
>
> Key: DISPATCH-1859
> URL: https://issues.apache.org/jira/browse/DISPATCH-1859
> Project: Qpid Dispatch
> Issue Type: Bug
> Components: Protocol Adaptors
> Affects Versions: 1.15.0
> Reporter: Ken Giusti
> Assignee: Ken Giusti
> Priority: Major
> Fix For: 1.15.0
>
>
> {{Core was generated by `qdrouterd -c EA2.conf -I
> /home/kgiusti/work/dispatch/qpid-dispatch/python'. }}
> {{Program terminated with signal SIGSEGV, Segmentation fault. }}
> {{#0 0x00007f7ee3ee8f9b in h1_codec_request_state_get_connection (hrs=0x0) }}
> {{ at
> /home/kgiusti/work/dispatch/qpid-dispatch/src/adaptors/http1/http1_codec.c:1373
> }}
> {{1373 return hrs->conn; }}
>
> {{Thread 1 (Thread 0x7f7ee30502c0 (LWP 1803184)): }}
> {{#0 0x00007f7ee3ee8f9b in h1_codec_request_state_get_connection (hrs=0x0) at
> /home/kgiusti/work/dispatch/qpid-dispatch/src/adaptors/http1/http1_c\}}
> {{odec.c:1373 }}
> {{#1 0x00007f7ee3ee989d in h1_codec_tx_done (hrs=0x0, need_close=0x232b8c2)
> at /home/kgiusti/work/dispatch/qpid-dispatch/src/adaptors/http1/http1_\}}
> {{codec.c:1560 }}
> {{#2 0x00007f7ee3ef43ae in qdr_http1_server_core_link_deliver
> (adaptor=0x1eba300, hconn=0x1f06690, link=0x21efdd0, delivery=0x21af8d0,
> settled=fal\}}
> {{se) at
> /home/kgiusti/work/dispatch/qpid-dispatch/src/adaptors/http1/http1_server.c:1389
> }}
> {{#3 0x00007f7ee3eeb7ba in _core_link_deliver (context=0x1eba300,
> link=0x21efdd0, delivery=0x21af8d0, settled=false) at
> /home/kgiusti/work/dispatc\}}
> {{h/qpid-dispatch/src/adaptors/http1/http1_adaptor.c:570 }}
> {{#4 0x00007f7ee3f54a57 in qdr_link_process_deliveries (core=0x1e34b00,
> link=0x21efdd0, credit=4) at /home/kgiusti/work/dispatch/qpid-dispatch/src\}}
> {{/router_core/transfer.c:167 }}
> {{#5 0x00007f7ee3eeb6bf in _core_link_push (context=0x1eba300,
> link=0x21efdd0, limit=4) at
> /home/kgiusti/work/dispatch/qpid-dispatch/src/adaptors/\}}
> {{http1/http1_adaptor.c:551 }}
> {{#6 0x00007f7ee3f32a54 in qdr_connection_process (conn=0x1f1bcd0) at
> /home/kgiusti/work/dispatch/qpid-dispatch/src/router_core/connections.c:413 }}
> {{#7 0x00007f7ee3ef1969 in _handle_connection_events (e=0x1e7a200,
> qd_server=0x1d02990, context=0x1f06690) at
> /home/kgiusti/work/dispatch/qpid-dis\}}
> {{patch/src/adaptors/http1/http1_server.c:526 }}
> {{#8 0x00007f7ee3f6df52 in handle_event_with_context (e=0x1e7a200,
> qd_server=0x1d02990, context=0x1f066d0) at
> /home/kgiusti/work/dispatch/qpid-dis\}}
> {{patch/src/server.c:804 }}
> {{#9 0x00007f7ee3f6df8f in do_handle_raw_connection_event (e=0x1e7a200,
> qd_server=0x1d02990) at /home/kgiusti/work/dispatch/qpid-dispatch/src/serv\}}
> {{er.c:810 }}
> {{#10 0x00007f7ee3f6eebf in handle (qd_server=0x1d02990, e=0x1e7a200,
> pn_conn=0x0, ctx=0x0) at
> /home/kgiusti/work/dispatch/qpid-dispatch/src/server\}}
> {{.c:1090 }}
> {{#11 0x00007f7ee3f6efd3 in thread_run (arg=0x1d02990) at
> /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:1122 }}
> {{#12 0x00007f7ee3f70351 in qd_server_run (qd=0x1c123d0) at
> /home/kgiusti/work/dispatch/qpid-dispatch/src/server.c:1484 }}
> {{#13 0x0000000000402604 in main_process (config_path=0x7ffc97ce74c9
> "EA2.conf", python_pkgdir=0x7ffc97ce74d5
> "/home/kgiusti/work/dispatch/qpid-dis\}}
> {{patch/python", test_hooks=false, fd=2) at
> /home/kgiusti/work/dispatch/qpid-dispatch/router/src/main.c:113 }}
> {{#14 0x00000000004030d5 in main (argc=5, argv=0x7ffc97ce67a8) at
> /home/kgiusti/work/dispatch/qpid-dispatch/router/src/main.c:367 }}{{}}
>
> The crash is due to the client's request not completing until _after_ the
> servers response has been fully received and the server has closed the
> connection to indicate EOM.
> What appears to be happening is the client's entire message body has arrived
> and been forwarded to the server but the message is not marked "receive
> complete" (next stream data == "need more"). The server sees the entire
> message, unaware that the corresponding AMQP message is incomplete, and sends
> its response and closes the connection. After the connection is closed the
> core signals the request message is complete and schedules
> qd_connection_process which attempts to finish up the now deleted request.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]