1

Installed Plone 4.2.3 as Stand-Alone Zope Instance via unified installer on a machine running CentOS release 5.9. That machine's local IP address is 192.168.1.10. Only change I made in buildout.cfg is:

http-address = 192.168.1.10:8080

then successfully ran ./bin/buildout from /usr/local/Plone-4.2.3/zinstance/. No other process listens on port 8080. Started Plone successfully:

# pwd; date; /usr/bin/sudo -u plone /usr/local/Plone-4.2.3/zinstance/bin/plonectl start
/usr/local/Plone-4.2.3
Sun Feb 24 14:12:06 EST 2013
instance: . .
daemon process started, pid=2687

Problem is ZServer stops and another starts approximately every 25 to 30 seconds, and so is unuseable. .../zinstance/var/log/instance.log shows:

------
2013-02-24T14:12:31 INFO ZServer HTTP server started at Sun Feb 24 14:12:31 2013
    Hostname: xxxxx
    Port: 8080
------
2013-02-24T14:13:11 INFO ZServer HTTP server started at Sun Feb 24 14:13:11 2013
    Hostname: xxxxx
    Port: 8080
------
2013-02-24T14:13:39 INFO ZServer HTTP server started at Sun Feb 24 14:13:39 2013
    Hostname: xxxxx
    Port: 8080
------
2013-02-24T14:14:09 INFO ZServer HTTP server started at Sun Feb 24 14:14:09 2013
    Hostname: xxxxx
    Port: 8080

and more such entries are continuously added to the log file.

In .../zinstance/parts/instance/etc/zope.conf I then changed eventlog level from INFO to ALL and set "zserver-threads 1" then stopped and started Plone.

Again ZServer dies after 25 to 30 seconds, another ZServer starts, it dies after 25-30 seconds, etc. All entries in instance.log are DEBUG level. For a given ZServer the last log entry is dated approx. 19 seconds after its "INFO ZServer HTTP server started" entry. Approx. 8 seconds later the next entry is another "INFO ZServer HTTP server started".

Question: why the heck is ZServer process dying?


Ran server if fg mode and last few errors before ZServer died were:

zope.configuration.xmlconfig.ZopeXMLConfigurationError: File "/usr/local/Plone-4.2.3/zinstance/parts/instance/etc/site.zcml", line 16.2-16.23

ZopeXMLConfigurationError: File "/usr/local/Plone-4.2.3/buildout-cache/eggs/Products.CMFPlone-4.2.3-py2.7.egg/Products/CMFPlone/configure.zcml", line 102.4-106.10

ZopeXMLConfigurationError: File "/usr/local/Plone-4.2.3/buildout-cache/eggs/plone.app.theming-1.0.4-py2.7.egg/plone/app/theming/configure.zcml", line 19.4-19.34

ZopeXMLConfigurationError: File "/usr/local/Plone-4.2.3/buildout-cache/eggs/plone.app.theming-1.0.4-py2.7.egg/plone/app/theming/browser/configure.zcml", line 12.4-18.10

ImportError: /usr/local/Plone-4.2.3/buildout-cache/eggs/lxml-2.3.4-py2.7-linux-i686.egg/lxml/etree.so: undefined symbol: clock_gettime

The clock_gettime error is apparently related to dev plone org tickets:

13426 (lxml error: undefined symbol: clock_gettime with Plone-4.2 ...

and

13409 (Problem installing Plone 4.2.3 with UnifiedInstaller) – Plone ...

Checked /usr/local/Plone-4.2.3/buildout-cache/eggs/lxml-2.3.4-py2.7-linux-i686.egg/lxml/etree.so with nm and only occurence of clock_gettime in output was:

0008a130 T callLookupFallback U clock_gettime U close

"T" The symbol is in the text (code) section. "U" The symbol is undefined.

Google search for (linux clock_gettime) found

https://bbs.archlinux.org/viewtopic.php?id=88108 and

Ubuntu Linux C++ error: undefined reference to 'clock_gettime' and 'clock_settime'

both of which say adding -lrt to the (end of the) list of libraries you link to will fix the problem. I looked at Plone-4.2.3-UnifiedInstaller/base_skeleton/lxml_static.cfg. That kind of make file isn't familiar to me. Not sure what to do next.

Community
  • 1
  • 1
  • 1
    My favourite is wrong permissions on the blobstorage or filestorage. Do you get more useful info if you start the server in debug mode (i.e. `bin/plonectl fg`)? – Ulrich Schwarz Feb 25 '13 at 09:32
  • Please run the server in `fg` mode, and tell us what is printed on the console: `/usr/bin/sudo -u plone /usr/local/Plone-4.2.3/zinstance/bin/plonectl start`. – Martijn Pieters Feb 25 '13 at 11:49
  • @pete johnson: I wonder, if including the IP in the 'http-address'-variable, instead of only naming the port as usual, could be a problem. Is there a compelling reason for doing this? – Ida Feb 26 '13 at 09:31

1 Answers1

3

Pick up the latest version of the 4.2.x Unified Installer (4.2.4 at the time of this writing), which has a fix for the libxml2 build on CentOS. Then, use the "--static-lxml" argument on the ./install.sh command line.

SteveM
  • 6,058
  • 1
  • 16
  • 20