> Hi, > For quite some time I see messages like this in my z3.log: > > 2010-03-02T16:27:14 WARNING ZopePublication Competing writes/reads > at > /BSPSite/act/++vh++http:zis.act.at:80/bankneu/++/images/sponsor_logo.png: > database conflict error (oid 0x063f, class BTrees.OOBTree.OOBucket, serial > this txn started with 0x038484dc7d5ac044 2010-03-02 14:52:29.379960, > serial > currently committed 0x038484ff3c6b5455 2010-03-02 15:27:14.160763) > > I followed an advice from the zope-dev list and added some debug messages > in > ZODB.Connection.py where the objects are registered for writing. > > The following debug messages (I print the key/values of the object in > question) occur before and after the database conflict error: > > ------------------- > 2010-03-02T16:27:14 DEBUG zbsp keys: > ['6ZZzgjNK0p.bIIlruXb4JkDo-T0J-XipPcVFGtcj0 > LH6dMdI9akYvg', ......... , '7MmOPQOlkAHoa3T > nydH9IIgKBqoVyn3Q.yH6OXJeLj7epObIy3M5Lg'] > ----------- > 2010-03-02T16:27:14 DEBUG zbsp values: [<zope.session.session.SessionData > object at 0x43723bec>, <zope.session.session.SessionData object at > 0x4372356c>, <zope.session.session.SessionData object at 0x437233ec>, > ......... > <zope.session.session.SessionData object at 0x436b586c>, > <zope.session.session.SessionData object at 0x436b532c>, > <zope.session.session.SessionData object at > 0x43640b6c>,<zope.session.session.SessionData object at 0x436b572c>] > ------------------- > > So it seems these are the session data containers. > > I wonder why they are written? Perhaps this happens when somebody else is > logging into the system (so a new session is added) and others are > concurrently reading from the session? However, this would mean that the > session mechanism has a flaw, as this is a standard procedure? > > Any ideas of how to fix this?
I had a serious problem with the session machinery. I use a very long timeout on sessions and thus have a large number of sessions saved (up to 30k). The sweep machinery kicks in and sweeps everything. It takes so long that all the threads do the sweep and you get these errors. I customised the sweep for my site as follows: 1. Only sweep at night 2. Sweep a random subset of the data (20 records), but sweep very often 3. Different timeouts for authenticated sessions and anonymous sessions. Regards, Kevin > > Best Regards, > Hermann > > -- > herm...@qwer.tk > GPG key ID: 299893C7 (on keyservers) > FP: 0124 2584 8809 EF2A DBF9 4902 64B4 D16B 2998 93C7 > _______________________________________________ > Zope-Dev maillist - Zope-Dev@zope.org > https://mail.zope.org/mailman/listinfo/zope-dev > ** No cross posts or HTML encoding! ** > (Related lists - > https://mail.zope.org/mailman/listinfo/zope-announce > https://mail.zope.org/mailman/listinfo/zope ) > > > _______________________________________________ Zope-Dev maillist - Zope-Dev@zope.org https://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - https://mail.zope.org/mailman/listinfo/zope-announce https://mail.zope.org/mailman/listinfo/zope )