Client has seen newer transactions than server!

Hi,
I have the following setup:

- Plone 5.2.0
- Zeoserver with four zeoclients on the same server
- Python 3.7.5

From a week till now, when I try to restart the zope clients, some of them (one or two, depending on the days) throws an error and can't connect to the server:

    Traceback (most recent call last):
      File "/Users/rob/Development/plonesiteerror/api/eggs/ZEO-5.2.1-py3.7.egg/ZEO/asyncio/client.py", line 496, in verify
        server_tid, cache_tid, protocol)
    AssertionError: ('Server behind client, %r < %r, %s', b'\x03\xd4sYA\x0f\x94"', b'\x03\xd4t\xa5u\xcb\xd8\xaa', Protocol(('127.0.0.1', 8002), '1', False))
    2019-12-13 16:44:32,622 CRITICA [ZEO.asyncio.client:494][zeostorage zeo client networking thread] Client has seen newer transactions than server!
    2019-12-13 16:44:32,622 ERROR   [ZEO.asyncio.client:461][zeostorage zeo client networking thread] Registration or cache validation failed, ('Server behind client, %r < %r, %s', b'\x03\xd4sYA\x0f\x94"', b'\x03\xd4t\xa5u\xcb\xd8\xaa', Protocol(('127.0.0.1', 8002), '1', False))

I have tried to copy the Data.fs to another server, and the error persists, with the same zopeclients raising the error and the other two are connecting without problems, neither error logs.

I haven't changed anything on the server, and the problem appeared one week ago.
The buildout config for all the 4 instances is the same, but only two only (sometimes only one) shows the problem.

I followed the traceback, and looked at the file :

/api/eggs/ZEO-5.2.1-py3.7.egg/ZEO/asyncio/client.py", line 496

The line is related to verifying cache, if you comment that comprobation, then the zopeclients starts well,
and if you give again the file to the original code (without commenting cache comprobation), the system doesn't show the error again, and works well.

For now we have done that, but I know that... THIS IS NOT A SOLUTION.

Anyone has found the same problem, and knows how to solve that?

I have found a similar post here but with the difference that we can't start the instances:

https://community.plone.org/t/problems-with-zodb-transactions-client-has-seen-newer-transactions-than-server/7348

Thanks in advance.

I remember there was another post with the same title once:

I only saw this message once when I restored a backup (ZODB). I also was not able to start my ZEO instance - unless I deleted the zec file.

see https://github.com/zopefoundation/ZEO/issues/142

1 Like

Thanks for the info. But the problem is that we don't have any zec file, and we are unable to start in any way the ZEO client. We tried to move the Data.fs to another server and the problem persists.

1 Like

Yes, I saw it. The difference is that we can't start the ZEO client in any way.

Some random thoughts:

  • does zeserver have any different eggs in python path than clients? I mean, are they using the same eggs or some differ?
  • can you print current time in both client and server and see if they differ in some way? (check also timezone)
  • can you post zope.conf from each client and zeo.conf from the server?
  • did you read this? Problems with zodb transactions: Client has seen newer transactions than server

After looking deeper and looking for some solution, and with the same eggs in all instances, the same clock with no differ time, the only real solution was to delete the zec files found in /tmp folder.
Thanks for all the info

1 Like