[jira] [Updated] (TS-1917) It seems that one of assert in HttpTransact::handle_content_length_header() is unnecessary
[ https://issues.apache.org/jira/browse/TS-1917?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Leif Hedstrom updated TS-1917: -- Fix Version/s: (was: 6.0.0) > It seems that one of assert in HttpTransact::handle_content_length_header() > is unnecessary > --- > > Key: TS-1917 > URL: https://issues.apache.org/jira/browse/TS-1917 > Project: Traffic Server > Issue Type: Bug > Components: HTTP >Reporter: Yunkai Zhang >Assignee: Alan M. Carroll > Labels: review > Attachments: ts-1917.wj.diff > > > ATS crashed by the following assert in debug mode: > {code} > (gdb) bt > #0 0x003e86c32885 in raise () from /lib64/libc.so.6 > #1 0x003e86c34065 in abort () from /lib64/libc.so.6 > #2 0x2b349592e234 in ink_die_die_die (retval=1) at ink_error.cc:43 > #3 0x2b349592e301 in ink_fatal_va(int, const char *, typedef > __va_list_tag __va_list_tag *) (return_code=1, > message_format=0x2b349594a748 "%s:%d: failed assert `%s`", > ap=0x2b34979073a0) at ink_error.cc:65 > #4 0x2b349592e3ca in ink_fatal (return_code=1, > message_format=0x2b349594a748 "%s:%d: failed assert `%s`") at ink_error.cc:73 > #5 0x2b349592d2cc in _ink_assert (expression=0x70fef0 "s->range_setup != > RANGE_NOT_TRANSFORM_REQUESTED", file=0x70a613 "HttpTransact.cc", line=6660) > at ink_assert.cc:37 > #6 0x0059cb57 in HttpTransact::handle_content_length_header > (s=0x2b34b1207120, header=0x2b34b1207800, base=0x2b36d0030070) at > HttpTransact.cc:6660 > #7 0x005a116f in HttpTransact::build_response (s=0x2b34b1207120, > base_response=0x2b36d0030070, outgoing_response=0x2b34b1207800, > outgoing_version=..., status_code=HTTP_STATUS_OK, reason_phrase=0x725709 > "OK") at HttpTransact.cc:7731 > #8 0x00594972 in > HttpTransact::handle_cache_operation_on_forward_server_response > (s=0x2b34b1207120) at HttpTransact.cc:4373 > #9 0x005924f8 in HttpTransact::handle_forward_server_connection_open > (s=0x2b34b1207120) at HttpTransact.cc:3818 > #10 0x00590c08 in HttpTransact::handle_response_from_server > (s=0x2b34b1207120) at HttpTransact.cc:3495 > #11 0x0058f60e in HttpTransact::HandleResponse (s=0x2b34b1207120) at > HttpTransact.cc:3185 > #12 0x00575f25 in HttpSM::call_transact_and_set_next_state > (this=0x2b34b12070b0, f=0) at HttpSM.cc:6685 > #13 0x00563ca4 in HttpSM::handle_api_return (this=0x2b34b12070b0) at > HttpSM.cc:1555 > #14 0x00563a79 in HttpSM::state_api_callout (this=0x2b34b12070b0, > event=0, data=0x0) at HttpSM.cc:1487 > #15 0x0056f79b in HttpSM::do_api_callout_internal > (this=0x2b34b12070b0) at HttpSM.cc:4702 > #16 0x0057bce8 in HttpSM::do_api_callout (this=0x2b34b12070b0) at > HttpSM.cc:503 > #17 0x00564b68 in HttpSM::state_read_server_response_header > (this=0x2b34b12070b0, event=100, data=0x2b35ff9ef5d0) at HttpSM.cc:1869 > #18 0x00567140 in HttpSM::main_handler (this=0x2b34b12070b0, > event=100, data=0x2b35ff9ef5d0) at HttpSM.cc:2501 > #19 0x004e0f52 in Continuation::handleEvent (this=0x2b34b12070b0, > event=100, data=0x2b35ff9ef5d0) at ../iocore/eventsystem/I_Continuation.h:146 > #20 0x006ba540 in read_signal_and_update (event=100, > vc=0x2b35ff9ef4c0) at UnixNetVConnection.cc:138 > #21 0x006bae90 in read_from_net (nh=0x2b34960fdbc0, > vc=0x2b35ff9ef4c0, thread=0x2b34960fa010) at UnixNetVConnection.cc:320 > #22 0x006bcc7f in UnixNetVConnection::net_read_io > (this=0x2b35ff9ef4c0, nh=0x2b34960fdbc0, lthread=0x2b34960fa010) at > UnixNetVConnection.cc:818 > #23 0x006b72e8 in NetHandler::mainNetEvent (this=0x2b34960fdbc0, > event=5, e=0x2b349cf16b40) at UnixNet.cc:377 > #24 0x004e0f52 in Continuation::handleEvent (this=0x2b34960fdbc0, > event=5, data=0x2b349cf16b40) at ../iocore/eventsystem/I_Continuation.h:146 > #25 0x006dbcd0 in EThread::process_event (this=0x2b34960fa010, > e=0x2b349cf16b40, calling_code=5) at UnixEThread.cc:141 > #26 0x006dc2b2 in EThread::execute (this=0x2b34960fa010) at > UnixEThread.cc:265 > #27 0x006daedc in spawn_thread_internal (a=0x15e2160) at Thread.cc:88 > #28 0x003e878077f1 in start_thread () from /lib64/libpthread.so.0 > #29 0x003e86ce5ccd in clone () from /lib64/libc.so.6 > {code} > By analyzing the code, it seems that this assertion is unnecessary: > When client sends a request to ATS, and the content hits in cache, but if the > cache is STALE, ATS will sent a request to Original-Server. > In this case, the t_sate.source will be updated to > SOURCE_HTTP_ORIGIN_SERVER(the old value is SOURCE_CACHE), and in > HttpTransact::handle_cache_operation_on_forward_server_response() > => s->state_machine->do_range_setup_
[jira] [Updated] (TS-1917) It seems that one of assert in HttpTransact::handle_content_length_header() is unnecessary
[ https://issues.apache.org/jira/browse/TS-1917?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Alan M. Carroll updated TS-1917: Fix Version/s: (was: 5.1.0) 6.0.0 > It seems that one of assert in HttpTransact::handle_content_length_header() > is unnecessary > --- > > Key: TS-1917 > URL: https://issues.apache.org/jira/browse/TS-1917 > Project: Traffic Server > Issue Type: Bug > Components: HTTP >Reporter: Yunkai Zhang >Assignee: James Peach > Labels: review > Fix For: 6.0.0 > > Attachments: ts-1917.wj.diff > > > ATS crashed by the following assert in debug mode: > {code} > (gdb) bt > #0 0x003e86c32885 in raise () from /lib64/libc.so.6 > #1 0x003e86c34065 in abort () from /lib64/libc.so.6 > #2 0x2b349592e234 in ink_die_die_die (retval=1) at ink_error.cc:43 > #3 0x2b349592e301 in ink_fatal_va(int, const char *, typedef > __va_list_tag __va_list_tag *) (return_code=1, > message_format=0x2b349594a748 "%s:%d: failed assert `%s`", > ap=0x2b34979073a0) at ink_error.cc:65 > #4 0x2b349592e3ca in ink_fatal (return_code=1, > message_format=0x2b349594a748 "%s:%d: failed assert `%s`") at ink_error.cc:73 > #5 0x2b349592d2cc in _ink_assert (expression=0x70fef0 "s->range_setup != > RANGE_NOT_TRANSFORM_REQUESTED", file=0x70a613 "HttpTransact.cc", line=6660) > at ink_assert.cc:37 > #6 0x0059cb57 in HttpTransact::handle_content_length_header > (s=0x2b34b1207120, header=0x2b34b1207800, base=0x2b36d0030070) at > HttpTransact.cc:6660 > #7 0x005a116f in HttpTransact::build_response (s=0x2b34b1207120, > base_response=0x2b36d0030070, outgoing_response=0x2b34b1207800, > outgoing_version=..., status_code=HTTP_STATUS_OK, reason_phrase=0x725709 > "OK") at HttpTransact.cc:7731 > #8 0x00594972 in > HttpTransact::handle_cache_operation_on_forward_server_response > (s=0x2b34b1207120) at HttpTransact.cc:4373 > #9 0x005924f8 in HttpTransact::handle_forward_server_connection_open > (s=0x2b34b1207120) at HttpTransact.cc:3818 > #10 0x00590c08 in HttpTransact::handle_response_from_server > (s=0x2b34b1207120) at HttpTransact.cc:3495 > #11 0x0058f60e in HttpTransact::HandleResponse (s=0x2b34b1207120) at > HttpTransact.cc:3185 > #12 0x00575f25 in HttpSM::call_transact_and_set_next_state > (this=0x2b34b12070b0, f=0) at HttpSM.cc:6685 > #13 0x00563ca4 in HttpSM::handle_api_return (this=0x2b34b12070b0) at > HttpSM.cc:1555 > #14 0x00563a79 in HttpSM::state_api_callout (this=0x2b34b12070b0, > event=0, data=0x0) at HttpSM.cc:1487 > #15 0x0056f79b in HttpSM::do_api_callout_internal > (this=0x2b34b12070b0) at HttpSM.cc:4702 > #16 0x0057bce8 in HttpSM::do_api_callout (this=0x2b34b12070b0) at > HttpSM.cc:503 > #17 0x00564b68 in HttpSM::state_read_server_response_header > (this=0x2b34b12070b0, event=100, data=0x2b35ff9ef5d0) at HttpSM.cc:1869 > #18 0x00567140 in HttpSM::main_handler (this=0x2b34b12070b0, > event=100, data=0x2b35ff9ef5d0) at HttpSM.cc:2501 > #19 0x004e0f52 in Continuation::handleEvent (this=0x2b34b12070b0, > event=100, data=0x2b35ff9ef5d0) at ../iocore/eventsystem/I_Continuation.h:146 > #20 0x006ba540 in read_signal_and_update (event=100, > vc=0x2b35ff9ef4c0) at UnixNetVConnection.cc:138 > #21 0x006bae90 in read_from_net (nh=0x2b34960fdbc0, > vc=0x2b35ff9ef4c0, thread=0x2b34960fa010) at UnixNetVConnection.cc:320 > #22 0x006bcc7f in UnixNetVConnection::net_read_io > (this=0x2b35ff9ef4c0, nh=0x2b34960fdbc0, lthread=0x2b34960fa010) at > UnixNetVConnection.cc:818 > #23 0x006b72e8 in NetHandler::mainNetEvent (this=0x2b34960fdbc0, > event=5, e=0x2b349cf16b40) at UnixNet.cc:377 > #24 0x004e0f52 in Continuation::handleEvent (this=0x2b34960fdbc0, > event=5, data=0x2b349cf16b40) at ../iocore/eventsystem/I_Continuation.h:146 > #25 0x006dbcd0 in EThread::process_event (this=0x2b34960fa010, > e=0x2b349cf16b40, calling_code=5) at UnixEThread.cc:141 > #26 0x006dc2b2 in EThread::execute (this=0x2b34960fa010) at > UnixEThread.cc:265 > #27 0x006daedc in spawn_thread_internal (a=0x15e2160) at Thread.cc:88 > #28 0x003e878077f1 in start_thread () from /lib64/libpthread.so.0 > #29 0x003e86ce5ccd in clone () from /lib64/libc.so.6 > {code} > By analyzing the code, it seems that this assertion is unnecessary: > When client sends a request to ATS, and the content hits in cache, but if the > cache is STALE, ATS will sent a request to Original-Server. > In this case, the t_sate.source will be updated to > SOURCE_HTTP_ORIGIN_SERVER(the old value is SOURCE_CACHE), and in > HttpTransact::handle_cache_operation_on_forward
[jira] [Updated] (TS-1917) It seems that one of assert in HttpTransact::handle_content_length_header() is unnecessary
[ https://issues.apache.org/jira/browse/TS-1917?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Leif Hedstrom updated TS-1917: -- Fix Version/s: (was: 5.0.0) 5.1.0 > It seems that one of assert in HttpTransact::handle_content_length_header() > is unnecessary > --- > > Key: TS-1917 > URL: https://issues.apache.org/jira/browse/TS-1917 > Project: Traffic Server > Issue Type: Bug > Components: HTTP >Reporter: Yunkai Zhang >Assignee: James Peach > Labels: review > Fix For: 5.1.0 > > Attachments: ts-1917.wj.diff > > > ATS crashed by the following assert in debug mode: > {code} > (gdb) bt > #0 0x003e86c32885 in raise () from /lib64/libc.so.6 > #1 0x003e86c34065 in abort () from /lib64/libc.so.6 > #2 0x2b349592e234 in ink_die_die_die (retval=1) at ink_error.cc:43 > #3 0x2b349592e301 in ink_fatal_va(int, const char *, typedef > __va_list_tag __va_list_tag *) (return_code=1, > message_format=0x2b349594a748 "%s:%d: failed assert `%s`", > ap=0x2b34979073a0) at ink_error.cc:65 > #4 0x2b349592e3ca in ink_fatal (return_code=1, > message_format=0x2b349594a748 "%s:%d: failed assert `%s`") at ink_error.cc:73 > #5 0x2b349592d2cc in _ink_assert (expression=0x70fef0 "s->range_setup != > RANGE_NOT_TRANSFORM_REQUESTED", file=0x70a613 "HttpTransact.cc", line=6660) > at ink_assert.cc:37 > #6 0x0059cb57 in HttpTransact::handle_content_length_header > (s=0x2b34b1207120, header=0x2b34b1207800, base=0x2b36d0030070) at > HttpTransact.cc:6660 > #7 0x005a116f in HttpTransact::build_response (s=0x2b34b1207120, > base_response=0x2b36d0030070, outgoing_response=0x2b34b1207800, > outgoing_version=..., status_code=HTTP_STATUS_OK, reason_phrase=0x725709 > "OK") at HttpTransact.cc:7731 > #8 0x00594972 in > HttpTransact::handle_cache_operation_on_forward_server_response > (s=0x2b34b1207120) at HttpTransact.cc:4373 > #9 0x005924f8 in HttpTransact::handle_forward_server_connection_open > (s=0x2b34b1207120) at HttpTransact.cc:3818 > #10 0x00590c08 in HttpTransact::handle_response_from_server > (s=0x2b34b1207120) at HttpTransact.cc:3495 > #11 0x0058f60e in HttpTransact::HandleResponse (s=0x2b34b1207120) at > HttpTransact.cc:3185 > #12 0x00575f25 in HttpSM::call_transact_and_set_next_state > (this=0x2b34b12070b0, f=0) at HttpSM.cc:6685 > #13 0x00563ca4 in HttpSM::handle_api_return (this=0x2b34b12070b0) at > HttpSM.cc:1555 > #14 0x00563a79 in HttpSM::state_api_callout (this=0x2b34b12070b0, > event=0, data=0x0) at HttpSM.cc:1487 > #15 0x0056f79b in HttpSM::do_api_callout_internal > (this=0x2b34b12070b0) at HttpSM.cc:4702 > #16 0x0057bce8 in HttpSM::do_api_callout (this=0x2b34b12070b0) at > HttpSM.cc:503 > #17 0x00564b68 in HttpSM::state_read_server_response_header > (this=0x2b34b12070b0, event=100, data=0x2b35ff9ef5d0) at HttpSM.cc:1869 > #18 0x00567140 in HttpSM::main_handler (this=0x2b34b12070b0, > event=100, data=0x2b35ff9ef5d0) at HttpSM.cc:2501 > #19 0x004e0f52 in Continuation::handleEvent (this=0x2b34b12070b0, > event=100, data=0x2b35ff9ef5d0) at ../iocore/eventsystem/I_Continuation.h:146 > #20 0x006ba540 in read_signal_and_update (event=100, > vc=0x2b35ff9ef4c0) at UnixNetVConnection.cc:138 > #21 0x006bae90 in read_from_net (nh=0x2b34960fdbc0, > vc=0x2b35ff9ef4c0, thread=0x2b34960fa010) at UnixNetVConnection.cc:320 > #22 0x006bcc7f in UnixNetVConnection::net_read_io > (this=0x2b35ff9ef4c0, nh=0x2b34960fdbc0, lthread=0x2b34960fa010) at > UnixNetVConnection.cc:818 > #23 0x006b72e8 in NetHandler::mainNetEvent (this=0x2b34960fdbc0, > event=5, e=0x2b349cf16b40) at UnixNet.cc:377 > #24 0x004e0f52 in Continuation::handleEvent (this=0x2b34960fdbc0, > event=5, data=0x2b349cf16b40) at ../iocore/eventsystem/I_Continuation.h:146 > #25 0x006dbcd0 in EThread::process_event (this=0x2b34960fa010, > e=0x2b349cf16b40, calling_code=5) at UnixEThread.cc:141 > #26 0x006dc2b2 in EThread::execute (this=0x2b34960fa010) at > UnixEThread.cc:265 > #27 0x006daedc in spawn_thread_internal (a=0x15e2160) at Thread.cc:88 > #28 0x003e878077f1 in start_thread () from /lib64/libpthread.so.0 > #29 0x003e86ce5ccd in clone () from /lib64/libc.so.6 > {code} > By analyzing the code, it seems that this assertion is unnecessary: > When client sends a request to ATS, and the content hits in cache, but if the > cache is STALE, ATS will sent a request to Original-Server. > In this case, the t_sate.source will be updated to > SOURCE_HTTP_ORIGIN_SERVER(the old value is SOURCE_CACHE), and in > HttpTransact::handle_cache_operation_on_forward_ser
[jira] [Updated] (TS-1917) It seems that one of assert in HttpTransact::handle_content_length_header() is unnecessary
[ https://issues.apache.org/jira/browse/TS-1917?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Leif Hedstrom updated TS-1917: -- Labels: review (was: ) > It seems that one of assert in HttpTransact::handle_content_length_header() > is unnecessary > --- > > Key: TS-1917 > URL: https://issues.apache.org/jira/browse/TS-1917 > Project: Traffic Server > Issue Type: Bug > Components: HTTP >Reporter: Yunkai Zhang >Assignee: James Peach > Labels: review > Fix For: 5.0.0 > > Attachments: ts-1917.wj.diff > > > ATS crashed by the following assert in debug mode: > {code} > (gdb) bt > #0 0x003e86c32885 in raise () from /lib64/libc.so.6 > #1 0x003e86c34065 in abort () from /lib64/libc.so.6 > #2 0x2b349592e234 in ink_die_die_die (retval=1) at ink_error.cc:43 > #3 0x2b349592e301 in ink_fatal_va(int, const char *, typedef > __va_list_tag __va_list_tag *) (return_code=1, > message_format=0x2b349594a748 "%s:%d: failed assert `%s`", > ap=0x2b34979073a0) at ink_error.cc:65 > #4 0x2b349592e3ca in ink_fatal (return_code=1, > message_format=0x2b349594a748 "%s:%d: failed assert `%s`") at ink_error.cc:73 > #5 0x2b349592d2cc in _ink_assert (expression=0x70fef0 "s->range_setup != > RANGE_NOT_TRANSFORM_REQUESTED", file=0x70a613 "HttpTransact.cc", line=6660) > at ink_assert.cc:37 > #6 0x0059cb57 in HttpTransact::handle_content_length_header > (s=0x2b34b1207120, header=0x2b34b1207800, base=0x2b36d0030070) at > HttpTransact.cc:6660 > #7 0x005a116f in HttpTransact::build_response (s=0x2b34b1207120, > base_response=0x2b36d0030070, outgoing_response=0x2b34b1207800, > outgoing_version=..., status_code=HTTP_STATUS_OK, reason_phrase=0x725709 > "OK") at HttpTransact.cc:7731 > #8 0x00594972 in > HttpTransact::handle_cache_operation_on_forward_server_response > (s=0x2b34b1207120) at HttpTransact.cc:4373 > #9 0x005924f8 in HttpTransact::handle_forward_server_connection_open > (s=0x2b34b1207120) at HttpTransact.cc:3818 > #10 0x00590c08 in HttpTransact::handle_response_from_server > (s=0x2b34b1207120) at HttpTransact.cc:3495 > #11 0x0058f60e in HttpTransact::HandleResponse (s=0x2b34b1207120) at > HttpTransact.cc:3185 > #12 0x00575f25 in HttpSM::call_transact_and_set_next_state > (this=0x2b34b12070b0, f=0) at HttpSM.cc:6685 > #13 0x00563ca4 in HttpSM::handle_api_return (this=0x2b34b12070b0) at > HttpSM.cc:1555 > #14 0x00563a79 in HttpSM::state_api_callout (this=0x2b34b12070b0, > event=0, data=0x0) at HttpSM.cc:1487 > #15 0x0056f79b in HttpSM::do_api_callout_internal > (this=0x2b34b12070b0) at HttpSM.cc:4702 > #16 0x0057bce8 in HttpSM::do_api_callout (this=0x2b34b12070b0) at > HttpSM.cc:503 > #17 0x00564b68 in HttpSM::state_read_server_response_header > (this=0x2b34b12070b0, event=100, data=0x2b35ff9ef5d0) at HttpSM.cc:1869 > #18 0x00567140 in HttpSM::main_handler (this=0x2b34b12070b0, > event=100, data=0x2b35ff9ef5d0) at HttpSM.cc:2501 > #19 0x004e0f52 in Continuation::handleEvent (this=0x2b34b12070b0, > event=100, data=0x2b35ff9ef5d0) at ../iocore/eventsystem/I_Continuation.h:146 > #20 0x006ba540 in read_signal_and_update (event=100, > vc=0x2b35ff9ef4c0) at UnixNetVConnection.cc:138 > #21 0x006bae90 in read_from_net (nh=0x2b34960fdbc0, > vc=0x2b35ff9ef4c0, thread=0x2b34960fa010) at UnixNetVConnection.cc:320 > #22 0x006bcc7f in UnixNetVConnection::net_read_io > (this=0x2b35ff9ef4c0, nh=0x2b34960fdbc0, lthread=0x2b34960fa010) at > UnixNetVConnection.cc:818 > #23 0x006b72e8 in NetHandler::mainNetEvent (this=0x2b34960fdbc0, > event=5, e=0x2b349cf16b40) at UnixNet.cc:377 > #24 0x004e0f52 in Continuation::handleEvent (this=0x2b34960fdbc0, > event=5, data=0x2b349cf16b40) at ../iocore/eventsystem/I_Continuation.h:146 > #25 0x006dbcd0 in EThread::process_event (this=0x2b34960fa010, > e=0x2b349cf16b40, calling_code=5) at UnixEThread.cc:141 > #26 0x006dc2b2 in EThread::execute (this=0x2b34960fa010) at > UnixEThread.cc:265 > #27 0x006daedc in spawn_thread_internal (a=0x15e2160) at Thread.cc:88 > #28 0x003e878077f1 in start_thread () from /lib64/libpthread.so.0 > #29 0x003e86ce5ccd in clone () from /lib64/libc.so.6 > {code} > By analyzing the code, it seems that this assertion is unnecessary: > When client sends a request to ATS, and the content hits in cache, but if the > cache is STALE, ATS will sent a request to Original-Server. > In this case, the t_sate.source will be updated to > SOURCE_HTTP_ORIGIN_SERVER(the old value is SOURCE_CACHE), and in > HttpTransact::handle_cache_operation_on_forward_server_response() > => s->state_mach
[jira] [Updated] (TS-1917) It seems that one of assert in HttpTransact::handle_content_length_header() is unnecessary
[ https://issues.apache.org/jira/browse/TS-1917?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Leif Hedstrom updated TS-1917: -- Fix Version/s: (was: 3.3.6) 3.5.0 > It seems that one of assert in HttpTransact::handle_content_length_header() > is unnecessary > --- > > Key: TS-1917 > URL: https://issues.apache.org/jira/browse/TS-1917 > Project: Traffic Server > Issue Type: Bug > Components: HTTP >Reporter: Yunkai Zhang >Assignee: James Peach > Fix For: 3.5.0 > > Attachments: ts-1917.wj.diff > > > ATS crashed by the following assert in debug mode: > {code} > (gdb) bt > #0 0x003e86c32885 in raise () from /lib64/libc.so.6 > #1 0x003e86c34065 in abort () from /lib64/libc.so.6 > #2 0x2b349592e234 in ink_die_die_die (retval=1) at ink_error.cc:43 > #3 0x2b349592e301 in ink_fatal_va(int, const char *, typedef > __va_list_tag __va_list_tag *) (return_code=1, > message_format=0x2b349594a748 "%s:%d: failed assert `%s`", > ap=0x2b34979073a0) at ink_error.cc:65 > #4 0x2b349592e3ca in ink_fatal (return_code=1, > message_format=0x2b349594a748 "%s:%d: failed assert `%s`") at ink_error.cc:73 > #5 0x2b349592d2cc in _ink_assert (expression=0x70fef0 "s->range_setup != > RANGE_NOT_TRANSFORM_REQUESTED", file=0x70a613 "HttpTransact.cc", line=6660) > at ink_assert.cc:37 > #6 0x0059cb57 in HttpTransact::handle_content_length_header > (s=0x2b34b1207120, header=0x2b34b1207800, base=0x2b36d0030070) at > HttpTransact.cc:6660 > #7 0x005a116f in HttpTransact::build_response (s=0x2b34b1207120, > base_response=0x2b36d0030070, outgoing_response=0x2b34b1207800, > outgoing_version=..., status_code=HTTP_STATUS_OK, reason_phrase=0x725709 > "OK") at HttpTransact.cc:7731 > #8 0x00594972 in > HttpTransact::handle_cache_operation_on_forward_server_response > (s=0x2b34b1207120) at HttpTransact.cc:4373 > #9 0x005924f8 in HttpTransact::handle_forward_server_connection_open > (s=0x2b34b1207120) at HttpTransact.cc:3818 > #10 0x00590c08 in HttpTransact::handle_response_from_server > (s=0x2b34b1207120) at HttpTransact.cc:3495 > #11 0x0058f60e in HttpTransact::HandleResponse (s=0x2b34b1207120) at > HttpTransact.cc:3185 > #12 0x00575f25 in HttpSM::call_transact_and_set_next_state > (this=0x2b34b12070b0, f=0) at HttpSM.cc:6685 > #13 0x00563ca4 in HttpSM::handle_api_return (this=0x2b34b12070b0) at > HttpSM.cc:1555 > #14 0x00563a79 in HttpSM::state_api_callout (this=0x2b34b12070b0, > event=0, data=0x0) at HttpSM.cc:1487 > #15 0x0056f79b in HttpSM::do_api_callout_internal > (this=0x2b34b12070b0) at HttpSM.cc:4702 > #16 0x0057bce8 in HttpSM::do_api_callout (this=0x2b34b12070b0) at > HttpSM.cc:503 > #17 0x00564b68 in HttpSM::state_read_server_response_header > (this=0x2b34b12070b0, event=100, data=0x2b35ff9ef5d0) at HttpSM.cc:1869 > #18 0x00567140 in HttpSM::main_handler (this=0x2b34b12070b0, > event=100, data=0x2b35ff9ef5d0) at HttpSM.cc:2501 > #19 0x004e0f52 in Continuation::handleEvent (this=0x2b34b12070b0, > event=100, data=0x2b35ff9ef5d0) at ../iocore/eventsystem/I_Continuation.h:146 > #20 0x006ba540 in read_signal_and_update (event=100, > vc=0x2b35ff9ef4c0) at UnixNetVConnection.cc:138 > #21 0x006bae90 in read_from_net (nh=0x2b34960fdbc0, > vc=0x2b35ff9ef4c0, thread=0x2b34960fa010) at UnixNetVConnection.cc:320 > #22 0x006bcc7f in UnixNetVConnection::net_read_io > (this=0x2b35ff9ef4c0, nh=0x2b34960fdbc0, lthread=0x2b34960fa010) at > UnixNetVConnection.cc:818 > #23 0x006b72e8 in NetHandler::mainNetEvent (this=0x2b34960fdbc0, > event=5, e=0x2b349cf16b40) at UnixNet.cc:377 > #24 0x004e0f52 in Continuation::handleEvent (this=0x2b34960fdbc0, > event=5, data=0x2b349cf16b40) at ../iocore/eventsystem/I_Continuation.h:146 > #25 0x006dbcd0 in EThread::process_event (this=0x2b34960fa010, > e=0x2b349cf16b40, calling_code=5) at UnixEThread.cc:141 > #26 0x006dc2b2 in EThread::execute (this=0x2b34960fa010) at > UnixEThread.cc:265 > #27 0x006daedc in spawn_thread_internal (a=0x15e2160) at Thread.cc:88 > #28 0x003e878077f1 in start_thread () from /lib64/libpthread.so.0 > #29 0x003e86ce5ccd in clone () from /lib64/libc.so.6 > {code} > By analyzing the code, it seems that this assertion is unnecessary: > When client sends a request to ATS, and the content hits in cache, but if the > cache is STALE, ATS will sent a request to Original-Server. > In this case, the t_sate.source will be updated to > SOURCE_HTTP_ORIGIN_SERVER(the old value is SOURCE_CACHE), and in > HttpTransact::handle_cache_operation_on_forward_server_response() > => s->sta
[jira] [Updated] (TS-1917) It seems that one of assert in HttpTransact::handle_content_length_header() is unnecessary
[ https://issues.apache.org/jira/browse/TS-1917?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Leif Hedstrom updated TS-1917: -- Fix Version/s: (was: 3.3.5) 3.3.6 > It seems that one of assert in HttpTransact::handle_content_length_header() > is unnecessary > --- > > Key: TS-1917 > URL: https://issues.apache.org/jira/browse/TS-1917 > Project: Traffic Server > Issue Type: Bug > Components: HTTP >Reporter: Yunkai Zhang >Assignee: James Peach > Fix For: 3.3.6 > > Attachments: ts-1917.wj.diff > > > ATS crashed by the following assert in debug mode: > {code} > (gdb) bt > #0 0x003e86c32885 in raise () from /lib64/libc.so.6 > #1 0x003e86c34065 in abort () from /lib64/libc.so.6 > #2 0x2b349592e234 in ink_die_die_die (retval=1) at ink_error.cc:43 > #3 0x2b349592e301 in ink_fatal_va(int, const char *, typedef > __va_list_tag __va_list_tag *) (return_code=1, > message_format=0x2b349594a748 "%s:%d: failed assert `%s`", > ap=0x2b34979073a0) at ink_error.cc:65 > #4 0x2b349592e3ca in ink_fatal (return_code=1, > message_format=0x2b349594a748 "%s:%d: failed assert `%s`") at ink_error.cc:73 > #5 0x2b349592d2cc in _ink_assert (expression=0x70fef0 "s->range_setup != > RANGE_NOT_TRANSFORM_REQUESTED", file=0x70a613 "HttpTransact.cc", line=6660) > at ink_assert.cc:37 > #6 0x0059cb57 in HttpTransact::handle_content_length_header > (s=0x2b34b1207120, header=0x2b34b1207800, base=0x2b36d0030070) at > HttpTransact.cc:6660 > #7 0x005a116f in HttpTransact::build_response (s=0x2b34b1207120, > base_response=0x2b36d0030070, outgoing_response=0x2b34b1207800, > outgoing_version=..., status_code=HTTP_STATUS_OK, reason_phrase=0x725709 > "OK") at HttpTransact.cc:7731 > #8 0x00594972 in > HttpTransact::handle_cache_operation_on_forward_server_response > (s=0x2b34b1207120) at HttpTransact.cc:4373 > #9 0x005924f8 in HttpTransact::handle_forward_server_connection_open > (s=0x2b34b1207120) at HttpTransact.cc:3818 > #10 0x00590c08 in HttpTransact::handle_response_from_server > (s=0x2b34b1207120) at HttpTransact.cc:3495 > #11 0x0058f60e in HttpTransact::HandleResponse (s=0x2b34b1207120) at > HttpTransact.cc:3185 > #12 0x00575f25 in HttpSM::call_transact_and_set_next_state > (this=0x2b34b12070b0, f=0) at HttpSM.cc:6685 > #13 0x00563ca4 in HttpSM::handle_api_return (this=0x2b34b12070b0) at > HttpSM.cc:1555 > #14 0x00563a79 in HttpSM::state_api_callout (this=0x2b34b12070b0, > event=0, data=0x0) at HttpSM.cc:1487 > #15 0x0056f79b in HttpSM::do_api_callout_internal > (this=0x2b34b12070b0) at HttpSM.cc:4702 > #16 0x0057bce8 in HttpSM::do_api_callout (this=0x2b34b12070b0) at > HttpSM.cc:503 > #17 0x00564b68 in HttpSM::state_read_server_response_header > (this=0x2b34b12070b0, event=100, data=0x2b35ff9ef5d0) at HttpSM.cc:1869 > #18 0x00567140 in HttpSM::main_handler (this=0x2b34b12070b0, > event=100, data=0x2b35ff9ef5d0) at HttpSM.cc:2501 > #19 0x004e0f52 in Continuation::handleEvent (this=0x2b34b12070b0, > event=100, data=0x2b35ff9ef5d0) at ../iocore/eventsystem/I_Continuation.h:146 > #20 0x006ba540 in read_signal_and_update (event=100, > vc=0x2b35ff9ef4c0) at UnixNetVConnection.cc:138 > #21 0x006bae90 in read_from_net (nh=0x2b34960fdbc0, > vc=0x2b35ff9ef4c0, thread=0x2b34960fa010) at UnixNetVConnection.cc:320 > #22 0x006bcc7f in UnixNetVConnection::net_read_io > (this=0x2b35ff9ef4c0, nh=0x2b34960fdbc0, lthread=0x2b34960fa010) at > UnixNetVConnection.cc:818 > #23 0x006b72e8 in NetHandler::mainNetEvent (this=0x2b34960fdbc0, > event=5, e=0x2b349cf16b40) at UnixNet.cc:377 > #24 0x004e0f52 in Continuation::handleEvent (this=0x2b34960fdbc0, > event=5, data=0x2b349cf16b40) at ../iocore/eventsystem/I_Continuation.h:146 > #25 0x006dbcd0 in EThread::process_event (this=0x2b34960fa010, > e=0x2b349cf16b40, calling_code=5) at UnixEThread.cc:141 > #26 0x006dc2b2 in EThread::execute (this=0x2b34960fa010) at > UnixEThread.cc:265 > #27 0x006daedc in spawn_thread_internal (a=0x15e2160) at Thread.cc:88 > #28 0x003e878077f1 in start_thread () from /lib64/libpthread.so.0 > #29 0x003e86ce5ccd in clone () from /lib64/libc.so.6 > {code} > By analyzing the code, it seems that this assertion is unnecessary: > When client sends a request to ATS, and the content hits in cache, but if the > cache is STALE, ATS will sent a request to Original-Server. > In this case, the t_sate.source will be updated to > SOURCE_HTTP_ORIGIN_SERVER(the old value is SOURCE_CACHE), and in > HttpTransact::handle_cache_operation_on_forward_server_response() > => s->sta
[jira] [Updated] (TS-1917) It seems that one of assert in HttpTransact::handle_content_length_header() is unnecessary
[ https://issues.apache.org/jira/browse/TS-1917?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] James Peach updated TS-1917: Fix Version/s: 3.3.5 Tentatively schedule for 3.3.5 until we can get a code review from someone who knows this well. > It seems that one of assert in HttpTransact::handle_content_length_header() > is unnecessary > --- > > Key: TS-1917 > URL: https://issues.apache.org/jira/browse/TS-1917 > Project: Traffic Server > Issue Type: Bug > Components: HTTP >Reporter: Yunkai Zhang > Fix For: 3.3.5 > > Attachments: ts-1917.wj.diff > > > ATS crashed by the following assert in debug mode: > {code} > (gdb) bt > #0 0x003e86c32885 in raise () from /lib64/libc.so.6 > #1 0x003e86c34065 in abort () from /lib64/libc.so.6 > #2 0x2b349592e234 in ink_die_die_die (retval=1) at ink_error.cc:43 > #3 0x2b349592e301 in ink_fatal_va(int, const char *, typedef > __va_list_tag __va_list_tag *) (return_code=1, > message_format=0x2b349594a748 "%s:%d: failed assert `%s`", > ap=0x2b34979073a0) at ink_error.cc:65 > #4 0x2b349592e3ca in ink_fatal (return_code=1, > message_format=0x2b349594a748 "%s:%d: failed assert `%s`") at ink_error.cc:73 > #5 0x2b349592d2cc in _ink_assert (expression=0x70fef0 "s->range_setup != > RANGE_NOT_TRANSFORM_REQUESTED", file=0x70a613 "HttpTransact.cc", line=6660) > at ink_assert.cc:37 > #6 0x0059cb57 in HttpTransact::handle_content_length_header > (s=0x2b34b1207120, header=0x2b34b1207800, base=0x2b36d0030070) at > HttpTransact.cc:6660 > #7 0x005a116f in HttpTransact::build_response (s=0x2b34b1207120, > base_response=0x2b36d0030070, outgoing_response=0x2b34b1207800, > outgoing_version=..., status_code=HTTP_STATUS_OK, reason_phrase=0x725709 > "OK") at HttpTransact.cc:7731 > #8 0x00594972 in > HttpTransact::handle_cache_operation_on_forward_server_response > (s=0x2b34b1207120) at HttpTransact.cc:4373 > #9 0x005924f8 in HttpTransact::handle_forward_server_connection_open > (s=0x2b34b1207120) at HttpTransact.cc:3818 > #10 0x00590c08 in HttpTransact::handle_response_from_server > (s=0x2b34b1207120) at HttpTransact.cc:3495 > #11 0x0058f60e in HttpTransact::HandleResponse (s=0x2b34b1207120) at > HttpTransact.cc:3185 > #12 0x00575f25 in HttpSM::call_transact_and_set_next_state > (this=0x2b34b12070b0, f=0) at HttpSM.cc:6685 > #13 0x00563ca4 in HttpSM::handle_api_return (this=0x2b34b12070b0) at > HttpSM.cc:1555 > #14 0x00563a79 in HttpSM::state_api_callout (this=0x2b34b12070b0, > event=0, data=0x0) at HttpSM.cc:1487 > #15 0x0056f79b in HttpSM::do_api_callout_internal > (this=0x2b34b12070b0) at HttpSM.cc:4702 > #16 0x0057bce8 in HttpSM::do_api_callout (this=0x2b34b12070b0) at > HttpSM.cc:503 > #17 0x00564b68 in HttpSM::state_read_server_response_header > (this=0x2b34b12070b0, event=100, data=0x2b35ff9ef5d0) at HttpSM.cc:1869 > #18 0x00567140 in HttpSM::main_handler (this=0x2b34b12070b0, > event=100, data=0x2b35ff9ef5d0) at HttpSM.cc:2501 > #19 0x004e0f52 in Continuation::handleEvent (this=0x2b34b12070b0, > event=100, data=0x2b35ff9ef5d0) at ../iocore/eventsystem/I_Continuation.h:146 > #20 0x006ba540 in read_signal_and_update (event=100, > vc=0x2b35ff9ef4c0) at UnixNetVConnection.cc:138 > #21 0x006bae90 in read_from_net (nh=0x2b34960fdbc0, > vc=0x2b35ff9ef4c0, thread=0x2b34960fa010) at UnixNetVConnection.cc:320 > #22 0x006bcc7f in UnixNetVConnection::net_read_io > (this=0x2b35ff9ef4c0, nh=0x2b34960fdbc0, lthread=0x2b34960fa010) at > UnixNetVConnection.cc:818 > #23 0x006b72e8 in NetHandler::mainNetEvent (this=0x2b34960fdbc0, > event=5, e=0x2b349cf16b40) at UnixNet.cc:377 > #24 0x004e0f52 in Continuation::handleEvent (this=0x2b34960fdbc0, > event=5, data=0x2b349cf16b40) at ../iocore/eventsystem/I_Continuation.h:146 > #25 0x006dbcd0 in EThread::process_event (this=0x2b34960fa010, > e=0x2b349cf16b40, calling_code=5) at UnixEThread.cc:141 > #26 0x006dc2b2 in EThread::execute (this=0x2b34960fa010) at > UnixEThread.cc:265 > #27 0x006daedc in spawn_thread_internal (a=0x15e2160) at Thread.cc:88 > #28 0x003e878077f1 in start_thread () from /lib64/libpthread.so.0 > #29 0x003e86ce5ccd in clone () from /lib64/libc.so.6 > {code} > By analyzing the code, it seems that this assertion is unnecessary: > When client sends a request to ATS, and the content hits in cache, but if the > cache is STALE, ATS will sent a request to Original-Server. > In this case, the t_sate.source will be updated to > SOURCE_HTTP_ORIGIN_SERVER(the old value is SOURCE_CACHE), and in > HttpTransact::handle_cache_operation_on_fo
[jira] [Updated] (TS-1917) It seems that one of assert in HttpTransact::handle_content_length_header() is unnecessary
[ https://issues.apache.org/jira/browse/TS-1917?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] weijin updated TS-1917: --- Attachment: ts-1917.wj.diff > It seems that one of assert in HttpTransact::handle_content_length_header() > is unnecessary > --- > > Key: TS-1917 > URL: https://issues.apache.org/jira/browse/TS-1917 > Project: Traffic Server > Issue Type: Bug > Components: HTTP >Reporter: Yunkai Zhang > Attachments: ts-1917.wj.diff > > > ATS crashed by the following assert in debug mode: > {code} > (gdb) bt > #0 0x003e86c32885 in raise () from /lib64/libc.so.6 > #1 0x003e86c34065 in abort () from /lib64/libc.so.6 > #2 0x2b349592e234 in ink_die_die_die (retval=1) at ink_error.cc:43 > #3 0x2b349592e301 in ink_fatal_va(int, const char *, typedef > __va_list_tag __va_list_tag *) (return_code=1, > message_format=0x2b349594a748 "%s:%d: failed assert `%s`", > ap=0x2b34979073a0) at ink_error.cc:65 > #4 0x2b349592e3ca in ink_fatal (return_code=1, > message_format=0x2b349594a748 "%s:%d: failed assert `%s`") at ink_error.cc:73 > #5 0x2b349592d2cc in _ink_assert (expression=0x70fef0 "s->range_setup != > RANGE_NOT_TRANSFORM_REQUESTED", file=0x70a613 "HttpTransact.cc", line=6660) > at ink_assert.cc:37 > #6 0x0059cb57 in HttpTransact::handle_content_length_header > (s=0x2b34b1207120, header=0x2b34b1207800, base=0x2b36d0030070) at > HttpTransact.cc:6660 > #7 0x005a116f in HttpTransact::build_response (s=0x2b34b1207120, > base_response=0x2b36d0030070, outgoing_response=0x2b34b1207800, > outgoing_version=..., status_code=HTTP_STATUS_OK, reason_phrase=0x725709 > "OK") at HttpTransact.cc:7731 > #8 0x00594972 in > HttpTransact::handle_cache_operation_on_forward_server_response > (s=0x2b34b1207120) at HttpTransact.cc:4373 > #9 0x005924f8 in HttpTransact::handle_forward_server_connection_open > (s=0x2b34b1207120) at HttpTransact.cc:3818 > #10 0x00590c08 in HttpTransact::handle_response_from_server > (s=0x2b34b1207120) at HttpTransact.cc:3495 > #11 0x0058f60e in HttpTransact::HandleResponse (s=0x2b34b1207120) at > HttpTransact.cc:3185 > #12 0x00575f25 in HttpSM::call_transact_and_set_next_state > (this=0x2b34b12070b0, f=0) at HttpSM.cc:6685 > #13 0x00563ca4 in HttpSM::handle_api_return (this=0x2b34b12070b0) at > HttpSM.cc:1555 > #14 0x00563a79 in HttpSM::state_api_callout (this=0x2b34b12070b0, > event=0, data=0x0) at HttpSM.cc:1487 > #15 0x0056f79b in HttpSM::do_api_callout_internal > (this=0x2b34b12070b0) at HttpSM.cc:4702 > #16 0x0057bce8 in HttpSM::do_api_callout (this=0x2b34b12070b0) at > HttpSM.cc:503 > #17 0x00564b68 in HttpSM::state_read_server_response_header > (this=0x2b34b12070b0, event=100, data=0x2b35ff9ef5d0) at HttpSM.cc:1869 > #18 0x00567140 in HttpSM::main_handler (this=0x2b34b12070b0, > event=100, data=0x2b35ff9ef5d0) at HttpSM.cc:2501 > #19 0x004e0f52 in Continuation::handleEvent (this=0x2b34b12070b0, > event=100, data=0x2b35ff9ef5d0) at ../iocore/eventsystem/I_Continuation.h:146 > #20 0x006ba540 in read_signal_and_update (event=100, > vc=0x2b35ff9ef4c0) at UnixNetVConnection.cc:138 > #21 0x006bae90 in read_from_net (nh=0x2b34960fdbc0, > vc=0x2b35ff9ef4c0, thread=0x2b34960fa010) at UnixNetVConnection.cc:320 > #22 0x006bcc7f in UnixNetVConnection::net_read_io > (this=0x2b35ff9ef4c0, nh=0x2b34960fdbc0, lthread=0x2b34960fa010) at > UnixNetVConnection.cc:818 > #23 0x006b72e8 in NetHandler::mainNetEvent (this=0x2b34960fdbc0, > event=5, e=0x2b349cf16b40) at UnixNet.cc:377 > #24 0x004e0f52 in Continuation::handleEvent (this=0x2b34960fdbc0, > event=5, data=0x2b349cf16b40) at ../iocore/eventsystem/I_Continuation.h:146 > #25 0x006dbcd0 in EThread::process_event (this=0x2b34960fa010, > e=0x2b349cf16b40, calling_code=5) at UnixEThread.cc:141 > #26 0x006dc2b2 in EThread::execute (this=0x2b34960fa010) at > UnixEThread.cc:265 > #27 0x006daedc in spawn_thread_internal (a=0x15e2160) at Thread.cc:88 > #28 0x003e878077f1 in start_thread () from /lib64/libpthread.so.0 > #29 0x003e86ce5ccd in clone () from /lib64/libc.so.6 > {code} > By analyzing the code, it seems that this assertion is unnecessary: > When client sends a request to ATS, and the content hits in cache, but if the > cache is STALE, ATS will sent a request to Original-Server. > In this case, the t_sate.source will be updated to > SOURCE_HTTP_ORIGIN_SERVER(the old value is SOURCE_CACHE), and in > HttpTransact::handle_cache_operation_on_forward_server_response() > => s->state_machine->do_range_setup_if_necessary(), the s->range_setup could > be updated to RANGE_NOT_TRANSFORM_REQU
[jira] [Updated] (TS-1917) It seems that one of assert in HttpTransact::handle_content_length_header() is unnecessary
[ https://issues.apache.org/jira/browse/TS-1917?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Yunkai Zhang updated TS-1917: - Attachment: (was: 0001-Fix-assert-in-HttpTransact-handle_content_length_hea.patch) > It seems that one of assert in HttpTransact::handle_content_length_header() > is unnecessary > --- > > Key: TS-1917 > URL: https://issues.apache.org/jira/browse/TS-1917 > Project: Traffic Server > Issue Type: Bug > Components: HTTP >Reporter: Yunkai Zhang > > ATS crashed by the following assert in debug mode: > {code} > (gdb) bt > #0 0x003e86c32885 in raise () from /lib64/libc.so.6 > #1 0x003e86c34065 in abort () from /lib64/libc.so.6 > #2 0x2b349592e234 in ink_die_die_die (retval=1) at ink_error.cc:43 > #3 0x2b349592e301 in ink_fatal_va(int, const char *, typedef > __va_list_tag __va_list_tag *) (return_code=1, > message_format=0x2b349594a748 "%s:%d: failed assert `%s`", > ap=0x2b34979073a0) at ink_error.cc:65 > #4 0x2b349592e3ca in ink_fatal (return_code=1, > message_format=0x2b349594a748 "%s:%d: failed assert `%s`") at ink_error.cc:73 > #5 0x2b349592d2cc in _ink_assert (expression=0x70fef0 "s->range_setup != > RANGE_NOT_TRANSFORM_REQUESTED", file=0x70a613 "HttpTransact.cc", line=6660) > at ink_assert.cc:37 > #6 0x0059cb57 in HttpTransact::handle_content_length_header > (s=0x2b34b1207120, header=0x2b34b1207800, base=0x2b36d0030070) at > HttpTransact.cc:6660 > #7 0x005a116f in HttpTransact::build_response (s=0x2b34b1207120, > base_response=0x2b36d0030070, outgoing_response=0x2b34b1207800, > outgoing_version=..., status_code=HTTP_STATUS_OK, reason_phrase=0x725709 > "OK") at HttpTransact.cc:7731 > #8 0x00594972 in > HttpTransact::handle_cache_operation_on_forward_server_response > (s=0x2b34b1207120) at HttpTransact.cc:4373 > #9 0x005924f8 in HttpTransact::handle_forward_server_connection_open > (s=0x2b34b1207120) at HttpTransact.cc:3818 > #10 0x00590c08 in HttpTransact::handle_response_from_server > (s=0x2b34b1207120) at HttpTransact.cc:3495 > #11 0x0058f60e in HttpTransact::HandleResponse (s=0x2b34b1207120) at > HttpTransact.cc:3185 > #12 0x00575f25 in HttpSM::call_transact_and_set_next_state > (this=0x2b34b12070b0, f=0) at HttpSM.cc:6685 > #13 0x00563ca4 in HttpSM::handle_api_return (this=0x2b34b12070b0) at > HttpSM.cc:1555 > #14 0x00563a79 in HttpSM::state_api_callout (this=0x2b34b12070b0, > event=0, data=0x0) at HttpSM.cc:1487 > #15 0x0056f79b in HttpSM::do_api_callout_internal > (this=0x2b34b12070b0) at HttpSM.cc:4702 > #16 0x0057bce8 in HttpSM::do_api_callout (this=0x2b34b12070b0) at > HttpSM.cc:503 > #17 0x00564b68 in HttpSM::state_read_server_response_header > (this=0x2b34b12070b0, event=100, data=0x2b35ff9ef5d0) at HttpSM.cc:1869 > #18 0x00567140 in HttpSM::main_handler (this=0x2b34b12070b0, > event=100, data=0x2b35ff9ef5d0) at HttpSM.cc:2501 > #19 0x004e0f52 in Continuation::handleEvent (this=0x2b34b12070b0, > event=100, data=0x2b35ff9ef5d0) at ../iocore/eventsystem/I_Continuation.h:146 > #20 0x006ba540 in read_signal_and_update (event=100, > vc=0x2b35ff9ef4c0) at UnixNetVConnection.cc:138 > #21 0x006bae90 in read_from_net (nh=0x2b34960fdbc0, > vc=0x2b35ff9ef4c0, thread=0x2b34960fa010) at UnixNetVConnection.cc:320 > #22 0x006bcc7f in UnixNetVConnection::net_read_io > (this=0x2b35ff9ef4c0, nh=0x2b34960fdbc0, lthread=0x2b34960fa010) at > UnixNetVConnection.cc:818 > #23 0x006b72e8 in NetHandler::mainNetEvent (this=0x2b34960fdbc0, > event=5, e=0x2b349cf16b40) at UnixNet.cc:377 > #24 0x004e0f52 in Continuation::handleEvent (this=0x2b34960fdbc0, > event=5, data=0x2b349cf16b40) at ../iocore/eventsystem/I_Continuation.h:146 > #25 0x006dbcd0 in EThread::process_event (this=0x2b34960fa010, > e=0x2b349cf16b40, calling_code=5) at UnixEThread.cc:141 > #26 0x006dc2b2 in EThread::execute (this=0x2b34960fa010) at > UnixEThread.cc:265 > #27 0x006daedc in spawn_thread_internal (a=0x15e2160) at Thread.cc:88 > #28 0x003e878077f1 in start_thread () from /lib64/libpthread.so.0 > #29 0x003e86ce5ccd in clone () from /lib64/libc.so.6 > {code} > By analyzing the code, it seems that this assertion is unnecessary: > When client sends a request to ATS, and the content hits in cache, but if the > cache is STALE, ATS will sent a request to Original-Server. > In this case, the t_sate.source will be updated to > SOURCE_HTTP_ORIGIN_SERVER(the old value is SOURCE_CACHE), and in > HttpTransact::handle_cache_operation_on_forward_server_response() > => s->state_machine->do_range_setup_if_necessary(), the s->range_setup could > be upda
[jira] [Updated] (TS-1917) It seems that one of assert in HttpTransact::handle_content_length_header() is unnecessary
[ https://issues.apache.org/jira/browse/TS-1917?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Yunkai Zhang updated TS-1917: - Attachment: 0001-Fix-assert-in-HttpTransact-handle_content_length_hea.patch > It seems that one of assert in HttpTransact::handle_content_length_header() > is unnecessary > --- > > Key: TS-1917 > URL: https://issues.apache.org/jira/browse/TS-1917 > Project: Traffic Server > Issue Type: Bug > Components: HTTP >Reporter: Yunkai Zhang > Attachments: > 0001-Fix-assert-in-HttpTransact-handle_content_length_hea.patch > > > ATS crashed by the following assert in debug mode: > {code} > (gdb) bt > #0 0x003e86c32885 in raise () from /lib64/libc.so.6 > #1 0x003e86c34065 in abort () from /lib64/libc.so.6 > #2 0x2b349592e234 in ink_die_die_die (retval=1) at ink_error.cc:43 > #3 0x2b349592e301 in ink_fatal_va(int, const char *, typedef > __va_list_tag __va_list_tag *) (return_code=1, > message_format=0x2b349594a748 "%s:%d: failed assert `%s`", > ap=0x2b34979073a0) at ink_error.cc:65 > #4 0x2b349592e3ca in ink_fatal (return_code=1, > message_format=0x2b349594a748 "%s:%d: failed assert `%s`") at ink_error.cc:73 > #5 0x2b349592d2cc in _ink_assert (expression=0x70fef0 "s->range_setup != > RANGE_NOT_TRANSFORM_REQUESTED", file=0x70a613 "HttpTransact.cc", line=6660) > at ink_assert.cc:37 > #6 0x0059cb57 in HttpTransact::handle_content_length_header > (s=0x2b34b1207120, header=0x2b34b1207800, base=0x2b36d0030070) at > HttpTransact.cc:6660 > #7 0x005a116f in HttpTransact::build_response (s=0x2b34b1207120, > base_response=0x2b36d0030070, outgoing_response=0x2b34b1207800, > outgoing_version=..., status_code=HTTP_STATUS_OK, reason_phrase=0x725709 > "OK") at HttpTransact.cc:7731 > #8 0x00594972 in > HttpTransact::handle_cache_operation_on_forward_server_response > (s=0x2b34b1207120) at HttpTransact.cc:4373 > #9 0x005924f8 in HttpTransact::handle_forward_server_connection_open > (s=0x2b34b1207120) at HttpTransact.cc:3818 > #10 0x00590c08 in HttpTransact::handle_response_from_server > (s=0x2b34b1207120) at HttpTransact.cc:3495 > #11 0x0058f60e in HttpTransact::HandleResponse (s=0x2b34b1207120) at > HttpTransact.cc:3185 > #12 0x00575f25 in HttpSM::call_transact_and_set_next_state > (this=0x2b34b12070b0, f=0) at HttpSM.cc:6685 > #13 0x00563ca4 in HttpSM::handle_api_return (this=0x2b34b12070b0) at > HttpSM.cc:1555 > #14 0x00563a79 in HttpSM::state_api_callout (this=0x2b34b12070b0, > event=0, data=0x0) at HttpSM.cc:1487 > #15 0x0056f79b in HttpSM::do_api_callout_internal > (this=0x2b34b12070b0) at HttpSM.cc:4702 > #16 0x0057bce8 in HttpSM::do_api_callout (this=0x2b34b12070b0) at > HttpSM.cc:503 > #17 0x00564b68 in HttpSM::state_read_server_response_header > (this=0x2b34b12070b0, event=100, data=0x2b35ff9ef5d0) at HttpSM.cc:1869 > #18 0x00567140 in HttpSM::main_handler (this=0x2b34b12070b0, > event=100, data=0x2b35ff9ef5d0) at HttpSM.cc:2501 > #19 0x004e0f52 in Continuation::handleEvent (this=0x2b34b12070b0, > event=100, data=0x2b35ff9ef5d0) at ../iocore/eventsystem/I_Continuation.h:146 > #20 0x006ba540 in read_signal_and_update (event=100, > vc=0x2b35ff9ef4c0) at UnixNetVConnection.cc:138 > #21 0x006bae90 in read_from_net (nh=0x2b34960fdbc0, > vc=0x2b35ff9ef4c0, thread=0x2b34960fa010) at UnixNetVConnection.cc:320 > #22 0x006bcc7f in UnixNetVConnection::net_read_io > (this=0x2b35ff9ef4c0, nh=0x2b34960fdbc0, lthread=0x2b34960fa010) at > UnixNetVConnection.cc:818 > #23 0x006b72e8 in NetHandler::mainNetEvent (this=0x2b34960fdbc0, > event=5, e=0x2b349cf16b40) at UnixNet.cc:377 > #24 0x004e0f52 in Continuation::handleEvent (this=0x2b34960fdbc0, > event=5, data=0x2b349cf16b40) at ../iocore/eventsystem/I_Continuation.h:146 > #25 0x006dbcd0 in EThread::process_event (this=0x2b34960fa010, > e=0x2b349cf16b40, calling_code=5) at UnixEThread.cc:141 > #26 0x006dc2b2 in EThread::execute (this=0x2b34960fa010) at > UnixEThread.cc:265 > #27 0x006daedc in spawn_thread_internal (a=0x15e2160) at Thread.cc:88 > #28 0x003e878077f1 in start_thread () from /lib64/libpthread.so.0 > #29 0x003e86ce5ccd in clone () from /lib64/libc.so.6 > {code} > By analyzing the code, it seems that this assertion is unnecessary: > When client sends a request to ATS, and the content hits in cache, but if the > cache is STALE, ATS will sent a request to Original-Server. > In this case, the t_sate.source will be updated to > SOURCE_HTTP_ORIGIN_SERVER(the old value is SOURCE_CACHE), and in > HttpTransact::handle_cache_operation_on_forward_server_response() > => s->s
[jira] [Updated] (TS-1917) It seems that one of assert in HttpTransact::handle_content_length_header() is unnecessary
[ https://issues.apache.org/jira/browse/TS-1917?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Yunkai Zhang updated TS-1917: - Description: ATS crashed by the following assert in debug mode: {code} (gdb) bt #0 0x003e86c32885 in raise () from /lib64/libc.so.6 #1 0x003e86c34065 in abort () from /lib64/libc.so.6 #2 0x2b349592e234 in ink_die_die_die (retval=1) at ink_error.cc:43 #3 0x2b349592e301 in ink_fatal_va(int, const char *, typedef __va_list_tag __va_list_tag *) (return_code=1, message_format=0x2b349594a748 "%s:%d: failed assert `%s`", ap=0x2b34979073a0) at ink_error.cc:65 #4 0x2b349592e3ca in ink_fatal (return_code=1, message_format=0x2b349594a748 "%s:%d: failed assert `%s`") at ink_error.cc:73 #5 0x2b349592d2cc in _ink_assert (expression=0x70fef0 "s->range_setup != RANGE_NOT_TRANSFORM_REQUESTED", file=0x70a613 "HttpTransact.cc", line=6660) at ink_assert.cc:37 #6 0x0059cb57 in HttpTransact::handle_content_length_header (s=0x2b34b1207120, header=0x2b34b1207800, base=0x2b36d0030070) at HttpTransact.cc:6660 #7 0x005a116f in HttpTransact::build_response (s=0x2b34b1207120, base_response=0x2b36d0030070, outgoing_response=0x2b34b1207800, outgoing_version=..., status_code=HTTP_STATUS_OK, reason_phrase=0x725709 "OK") at HttpTransact.cc:7731 #8 0x00594972 in HttpTransact::handle_cache_operation_on_forward_server_response (s=0x2b34b1207120) at HttpTransact.cc:4373 #9 0x005924f8 in HttpTransact::handle_forward_server_connection_open (s=0x2b34b1207120) at HttpTransact.cc:3818 #10 0x00590c08 in HttpTransact::handle_response_from_server (s=0x2b34b1207120) at HttpTransact.cc:3495 #11 0x0058f60e in HttpTransact::HandleResponse (s=0x2b34b1207120) at HttpTransact.cc:3185 #12 0x00575f25 in HttpSM::call_transact_and_set_next_state (this=0x2b34b12070b0, f=0) at HttpSM.cc:6685 #13 0x00563ca4 in HttpSM::handle_api_return (this=0x2b34b12070b0) at HttpSM.cc:1555 #14 0x00563a79 in HttpSM::state_api_callout (this=0x2b34b12070b0, event=0, data=0x0) at HttpSM.cc:1487 #15 0x0056f79b in HttpSM::do_api_callout_internal (this=0x2b34b12070b0) at HttpSM.cc:4702 #16 0x0057bce8 in HttpSM::do_api_callout (this=0x2b34b12070b0) at HttpSM.cc:503 #17 0x00564b68 in HttpSM::state_read_server_response_header (this=0x2b34b12070b0, event=100, data=0x2b35ff9ef5d0) at HttpSM.cc:1869 #18 0x00567140 in HttpSM::main_handler (this=0x2b34b12070b0, event=100, data=0x2b35ff9ef5d0) at HttpSM.cc:2501 #19 0x004e0f52 in Continuation::handleEvent (this=0x2b34b12070b0, event=100, data=0x2b35ff9ef5d0) at ../iocore/eventsystem/I_Continuation.h:146 #20 0x006ba540 in read_signal_and_update (event=100, vc=0x2b35ff9ef4c0) at UnixNetVConnection.cc:138 #21 0x006bae90 in read_from_net (nh=0x2b34960fdbc0, vc=0x2b35ff9ef4c0, thread=0x2b34960fa010) at UnixNetVConnection.cc:320 #22 0x006bcc7f in UnixNetVConnection::net_read_io (this=0x2b35ff9ef4c0, nh=0x2b34960fdbc0, lthread=0x2b34960fa010) at UnixNetVConnection.cc:818 #23 0x006b72e8 in NetHandler::mainNetEvent (this=0x2b34960fdbc0, event=5, e=0x2b349cf16b40) at UnixNet.cc:377 #24 0x004e0f52 in Continuation::handleEvent (this=0x2b34960fdbc0, event=5, data=0x2b349cf16b40) at ../iocore/eventsystem/I_Continuation.h:146 #25 0x006dbcd0 in EThread::process_event (this=0x2b34960fa010, e=0x2b349cf16b40, calling_code=5) at UnixEThread.cc:141 #26 0x006dc2b2 in EThread::execute (this=0x2b34960fa010) at UnixEThread.cc:265 #27 0x006daedc in spawn_thread_internal (a=0x15e2160) at Thread.cc:88 #28 0x003e878077f1 in start_thread () from /lib64/libpthread.so.0 #29 0x003e86ce5ccd in clone () from /lib64/libc.so.6 {code} By analyzing the code, it seems that this assertion is unnecessary: When client sends a request to ATS, and the content hits in cache, but if the cache is STALE, ATS will sent a request to Original-Server. In this case, the t_sate.source will be updated to SOURCE_HTTP_ORIGIN_SERVER(the old value is SOURCE_CACHE), and in HttpTransact::handle_cache_operation_on_forward_server_response() => s->state_machine->do_range_setup_if_necessary(), the s->range_setup could be updated to RANGE_NOT_TRANSFORM_REQUESTED, so it might violate the ink_assert(s->range_setup != RANGE_NOT_TRANSFORM_REQUESTED). But, I'm not very sure:), hope someone who familiar with this code can give us some adivise. was: ATS crashed by the following assert in debug mode: {code} (gdb) bt #0 0x003e86c32885 in raise () from /lib64/libc.so.6 #1 0x003e86c34065 in abort () from /lib64/libc.so.6 #2 0x2b349592e234 in ink_die_die_die (retval=1) at ink_error.cc:43 #3 0x2b349592e301 in ink_fatal_va(int, const char *, typedef __va_list_tag __va_list_tag *) (return_code=1, message_format=0x2b349594a748 "%s:%d: failed ass