You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bugs@httpd.apache.org by bu...@apache.org on 2013/12/10 09:45:38 UTC

[Bug 50335] Cores dumped under high load (segmentation fault signal 11 SIGSEGV)

https://issues.apache.org/bugzilla/show_bug.cgi?id=50335

--- Comment #34 from jkaluza@redhat.com ---
The problem is that make_fake_req uses scpool. Fake request generated by this
method is passed to ap_get_brigade by following code:

rv = ap_get_brigade(backend->r->input_filters, bb,
                    AP_MODE_READBYTES, mode,
                    conf->io_buffer_size);

"bb" is brigade created with "request" pool. Input_filters later adds new
buckets created from "scpool" into brigade created with "request" pool. The
problem here is when scpool gets destroyed before request pool. I'm not able to
reproduce it now, but I'm pretty sure that's what we see here.

I think the problem is in some "break;" in the code block right after
ap_get_brigade, because in this case "bb" brigade is not cleaned up. I think to
trigger this, input_filter has to return some strange error and add something
to brigade in the same time, so it's not clean, but the mod_proxy presumes it
is clean when this return value is returned.

Note that this is also particular thing which is changed in the patch by Max.
The patch changes pool used by input_filters.

I'm proposing another patch which cleans "bb" brigade in the end of
ap_proxy_http_process_response.

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org