tmp
Plone
zope
zeoserver
ZPublisher

How to fix StorageTrasactionError on Plone 4.x

Error Symptom

Fail to edit plone page with error
2017-12-18_113712.jpg

  • log files
var/client1/event.log
2017-12-18T11:01:30 ERROR Zope.SiteErrorLog 1513562490.630.700546227892 atct_edit
Traceback (innermost last):
  Module ZPublisher.Publish, line 146, in publish
  Module Zope2.App.startup, line 301, in commit
  Module transaction._manager, line 89, in commit
  Module transaction._transaction, line 329, in commit
  Module transaction._transaction, line 446, in _commitResources
  Module ZODB.Connection, line 781, in tpc_vote
  Module ZEO.ClientStorage, line 1097, in tpc_vote
  Module ZEO.ServerStub, line 249, in vote
  Module ZEO.zrpc.connection, line 768, in call
StorageTransactionError: (None, 139982367958480)
var/zeoserver/zeoserver.log
2017-12-18T11:04:01 (127.0.0.1:35101) tpc_begin() raised exception: [Errno 13] Permission denied: '/tmp/tmpohXKVh.comit-log'
Traceback (most recent call last):
  File "eggs/ZODB3-3.10.5-py2.7-linux-x86_64.egg/ZEO/zrpc/connection.py", line 468, in handle_request
    ret = meth(*args)
  File "eggs/ZODB3-3.10.5-py2.7-linux-x86_64.egg/ZEO/StorageServer.py", line 385, in tpc_begin
    self.txnlog = CommitLog()
  File "eggs/ZODB3-3.10.5-py2.7-linux-x86_64.egg/ZEO/StorageServer.py", line 1535, in __init__
    self.file = tempfile.TemporaryFile(suffix=".comit-log")
  File "/usr/lib64/python2.7/tempfile.py", line 489, in TemporaryFile
    (fd, name) = _mkstemp_inner(dir, prefix, suffix, flags)
  File "/usr/lib64/python2.7/tempfile.py", line 239, in _mkstemp_inner
    fd = _os.open(file, flags, 0600)
OSError: [Errno 13] Permission denied: '/tmp/tmpohXKVh.comit-log'

2017-12-18T11:04:01 (127.0.0.1:35101) Asynchronous call raised exception: <ManagedServerConnection ('127.0.0.1', 35101)>
Traceback (most recent call last):
  File "eggs/ZODB3-3.10.5-py2.7-linux-x86_64.egg/ZEO/zrpc/connection.py", line 468, in handle_request
    ret = meth(*args)
  File "eggs/ZODB3-3.10.5-py2.7-linux-x86_64.egg/ZEO/StorageServer.py", line 385, in tpc_begin
    self.txnlog = CommitLog()
  File "eggs/ZODB3-3.10.5-py2.7-linux-x86_64.egg/ZEO/StorageServer.py", line 1535, in __init__
    self.file = tempfile.TemporaryFile(suffix=".comit-log")
  File "/usr/lib64/python2.7/tempfile.py", line 489, in TemporaryFile
    (fd, name) = _mkstemp_inner(dir, prefix, suffix, flags)
  File "/usr/lib64/python2.7/tempfile.py", line 239, in _mkstemp_inner
    fd = _os.open(file, flags, 0600)
OSError: [Errno 13] Permission denied: '/tmp/tmpohXKVh.comit-log'

2017-12-18T11:04:01 (127.0.0.1:35101) no current transaction: storea()

2017-12-18T11:04:01 (127.0.0.1:35101) storea() raised exception: (None, 139982355137104)
Traceback (most recent call last):
  File "eggs/ZODB3-3.10.5-py2.7-linux-x86_64.egg/ZEO/zrpc/connection.py", line 468, in handle_request
    ret = meth(*args)
  File "eggs/ZODB3-3.10.5-py2.7-linux-x86_64.egg/ZEO/StorageServer.py", line 529, in storea
    self._check_tid(id, exc=StorageTransactionError)
  File "eggs/ZODB3-3.10.5-py2.7-linux-x86_64.egg/ZEO/StorageServer.py", line 202, in _check_tid
    raise exc(None, tid)
StorageTransactionError: (None, 139982355137104)

2017-12-18T11:04:01 (127.0.0.1:35101) Asynchronous call raised exception: <ManagedServerConnection ('127.0.0.1', 35101)>
Traceback (most recent call last):
  File "eggs/ZODB3-3.10.5-py2.7-linux-x86_64.egg/ZEO/zrpc/connection.py", line 468, in handle_request
    ret = meth(*args)
  File "eggs/ZODB3-3.10.5-py2.7-linux-x86_64.egg/ZEO/StorageServer.py", line 529, in storea
    self._check_tid(id, exc=StorageTransactionError)
  File "eggs/ZODB3-3.10.5-py2.7-linux-x86_64.egg/ZEO/StorageServer.py", line 202, in _check_tid
    raise exc(None, tid)
StorageTransactionError: (None, 139982355137104)

How to fix

simply set appropritate owner and permission on /tmp

# chmod 1777 /tmp
# chown root.root /tmp

Done! :santa: