Mailing List Archive

ZEO manageUndo not working - DisconnectedError
Hello once more,

I’m running a fresh Zope2 ZEO setup (pip install --index-url=http://download.zope.org/Zope2/index/2.13.22/ Zope2 and pip install zope.mkzeoinstance) inside a virtualenv setup.

As said: No products, fresh setup, happens with any object. Going to any undo tab produces this error: Error Type: DisconnectedError

Client log:

2015-05-06 01:16:46 INFO ZEO.ClientStorage zeostorage Disconnected from storage: "('localhost', 9999)"
2015-05-06 01:16:46 ERROR Zope.SiteErrorLog 1430867806.070.275579780745 http://192.168.10.38:8080/temp_folder/manage_UndoForm
Traceback (innermost last):
Module ZPublisher.Publish, line 138, in publish
Module ZPublisher.mapply, line 77, in mapply
Module ZPublisher.Publish, line 48, in call_object
Module Shared.DC.Scripts.Bindings, line 322, in __call__
Module Shared.DC.Scripts.Bindings, line 359, in _bindAndExec
Module App.special_dtml, line 185, in _exec
Module App.Undo, line 112, in undoable_transactions
Module ZODB.DB, line 901, in undoInfo
Module ZEO.ClientStorage, line 1283, in undoInfo
Module ZEO.ServerStub, line 285, in undoInfo
Module ZEO.zrpc.connection, line 776, in call
Module ZEO.zrpc.connection, line 796, in wait
DisconnectedError
2015-05-06 01:16:46 WARNING ZEO.zrpc (19205) CW: error connecting to ('::1', 9999): ECONNREFUSED
2015-05-06 01:16:46 INFO ZEO.ClientStorage zeostorage Testing connection <ManagedClientConnection ('127.0.0.1', 9999)>
2015-05-06 01:16:46 INFO ZEO.zrpc.Connection('C') (127.0.0.1:9999) received handshake ‚Z3101'

ZEO server log:

2015-05-06T01:15:13 INFO ZEO.zrpc.Connection('S') (127.0.0.1:47063) received handshake 'Z3101'
------
2015-05-06T01:16:46 ERROR ZEO.zrpc (19082) can't decode message: '(K\x9dI00\nU\x08undoInfo(K\x00K\x14}U\x0bdescriptioncco...'
------
2015-05-06T01:16:46 ERROR ZEO.zrpc.Connection('S') (127.0.0.1:47063) Error caught in asyncore
Traceback (most recent call last):
File "/opt/python/2.7.9/lib/python2.7/asyncore.py", line 83, in read
obj.handle_read_event()
File "/opt/python/2.7.9/lib/python2.7/asyncore.py", line 449, in handle_read_event
self.handle_read()
File "/opt/python/zope2-latest/lib/python2.7/site-packages/ZEO/zrpc/smac.py", line 240, in handle_read
self.message_input(msg)
File "/opt/python/zope2-latest/lib/python2.7/site-packages/ZEO/zrpc/connection.py", line 417, in message_input
msgid, async, name, args = self.decode(message)
File "/opt/python/zope2-latest/lib/python2.7/site-packages/ZEO/zrpc/marshal.py", line 80, in server_decode
return unpickler.load() # msgid, flags, name, args
File "/opt/python/zope2-latest/lib/python2.7/site-packages/ZEO/zrpc/marshal.py", line 120, in server_find_global
raise ZRPCError("import error %s: %s" % (module, msg))
ZRPCError: import error copy_reg:
------
2015-05-06T01:16:46 INFO ZEO.StorageServer (127.0.0.1:47063) disconnected

The path difference in /opt/python/2.7.9/lib/python2.7/asyncore.py vs /opt/python/zope2-latest/lib/python2.7/site-packages make me wonder if this is a bug or a problem with my setup?

Client + ZEO server were created from the same virtualenv.

Python 2.7.9 build from source.

Any ideas?

Best, Sebastian



_______________________________________________
Zope maillist - Zope@zope.org
https://mail.zope.org/mailman/listinfo/zope
** No cross posts or HTML encoding! **
(Related lists -
https://mail.zope.org/mailman/listinfo/zope-announce
https://mail.zope.org/mailman/listinfo/zope-dev )
Re: ZEO manageUndo not working - DisconnectedError [ In reply to ]
Am 6. Mai 2015 01:24:50 MESZ, schrieb "Sebastian Tänzer" <st@taenzer.me>:
>2015-05-06 01:16:46 WARNING ZEO.zrpc (19205) CW: error connecting to
>('::1', 9999): ECONNREFUSED
>2015-05-06 01:16:46 INFO ZEO.ClientStorage zeostorage Testing
>connection <ManagedClientConnection ('127.0.0.1', 9999)>
>2015-05-06 01:16:46 INFO ZEO.zrpc.Connection('C') (127.0.0.1:9999)
hmm,

just a small shot in the dark: Even if this "should" work too - why the client tries to connect the IPv4 address of loopback and the error gives the IPv6 of it back?

I would try to eleminate this if possible and bring Zope down to IPv4 completely, because there are still many software libraries and applications around (even some underlying os parts) which are not well tested with IPv6.

If this solves your prob - no idea...


hth a bit.
cheerioh,


Niels.
--
Niels Dettenbach
Syndicat IT & Internet
http://www.syndicat.com
_______________________________________________
Zope maillist - Zope@zope.org
https://mail.zope.org/mailman/listinfo/zope
** No cross posts or HTML encoding! **
(Related lists -
https://mail.zope.org/mailman/listinfo/zope-announce
https://mail.zope.org/mailman/listinfo/zope-dev )
Re: ZEO manageUndo not working - DisconnectedError [ In reply to ]
thanks for the „shot“, yet disabling IPv6 locally on the VM does not help, same error:

(server):

2015-05-06T10:05:51 INFO ZEO.StorageServer (127.0.0.1:44833) disconnected
------
2015-05-06T10:05:51 INFO ZEO.zrpc.Connection('S') (127.0.0.1:44835) received handshake 'Z3101'
------
2015-05-06T10:06:35 ERROR ZEO.zrpc (3040) can't decode message: '(K\x05I00\nU\x08undoInfo(K\x00K\x14}U\x0bdescriptioncco...'
------
2015-05-06T10:06:35 ERROR ZEO.zrpc.Connection('S') (127.0.0.1:44835) Error caught in asyncore
Traceback (most recent call last):
File "/opt/python/2.7.9/lib/python2.7/asyncore.py", line 83, in read
obj.handle_read_event()
File "/opt/python/2.7.9/lib/python2.7/asyncore.py", line 449, in handle_read_event
self.handle_read()
File "/opt/python/zope2-latest/lib/python2.7/site-packages/ZEO/zrpc/smac.py", line 240, in handle_read
self.message_input(msg)
File "/opt/python/zope2-latest/lib/python2.7/site-packages/ZEO/zrpc/connection.py", line 417, in message_input
msgid, async, name, args = self.decode(message)
File "/opt/python/zope2-latest/lib/python2.7/site-packages/ZEO/zrpc/marshal.py", line 80, in server_decode
return unpickler.load() # msgid, flags, name, args
File "/opt/python/zope2-latest/lib/python2.7/site-packages/ZEO/zrpc/marshal.py", line 120, in server_find_global
raise ZRPCError("import error %s: %s" % (module, msg))
ZRPCError: import error copy_reg:
------
2015-05-06T10:06:35 INFO ZEO.StorageServer (127.0.0.1:44835) disconnected
------
2015-05-06T10:06:35 INFO ZEO.zrpc.Connection('S') (127.0.0.1:44837) received handshake ‚Z3101'

More ideas? :-)

> Am 06.05.2015 um 07:42 schrieb Niels Dettenbach (Syndicat IT & Internet) <nd@syndicat.com>:
>
> Am 6. Mai 2015 01:24:50 MESZ, schrieb "Sebastian Tänzer" <st@taenzer.me>:
>> 2015-05-06 01:16:46 WARNING ZEO.zrpc (19205) CW: error connecting to
>> ('::1', 9999): ECONNREFUSED
>> 2015-05-06 01:16:46 INFO ZEO.ClientStorage zeostorage Testing
>> connection <ManagedClientConnection ('127.0.0.1', 9999)>
>> 2015-05-06 01:16:46 INFO ZEO.zrpc.Connection('C') (127.0.0.1:9999)
> hmm,
>
> just a small shot in the dark: Even if this "should" work too - why the client tries to connect the IPv4 address of loopback and the error gives the IPv6 of it back?
>
> I would try to eleminate this if possible and bring Zope down to IPv4 completely, because there are still many software libraries and applications around (even some underlying os parts) which are not well tested with IPv6.
>
> If this solves your prob - no idea...
>
>
> hth a bit.
> cheerioh,
>
>
> Niels.
> --
> Niels Dettenbach
> Syndicat IT & Internet
> http://www.syndicat.com


_______________________________________________
Zope maillist - Zope@zope.org
https://mail.zope.org/mailman/listinfo/zope
** No cross posts or HTML encoding! **
(Related lists -
https://mail.zope.org/mailman/listinfo/zope-announce
https://mail.zope.org/mailman/listinfo/zope-dev )
Re: ZEO manageUndo not working - DisconnectedError [ In reply to ]
Good morning all,

after further testing we noticed our Zope2 virtualenv setup was done with the ZMS3 (CMS) install routine using pip install ZMS3 --process-dependency-links. This installed different package versions.

The original pip Zope2 uses these versions: http://pastebin.com/ZEwhVba0
The ZMS3 people use these versions: http://pastebin.com/iu43Ss5w

For example, the ZMS3 setup uses:

• ZopeUndo==4.0
• ZODB==4.1.0
• ZODB3==3.11.0

as the original Zope2 uses:

• ZODB3==3.10.5

No ZEO, no ZODB packages.

Why is Zope2 using the old 3.10 ZODB version and why is there no ZODB4 installed? ZEO server and clients still work fine without these packages.

The thing is, I notice a lot worse performance with the ZODB, especially with traversal, using the native Zope2 setup routine. Catalog search takes almost 2-3 seconds compared to the ZMS3 versions with a local non-ZEO-Zope instance. With the ZMS3 versions ZODB usage is a LOT faster, but there are problems with Undo for example in combination with ZEO.

Any ideas on this? I don’t get this version jungle...

Best
Sebastian

> Am 06.05.2015 um 07:42 schrieb Niels Dettenbach (Syndicat IT & Internet) <nd@syndicat.com>:
>
> Am 6. Mai 2015 01:24:50 MESZ, schrieb "Sebastian Tänzer" <st@taenzer.me>:
>> 2015-05-06 01:16:46 WARNING ZEO.zrpc (19205) CW: error connecting to
>> ('::1', 9999): ECONNREFUSED
>> 2015-05-06 01:16:46 INFO ZEO.ClientStorage zeostorage Testing
>> connection <ManagedClientConnection ('127.0.0.1', 9999)>
>> 2015-05-06 01:16:46 INFO ZEO.zrpc.Connection('C') (127.0.0.1:9999)
> hmm,
>
> just a small shot in the dark: Even if this "should" work too - why the client tries to connect the IPv4 address of loopback and the error gives the IPv6 of it back?
>
> I would try to eleminate this if possible and bring Zope down to IPv4 completely, because there are still many software libraries and applications around (even some underlying os parts) which are not well tested with IPv6.
>
> If this solves your prob - no idea...
>
>
> hth a bit.
> cheerioh,
>
>
> Niels.
> --
> Niels Dettenbach
> Syndicat IT & Internet
> http://www.syndicat.com


_______________________________________________
Zope maillist - Zope@zope.org
https://mail.zope.org/mailman/listinfo/zope
** No cross posts or HTML encoding! **
(Related lists -
https://mail.zope.org/mailman/listinfo/zope-announce
https://mail.zope.org/mailman/listinfo/zope-dev )
Re: ZEO manageUndo not working - DisconnectedError [ In reply to ]
After more „research“ I see that the ZMS3 pip packages uses completely different versions that don’t seem to be compatible with ZEO (at least Undo is not working). I’m aware „undo“ is not a really used feature at all as revisions most of the time are beeing implemented by products. My only fear is that we’re running into other problems with the ZODB if the base setup is using wrong versions and I’d like to avoid that.

Examples:

zope2 via pip uses Aquisition 2.13.8
zope2 via ZMS3 installed via pip uses Aquisition 4.1

zope2 via pip uses ZopeUndo 2.12.0
zope2 via ZMS3 installed via pip uses ZopeUndo 4.0

Most packages with ZMS3 install are newer versions.

So, basic question: What is the recommended way to setup Zope2 with ZEO. Which versions work? It seems almost impossible to understand what versions should be used. The Zope2 egg uses way older versions. Any problems with that? Which packages are safe to update?

Also, there were some patches by the ZMS people last year (https://github.com/zopefoundation/Zope/pull/13) - but Zope2 installed via pip works just fine here.
Using newer package versions require the patches though.

What is the „best“ setup if I’m using ZEO to connect with Zope2 ZEO clients AND from other remote setups (non Zope-Clients, Python command line code working with the ZODB via ClientStorage).

Maybe Tres could give me some insight on this?

Best,
Sebastian

> Am 06.05.2015 um 07:42 schrieb Niels Dettenbach (Syndicat IT & Internet) <nd@syndicat.com>:
>
> Am 6. Mai 2015 01:24:50 MESZ, schrieb "Sebastian Tänzer" <st@taenzer.me>:
>> 2015-05-06 01:16:46 WARNING ZEO.zrpc (19205) CW: error connecting to
>> ('::1', 9999): ECONNREFUSED
>> 2015-05-06 01:16:46 INFO ZEO.ClientStorage zeostorage Testing
>> connection <ManagedClientConnection ('127.0.0.1', 9999)>
>> 2015-05-06 01:16:46 INFO ZEO.zrpc.Connection('C') (127.0.0.1:9999)
> hmm,
>
> just a small shot in the dark: Even if this "should" work too - why the client tries to connect the IPv4 address of loopback and the error gives the IPv6 of it back?
>
> I would try to eleminate this if possible and bring Zope down to IPv4 completely, because there are still many software libraries and applications around (even some underlying os parts) which are not well tested with IPv6.
>
> If this solves your prob - no idea...
>
>
> hth a bit.
> cheerioh,
>
>
> Niels.
> --
> Niels Dettenbach
> Syndicat IT & Internet
> http://www.syndicat.com


_______________________________________________
Zope maillist - Zope@zope.org
https://mail.zope.org/mailman/listinfo/zope
** No cross posts or HTML encoding! **
(Related lists -
https://mail.zope.org/mailman/listinfo/zope-announce
https://mail.zope.org/mailman/listinfo/zope-dev )
Re: ZEO manageUndo not working - DisconnectedError [ In reply to ]
After further testing I was able to sort this one out by downgrading ZopeUndo to 2.12.0 (pip install ZopeUndo==2.12.0 --force —upgrade).
PyPi only said 4.0 brought Py3 compability. Should I expect any problems using ZopeUndo 2.12 + ZEO/ZODB4/ZODB3 with their latest versions?

Best, Sebastian

> Am 06.05.2015 um 07:42 schrieb Niels Dettenbach (Syndicat IT & Internet) <nd@syndicat.com>:
>
> Am 6. Mai 2015 01:24:50 MESZ, schrieb "Sebastian Tänzer" <st@taenzer.me>:
>> 2015-05-06 01:16:46 WARNING ZEO.zrpc (19205) CW: error connecting to
>> ('::1', 9999): ECONNREFUSED
>> 2015-05-06 01:16:46 INFO ZEO.ClientStorage zeostorage Testing
>> connection <ManagedClientConnection ('127.0.0.1', 9999)>
>> 2015-05-06 01:16:46 INFO ZEO.zrpc.Connection('C') (127.0.0.1:9999)
> hmm,
>
> just a small shot in the dark: Even if this "should" work too - why the client tries to connect the IPv4 address of loopback and the error gives the IPv6 of it back?
>
> I would try to eleminate this if possible and bring Zope down to IPv4 completely, because there are still many software libraries and applications around (even some underlying os parts) which are not well tested with IPv6.
>
> If this solves your prob - no idea...
>
>
> hth a bit.
> cheerioh,
>
>
> Niels.
> --
> Niels Dettenbach
> Syndicat IT & Internet
> http://www.syndicat.com


_______________________________________________
Zope maillist - Zope@zope.org
https://mail.zope.org/mailman/listinfo/zope
** No cross posts or HTML encoding! **
(Related lists -
https://mail.zope.org/mailman/listinfo/zope-announce
https://mail.zope.org/mailman/listinfo/zope-dev )
Re: ZEO manageUndo not working - DisconnectedError [ In reply to ]
Hi Sebastian,

Am 06.05.2015 um 15:26 schrieb Sebastian Tänzer:
> After further testing I was able to sort this one out by downgrading
ZopeUndo to 2.12.0 (pip install ZopeUndo==2.12.0 --force —upgrade).
> PyPi only said 4.0 brought Py3 compability. Should I expect any
problems using ZopeUndo 2.12 + ZEO/ZODB4/ZODB3 with their latest versions?
>

Undo has long been a standard functionality in Zope2 but proven to be
quite dangerous as it is possible to totally mess up your object
tree.

IIRC undo has therefore been removed even from the ZODB - that is
what you are experiencing with the current version.

What seems to work quite well is to enable history support where you
have access to every old transaction and can compare or copy them
to be on top of the stack - which avoids the problem with disappearing
transactions as Undo has.

Unfortunately out of the box only a few Products have history support
enabled. Some monkey patching can enable it for many of the other
Products of stock Zope2. ObjectManager/Folder is a bit limited
since accessing a whole historic version of a subtree can't be done
easily. However, if you are interested and want to try:

http://old.zope.org/Members/tino/PatchHistory/view

(very old, but seems to work with the 2.12 at least)

Best,
Tino

> Best, Sebastian


_______________________________________________
Zope maillist - Zope@zope.org
https://mail.zope.org/mailman/listinfo/zope
** No cross posts or HTML encoding! **
(Related lists -
https://mail.zope.org/mailman/listinfo/zope-announce
https://mail.zope.org/mailman/listinfo/zope-dev )