Symptoms
A website cannot be published with the following error displayed in the control panel:
Unable to connect to Parallels Presence Builder server. Please contact the server administrator.
The error appears after waiting for 5 minutes (by default) or for ScriptTTL value period, if modified according to this article. The publishing progress bar flows till 100% at the same time, before showing the error.
Attaching strace
to the sw-engine-php
process on the serving web server shows that the process is stuck on writing data:
[root@web1 ~]# ps aux | grep sw-eng
b100257 258389 0.6 9.6 284980 97780 ? S 22:47 0:04 /var/www/cgi-bin/sw-engine/php
[root@web1 ~]# strace -vfp 258389
Process 258389 attached
write(2, "2bbf4417-ce35-bae6-55ad-b98fad15"...
Publishing succeeds if several pages are removed from the website.
No errors are logged into Apache or Presence Builder log files.
Cause
Undefined PHP error_log directive results in Presence Builder process attempting to write to non-existence space, filling up pipe buffer size, which stalls the operation.
Resolution
In case
/var/www/cgi-bin/sw-engine/php.ini
is linked to/etc/php.ini
, unlink it:[root@web1 ~]# ls -alh /var/www/cgi-bin/sw-engine/php.ini lrwxrwxrwx 1 root root 12 Mar 11 2016 /var/www/cgi-bin/sw-engine/php.ini -> /etc/php.ini [root@web1 ~]# unlink /var/www/cgi-bin/sw-engine/php.ini [root@web1 ~]# cp -arf /etc/php.ini /var/www/cgi-bin/sw-engine/php.ini
Edit the file and define explicit
error_log
parameter, e.g. set it to/tmp/sw_php_error_log
.[root@web1 ~]# grep error_log /var/www/cgi-bin/sw-engine/php.ini error_log = /tmp/sw_php_error_log
Restart the web server (or restart httpd under direct root login without sudo, see KB124037 for possible effects).
- Try to publish the websites - publishing should work fine.
Note: /tmp
directory is normally world-writeable, so there is no need to edit file permissions. But for a custom location, the log file should be writeable by pemcln group.