Bug #11718
closedXMLRPC Client does not honor its default timeout value
100%
Description
I have traced an XMLRPC problem where I got a systematic mysterious error when starting a sync between my firewalls (on a dedicated crossover link) :
"A communications error occurred while attempting to call XMLRPC method host_firmware_version: @ 2021-03-19 16:30:45"
First, it turns out that the XMLRPC exception is not properly printed out which did not help to diagnose the problem. I made this simple change in xmlrpc_client.php :
- $this->error = "A communications error occurred while attempting to call XMLRPC method {$method}: " . $errormsg[1]; + $this->error = "A communications error occurred while attempting to call XMLRPC method {$method}: " . $e->getMessage();
With this patch things started to get more helpful, the error message turned into :
"A communications error occurred while attempting to call XMLRPC method restore_config_section: Request timed out due to default_socket_timeout php.ini setting"
It turns out that php.ini has no 'default_socket_timeout', and the internal default is 60s. As a quick test I added default_socket_timeout=240
in '/etc/rc.php_ini_setup' then restarted PHP-FPM. My sync finally worked, because it turned out that it took 107s to sync (I have 253 interfaces, maybe that's related).
I think that the XMLRPC client should at least call ini_set('default_socket_timeout', $timeout)
before invoking a remote method in order for it to honour its default 240s $timeout.
Updated by Viktor Gurov over 3 years ago
Updated by Jim Pingle over 3 years ago
- Status changed from New to Pull Request Review
- Target version set to CE-Next
Updated by Jim Pingle over 3 years ago
- Subject changed from xmlrpc_client.php cannot honor its 240s default timeout because default_socket_timeout is not defined and defaults to 60s (with patch) to XMLRPC Client does not honor its default timeout value
Simplifying subject for release notes.
Updated by Anonymous over 3 years ago
- Status changed from Pull Request Review to Feedback
Updated by Viktor Gurov over 3 years ago
- % Done changed from 0 to 100
Applied in changeset 4f26f187d8cc5028646e86fbb95ce91552d062c2.
Updated by Jim Pingle over 3 years ago
- Target version changed from CE-Next to 2.5.2
Updated by Marcos M over 3 years ago
- Status changed from Feedback to Resolved
This fix has resolved a couple of different setups where the 60s timeout was being hit. Afterwards, the xmlrpc calls completed successfully.
Marking as resolved.