You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "Leif Hedstrom (JIRA)" <ji...@apache.org> on 2011/01/26 22:46:49 UTC

[jira] Issue Comment Edited: (TS-489) Seg Fault with Connection_Collapsing and clustering enabled.

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

Leif Hedstrom edited comment on TS-489 at 1/26/11 4:46 PM:
-----------------------------------------------------------

One thing I don't understand with this patch is this in HttpSM.cc:

{code:title=HttpSM::main_handler()}
  if (vc_entry && event != EVENT_INTERVAL) {
    jump_point = vc_entry->vc_handler;
    ink_assert(jump_point != (HttpSMHandler)NULL);
    ink_assert(vc_entry->vc != (VConnection *)NULL);
    (this->*jump_point) (event, data);
  } else {
    ink_assert(default_handler != (HttpSMHandler)NULL);
    (this->*default_handler) (event, data);
  }
{code}

Looking at the old code, I think it would use the vc_entry->vc_handler even if the event was EVENT_INTERNAL. But, maybe that was indeed a bug in the old code? If so, nice catch!

      was (Author: zwoop):
    One thing I don't understand with this patch is this in HttpSM.cc:

{code:title=HttpSM.cc::main_handler()}
  if (vc_entry && event != EVENT_INTERVAL) {
    jump_point = vc_entry->vc_handler;
    ink_assert(jump_point != (HttpSMHandler)NULL);
    ink_assert(vc_entry->vc != (VConnection *)NULL);
    (this->*jump_point) (event, data);
  } else {
    ink_assert(default_handler != (HttpSMHandler)NULL);
    (this->*default_handler) (event, data);
  }
{code}

Looking at the old, I think it would use the vc_entry->vc_handler even if the event was EVENT_INTERNAL. But, maybe that was indeed a bug in the old code? If so, nice catch!
  
> Seg Fault with Connection_Collapsing and clustering enabled.
> ------------------------------------------------------------
>
>                 Key: TS-489
>                 URL: https://issues.apache.org/jira/browse/TS-489
>             Project: Traffic Server
>          Issue Type: Bug
>    Affects Versions: 2.0.0
>         Environment: Debian Lenny.
> 2.6.26-2-amd-64
> Sun Blade X6240 (2 x Six-Core AMD Opteron(tm) Processor 2439 SE)
> 64G Memory
>            Reporter: Ricky Chan
>            Assignee: mohan_zl
>            Priority: Critical
>             Fix For: 2.1.6
>
>         Attachments: code_clean_up.patch, collapse1.trace, collapse2.trace, TS-489-zym-1.txt, TS-489.patch, ts_489_testing.txt
>
>
> Bug is easily reproduced, with the following setup.
> Traffic Server 2.0.0
> Enable Clustering (so you'll need two machine and make sure cluster is actually working) (LOCAL proxy.local.cluster.type INT 1)
> Enable Connection Collapsing (CONFIG proxy.config.connection_collapsing.hashtable_enabled INT 1)
> Other changes to records.config which may or may affect it are changes to heuristics:
> CONFIG proxy.config.http.cache.heuristic_min_lifetime INT 5
> CONFIG proxy.config.http.cache.heuristic_max_lifetime INT 86400
> CONFIG proxy.config.http.cache.heuristic_lm_factor FLOAT 0.000100
> CONFIG proxy.config.http.cache.fuzz.time INT 240
> CONFIG proxy.config.http.cache.fuzz.probability FLOAT 0.000005
> Using a 3rd machine using apache benchmark (ab)  and request with say -n 1000000 with  keep alive (-k) and -c 8000 say.  I found it happens all the time above 8000.  I just fetched a file from origin on lighttpd which had a cache-control header of max-age 86400, so to reduce hitting origin.  Size of file is 9 bytes only.
> Note: You need to set ulimit  -n very high and set sysctl ip_local_port_range to larger than defaults to be able to run test, I did ulimit -n 1000000 and had sysctl -w net.ipv4.ip_local_port_range="1024 65000" to be able to run AB.
> Disabling clustering or connection Collapsing the program no longer.
> I then added GDB wrapper around traffic_server and it clearly shows it's the connection collapsing API which is at fault here.
> I'll add these traces as attachments.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.