* [pve-devel] [PATCH proxmox-acme 0/1] Close the acme standalone connection after sending a response
@ 2020-09-30 14:09 Daniel Berteaud
2020-09-30 14:09 ` [pve-devel] [PATCH proxmox-acme 1/1] " Daniel Berteaud
0 siblings, 1 reply; 5+ messages in thread
From: Daniel Berteaud @ 2020-09-30 14:09 UTC (permalink / raw)
To: pve-devel
Close connection of the standalone ACME listener after sending a response
so next requests can be handled
Fixes #3048
Daniel Berteaud (1):
Close the acme standalone connection after sending a response
src/PVE/ACME/StandAlone.pm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--
2.26.2
^ permalink raw reply [flat|nested] 5+ messages in thread
* [pve-devel] [PATCH proxmox-acme 1/1] Close the acme standalone connection after sending a response
2020-09-30 14:09 [pve-devel] [PATCH proxmox-acme 0/1] Close the acme standalone connection after sending a response Daniel Berteaud
@ 2020-09-30 14:09 ` Daniel Berteaud
2020-10-01 9:15 ` Fabian Grünbichler
0 siblings, 1 reply; 5+ messages in thread
From: Daniel Berteaud @ 2020-09-30 14:09 UTC (permalink / raw)
To: pve-devel
Without this, the first req get a response, but not the next ones as the listeners stays busy
Fixes #3048
Signed-off-by: Daniel Berteaud <daniel@firewall-services.com>
---
src/PVE/ACME/StandAlone.pm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/PVE/ACME/StandAlone.pm b/src/PVE/ACME/StandAlone.pm
index 0e2ece6..552c35c 100644
--- a/src/PVE/ACME/StandAlone.pm
+++ b/src/PVE/ACME/StandAlone.pm
@@ -55,8 +55,8 @@ sub setup {
} else {
$c->send_error(404, 'Not found.')
}
+ $c->close();
}
- $c->close();
$c = undef;
}
}
--
2.26.2
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [pve-devel] [PATCH proxmox-acme 1/1] Close the acme standalone connection after sending a response
2020-09-30 14:09 ` [pve-devel] [PATCH proxmox-acme 1/1] " Daniel Berteaud
@ 2020-10-01 9:15 ` Fabian Grünbichler
2020-10-01 10:55 ` Daniel Berteaud
0 siblings, 1 reply; 5+ messages in thread
From: Fabian Grünbichler @ 2020-10-01 9:15 UTC (permalink / raw)
To: Proxmox VE development discussion
On September 30, 2020 4:09 pm, Daniel Berteaud wrote:
> Without this, the first req get a response, but not the next ones as the listeners stays busy
> Fixes #3048
>
> Signed-off-by: Daniel Berteaud <daniel@firewall-services.com>
> ---
> src/PVE/ACME/StandAlone.pm | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/PVE/ACME/StandAlone.pm b/src/PVE/ACME/StandAlone.pm
> index 0e2ece6..552c35c 100644
> --- a/src/PVE/ACME/StandAlone.pm
> +++ b/src/PVE/ACME/StandAlone.pm
> @@ -55,8 +55,8 @@ sub setup {
> } else {
> $c->send_error(404, 'Not found.')
> }
> + $c->close();
I think this is not right - we only end up looping/blocking on
get_request if the client requested keep alive, in which case the server
should obviously not close the connection..
I guess we have to fork (up to some limit) on accept()? it's obviously
not ideal that anybody can race with the LE validation attempts and
block the single request handler ;)
maybe you can change something in your apache config to close the
connection (or rather, to propagate the connection closing from the
actual client)? it looks like this can only affect you if
- your apache proxy keeps the connection open
- your apache proxy does not re-use the open connection
the multi-perspective validation by LE is not that new, and it works
when LE talks directly to the standalone plugin...
> }
> - $c->close();
> $c = undef;
> }
> }
> --
> 2.26.2
>
>
>
> _______________________________________________
> pve-devel mailing list
> pve-devel@lists.proxmox.com
> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
>
>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [pve-devel] [PATCH proxmox-acme 1/1] Close the acme standalone connection after sending a response
2020-10-01 9:15 ` Fabian Grünbichler
@ 2020-10-01 10:55 ` Daniel Berteaud
2020-10-01 11:55 ` Fabian Grünbichler
0 siblings, 1 reply; 5+ messages in thread
From: Daniel Berteaud @ 2020-10-01 10:55 UTC (permalink / raw)
To: Proxmox VE development discussion
----- Le 1 Oct 20, à 11:15, Fabian Grünbichler f.gruenbichler@proxmox.com a écrit :
> On September 30, 2020 4:09 pm, Daniel Berteaud wrote:
>> Without this, the first req get a response, but not the next ones as the
>> listeners stays busy
>> Fixes #3048
>>
>> Signed-off-by: Daniel Berteaud <daniel@firewall-services.com>
>> ---
>> src/PVE/ACME/StandAlone.pm | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/src/PVE/ACME/StandAlone.pm b/src/PVE/ACME/StandAlone.pm
>> index 0e2ece6..552c35c 100644
>> --- a/src/PVE/ACME/StandAlone.pm
>> +++ b/src/PVE/ACME/StandAlone.pm
>> @@ -55,8 +55,8 @@ sub setup {
>> } else {
>> $c->send_error(404, 'Not found.')
>> }
>> + $c->close();
>
> I think this is not right - we only end up looping/blocking on
> get_request if the client requested keep alive, in which case the server
> should obviously not close the connection..
>
> I guess we have to fork (up to some limit) on accept()? it's obviously
> not ideal that anybody can race with the LE validation attempts and
> block the single request handler ;)
Indeed, having a few more handlers could limit the risk of this happening.
>
> maybe you can change something in your apache config to close the
> connection (or rather, to propagate the connection closing from the
> actual client)? it looks like this can only affect you if
> - your apache proxy keeps the connection open
> - your apache proxy does not re-use the open connection
You're right, the issue was on my rev proxy, which didn't re-used keep-alived connexions as it should (it was an old httpd 2.2.3 on a CentOS 5 box, on which I had no control).
Switching my setup so it now runs behind a nginx proxypass works normaly without any modification
Sorry for not having looked at this more closely before posting ;-)
Cheers,
Daniel
--
[ https://www.firewall-services.com/ ]
Daniel Berteaud
FIREWALL-SERVICES SAS, La sécurité des réseaux
Société de Services en Logiciels Libres
Tél : +33.5 56 64 15 32
Matrix: @dani:fws.fr
[ https://www.firewall-services.com/ | https://www.firewall-services.com ]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [pve-devel] [PATCH proxmox-acme 1/1] Close the acme standalone connection after sending a response
2020-10-01 10:55 ` Daniel Berteaud
@ 2020-10-01 11:55 ` Fabian Grünbichler
0 siblings, 0 replies; 5+ messages in thread
From: Fabian Grünbichler @ 2020-10-01 11:55 UTC (permalink / raw)
To: Proxmox VE development discussion
On October 1, 2020 12:55 pm, Daniel Berteaud wrote:
> ----- Le 1 Oct 20, à 11:15, Fabian Grünbichler f.gruenbichler@proxmox.com a écrit :
>
>> On September 30, 2020 4:09 pm, Daniel Berteaud wrote:
>>> Without this, the first req get a response, but not the next ones as the
>>> listeners stays busy
>>> Fixes #3048
>>>
>>> Signed-off-by: Daniel Berteaud <daniel@firewall-services.com>
>>> ---
>>> src/PVE/ACME/StandAlone.pm | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/src/PVE/ACME/StandAlone.pm b/src/PVE/ACME/StandAlone.pm
>>> index 0e2ece6..552c35c 100644
>>> --- a/src/PVE/ACME/StandAlone.pm
>>> +++ b/src/PVE/ACME/StandAlone.pm
>>> @@ -55,8 +55,8 @@ sub setup {
>>> } else {
>>> $c->send_error(404, 'Not found.')
>>> }
>>> + $c->close();
>>
>> I think this is not right - we only end up looping/blocking on
>> get_request if the client requested keep alive, in which case the server
>> should obviously not close the connection..
>>
>> I guess we have to fork (up to some limit) on accept()? it's obviously
>> not ideal that anybody can race with the LE validation attempts and
>> block the single request handler ;)
>
> Indeed, having a few more handlers could limit the risk of this happening.
>
>>
>> maybe you can change something in your apache config to close the
>> connection (or rather, to propagate the connection closing from the
>> actual client)? it looks like this can only affect you if
>> - your apache proxy keeps the connection open
>> - your apache proxy does not re-use the open connection
>
> You're right, the issue was on my rev proxy, which didn't re-used keep-alived connexions as it should (it was an old httpd 2.2.3 on a CentOS 5 box, on which I had no control).
> Switching my setup so it now runs behind a nginx proxypass works normaly without any modification
>
> Sorry for not having looked at this more closely before posting ;-)
no worries. I retitled the bug you filed to track the actual issue -
feel free to write a patch for it anyway ;)
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2020-10-01 11:56 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-30 14:09 [pve-devel] [PATCH proxmox-acme 0/1] Close the acme standalone connection after sending a response Daniel Berteaud
2020-09-30 14:09 ` [pve-devel] [PATCH proxmox-acme 1/1] " Daniel Berteaud
2020-10-01 9:15 ` Fabian Grünbichler
2020-10-01 10:55 ` Daniel Berteaud
2020-10-01 11:55 ` Fabian Grünbichler
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox