Hilfe: Zope startet nicht mit ERROR ZODB.Connection

6 messages Options
Embed this post
Permalink
Baschardust

Hilfe: Zope startet nicht mit ERROR ZODB.Connection

Reply Threaded More More options
Print post
Permalink
Hallo,


ich habe ein ernstes Problem. Nach dem Neustart ließ sich Zope-Instance nicht mehr starten, mit der folgende Meldung.

Traceback (most recent call last):
  File "D:\Zope\2.11.1\Zope\lib\python\Zope2\Startup\run.py", line 56, in ?
    run()
  File "D:\Zope\2.11.1\Zope\lib\python\Zope2\Startup\run.py", line 21, in run
    starter.prepare()
  File "D:\Zope\2.11.1\Zope\lib\python\Zope2\Startup\__init__.py", line 109, in prepare
    self.startZope()
  File "D:\Zope\2.11.1\Zope\lib\python\Zope2\Startup\__init__.py", line 300, in startZope
    Zope2.startup()
  File "D:\Zope\2.11.1\Zope\lib\python\Zope2\__init__.py", line 47, in startup
    _startup()
  File "D:\Zope\2.11.1\Zope\lib\python\Zope2\App\startup.py", line 110, in startup
    OFS.Application.initialize(application)
  File "D:\Zope\2.11.1\Zope\lib\python\OFS\Application.py", line 309, in initialize
    initializer.initialize()
  File "D:\Zope\2.11.1\Zope\lib\python\OFS\Application.py", line 330, in initialize
    self.install_cp_and_products()
  File "D:\Zope\2.11.1\Zope\lib\python\OFS\Application.py", line 350, in install_cp_and_products
    app._setObject('Control_Panel', cpl)
  File "D:\Zope\2.11.1\Zope\lib\python\ZODB\Connection.py", line 805, in setstate
    self._setstate(obj)
  File "D:\Zope\2.11.1\Zope\lib\python\ZODB\Connection.py", line 864, in _setstate
    self._reader.setGhostState(obj, p)
  File "D:\Zope\2.11.1\Zope\lib\python\ZODB\serialize.py", line 604, in setGhostState
    state = self.getState(pickle)
  File "D:\Zope\2.11.1\Zope\lib\python\ZODB\serialize.py", line 597, in getState
    return unpickler.load()
  File "D:\Zope\2.11.1\Zope\lib\python\ZODB\serialize.py", line 479, in _persistent_load
    return self.loaders[reference_type](self, *args)
  File "D:\Zope\2.11.1\Zope\lib\python\ZODB\serialize.py", line 540, in load_multi_oid
    conn = self._conn.get_connection(database_name)
  File "D:\Zope\2.11.1\Zope\lib\python\ZODB\Connection.py", line 362, in get_connection
    new_con = self._db.databases[database_name].open(
KeyError: 'test'
------------------------------------------------------------------------------------------------------------
Und das Ganze in Debug-Modus:
['main'] ['main'] test
2009-06-09 11:02:39 ERROR ZODB.Connection Couldn't load state for 0x01
Traceback (most recent call last):
  File "D:\Zope\2.11.1\Zope\lib\python\ZODB\Connection.py", line 805, in setstate
    self._setstate(obj)
  File "D:\Zope\2.11.1\Zope\lib\python\ZODB\Connection.py", line 864, in _setstate
    self._reader.setGhostState(obj, p)
  File "D:\Zope\2.11.1\Zope\lib\python\ZODB\serialize.py", line 604, in setGhostState
    state = self.getState(pickle)
  File "D:\Zope\2.11.1\Zope\lib\python\ZODB\serialize.py", line 597, in getState
    return unpickler.load()
  File "D:\Zope\2.11.1\Zope\lib\python\ZODB\serialize.py", line 479, in _persistent_load
    return self.loaders[reference_type](self, *args)
  File "D:\Zope\2.11.1\Zope\lib\python\ZODB\serialize.py", line 540, in load_multi_oid
    conn = self._conn.get_connection(database_name)
  File "D:\Zope\2.11.1\Zope\lib\python\ZODB\Connection.py", line 362, in get_connection
    new_con = self._db.databases[database_name].open(
KeyError: 'test'
['main'] ['main'] test
2009-06-09 11:02:39 ERROR ZODB.Connection Couldn't load state for 0x01
Traceback (most recent call last):
  File "D:\Zope\2.11.1\Zope\lib\python\ZODB\Connection.py", line 805, in setstate
    self._setstate(obj)
  File "D:\Zope\2.11.1\Zope\lib\python\ZODB\Connection.py", line 864, in _setstate
    self._reader.setGhostState(obj, p)
  File "D:\Zope\2.11.1\Zope\lib\python\ZODB\serialize.py", line 604, in setGhostState
    state = self.getState(pickle)
  File "D:\Zope\2.11.1\Zope\lib\python\ZODB\serialize.py", line 597, in getState
    return unpickler.load()
  File "D:\Zope\2.11.1\Zope\lib\python\ZODB\serialize.py", line 479, in _persistent_load
    return self.loaders[reference_type](self, *args)
  File "D:\Zope\2.11.1\Zope\lib\python\ZODB\serialize.py", line 540, in load_multi_oid
    conn = self._conn.get_connection(database_name)
  File "D:\Zope\2.11.1\Zope\lib\python\ZODB\Connection.py", line 362, in get_connection
    new_con = self._db.databases[database_name].open(
KeyError: 'test'
Traceback (most recent call last):
  File "<string>", line 1, in ?
  File "D:\Zope\2.11.1\Zope\lib\python\Zope2\__init__.py", line 51, in app
    startup()
  File "D:\Zope\2.11.1\Zope\lib\python\Zope2\__init__.py", line 47, in startup
    _startup()
  File "D:\Zope\2.11.1\Zope\lib\python\Zope2\App\startup.py", line 110, in startup
    OFS.Application.initialize(application)
  File "D:\Zope\2.11.1\Zope\lib\python\OFS\Application.py", line 309, in initialize
    initializer.initialize()
  File "D:\Zope\2.11.1\Zope\lib\python\OFS\Application.py", line 330, in initialize
    self.install_cp_and_products()
  File "D:\Zope\2.11.1\Zope\lib\python\OFS\Application.py", line 350, in install_cp_and_products
    app._setObject('Control_Panel', cpl)
  File "D:\Zope\2.11.1\Zope\lib\python\ZODB\Connection.py", line 805, in setstate
    self._setstate(obj)
  File "D:\Zope\2.11.1\Zope\lib\python\ZODB\Connection.py", line 864, in _setstate
    self._reader.setGhostState(obj, p)
  File "D:\Zope\2.11.1\Zope\lib\python\ZODB\serialize.py", line 604, in setGhostState
    state = self.getState(pickle)
  File "D:\Zope\2.11.1\Zope\lib\python\ZODB\serialize.py", line 597, in getState
    return unpickler.load()
  File "D:\Zope\2.11.1\Zope\lib\python\ZODB\serialize.py", line 479, in _persistent_load
    return self.loaders[reference_type](self, *args)
  File "D:\Zope\2.11.1\Zope\lib\python\ZODB\serialize.py", line 540, in load_multi_oid
    conn = self._conn.get_connection(database_name)
  File "D:\Zope\2.11.1\Zope\lib\python\ZODB\Connection.py", line 362, in get_connection
    new_con = self._db.databases[database_name].open(
KeyError: 'test'

----------------------------------------------------------------------------------------------------------------------------
Ich habe ein Mount-Point in mein Instance definiert, mit der Name test, der so definiert ist:
<zodb_db test>
    # Main FileStorage database
    <filestorage>
      path $INSTANCE/var-test/Data.fs
    </filestorage>
    mount-point /test
</zodb_db>
Der var-test/data.fs ist in Ordnung. Dies habe ich in ein neue Instance ohne Problem zum laufen gebraucht.

----------------------------------------------------------------------------------------------------------------------------
Der Versuch data.fs zu reparieren mit fsrecover.py zeigte keinen Fehler. Die Meldung ist unten:

D:\Zope\2.11.1\Zope\lib\python\ZODB>python fsrecover.py D:\Zope\Instance\2.11.1\
var\Data.fs D:\Zope\Instance\2.11.1\var\Data.fs.rec
Recovering D:\Zope\Instance\2.11.1\var\Data.fs into D:\Zope\Instance\2.11.1\var\
Data.fs.rec
. 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0
0 bytes removed during recovery

----------------------------------------------------------------------------------------------------------------------------
Und meine System ist wie folgt:
ZOPE: (Zope 2.11.1-final, python 2.4.4, win32)
PYTHON: 2.4.4 (#71, Oct 18 2006, 08:34:43) [MSC v.1310 32 bit (Intel)]
System Platform: win32


Wie kann ich mein data.fs wieder im Laufen bekommen. Ich bin dankbar für jede Idee.

Gruß
Laleh


_______________________________________________
zope mailing list
[hidden email]
https://mail.dzug.org/mailman/listinfo/zope
Christian Theune-2

Re: Hilfe: Zope startet nicht mit ERROR ZODB.Connection

Reply Threaded More More options
Print post
Permalink
Hi,

On Tue, 2009-06-09 at 11:28 +0200, [hidden email] wrote:
> Hallo,
>
>
> ich habe ein ernstes Problem. Nach dem Neustart ließ sich Zope-Instance nicht mehr starten, mit der folgende Meldung.
>
> [...]
>
> Der var-test/data.fs ist in Ordnung. Dies habe ich in ein neue Instance ohne Problem zum laufen gebraucht.

Das sieht nach einem Problem aus, das mir schon eine Zeit im Hinterkopf
rumlaeuft (Dieter hatte mich da mal drauf hingewiesen):

Deine Haupt-ZODB verweist irgendwie auf Inhalte in deiner Test-DB, die
zum Hochfahren benoetigt werden. Dummerweise aktiviert Zope 2 die
Multidatenbanken erst richtig, wenn du das erste mal ueber den
Mountpoint traversierst.

Und ja: das merkt man dann erst beim Neustart.

Der eigentliche Fix ist trivial: Zope 2 muss die Datenbanken alle auf
einmal am Anfang aufmachen, die konfiguriert sind.

Da ich das eh mal angehen wollte hab' ich grad ein (experimentelles)
Produkt gebaut, das du die hier runterladen kannst:

http://download.gocept.com/~ctheune/multidbstart.tar.gz

Viele Gruesse,
Christian

--
Christian Theune · [hidden email]
gocept gmbh & co. kg · forsterstraße 29 · 06112 halle (saale) · germany
http://gocept.com · tel +49 345 1229889 7 · fax +49 345 1229889 1
Zope and Plone consulting and development




_______________________________________________
zope mailing list
[hidden email]
https://mail.dzug.org/mailman/listinfo/zope

signature.asc (204 bytes) Download Attachment
Baschardust

AW: Hilfe: Zope startet nicht mit ERROR ZODB.Connection

Reply Threaded More More options
Print post
Permalink

Danke Christian, für deine schnelle Antwort. Wo sollte dein Produkt platziert sein? Unter Instance/Products war es nicht.

Gruss
Laleh

 


-----Ursprüngliche Nachricht-----
Von: [hidden email] [mailto:[hidden email]] Im Auftrag von Christian Theune
Gesendet: Dienstag, 9. Juni 2009 17:24
An: Deutschsprachige Zope-Benutzer-Liste
Betreff: Re: [dzug-zope] Hilfe: Zope startet nicht mit ERROR ZODB.Connection

Hi,

On Tue, 2009-06-09 at 11:28 +0200, [hidden email] wrote:
> Hallo,
>
>
> ich habe ein ernstes Problem. Nach dem Neustart ließ sich Zope-Instance nicht mehr starten, mit der folgende Meldung.
>
> [...]
>
> Der var-test/data.fs ist in Ordnung. Dies habe ich in ein neue Instance ohne Problem zum laufen gebraucht.

Das sieht nach einem Problem aus, das mir schon eine Zeit im Hinterkopf rumlaeuft (Dieter hatte mich da mal drauf hingewiesen):

Deine Haupt-ZODB verweist irgendwie auf Inhalte in deiner Test-DB, die zum Hochfahren benoetigt werden. Dummerweise aktiviert Zope 2 die Multidatenbanken erst richtig, wenn du das erste mal ueber den Mountpoint traversierst.

Und ja: das merkt man dann erst beim Neustart.

Der eigentliche Fix ist trivial: Zope 2 muss die Datenbanken alle auf einmal am Anfang aufmachen, die konfiguriert sind.

Da ich das eh mal angehen wollte hab' ich grad ein (experimentelles) Produkt gebaut, das du die hier runterladen kannst:

http://download.gocept.com/~ctheune/multidbstart.tar.gz

Viele Gruesse,
Christian

--
Christian Theune · [hidden email]
gocept gmbh & co. kg · forsterstraße 29 · 06112 halle (saale) · germany http://gocept.com · tel +49 345 1229889 7 · fax +49 345 1229889 1 Zope and Plone consulting and development


_______________________________________________
zope mailing list
[hidden email]
https://mail.dzug.org/mailman/listinfo/zope
Christian Theune-2

Re: AW: Hilfe: Zope startet nicht mit ERROR ZODB.Connection

Reply Threaded More More options
Print post
Permalink
On Tue, 2009-06-09 at 17:40 +0200, [hidden email] wrote:
> Danke Christian, für deine schnelle Antwort. Wo sollte dein Produkt platziert sein? Unter Instance/Products war es nicht.

Das Verzeichnis aus dem Tar-File nach Instance/Products legen sollte
helfen. Beim Hochfahren sollte eine entsprechende Meldung bzgl. der
Datenbanken ausgegeben werden.

Christian

--
Christian Theune · [hidden email]
gocept gmbh & co. kg · forsterstraße 29 · 06112 halle (saale) · germany
http://gocept.com · tel +49 345 1229889 7 · fax +49 345 1229889 1
Zope and Plone consulting and development




_______________________________________________
zope mailing list
[hidden email]
https://mail.dzug.org/mailman/listinfo/zope

signature.asc (204 bytes) Download Attachment
Baschardust

AW: Hilfe: Zope startet nicht mit ERROR ZODB.Connection

Reply Threaded More More options
Print post
Permalink
 
Hallo Christian, hallo Liste,

Ich bin nicht weiter gekommen.
[1]  Mit dein Produkt bekomme ich ein POSKeyError. So war die Traceback:

Starting debugger (the name "app" is bound to the top-level Zope object)
  from zope.app.content_types import find_binary
----------------------------------------------
MultiDBStart abgearbeitet.
----------------------------------------------
2009-06-09 20:30:27 ERROR ZODB.Connection Couldn't load state for 0x01
Traceback (most recent call last):
  File "D:\Programme\2.11.1\Zope\lib\python\ZODB\Connection.py", line 804, in setstate
    self._setstate(obj)
  File "D:\Programme\2.11.1\Zope\lib\python\ZODB\Connection.py", line 863, in _setstate
    self._reader.setGhostState(obj, p)
  File "D:\Programme\2.11.1\Zope\lib\python\ZODB\serialize.py", line 604, in setGhostState
    state = self.getState(pickle)
  File "D:\Programme\2.11.1\Zope\lib\python\ZODB\serialize.py", line 597, in getState
    return unpickler.load()
  File "D:\Programme\2.11.1\Zope\lib\python\ZODB\serialize.py", line 479, in _persistent_load
    return self.loaders[reference_type](self, *args)
  File "D:\Programme\2.11.1\Zope\lib\python\ZODB\serialize.py", line 543, in load_multi_oid
    return reader.load_oid(oid)
  File "D:\Programme\2.11.1\Zope\lib\python\ZODB\serialize.py", line 537, in load_oid
    return self._conn.get(oid)
  File "D:\Programme\2.11.1\Zope\lib\python\ZODB\Connection.py", line 244, in get
    p, serial = self._storage.load(oid, self._version)
  File "D:\Programme\2.11.1\Zope\lib\python\ZODB\FileStorage\FileStorage.py", line 523, in load
    pos = self._lookup_pos(oid)
  File "D:\Programme\2.11.1\Zope\lib\python\ZODB\FileStorage\FileStorage.py", line 515, in _lookup_pos
    raise POSKeyError(oid)
POSKeyError: 0x2793
2009-06-09 20:30:27 ERROR ZODB.Connection Couldn't load state for 0x01
Traceback (most recent call last):
  File "D:\Programme\2.11.1\Zope\lib\python\ZODB\Connection.py", line 804, in setstate
    self._setstate(obj)
  File "D:\Programme\2.11.1\Zope\lib\python\ZODB\Connection.py", line 863, in _setstate
    self._reader.setGhostState(obj, p)
  File "D:\Programme\2.11.1\Zope\lib\python\ZODB\serialize.py", line 604, in setGhostState
    state = self.getState(pickle)
  File "D:\Programme\2.11.1\Zope\lib\python\ZODB\serialize.py", line 597, in getState
    return unpickler.load()
  File "D:\Programme\2.11.1\Zope\lib\python\ZODB\serialize.py", line 479, in _persistent_load
    return self.loaders[reference_type](self, *args)
  File "D:\Programme\2.11.1\Zope\lib\python\ZODB\serialize.py", line 543, in load_multi_oid
    return reader.load_oid(oid)
  File "D:\Programme\2.11.1\Zope\lib\python\ZODB\serialize.py", line 537, in load_oid
    return self._conn.get(oid)
  File "D:\Programme\2.11.1\Zope\lib\python\ZODB\Connection.py", line 244, in get
    p, serial = self._storage.load(oid, self._version)
  File "D:\Programme\2.11.1\Zope\lib\python\ZODB\FileStorage\FileStorage.py", line 523, in load
    pos = self._lookup_pos(oid)
  File "D:\Programme\2.11.1\Zope\lib\python\ZODB\FileStorage\FileStorage.py", line 515, in _lookup_pos
    raise POSKeyError(oid)
POSKeyError: 0x2793
Traceback (most recent call last):
  File "<string>", line 1, in ?
  File "D:\Programme\2.11.1\Zope\lib\python\Zope2\__init__.py", line 51, in app
    startup()
  File "D:\Programme\2.11.1\Zope\lib\python\Zope2\__init__.py", line 47, in startup
    _startup()
  File "D:\Programme\2.11.1\Zope\lib\python\Zope2\App\startup.py", line 110, in startup
    OFS.Application.initialize(application)
  File "D:\Programme\2.11.1\Zope\lib\python\OFS\Application.py", line 309, in initialize
    initializer.initialize()
  File "D:\Programme\2.11.1\Zope\lib\python\OFS\Application.py", line 330, in initialize
    self.install_cp_and_products()
  File "D:\Programme\2.11.1\Zope\lib\python\OFS\Application.py", line 350, in install_cp_and_products
    app._setObject('Control_Panel', cpl)
  File "D:\Programme\2.11.1\Zope\lib\python\ZODB\Connection.py", line 804, in setstate
    self._setstate(obj)
  File "D:\Programme\2.11.1\Zope\lib\python\ZODB\Connection.py", line 863, in _setstate
    self._reader.setGhostState(obj, p)
  File "D:\Programme\2.11.1\Zope\lib\python\ZODB\serialize.py", line 604, in setGhostState
    state = self.getState(pickle)
  File "D:\Programme\2.11.1\Zope\lib\python\ZODB\serialize.py", line 597, in getState
    return unpickler.load()
  File "D:\Programme\2.11.1\Zope\lib\python\ZODB\serialize.py", line 479, in _persistent_load
    return self.loaders[reference_type](self, *args)
  File "D:\Programme\2.11.1\Zope\lib\python\ZODB\serialize.py", line 543, in load_multi_oid
    return reader.load_oid(oid)
  File "D:\Programme\2.11.1\Zope\lib\python\ZODB\serialize.py", line 537, in load_oid
    return self._conn.get(oid)
  File "D:\Programme\2.11.1\Zope\lib\python\ZODB\Connection.py", line 244, in get
    p, serial = self._storage.load(oid, self._version)
  File "D:\Programme\2.11.1\Zope\lib\python\ZODB\FileStorage\FileStorage.py", line 523, in load
    pos = self._lookup_pos(oid)
  File "D:\Programme\2.11.1\Zope\lib\python\ZODB\FileStorage\FileStorage.py", line 515, in _lookup_pos
    raise POSKeyError(oid)
ZODB.POSException.POSKeyError: 0x2793

 
[2]  Die Versuche die POSKeyError mit fsrecover.py waren wie zum Letzt erfolglos:
D:\Programme\2.11.1\Zope\lib\python\ZODB>python fsrecover.py D:\Web\var\Data.fs D:\Web\var\Data.fs.rec
Recovering D:\GS1-Web\var\Data.fs into D:\GS1-Web\var\Data.fs.rec
. 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0
0 bytes removed during recovery


[3] Der recover.py von ZODB reparieren (http://www.veit-schiele.de/dienstleistungen/technische-dokumentation/plone-entwicklerhandbuch/produktivserver/zodb-reparieren.html)
kann ich nicht laufen. Ich bekomme die Meldung:
>>> import recover
>>> recover.check(app)
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
NameError: name 'app' is not defined

Was ist deine/eure Diagnose? Welche Idden?

Gruß
Laleh





_______________________________________________
zope mailing list
[hidden email]
https://mail.dzug.org/mailman/listinfo/zope
Christian Theune-2

Re: AW: Hilfe: Zope startet nicht mit ERROR ZODB.Connection

Reply Threaded More More options
Print post
Permalink
On Wed, 2009-06-10 at 13:06 +0200, [hidden email] wrote:
> Hallo Christian, hallo Liste,
>
> Ich bin nicht weiter gekommen.
> [1]  Mit dein Produkt bekomme ich ein POSKeyError. So war die Traceback:

Hast du deine Datenbanken irgendwann man gepackt?

--
Christian Theune · [hidden email]
gocept gmbh & co. kg · forsterstraße 29 · 06112 halle (saale) · germany
http://gocept.com · tel +49 345 1229889 7 · fax +49 345 1229889 1
Zope and Plone consulting and development




_______________________________________________
zope mailing list
[hidden email]
https://mail.dzug.org/mailman/listinfo/zope

signature.asc (204 bytes) Download Attachment