cfs_* methods cann now die (rightfully so) when the IPCC endpoint is not connected, or another grave IPCC error arised.
As we did not catch those problems in the RPCEnvironments init_request method, which loads the user config, this got propagated to the anyevents auth_handler call in its unshift_read_header method where then all errors where processed in the same way => with an unauthorized response logging an logged in user out. So catch this error and raise an internal server errror exception instead. Anyevent needs some minor modifiaction in a separate patch to handle PVE::Exceptions correctly, so this is the partial fix for bug #1589 Signed-off-by: Thomas Lamprecht <t.lampre...@proxmox.com> --- PVE/HTTPServer.pm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/PVE/HTTPServer.pm b/PVE/HTTPServer.pm index bbea3198..9a02e799 100755 --- a/PVE/HTTPServer.pm +++ b/PVE/HTTPServer.pm @@ -7,7 +7,7 @@ use PVE::SafeSyslog; use PVE::INotify; use PVE::Tools; use PVE::APIServer::AnyEvent; -use PVE::Exception qw(raise_param_exc); +use PVE::Exception qw(raise_param_exc raise); use PVE::RPCEnvironment; use PVE::AccessControl; @@ -61,7 +61,8 @@ sub auth_handler { $rpcenv->set_language('C'); $rpcenv->set_client_ip($peer_host); - $rpcenv->init_request(); + eval { $rpcenv->init_request() }; + raise("RPCEnvironment init request failed: $@\n") if $@; my $require_auth = 1; -- 2.11.0 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel