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

  1. 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
    
  2. 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
    
  3. Restart the web server (or restart httpd under direct root login without sudo, see KB124037 for possible effects).

  4. 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.

Internal content