Re: [VOTE] Release libapreq2-2.16
On Wed, Mar 10, 2021 at 5:05 PM Joe Orton wrote: > > I would like to call a VOTE over the next week to release this candidate > tarball as v2.16: [X] +1: It's not just good, it's good enough!
Re: event.c assert failed
FTR: this has been resolved by fixing my own mistake. ;-) > Am 08.03.2021 um 13:59 schrieb Stefan Eissing : > > > >> Am 08.03.2021 um 13:49 schrieb Yann Ylavic : >> >> Hi Stefan, >> >>> >>> I see an crash and log entries: >>> >>> [mpm_event:error] [pid 28031:tid 4595580416] (9)Bad file descriptor: >>> AH00468: error closing socket >>> [core:crit] [pid 28031:tid 4595580416] AH00102: [Mon Mar 08 11:32:48 2021] >>> file event.c, line 565, assertion "0" failed >>> >>> when a client opens a connection and closes it right away, not sending >>> anything. My tls modules sees EOF in the in filter and returns it, setting >>> c->aborted = 1. >>> >>> I am not sure what the failed assertion is about. Is there a double close >>> of the socket? Seems I do handle the connection state in such a case not >>> quite as it is expected. >> >> Hmm, if you breakpoint on apr_socket_close(), do you see it called >> multiple times? >> (I wonder if it could be the ones in core_create_conn() if/when >> apr_socket_addr_get() fails..). > > Seems to happen on server shutdown and it looks as if the socket is in > lingering close. I try to get more info what is happening... > ... > [Mon Mar 08 13:56:49.158001 2021] [tls:trace3] [pid 78522:tid > 123145423650816] tls_filter.c(648): [client 127.0.0.1:53402] bb_dump(132): > filter_conn_output(FLUSH EOC) > [Mon Mar 08 13:56:49.158004 2021] [tls:trace2] [pid 78522:tid > 123145423650816] tls_filter.c(724): (53)Software caused connection abort: > [client 127.0.0.1:53402] tls_filter_conn_output: passed 0 bytes > [Mon Mar 08 13:56:49.162077 2021] [core:trace3] [pid 78521:tid > 123145421504512] request.c(361): [client 127.0.0.1:53403] request authorized > without authentication by access_checker_ex hook: / > [Mon Mar 08 13:56:49.273972 2021] [core:trace4] [pid 78518:tid 4427951616] > mpm_common.c(558): mpm child 78527 (gen 0/slot 3) started > [Mon Mar 08 13:56:49.274139 2021] [mpm_event:error] [pid 78522:tid > 4427951616] (9)Bad file descriptor: AH00468: error closing socket > [Mon Mar 08 13:56:49.274616 2021] [core:crit] [pid 78522:tid 4427951616] > AH00102: [Mon Mar 08 12:56:49 2021] file event.c, line 565, assertion "0" > failed > [Mon Mar 08 13:56:49.275632 2021] [mpm_event:debug] [pid 78527:tid > 123145420967936] event.c(2611): AH02471: start_threads: Using kqueue > (wakeable) > [Mon Mar 08 13:56:49.291162 2021] [core:trace4] [pid 78518:tid 4427951616] > mpm_common.c(558): mpm child 78520 (gen 0/slot 0) exited > [Mon Mar 08 13:56:49.291199 2021] [core:trace4] [pid 78518:tid 4427951616] > mpm_common.c(558): mpm child 78521 (gen 0/slot 1) exited > [Mon Mar 08 13:56:49.291213 2021] [core:notice] [pid 78518:tid 4427951616] > AH00052: child pid 78522 exit signal Abort trap (6) > [Mon Mar 08 13:56:49.291217 2021] [core:trace4] [pid 78518:tid 4427951616] > mpm_common.c(558): mpm child 78522 (gen 0/slot 2) exited > [Mon Mar 08 13:56:49.291222 2021] [core:trace4] [pid 78518:tid 4427951616] > mpm_common.c(558): mpm child 78527 (gen 0/slot 3) exited > [Mon Mar 08 13:56:49.291342 2021] [core:info] [pid 78518:tid 4427951616] > AH00096: removed PID file > /Users/sei/projects/abetterinternet/mod_tls/test/gen/apache/logs/httpd.pid > (pid=78518) > [Mon Mar 08 13:56:49.291359 2021] [mpm_event:notice] [pid 78518:tid > 4427951616] AH00491: caught SIGTERM, shutting down > [Mon Mar 08 13:56:49.301655 2021] [core:trace4] [pid 78518] > mpm_common.c(454): end of generation 0 >
Re: [VOTE] Release libapreq2-2.16
On Wed, 10 Mar 2021 at 16:07, Joe Orton wrote: > > On Wed, Mar 10, 2021 at 04:05:16PM +, Joe Orton wrote: > > Hi, I've prepared a candidate release tarball for libapreq2 v2.15 here: > > You can see I'm still an amateur at this - should read ^^ v2.16 > Many thanks for rolling out this release. Community vote: +1 Tested on Windows 10 with: - VS2013 Update 5 x86, httpd 2.2.34, perl 5.32.1, mod_perl 2.0.11 - VS2019 v16.7.3 x64, httpd 2.4.46, perl 5.33.6, mod_perl 2.0.11 One failure for both: t\apreq\cgi.t (Wstat: 2304 Tests: 31 Failed: 0) Non-zero exit status: 9 Parse errors: Bad plan. You planned 71 tests but ran 31. which is the same "Odd number of elements in hash assignment at t\apreq\cgi.t line 197." failure as I saw in 2.15. Diffing 2.15 with 2.16 looks good, in particular with the expected differences in META.yml, which I hope will fix the MetaCPAN indexing problem.
Re: [VOTE] Release libapreq2-2.16
On 3/10/21 5:05 PM, Joe Orton wrote: > Hi, I've prepared a candidate release tarball for libapreq2 v2.15 here: > > https://dist.apache.org/repos/dist/dev/httpd/libapreq/ > > This release is to address an issue blocking the upload to CPAN. > > I would like to call a VOTE over the next week to release this candidate > tarball as v2.16: > > [X] +1: It's not just good, it's good enough! > [ ] +0: Let's have a talk. > [ ] -1: There's trouble in paradise. Here's what's wrong. > Regards Rüdiger
Re: [VOTE] Release libapreq2-2.16
On Wed, Mar 10, 2021 at 04:05:16PM +, Joe Orton wrote: > Hi, I've prepared a candidate release tarball for libapreq2 v2.15 here: You can see I'm still an amateur at this - should read ^^ v2.16
[VOTE] Release libapreq2-2.16
Hi, I've prepared a candidate release tarball for libapreq2 v2.15 here: https://dist.apache.org/repos/dist/dev/httpd/libapreq/ This release is to address an issue blocking the upload to CPAN. I would like to call a VOTE over the next week to release this candidate tarball as v2.16: [ ] +1: It's not just good, it's good enough! [ ] +0: Let's have a talk. [ ] -1: There's trouble in paradise. Here's what's wrong. MD5, SHA-256, and SHA-512 checksums for the tarball are as follows: c0f4fbeee7514ea22a038933d0075f8e libapreq2-2.16.tar.gz e04c855a3ea070b8863569fbae02fe828f534ac88755b23e24d3863cc9598349 libapreq2-2.16.tar.gz aa9e751a3f0d6a9cb587aa1c5408e8d9a073560860d7f653776196fe3739516df16abe943c9cb0460cfb9b68a2d79ad651cfd5e4a30a2ca34d6dc3ced73f628c libapreq2-2.16.tar.gz The release is prepared from: https://svn.apache.org/repos/asf/httpd/apreq/branches/v2.16 at r1887420 Regards, Joe
Re: svn commit: r1887415 - in /httpd/httpd/trunk/modules/proxy: mod_proxy.h mod_proxy_ajp.c mod_proxy_balancer.c mod_proxy_hcheck.c
On 10/03/2021 12:24, Ruediger Pluem wrote: On 3/10/21 11:36 AM, jfcl...@apache.org wrote: Author: jfclere Date: Wed Mar 10 10:36:46 2021 New Revision: 1887415 URL: http://svn.apache.org/viewvc?rev=1887415&view=rev Log: Add CPING to health check logic. Modified: httpd/httpd/trunk/modules/proxy/mod_proxy.h httpd/httpd/trunk/modules/proxy/mod_proxy_ajp.c httpd/httpd/trunk/modules/proxy/mod_proxy_balancer.c httpd/httpd/trunk/modules/proxy/mod_proxy_hcheck.c Modified: httpd/httpd/trunk/modules/proxy/mod_proxy_hcheck.c URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/mod_proxy_hcheck.c?rev=1887415&r1=1887414&r2=1887415&view=diff == --- httpd/httpd/trunk/modules/proxy/mod_proxy_hcheck.c (original) +++ httpd/httpd/trunk/modules/proxy/mod_proxy_hcheck.c Wed Mar 10 10:36:46 2021 @@ -613,6 +615,39 @@ static int hc_get_backend(const char *pr return hc_determine_connection(ctx, hc, &(*backend)->addr, ptemp); } +static apr_status_t hc_check_cping(baton_t *baton) +{ +int status; +sctx_t *ctx = baton->ctx; +proxy_worker *hc = baton->hc; +proxy_conn_rec *backend = NULL; +apr_pool_t *ptemp = baton->ptemp; +request_rec *r; +apr_interval_time_t timeout; + +if (!ajp_handle_cping_cpong) { +return APR_ENOTIMPL; +} + +ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, baton->ctx->s, "HCCPING starting"); +if ((status = hc_get_backend("HCCPING", &backend, hc, ctx, baton->ptemp)) != OK) { +return backend_cleanup("HCCPING", backend, ctx->s, status); +} +if ((status = ap_proxy_connect_backend("HCCPING", backend, hc, ctx->s)) != OK) { +return backend_cleanup("HCCPING", backend, ctx->s, status); +} +r = create_request_rec(ptemp, ctx->s, baton->balancer, "CPING"); +if ((status = ap_proxy_connection_create_ex("HCCPING", backend, r)) != OK) { +return backend_cleanup("HCCPING", backend, ctx->s, status); +} +set_request_connection(r, backend->connection); + +timeout = apr_time_from_sec(10); /* 10 seconds */ I don't like hardcoded timeouts. How about hc->s->ping_timeout instead? This would require to copy the setting from the worker if present in hc_get_hcworker where we should copy the timeout field as well from my point of view. We could make a cascaded choice here then: hc->s->ping_timeout, hc->s->conn_timeout, hc->s->timeout, apr_socket_timeout_get(backend->sock) Oops I will fix that ASAP thanks, I committed too early :-( +status = ajp_handle_cping_cpong(backend->sock, r, timeout); +ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, baton->ctx->s, "HCCPING done %d", status); +return backend_cleanup("HCCPING", backend, ctx->s, status); +} + static apr_status_t hc_check_tcp(baton_t *baton) { int status; Regards Rüdiger -- Cheers Jean-Frederic
Re: svn commit: r1887415 - in /httpd/httpd/trunk/modules/proxy: mod_proxy.h mod_proxy_ajp.c mod_proxy_balancer.c mod_proxy_hcheck.c
On 3/10/21 11:36 AM, jfcl...@apache.org wrote: > Author: jfclere > Date: Wed Mar 10 10:36:46 2021 > New Revision: 1887415 > > URL: http://svn.apache.org/viewvc?rev=1887415&view=rev > Log: > Add CPING to health check logic. > > Modified: > httpd/httpd/trunk/modules/proxy/mod_proxy.h > httpd/httpd/trunk/modules/proxy/mod_proxy_ajp.c > httpd/httpd/trunk/modules/proxy/mod_proxy_balancer.c > httpd/httpd/trunk/modules/proxy/mod_proxy_hcheck.c > > Modified: httpd/httpd/trunk/modules/proxy/mod_proxy_hcheck.c > URL: > http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/mod_proxy_hcheck.c?rev=1887415&r1=1887414&r2=1887415&view=diff > == > --- httpd/httpd/trunk/modules/proxy/mod_proxy_hcheck.c (original) > +++ httpd/httpd/trunk/modules/proxy/mod_proxy_hcheck.c Wed Mar 10 10:36:46 > 2021 > @@ -613,6 +615,39 @@ static int hc_get_backend(const char *pr > return hc_determine_connection(ctx, hc, &(*backend)->addr, ptemp); > } > > +static apr_status_t hc_check_cping(baton_t *baton) > +{ > +int status; > +sctx_t *ctx = baton->ctx; > +proxy_worker *hc = baton->hc; > +proxy_conn_rec *backend = NULL; > +apr_pool_t *ptemp = baton->ptemp; > +request_rec *r; > +apr_interval_time_t timeout; > + > +if (!ajp_handle_cping_cpong) { > +return APR_ENOTIMPL; > +} > + > +ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, baton->ctx->s, "HCCPING > starting"); > +if ((status = hc_get_backend("HCCPING", &backend, hc, ctx, > baton->ptemp)) != OK) { > +return backend_cleanup("HCCPING", backend, ctx->s, status); > +} > +if ((status = ap_proxy_connect_backend("HCCPING", backend, hc, ctx->s)) > != OK) { > +return backend_cleanup("HCCPING", backend, ctx->s, status); > +} > +r = create_request_rec(ptemp, ctx->s, baton->balancer, "CPING"); > +if ((status = ap_proxy_connection_create_ex("HCCPING", backend, r)) != > OK) { > +return backend_cleanup("HCCPING", backend, ctx->s, status); > +} > +set_request_connection(r, backend->connection); > + > +timeout = apr_time_from_sec(10); /* 10 seconds */ I don't like hardcoded timeouts. How about hc->s->ping_timeout instead? This would require to copy the setting from the worker if present in hc_get_hcworker where we should copy the timeout field as well from my point of view. We could make a cascaded choice here then: hc->s->ping_timeout, hc->s->conn_timeout, hc->s->timeout, apr_socket_timeout_get(backend->sock) > +status = ajp_handle_cping_cpong(backend->sock, r, timeout); > +ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, baton->ctx->s, "HCCPING done > %d", status); > +return backend_cleanup("HCCPING", backend, ctx->s, status); > +} > + > static apr_status_t hc_check_tcp(baton_t *baton) > { > int status; Regards Rüdiger
Re: svn commit: r1887415 - in /httpd/httpd/trunk/modules/proxy: mod_proxy.h mod_proxy_ajp.c mod_proxy_balancer.c mod_proxy_hcheck.c
On 10/03/2021 11:36, jfcl...@apache.org wrote: Modified: httpd/httpd/trunk/modules/proxy/mod_proxy_balancer.c URL:http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/mod_proxy_balancer.c?rev=1887415&r1=1887414&r2=1887415&view=diff == --- httpd/httpd/trunk/modules/proxy/mod_proxy_balancer.c (original) +++ httpd/httpd/trunk/modules/proxy/mod_proxy_balancer.c Wed Mar 10 10:36:46 2021 @@ -1087,6 +1087,8 @@ static void push2table(const char *input } ap_unescape_url(key); ap_unescape_url(val); +/* hcuri, worker name, balancer name, at least are escaped when building the form, so twice */ +ap_unescape_url(val); if (allowed == NULL) { /* allow all */ apr_table_set(params, key, val); I noted the problem with worker URL: ajp://[0:0:0:0:0:0:0:1]:8081 In fact the worker encoded in the form to: So it get encoded twice, as well as hcuri and balancer name. Does it make more sense to remove the encoding while building the form? -- Cheers Jean-Frederic
Re: svn commit: r1887390 - /httpd/httpd/branches/2.4.x/modules/http/http_etag.c
Ha! Misery loves company, it seems... ;-) More constructive: with modern computers that fast, should we add a dependency of log-tags to the default build targets? or at least "install" or somesuch? The machines are made to serve! > Am 09.03.2021 um 19:15 schrieb yla...@apache.org: > > Author: ylavic > Date: Tue Mar 9 18:15:22 2021 > New Revision: 1887390 > > URL: http://svn.apache.org/viewvc?rev=1887390&view=rev > Log: > Fix APLOGNO(10258) missing from r1887384. > > Modified: >httpd/httpd/branches/2.4.x/modules/http/http_etag.c > > Modified: httpd/httpd/branches/2.4.x/modules/http/http_etag.c > URL: > http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/modules/http/http_etag.c?rev=1887390&r1=1887389&r2=1887390&view=diff > == > --- httpd/httpd/branches/2.4.x/modules/http/http_etag.c (original) > +++ httpd/httpd/branches/2.4.x/modules/http/http_etag.c Tue Mar 9 18:15:22 > 2021 > @@ -133,7 +133,7 @@ static char *make_digest_etag(request_re > } > > if ((status = apr_file_seek(fd, APR_END, &len)) != APR_SUCCESS) { > -ap_log_rerror(APLOG_MARK, APLOG_ERR, status, r, APLOGNO() > +ap_log_rerror(APLOG_MARK, APLOG_ERR, status, r, APLOGNO(10258) > "Make etag: could not seek"); > if (er->pathname) { > apr_file_close(fd); > >