You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by "stefan@eissing.org" <st...@eissing.org> on 2017/02/20 14:08:20 UTC

Re: svn commit: r1783759 - in /httpd/httpd/trunk: docs/log-message-tags/next-number include/mod_core.h modules/filters/mod_include.c modules/http2/h2_conn.c server/main.c server/mpm/event/event.c server/mpm_unix.c server/request.c

Uhm, don't know what it is, but trunk runs out of open files in my load tests now after a few seconds...

> Am 20.02.2017 um 14:50 schrieb ylavic@apache.org:
> 
> Author: ylavic
> Date: Mon Feb 20 13:50:49 2017
> New Revision: 1783759
> 
> URL: http://svn.apache.org/viewvc?rev=1783759&view=rev
> Log:
> Follow up to r1783755: update APLOGNO.
> 
> Modified:
>    httpd/httpd/trunk/docs/log-message-tags/next-number
>    httpd/httpd/trunk/include/mod_core.h
>    httpd/httpd/trunk/modules/filters/mod_include.c
>    httpd/httpd/trunk/modules/http2/h2_conn.c
>    httpd/httpd/trunk/server/main.c
>    httpd/httpd/trunk/server/mpm/event/event.c
>    httpd/httpd/trunk/server/mpm_unix.c
>    httpd/httpd/trunk/server/request.c
> 
> Modified: httpd/httpd/trunk/docs/log-message-tags/next-number
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/log-message-tags/next-number?rev=1783759&r1=1783758&r2=1783759&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/docs/log-message-tags/next-number (original)
> +++ httpd/httpd/trunk/docs/log-message-tags/next-number Mon Feb 20 13:50:49 2017
> @@ -1 +1 @@
> -10003
> +10004
> 
> Modified: httpd/httpd/trunk/include/mod_core.h
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/include/mod_core.h?rev=1783759&r1=1783758&r2=1783759&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/include/mod_core.h (original)
> +++ httpd/httpd/trunk/include/mod_core.h Mon Feb 20 13:50:49 2017
> @@ -45,6 +45,10 @@ AP_DECLARE_DATA extern ap_filter_rec_t *
> AP_DECLARE_DATA extern ap_filter_rec_t *ap_http_outerror_filter_handle;
> AP_DECLARE_DATA extern ap_filter_rec_t *ap_byterange_filter_handle;
> 
> +typedef struct {
> +    apr_bucket_brigade *tmp_bb;
> +} http_conn_config;
> +
> /*
>  * These (input) filters are internal to the mod_core operation.
>  */
> 
> Modified: httpd/httpd/trunk/modules/filters/mod_include.c
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/filters/mod_include.c?rev=1783759&r1=1783758&r2=1783759&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/modules/filters/mod_include.c (original)
> +++ httpd/httpd/trunk/modules/filters/mod_include.c Mon Feb 20 13:50:49 2017
> @@ -3783,6 +3783,7 @@ static apr_status_t send_parsed_content(
>     /* if something's left over, pass it along */
>     if (!APR_BRIGADE_EMPTY(pass_bb)) {
>         rv = ap_pass_brigade(f->next, pass_bb);
> +        apr_brigade_cleanup(pass_bb);
>     }
>     else {
>         rv = APR_SUCCESS;
> 
> Modified: httpd/httpd/trunk/modules/http2/h2_conn.c
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/http2/h2_conn.c?rev=1783759&r1=1783758&r2=1783759&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/modules/http2/h2_conn.c (original)
> +++ httpd/httpd/trunk/modules/http2/h2_conn.c Mon Feb 20 13:50:49 2017
> @@ -280,7 +280,7 @@ conn_rec *h2_slave_create(conn_rec *mast
>     status = apr_thread_mutex_create(&mutex, APR_THREAD_MUTEX_DEFAULT, pool);
>     if (status != APR_SUCCESS) {
>         ap_log_cerror(APLOG_MARK, APLOG_ERR, status, master, 
> -                      APLOGNO() "h2_session(%ld-%d): create slave mutex",
> +                      APLOGNO(10004) "h2_session(%ld-%d): create slave mutex",
>                       master->id, slave_id);
>         apr_pool_destroy(pool);
>         return NULL;
> 
> Modified: httpd/httpd/trunk/server/main.c
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/main.c?rev=1783759&r1=1783758&r2=1783759&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/server/main.c (original)
> +++ httpd/httpd/trunk/server/main.c Mon Feb 20 13:50:49 2017
> @@ -735,6 +735,8 @@ int main(int argc, const char * const ar
>         apr_pool_clear(pconf);
>         ap_clear_auth_internal();
> 
> +        apr_sleep(apr_time_from_sec(10));
> +
>         ap_main_state = AP_SQ_MS_CREATE_CONFIG;
>         ap_config_generation++;
>         for (mod = ap_prelinked_modules; *mod != NULL; mod++) {
> 
> Modified: httpd/httpd/trunk/server/mpm/event/event.c
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/mpm/event/event.c?rev=1783759&r1=1783758&r2=1783759&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/server/mpm/event/event.c (original)
> +++ httpd/httpd/trunk/server/mpm/event/event.c Mon Feb 20 13:50:49 2017
> @@ -2135,7 +2135,7 @@ static void * APR_THREAD_FUNC listener_t
>                                                  ptrans);
>                     if (rc != APR_SUCCESS) {
>                         ap_log_error(APLOG_MARK, APLOG_CRIT, rc,
> -                                     ap_server_conf, APLOGNO()
> +                                     ap_server_conf, APLOGNO(10003)
>                                      "Failed to create transaction pool mutex");
>                         ap_push_pool(worker_queue_info, ptrans);
>                         signal_threads(ST_GRACEFUL);
> 
> Modified: httpd/httpd/trunk/server/mpm_unix.c
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/mpm_unix.c?rev=1783759&r1=1783758&r2=1783759&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/server/mpm_unix.c (original)
> +++ httpd/httpd/trunk/server/mpm_unix.c Mon Feb 20 13:50:49 2017
> @@ -1015,14 +1015,13 @@ AP_DECLARE(apr_status_t) ap_fatal_signal
> #ifndef NO_USE_SIGACTION
>     struct sigaction sa;
> 
> +    memset(&sa, 0, sizeof sa);
>     sigemptyset(&sa.sa_mask);
> 
> #if defined(SA_ONESHOT)
>     sa.sa_flags = SA_ONESHOT;
> #elif defined(SA_RESETHAND)
>     sa.sa_flags = SA_RESETHAND;
> -#else
> -    sa.sa_flags = 0;
> #endif
> 
>     sa.sa_handler = sig_coredump;
> 
> Modified: httpd/httpd/trunk/server/request.c
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/request.c?rev=1783759&r1=1783758&r2=1783759&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/server/request.c (original)
> +++ httpd/httpd/trunk/server/request.c Mon Feb 20 13:50:49 2017
> @@ -2040,8 +2040,10 @@ AP_CORE_DECLARE_NONSTD(apr_status_t) ap_
> AP_CORE_DECLARE_NONSTD(apr_status_t) ap_request_core_filter(ap_filter_t *f,
>                                                             apr_bucket_brigade *bb)
> {
> +    extern module http_module;
>     apr_bucket *flush_upto = NULL;
>     apr_status_t status = APR_SUCCESS;
> +    http_conn_config *conn_cfg = ap_get_module_config(f->c->conn_config, &http_module);
>     apr_bucket_brigade *tmp_bb = f->ctx;
> 
>     /*
> @@ -2056,12 +2058,13 @@ AP_CORE_DECLARE_NONSTD(apr_status_t) ap_
>     if (!tmp_bb) {
>         tmp_bb = f->ctx = apr_brigade_create(f->r->pool, f->c->bucket_alloc);
>     }
> +    APR_BRIGADE_CONCAT(tmp_bb, bb);
> 
>     /* Reinstate any buffered content */
> -    ap_filter_reinstate_brigade(f, bb, &flush_upto);
> +    ap_filter_reinstate_brigade(f, tmp_bb, &flush_upto);
> 
> -    while (!APR_BRIGADE_EMPTY(bb)) {
> -        apr_bucket *bucket = APR_BRIGADE_FIRST(bb);
> +    while (!APR_BRIGADE_EMPTY(tmp_bb)) {
> +        apr_bucket *bucket = APR_BRIGADE_FIRST(tmp_bb);
> 
>         /* if the core has set aside data, back off and try later */
>         if (!flush_upto) {
> @@ -2091,16 +2094,16 @@ AP_CORE_DECLARE_NONSTD(apr_status_t) ap_
> 
>         /* pass each bucket down the chain */
>         APR_BUCKET_REMOVE(bucket);
> -        APR_BRIGADE_INSERT_TAIL(tmp_bb, bucket);
> +        APR_BRIGADE_INSERT_TAIL(bb, bucket);
> +        status = ap_pass_brigade(f->next, bb);
> +        apr_brigade_cleanup(bb);
> 
> -        status = ap_pass_brigade(f->next, tmp_bb);
>         if (!APR_STATUS_IS_EOF(status) && (status != APR_SUCCESS)) {
>             return status;
>         }
> -
>     }
> 
> -    ap_filter_setaside_brigade(f, bb);
> +    ap_filter_setaside_brigade(f, tmp_bb);
>     return status;
> }
> 
> 
> 


Re: svn commit: r1783759 - in /httpd/httpd/trunk: docs/log-message-tags/next-number include/mod_core.h modules/filters/mod_include.c modules/http2/h2_conn.c server/main.c server/mpm/event/event.c server/mpm_unix.c server/request.c

Posted by Stefan Eissing <st...@greenbytes.de>.
Now everything is working again here. Thanks.

-Stefan

> Am 20.02.2017 um 15:21 schrieb Yann Ylavic <yl...@gmail.com>:
> 
> On Mon, Feb 20, 2017 at 3:08 PM, stefan@eissing.org <st...@eissing.org> wrote:
>> Uhm, don't know what it is, but trunk runs out of open files in my load tests now after a few seconds...
> 
> This commit is garbage (reverted in r1783760).
> Can you still reproduce in HEAD (of now)?

Stefan Eissing

<green/>bytes GmbH
Hafenstrasse 16
48155 Münster
www.greenbytes.de


Re: svn commit: r1783759 - in /httpd/httpd/trunk: docs/log-message-tags/next-number include/mod_core.h modules/filters/mod_include.c modules/http2/h2_conn.c server/main.c server/mpm/event/event.c server/mpm_unix.c server/request.c

Posted by Yann Ylavic <yl...@gmail.com>.
On Mon, Feb 20, 2017 at 3:08 PM, stefan@eissing.org <st...@eissing.org> wrote:
> Uhm, don't know what it is, but trunk runs out of open files in my load tests now after a few seconds...

This commit is garbage (reverted in r1783760).
Can you still reproduce in HEAD (of now)?