Hi everyone,
we have recently updated our system from Plone 4.3.20 -> Plone 5.2.3 (still under Python 2.7.x) and used ZPublisher
until now.
However, due to an increased number of database conflict errors that occurred on the UI, we decided to change to waitress
and it seems that it works a lot better with the conflict resolution and is much faster!
But how can this be that it is such a difference between these two servers with regard to conflict resolution?
This is an error that occured very often to us under ZPublisher
that also popped up to the UI and that completely vanished now since we changed to waitress
:
Traceback (innermost last):
Module ZServer.ZPublisher.Publish, line 151, in publish
Module ZServer.ZPublisher.Publish, line 393, in commit
Module transaction._manager, line 257, in commit
Module transaction._manager, line 135, in commit
Module transaction._transaction, line 282, in commit
Module transaction._transaction, line 273, in commit
Module transaction._transaction, line 465, in _commitResources
Module transaction._transaction, line 442, in _commitResources
Module ZODB.Connection, line 692, in tpc_vote
Module ZEO.ClientStorage, line 752, in tpc_vote
Module ZEO.asyncio.client, line 764, in call
Module ZEO.asyncio.client, line 743, in call
Module ZEO.asyncio.client, line 756, in wait_for_result
Module concurrent.futures._base, line 462, in result
Module concurrent.futures._base, line 414, in __get_result
ConflictError: database conflict error (oid 0x0861df8c, class BTrees.IOBTree.IOBucket, serial this txn started with 0x03dd91b7edf040bb 2021-01-25 09:27:55.766833, serial currently committed 0x03dd91bf28989b22 2021-01-25 09:35:09.514715)
I always thought that conflict resolution is part of the transaction manager which tries 3 times until it raises an error...
Maybe someone can bring some light for me with this behavior.
Thanks a lot
Ramon