[ZODB-Dev] ClientDisconnected error on windows

JohnD.Heintz JohnD.Heintz
Wed, 8 Aug 2001 16:45:35 -0500


On Wednesday 08 August 2001 16:19, Jeremy Hylton wrote:
> >>>>> "JDH" =3D=3D John D Heintz <jheintz@isogen.com> writes:
>
>   JDH> Didn't work for us.  Also, on linux we get really long pauses
>   JDH> where there is no CPU being used - I can only presume python is
>   JDH> blocking on the socket.
>
>   JDH> What can I do to capture more detail?  We should be able to
>   JDH> package up a reproducible test case - is that the best thing?
>
> A test case that I can run on my machine is probably best.  If you can
> give some idea of what the StorageServer is doing that would help, too.
>
>   JDH> What I can package is our use of ZODB for omniORB.  It would
>   JDH> require you to have omniORBpy installed but then it should be
>   JDH> trivial to run our code.  Do you want this?
>
> That sounds good.

Sent to you in mail, and packaged as ZCF 0.6 at =20
http://www.zope.org/Members/jheintz/ZODB_CORBA_Connection/ZCF-0_6.zip/vie=
w

>
>   JDH> The only other thing I can mention right now is that we are
>   JDH> getting these errors during stress testing - multiple threads
>   JDH> hitting our server full out.
>
> That may be helpful.
>
> I'm still having trouble understand what the problem is.  It's hard
> for me to grasp the larger system environment and what you think the
> correct behavior would be.  The tracebacks alone show a tiny snapshot
> of the system state, but not necessarily an illegal one.  So I've got
> a bunch of questions below; feel free to respond to only the relevant
> ones :-).

Thanks, hopefully with the ZCF 0.6 code you should be able to replicate t=
his=20
on your own boxes as well.

>
> The tracebacks you show seem like part of the documented behavior of
> ZEO.  You can get a ClientDisconnected error when you commit a
> transaction.  You can also get a POSException, a thread.error, or a
> socket.error.  [I'll treat your POSException suggestion separately.]

Where is this documented?  My ideal would be something along the lines of=
=20
BTrees.Interfaces with all exceptions declared.  My suggestion about=20
POSException was based primarily on the belief that *POSException* was th=
e=20
documentation.

>
> It may take a moment for a client to reconnect, so under heavy load I
> can imagine getting this error several times before the client
> reconnects.  When you get this error, do you retry the transaction?
> If so, does it succeed (eventually)?  Or is this client disconnected
> permanently?

Umm, I think on Linux we are getting reconnected, but I'm not so sure abo=
ut=20
on Win2k. =20

Regarding the reconnect time: The scenerio we have is:
[ZEO Server] <-> [ZEO Client / CORBA Server] <=3D=3D> [many CORBA Clients=
]

With this setup why would there be any waiting to reconnect?  The ZEO Ser=
ver=20
is only serving one ZEO Client and therefore should be able to respond=20
immediately to a reconnect request.  Right?

>
> Or is the problem that you don't think there's any reason for the
> socket to be failing in the first place?  The error that you're seeing
> on Linux occurs on a non-blocking socket when there's no room left in
> the pipe or socket to write the data.  Perhaps this is an asyncore bug
> -- that asyncore should be catching this and trying again.  I don't
> know what that would mean for Windows, since it's a completely
> different error.

Right.  We can run all the processes on a single box and still experience=
 the=20
problem. We have no network failures that I'm aware of and I'm not doing=20
anything but throw data at the CORBA Server (single ZEO Client) fast.  I=20
would expect either asyncore or zrpc to handle the problem more gracefull=
y.  =20

When the socket runs out of room asyncore should block further pushes unt=
il=20
more room is available.  Are there tunable parameters in zrpc / asyncore =
/=20
the OS to specify how much data should be cached for a socket?

>
> Jeremy
>
>
> _______________________________________________
> For more information about ZODB, see the ZODB Wiki:
> http://www.zope.org/Wikis/ZODB/
>
> ZODB-Dev mailing list  -  ZODB-Dev@zope.org
> http://lists.zope.org/mailman/listinfo/zodb-dev

Thanks!
John

--=20
=2E . . . . . . . . . . . . . . . . . . . . . . .

John D. Heintz | Senior Engineer

1016 La Posada Dr. | Suite 240 | Austin TX 78752
T 512.633.1198 | jheintz@isogen.com

w w w . d a t a c h a n n e l . c o m