ZeroMQ driver does not close sockets with eventlet 0.9.17

Bug #1099185 reported by Erica Windisch
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
oslo-incubator
Fix Released
Medium
Erica Windisch
Grizzly
Fix Released
Medium
Erica Windisch

Bug Description

Due to a change in eventlet.green.zmq per upstream commit 90c9b3b6ade2, the ZeroMQ socket.close() no longer accepts the linger keyword argument. This caused calls to close(linger=-1) to fail, resulting in leaking file descriptors. Eventually systems would error:

  "Too many open files (signaler.cpp:330)"

Technically, this is a bug in eventlet.green.zmq failing to accept pyzmq's linger kwarg. However, the default value of linger is already -1, so we can entirely omit the argument.

Additionally, we should at least log an error if a socket cannot be closed.

Does not affect installations with eventlet<0.9.17

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to oslo-incubator (master)

Fix proposed to branch: master
Review: https://review.openstack.org/19580

Changed in oslo:
assignee: nobody → Eric Windisch (ewindisch)
status: New → In Progress
summary: - ZeroMQ driver does not close sockets with eventlet >0.9.14
+ ZeroMQ driver does not close sockets with eventlet 0.9.17
description: updated
Revision history for this message
Erica Windisch (ewindisch) wrote :
Mark McLoughlin (markmc)
Changed in oslo:
importance: Undecided → Medium
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to oslo-incubator (master)

Reviewed: https://review.openstack.org/19580
Committed: http://github.com/openstack/oslo-incubator/commit/f1b23c8077593334ec8bc94fcb40287b7d31f7a5
Submitter: Jenkins
Branch: master

commit f1b23c8077593334ec8bc94fcb40287b7d31f7a5
Author: Eric Windisch <email address hidden>
Date: Sun Jan 13 14:11:49 2013 -0500

    Fix zmq socket.close() with eventlet 0.9.17

    A bug/change in eventlet 0.9.17 blocks the
    kwargs from close() from passing through
    to pyzmq. As this code was only explicitly
    passing defaults, no argument is necessary.

    This addresses file descriptor leaks reported
    in bug 1099185. This bug does not affect
    installations with eventlet<=0.9.16

    The code will now log an error if a socket
    cannot be closed.

    Change-Id: Id438dab9744042328b7fac44693d02e116d8c1d9

Changed in oslo:
status: In Progress → Fix Committed
Thierry Carrez (ttx)
Changed in oslo:
milestone: none → grizzly-3
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.