You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "weijin (JIRA)" <ji...@apache.org> on 2012/12/24 03:44:12 UTC

[jira] [Commented] (TS-1577) Crash report: RangeTransform::change_response_header at Transform.cc:995

    [ https://issues.apache.org/jira/browse/TS-1577?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13539158#comment-13539158 ] 

weijin commented on TS-1577:
----------------------------

try to solve the problem in ts-1574, ts-1577

If there is a copy in cache (expire), range request can invalidate it. If the original server response 304, serve from cache.

the current cache codes and still can not support do_io_pread if read_from_writer. If the content_length of cache copy is INT64_MAX (a special case of read_from_writer), just proxy the request to server.
                
> Crash report: RangeTransform::change_response_header at Transform.cc:995
> ------------------------------------------------------------------------
>
>                 Key: TS-1577
>                 URL: https://issues.apache.org/jira/browse/TS-1577
>             Project: Traffic Server
>          Issue Type: Bug
>          Components: HTTP
>    Affects Versions: 3.3.0
>         Environment: git master version
>            Reporter: Zhao Yongming
>            Assignee: Zhao Yongming
>            Priority: Critical
>             Fix For: 3.3.1
>
>         Attachments: ts-1574.diff
>
>
> This may or may not relate to TS-1574, I'd like track this issue another thread here.
> {code}
> Core was generated by `/usr/bin/traffic_server -M --httpport 8080:fd=12'.
> Program terminated with signal 6, Aborted.
> #0  0x0000003e86c32885 in raise () from /lib64/libc.so.6
> Missing separate debuginfos, use: debuginfo-install expat-2.0.1-11.el6_2.x86_64 glibc-2.12-1.47.el6_2.9.x86_64 keyutils-libs-1.4-3.el6.x86_64 krb5-libs-1.9-22.el6_2.1.x86_64 libcom_err-1.41.12-11.el6.x86_64 libgcc-4.4.6-3.el6.x86_64 libselinux-2.0.94-5.2.el6.x86_64 libstdc++-4.4.6-3.el6.x86_64 openssl-1.0.0-20.el6_2.4.x86_64 pcre-7.8-3.1.el6.x86_64 tcl-8.5.7-6.el6.x86_64 xz-libs-4.999.9-0.3.beta.20091007git.el6.x86_64 zlib-1.2.3-27.el6.x86_64
> (gdb) bt
> #0  0x0000003e86c32885 in raise () from /lib64/libc.so.6
> #1  0x0000003e86c34065 in abort () from /lib64/libc.so.6
> #2  0x00000035c8013f19 in ink_die_die_die (retval=30342) at ink_error.cc:43
> #3  0x00000035c8014194 in ink_fatal_va(int, const char *, typedef __va_list_tag __va_list_tag *) (return_code=1, 
>     message_format=<value optimized out>, ap=0x2b0b8fcc3ba0) at ink_error.cc:65
> #4  0x00000035c80142c8 in ink_fatal (return_code=30342, message_format=0x7693 <Address 0x7693 out of bounds>) at ink_error.cc:73
> #5  0x00000035c8012c3f in _ink_assert (expression=0x0, file=0x6 <Address 0x6 out of bounds>, line=-1) at ink_assert.cc:38
> #6  0x00000000004d671c in RangeTransform::change_response_header (this=0x2b0be4500bf0) at Transform.cc:995
> #7  0x00000000004da4cd in RangeTransform::handle_event (this=0x2b0be4500bf0, event=<value optimized out>, edata=<value optimized out>)
>     at Transform.cc:791
> #8  0x0000000000654dd4 in handleEvent (this=0x2b0b8e4ad010, e=0x34aff40, calling_code=1) at I_Continuation.h:146
> #9  EThread::process_event (this=0x2b0b8e4ad010, e=0x34aff40, calling_code=1) at UnixEThread.cc:142
> #10 0x000000000065593b in EThread::execute (this=0x2b0b8e4ad010) at UnixEThread.cc:193
> #11 0x00000000006540d2 in spawn_thread_internal (a=0x2c79a50) at Thread.cc:88
> #12 0x0000003e878077f1 in start_thread () from /lib64/libpthread.so.0
> #13 0x0000003e86ce5ccd in clone () from /lib64/libc.so.6
> (gdb) f 6
> #6  0x00000000004d671c in RangeTransform::change_response_header (this=0x2b0be4500bf0) at Transform.cc:995
> 995	  ink_release_assert(m_transform_resp->field_find(MIME_FIELD_CONTENT_RANGE, MIME_LEN_CONTENT_RANGE) == NULL);
> (gdb) p this
> $1 = (RangeTransform * const) 0x2b0be4500bf0
> (gdb) p *this
> $2 = {<INKVConnInternal> = {<INKContInternal> = {<DummyVConnection> = {<VConnection> = {<Continuation> = {<force_VFPT_to_top> = {
>               _vptr.force_VFPT_to_top = 0x667970}, handler = (int (Continuation::*)(Continuation *, int, 
>     void *)) 0x4da200 <RangeTransform::handle_event(int, void*)>, mutex = {m_ptr = 0x2b0bf8216110}, link = {<SLink<Continuation>> = {next = 0x0}, 
>               prev = 0x0}}, lerrno = 0}, <No data fields>}, mdata = 0x0, m_event_func = 0, m_event_count = 0, m_closed = 0, m_deletable = 0, 
>       m_deleted = 0, m_free_magic = INKCONT_INTERN_MAGIC_ALIVE}, m_read_vio = {_cont = 0x0, nbytes = 0, ndone = 0, op = 0, buffer = {mbuf = 0x0, 
>         entry = 0x0}, vc_server = 0x0, mutex = {m_ptr = 0x0}}, m_write_vio = {_cont = 0x2b0f9168f020, nbytes = 20480, ndone = 0, op = 2, buffer = {
>         mbuf = 0x2b0c0407fdd0, entry = 0x2b0c0407fe10}, vc_server = 0x2b0be4500bf0, mutex = {m_ptr = 0x2b0bf8216110}}, 
>     m_output_vc = 0x2b0be459f048}, m_output_buf = 0x33b7ca0, m_output_reader = 0x33b7cb8, m_transform_resp = 0x2b0f9168dc88, 
>   m_output_vio = 0x2b0be459f0c8, m_unsatisfiable_range = false, m_range_content_length = 0, m_num_chars_for_cl = 1, m_num_range_fields = -1, 
>   m_current_range = 0, 
>   m_content_type = 0x2b1216ea6ac0 "application/octet-stream\r\nContent-Range: bytes 0-20479/119091\r\nContent-Length: 20480\r\nConnection: keep-alive\r\nDate: Sun, 18 Nov 2012 13:30:05 GMT\r\nServer: apache\r\n\r\n\343k\031P", m_content_type_len = 24, m_ranges = 0x2b0be45bda90, 
>   m_output_cl = 20480, m_done = 0}
> (gdb) p m_ranges
> $3 = (RangeRecord *) 0x2b0be45bda90
> (gdb) p *m_ranges
> $4 = {_start = 20480, _end = 40959, _done_byte = -1}
> (gdb) p *m_transform_resp
> $1 = {<MIMEHdr> = {<HdrHeapSDKHandle> = {m_heap = 0x2b0f914ec010}, m_mime = 0x2b0f914ec0c8}, m_http = 0x2b0f914ec098, 
>   m_url_cached = {<HdrHeapSDKHandle> = {m_heap = 0x0}, m_url_impl = 0x0}, m_host_mime = 0x0, m_host_length = 0, m_port = 0, m_target_cached = false, 
>   m_target_in_url = false, m_port_in_header = false}
> (gdb) p m_transform_resp->m_heap 
> $2 = (HdrHeap *) 0x2b0f914ec010
> (gdb) p *m_transform_resp->m_heap 
> $3 = {m_magic = 2882404077, m_free_start = 0x2b0f914ec318 "\002p", m_data_start = 0x2b0f914ec098 "\003\060", m_size = 2048, m_writeable = true, 
>   m_next = 0x0, m_free_size = 1272, m_read_write_heap = {m_ptr = 0x0}, m_ronly_heap = {{m_ref_count_ptr = {m_ptr = 0x2b0c0855d340}, 
>       m_heap_start = 0x2b1216ea69e0 "HTTP/1.0 200 OK\r\nSet-Cookie: BAIDUID=7DC7AB09AB06C107A53B6D958AE0EA65:FG=1; max-age=31536000; expires=Mon, 18-Nov-13 13:30:05 GMT; domain=.baidu.com; path=/; version=1\r\nP3P: CP=\" OTI DSP COR IVA OUR I"..., m_heap_len = 389, m_locked = false}, {
>       m_ref_count_ptr = {m_ptr = 0x0}, m_heap_start = 0x0, m_heap_len = 270, m_locked = false}, {m_ref_count_ptr = {m_ptr = 0x0}, 
>       m_heap_start = 0x0, m_heap_len = 0, m_locked = false}}, m_lost_string_space = 167}
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira