[ZODB-Dev] Problem with RelStorage zodbpack

Erik Dahl edahl at erikdahl.org
Tue Mar 29 21:39:11 EDT 2011


I was running a pack and canceled so that I could reboot my box.  After it came back up I tried to restart the pack and got this:

2011-03-29 20:53:07,259 [zodbpack] INFO Opening storage (RelStorageFactory)...
2011-03-29 20:53:07,457 [zodbpack] INFO Packing storage (RelStorageFactory).
2011-03-29 20:53:07,464 [relstorage] INFO pack: analyzing transactions committed Tue Mar 29 20:49:48 2011 or before
2011-03-29 20:53:07,465 [relstorage.adapters.packundo] INFO pre_pack: start with gc enabled
2011-03-29 20:53:08,846 [relstorage.adapters.packundo] INFO discovering references from objects in 178910 transaction(s)
2011-03-29 20:53:10,808 [relstorage.adapters.packundo] ERROR pre_pack: failed
Traceback (most recent call last):
  File "/opt/zenoss/lib/python2.6/site-packages/RelStorage-1.4.2-py2.6.egg/relstorage/adapters/packundo.py", line 431, in pre_pack
    conn, cursor, pack_tid, get_references)
  File "/opt/zenoss/lib/python2.6/site-packages/RelStorage-1.4.2-py2.6.egg/relstorage/adapters/packundo.py", line 525, in _pre_pack_with_gc
    self.fill_object_refs(conn, cursor, get_references)
  File "/opt/zenoss/lib/python2.6/site-packages/RelStorage-1.4.2-py2.6.egg/relstorage/adapters/packundo.py", line 347, in fill_object_refs
    added += self._add_refs_for_tid(cursor, tid, get_references)
  File "/opt/zenoss/lib/python2.6/site-packages/RelStorage-1.4.2-py2.6.egg/relstorage/adapters/packundo.py", line 397, in _add_refs_for_tid
    self.runner.run_many(cursor, stmt, add_rows)
  File "/opt/zenoss/lib/python2.6/site-packages/RelStorage-1.4.2-py2.6.egg/relstorage/adapters/scriptrunner.py", line 90, in run_many
    cursor.executemany(stmt, items)
  File "build/bdist.linux-x86_64/egg/MySQLdb/cursors.py", line 206, in executemany
    r = r + self.execute(query, a)
  File "build/bdist.linux-x86_64/egg/MySQLdb/cursors.py", line 174, in execute
    self.errorhandler(self, exc, value)
  File "build/bdist.linux-x86_64/egg/MySQLdb/connections.py", line 36, in defaulterrorhandler
    raise errorclass, errorvalue
IntegrityError: (1062, "Duplicate entry '255911127406517196-2714-893440' for key 'PRIMARY'")
Traceback (most recent call last):
  File "/opt/zenoss/bin/zodbpack", line 8, in <module>
    load_entry_point('RelStorage==1.4.2', 'console_scripts', 'zodbpack')()


I'm in process of running mysqlcheck against the database and I have the application off line.  I've looked at the code but I'm not 100% what it's trying to do.  Thoughts?  Is my database hosed? or just my packing process. 


-EAD





More information about the ZODB-Dev mailing list