• Sebastien Robin's avatar
    Commit fix done by Julien and Leonardo · c663257f
    Sebastien Robin authored
    Activities could read from the ZODB an state older than the one
    that caused the activity to be created, if:
    1.Zope client node (node A) processing an activity  message is different
      than the one that created the activity (node B),
    2.The object cache for node A contains objects concerning the activity
      message (or its container)
    3.The node A hasn't yet received the invalidation message from the ZEO
      server, for instance, if its still on the network layer (kernel buffers,
      routers in between, etc...)
    
    The simplest fix for this issue is sending a synchronous message to the
    ZEO server before the beginning of a transaction. This message will act
    like a “network barrier”, making sure that any invalidation messages
    sent before that point from the ZEO server are already received, and the
    transaction can begin with an “updated enough” state.
    
    Additional note from Yoshinori : This patch must be proposed to zope
    developpers as soon as possible and see with them if this way is the
    best.
    
    git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@39710 20353a03-c40f-0410-a6d1-a30d3c3de9de
    c663257f
SQLBase.py 22.1 KB