• ZODB corrompu suite à une crash disque
Réponses:
11
Visites:
0
Up one level
Vous devez être un membre enregistré pour contribuer sur ce forum.
Inscrivez-vous maintenant
• ZODB corrompu suite à une crash disque
Posté par
kwa29
le
30/06/2008 23:56
Bonsoir,
Je viens vous demander une grosse aide car je ne m'en sors pas.
Suite à un problème de disque dur, je me suis retrouvé avec une zodb de 1.7Go corrompu.
Le message d'erreur est le suivant :
code: File "/usr/lib/zope2.10/lib/python/ZODB/Connection.py", line 213, in get
p, serial = self._storage.load(oid, self._version)
File "/usr/lib/zope2.10/lib/python/ZODB/FileStorage/FileStorage.py", line 548, in load
pos = self._lookup_pos(oid)
File "/usr/lib/zope2.10/lib/python/ZODB/FileStorage/FileStorage.py", line 514, in _lookup_pos
raise POSKeyError(oid)
POSKeyError: 0x126e
2008-06-30 23:45:14 ERROR ZODB.Connection Couldn't load state for 0x01
Traceback (most recent call last):
File "/usr/lib/zope2.10/lib/python/ZODB/Connection.py", line 761, in setstate
self._setstate(obj)
File "/usr/lib/zope2.10/lib/python/ZODB/Connection.py", line 819, in _setstate
self._reader.setGhostState(obj, p)
File "/usr/lib/zope2.10/lib/python/ZODB/serialize.py", line 604, in setGhostState
state = self.getState(pickle)
File "/usr/lib/zope2.10/lib/python/ZODB/serialize.py", line 597, in getState
return unpickler.load()
File "/usr/lib/zope2.10/lib/python/ZODB/serialize.py", line 471, in _persistent_load
return self.load_oid(reference)
File "/usr/lib/zope2.10/lib/python/ZODB/serialize.py", line 537, in load_oid
return self._conn.get(oid)
File "/usr/lib/zope2.10/lib/python/ZODB/Connection.py", line 213, in get
p, serial = self._storage.load(oid, self._version)
File "/usr/lib/zope2.10/lib/python/ZODB/FileStorage/FileStorage.py", line 548, in load
pos = self._lookup_pos(oid)
File "/usr/lib/zope2.10/lib/python/ZODB/FileStorage/FileStorage.py", line 514, in _lookup_pos
raise POSKeyError(oid)
POSKeyError: 0x126e
Traceback (most recent call last):
File "/usr/lib/zope2.10/lib/python/Zope2/Startup/run.py", line 56, in ?
run()
File "/usr/lib/zope2.10/lib/python/Zope2/Startup/run.py", line 21, in run
starter.prepare()
File "/usr/lib/zope2.10/lib/python/Zope2/Startup/__init__.py", line 102, in prepare
self.startZope()
File "/usr/lib/zope2.10/lib/python/Zope2/Startup/__init__.py", line 278, in startZope
Zope2.startup()
File "/usr/lib/zope2.10/lib/python/Zope2/__init__.py", line 47, in startup
_startup()
File "/usr/lib/zope2.10/lib/python/Zope2/App/startup.py", line 102, in startup
OFS.Application.initialize(application)
File "/usr/lib/zope2.10/lib/python/OFS/Application.py", line 309, in initialize
initializer.initialize()
File "/usr/lib/zope2.10/lib/python/OFS/Application.py", line 330, in initialize
self.install_cp_and_products()
File "/usr/lib/zope2.10/lib/python/OFS/Application.py", line 350, in install_cp_and_products
app._setObject('Control_Panel', cpl)
File "/usr/lib/zope2.10/lib/python/ZODB/Connection.py", line 761, in setstate
self._setstate(obj)
File "/usr/lib/zope2.10/lib/python/ZODB/Connection.py", line 819, in _setstate
self._reader.setGhostState(obj, p)
File "/usr/lib/zope2.10/lib/python/ZODB/serialize.py", line 604, in setGhostState
state = self.getState(pickle)
File "/usr/lib/zope2.10/lib/python/ZODB/serialize.py", line 597, in getState
return unpickler.load()
File "/usr/lib/zope2.10/lib/python/ZODB/serialize.py", line 471, in _persistent_load
return self.load_oid(reference)
File "/usr/lib/zope2.10/lib/python/ZODB/serialize.py", line 537, in load_oid
return self._conn.get(oid)
File "/usr/lib/zope2.10/lib/python/ZODB/Connection.py", line 213, in get
p, serial = self._storage.load(oid, self._version)
File "/usr/lib/zope2.10/lib/python/ZODB/FileStorage/FileStorage.py", line 548, in load
pos = self._lookup_pos(oid)
File "/usr/lib/zope2.10/lib/python/ZODB/FileStorage/FileStorage.py", line 514, in _lookup_pos
raise POSKeyError(oid)
ZODB.POSException.POSKeyError: 0x126e
zopectl>code: ZODB.POSException.POSKeyError: 0x126e |
-
• Re: ZODB corrompu suite à une crash disque
Posté par ychaouche le 01/07/2008 00:41Que se passe-t-il quand tu essayes la première recette ? est-ce que tu as pu obtenir l'oid de l'objet qui casse tout ?
Si tu l'as obtenu, as-tu essayé la troisième recette pour pouvoir l'inspecter et voir ce qui ne va pas ? si tu as son id tu dois aussi pouvoir le supprimer.
Quel ton environnement ? (système, version de zope, python, éventuellement CMS si tu en a un d'installé...) -
• Re: ZODB corrompu suite à une crash disque
Posté par kwa29 le 01/07/2008 08:37Merci pour ta réponse ychaouche.
Donc pour te répondre :
Que se passe-t-il quand tu essayes la première recette ? est-ce que tu as pu obtenir l'oid de l'objet qui casse tout ?
Lors de la première recette, le data.fs ne fais plus que 256Mo et l'erreur sur OID 0x126e réapparrait
Si tu l'as obtenu, as-tu essayé la troisième recette pour pouvoir l'inspecter et voir ce qui ne va pas ? si tu as son id tu dois aussi pouvoir le supprimer.
Justement c'est ce passage là que je ne dois pas réussir. Si tu peux m'aider sur ce point ...
Quel ton environnement ? (système, version de zope, python, éventuellement CMS si tu en a un d'installé...)
L'environnement natif est un linux centos 5.1 avec python 2.4.4, zope 2.10.5 et plone 3.1.2.
Mes essais ont été fait sur cette environnement ainsi qu'un windows Xp + plone en fresh install -
• Re: ZODB corrompu suite à une crash disque
Posté par ychaouche le 01/07/2008 08:51Salut kwa29,
Pourquoi tu ne réussies pas la troisième recette, tu as des erreurs ? quelles sont elles ?
Peux-tu mettre ta zodb quelque part où on puisse la télécharger ? (exemple dl.free.fr) -
• Re: ZODB corrompu suite à une crash disque
Posté par kwa29 le 01/07/2008 14:45Voici le message d'erreur originale (je reviens à la base car je ne dois pas faire un truc qui va)
2008-07-01 14:43:07 DEBUG ZODB.BaseStorage create storage C:\Program Files\Plone
3\Data/var/Data.fs
2008-07-01 14:43:11 CRITICAL ZODB.FileStorage C:\Program Files\Plone 3\Data/var/
Data.fs data record exceeds transaction record at 274465204
Traceback (most recent call last):
File "C:\Program Files\Plone 3\Zope\lib\python\Zope2\Startup\run.py", line 56,
in ?
run()
File "C:\Program Files\Plone 3\Zope\lib\python\Zope2\Startup\run.py", line 21,
in run
starter.prepare()
File "C:\Program Files\Plone 3\Zope\lib\python\Zope2\Startup\__init__.py", lin
e 356, in prepare
ZopeStarter.prepare(self)
File "C:\Program Files\Plone 3\Zope\lib\python\Zope2\Startup\__init__.py", lin
e 103, in prepare
self.startZope()
File "C:\Program Files\Plone 3\Zope\lib\python\Zope2\Startup\__init__.py", lin
e 279, in startZope
Zope2.startup()
File "C:\Program Files\Plone 3\Zope\lib\python\Zope2\__init__.py", line 47, in
startup
_startup()
File "C:\Program Files\Plone 3\Zope\lib\python\Zope2\App\startup.py", line 59,
in startup
DB = dbtab.getDatabase('/', is_root=1)
File "C:\Program Files\Plone 3\Zope\lib\python\Zope2\Startup\datatypes.py", li
ne 280, in getDatabase
db = factory.open(name, self.databases)
File "C:\Program Files\Plone 3\Zope\lib\python\Zope2\Startup\datatypes.py", li
ne 178, in open
DB = self.createDB(database_name, databases)
File "C:\Program Files\Plone 3\Zope\lib\python\Zope2\Startup\datatypes.py", li
ne 175, in createDB
return ZODBDatabase.open(self, databases)
File "C:\Program Files\Plone 3\Zope\lib\python\ZODB\config.py", line 97, in op
en
storage = section.storage.open()
File "C:\Program Files\Plone 3\Zope\lib\python\ZODB\config.py", line 135, in o
pen
quota=self.config.quota)
File "C:\Program Files\Plone 3\Zope\lib\python\ZODB\FileStorage\FileStorage.py
", line 169, in __init__
read_only=read_only,
File "C:\Program Files\Plone 3\Zope\lib\python\ZODB\FileStorage\FileStorage.py
", line 1735, in read_index
name, pos)
File "C:\Program Files\Plone 3\Zope\lib\python\ZODB\FileStorage\FileStorage.py
", line 52, in panic
raise CorruptedTransactionError(message)
ZODB.FileStorage.FileStorage.CorruptedTransactionError: %s data record exceeds t
ransaction record at %s
C:\Program Files\Plone 3\Data\bin> -
• Re: ZODB corrompu suite à une crash disque
Posté par kwa29 le 01/07/2008 14:45Donc :
CRITICAL ZODB.FileStorage C:\Program Files\Plone 3\Data/var/
Data.fs data record exceeds transaction record at 274465204
et
ZODB.FileStorage.FileStorage.CorruptedTransactionError: %s data record exceeds t
ransaction record at %s
sont peut être des messages qui vous parlent plus qu'à moi. -
• Re: ZODB corrompu suite à une crash disque
Posté par kwa29 le 01/07/2008 14:46Pour ychaouche : je n'arrive pas à faire la troisième recette pourrais tu m'indiquais la marche à suivre?? -
• Re: ZODB corrompu suite à une crash disque
Posté par kwa29 le 01/07/2008 14:49sinon j'ai utilisé la commande suivante :
C:\Program Files\Plone 3>python Zope/lib/python/ZODB/fsrecover.py -v 1 Data.fs Data.fs.recover
qui me donne ce résultat là :
begin 269406068 2008-03-05 12:50:57.984228 finish
begin 269406860 2008-03-05 12:51:05.581278 finish
error reading txn header: redundant transaction length check failed at 274790108
error reading txn header: invalid transaction length, 0, at 269407266
error reading txn header: invalid transaction length, 0, at 269472911
error reading txn header: invalid transaction length, 0, at 269538556
error reading txn header: invalid transaction length, 0, at 269604201
error reading txn header: invalid transaction length, 0, at 269669846
error reading txn header: invalid transaction length, 0, at 269735491
error reading txn header: invalid transaction length, 0, at 269735633
error reading txn header: invalid transaction length, 0, at 269801278
error reading txn header: invalid transaction length, 0, at 269801350
error reading txn header: invalid transaction length, 0, at 269801456
error reading txn header: invalid transaction length, 0, at 269801738
error reading txn header: invalid transaction length, 0, at 269801903
error reading txn header: invalid transaction length, 0, at 269802077
error reading txn header: invalid transaction length, 0, at 269802230
error reading txn header: invalid transaction length, 0, at 269802327
error reading txn header: invalid transaction length, 0, at 269867972
[...]
Au final un data.fs de 256Mo avec en plus un .index et .tmp de 36Mo.
j'ai tenté le coup avec ce data.fs mais je me retrouve avec l'erreur sur l'OID 0x126e -
• Re: ZODB corrompu suite à une crash disque
Posté par kwa29 le 02/07/2008 08:40ychaouche ou si quelqu'un veut bien me filer un coup de main j'ai posé le data.fs sur dl.free.fr
Comment peut on se contacter en mp ? -
• Re: ZODB corrompu suite à une crash disque
Posté par ychaouche le 02/07/2008 12:36Salut kwa29,
Malheureusement je suis en fin de régie en ce moment et ça bosse dur et tard donc je ne peux pas me permettre de passer trop de temps sur un problème donné et les crashs de DB en général ça demande du temps.
Pas de MP ici à ma connaissance, mais si tu t'abonnes à un fil de discussion tu recevras les notifications par mails avec l'e-mail de l'émetteur au lieu de l'e-mail de l'afpy. Tu peux donc utiliser l'échange de mails standards plutôt que MP.
Bon courage, @+ -
• Re: ZODB corrompu suite à une crash disque
Posté par kwa29 le 02/07/2008 16:01OK. Je viens de m'abonner. Ecris juste un petit mot dans ce fil j'aurais ton email. -
• Re: ZODB corrompu suite à une crash disque
Posté par ychaouche le 04/07/2008 11:10a






