2011/10/17 Gábor Farkas <[email protected]>:> hi,>> i have an
application in python, using PUSH/PULL zmq sockets, on freebsd.>>
sometimes the process with the PUSH socket dies with this message:>>
Exception zmq.core.error.ZMQError: ZMQError() in>
<zmq.core.socket.Socket object at 0x80d0c12b8> ignored> Bad file
descriptor> rc != -1 (kqueue.cpp:67)
hi all,

it was not a problem with zeromq, sorry that i wasted your time.

the problem was a combination of zeromq + process-forking.
basically i was doing zeromq in a gunicorn-based application.
gunicorn is a http-server written in python, and it works
by having a master process, that forks worker-processes
that handle the http-requests.

i am using zeromq in the worker-processes (to send logging-data
to a logging-server), and the problem happened when zeromq
was (accidentally) initialized in the master process and then
a worker process was forked from it. at this point,
something happened, and the master process died with an assertion-failed.

i am still not 100% sure exactly which line of code caused the problem
(it's a python application, and the crash in the master-process happens
when the worker-process returns from a function call),
but i was able to eliminate the problem by making sure that the master-process
does not initialize zeromq (the worker does). this way it works fine.

thanks for all the help,

gabor farkas
_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to