A simple acces to zmi erase data in a mounted FileStorage
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Zope 2 |
Invalid
|
Undecided
|
Unassigned |
Bug Description
Hello,
Yesterday, when I access to an zeoclient by zmi I loose an zodb file storage located in a zodb mount point.
<zodb_db media>
#mount-point /media
mount-point /PCI/pci/
# ZODB cache, in number of objects
cache-size 10000
<zeoclient>
server ....:9090
storage media
name zeostorage
var E:\pci\
# ZEO client cache, in bytes
cache-size 500MB
</zeoclient>
</zodb_db>
All data in the storage disappear (I have a structure of simple folder)!
The transaction wich is responsable by that is name manage_menu !!
When I pack the fs , the size pass to ~10K (before 1,4Giga).
The undo log give this information :
>>> print storage.
[{'description': '/PCI/manage_
'user_name': 'PCI admin', 'id': 'A38ME6PrywA=', 'time': 1246457498.
escription': '', 'size': 3713980L, 'user_name': '', 'id': 'A374GPxhwgA=', 'time'
: 1246237019.152}, ....
And in Z2.log we have this request :
127.0.0.1 - admin [01/Jul/
127.0.0.1 - admin [01/Jul/
and in Event.log :
2009-07-01T16:11:31 ERROR Zope.ZODBMountPoint Failed to mount database. exceptions.KeyError (275923683)
Traceback (most recent call last):
File "E:\Zope\
root = conn.root()
File "E:\Zope\
return self.get(z64)
File "E:\Zope\
p, serial = self._storage.
File "E:\Zope\
return self.loadEx(oid, version)[:2]
File "E:\Zope\
self.
File "E:\Zope\
self.fc.add(o)
File "E:\Zope\
available = self._makeroom(
File "E:\Zope\
size, e = self.filemap.
KeyError: 275923683
------
2009-07-01T16:11:31 ERROR ZODB.Connection Couldn't load state for 0x00
Traceback (most recent call last):
File "E:\Zope\
self.
File "E:\Zope\
self.
File "E:\Zope\
state = self.getState(
File "E:\Zope\
return unpickler.load()
File "E:\Zope\
return self.load_
File "E:\Zope\
return self._conn.get(oid)
File "E:\Zope\
p, serial = self._storage.
File "E:\Zope\
return self.loadEx(oid, version)[:2]
File "E:\Zope\
self.
File "E:\Zope\
self.fc.add(o)
File "E:\Zope\
available = self._makeroom(
File "E:\Zope\
size, e = self.filemap.
KeyError: 275923683
------
2009-07-01T16:11:38 CRITICAL txn.9272 A storage error occurred during the second phase of the two-phase commit. Resources may be in an inconsistent state.
------
2009-07-01T16:11:38 ERROR Zope.SiteErrorLog http://
Traceback (innermost last):
Module ZPublisher.Publish, line 121, in publish
Module Zope2.App.startup, line 267, in commit
Module transaction.
Module transaction.
Module transaction.
Module transaction.
Module ZODB.Connection, line 679, in tpc_finish
Module ZEO.ClientStorage, line 974, in tpc_finish
Module ZEO.ClientStorage, line 1005, in _update_cache
Module ZEO.cache, line 293, in store
Module ZEO.cache, line 980, in add
Module ZEO.cache, line 915, in _makeroom
KeyError: 275923683
To be exact, there is a cron job every night that do some heavy operation on this client. There is memory error on some job since three days. I think there is an relation about my problem but I don't understand how the commit in the fs succeed.
How can I loose data in acceded to the zmi interface ? If you have an explanation it was wonderfull .
This isn't a ZODB issue. (Or, if it is, there's not enough information to determine that. There's too much other software involved.
I'm changing the project to zope2.
Note that if you're getting memory errors, that can have unpredictable affects on your database. You need to chase down the memory errors in your application and get rid of them.