Skip to content

Commit

Permalink
Merge pull request #1111 from sphuber/fix_1099_update_pyzmq
Browse files Browse the repository at this point in the history
Update the `pyzmq` dependency
  • Loading branch information
k4nar authored Dec 11, 2019
2 parents 86177a1 + 51bb088 commit b3a0647
Show file tree
Hide file tree
Showing 15 changed files with 17 additions and 78 deletions.
3 changes: 1 addition & 2 deletions circus/arbiter.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from tornado import gen

import zmq
from zmq.eventloop import ioloop
from tornado import ioloop

from circus.controller import Controller
from circus.exc import AlreadyExist
Expand Down Expand Up @@ -242,7 +242,6 @@ def running(self):
def _init_context(self, context):
self.context = context or zmq.Context.instance()
if self.loop is None:
ioloop.install()
self.loop = ioloop.IOLoop.instance()
self.ctrl = Controller(self.endpoint, self.multicast_endpoint,
self.context, self.loop, self, self.check_delay,
Expand Down
3 changes: 2 additions & 1 deletion circus/controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@

import zmq
import zmq.utils.jsonapi as json
from zmq.eventloop import ioloop, zmqstream
from tornado import ioloop
from zmq.eventloop import zmqstream
from tornado.concurrent import Future

from circus.util import create_udp_socket
Expand Down
3 changes: 2 additions & 1 deletion circus/plugins/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@

import zmq
import zmq.utils.jsonapi as json
from zmq.eventloop import ioloop, zmqstream
from tornado import ioloop
from zmq.eventloop import zmqstream

from circus import logger, __version__
from circus.client import make_message, cast_message
Expand Down
2 changes: 1 addition & 1 deletion circus/plugins/command_reloader.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from circus.plugins import CircusPlugin
from circus import logger
from zmq.eventloop import ioloop
from tornado import ioloop


class CommandReloader(CircusPlugin):
Expand Down
2 changes: 1 addition & 1 deletion circus/plugins/statsd.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import socket

from zmq.eventloop import ioloop
from tornado import ioloop

from circus.plugins import CircusPlugin
from circus.util import human2bytes
Expand Down
2 changes: 1 addition & 1 deletion circus/plugins/watchdog.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import socket
import time

from zmq.eventloop import ioloop
from tornado import ioloop
from circus.plugins import CircusPlugin
from circus import logger
from circus import util
Expand Down
2 changes: 1 addition & 1 deletion circus/stats/collector.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

from circus import util
from circus import logger
from zmq.eventloop import ioloop
from tornado import ioloop


class BaseStatsCollector(ioloop.PeriodicCallback):
Expand Down
3 changes: 2 additions & 1 deletion circus/stats/streamer.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@

import zmq
import zmq.utils.jsonapi as json
from zmq.eventloop import ioloop, zmqstream
from tornado import ioloop
from zmq.eventloop import zmqstream

from circus.commands import get_commands
from circus.client import CircusClient
Expand Down
2 changes: 1 addition & 1 deletion circus/stream/papa_redirector.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from zmq.eventloop import ioloop
from tornado import ioloop
from circus.stream import Redirector


Expand Down
2 changes: 1 addition & 1 deletion circus/stream/redirector.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import os
import sys

from zmq.eventloop import ioloop
from tornado import ioloop


class Redirector(object):
Expand Down
63 changes: 0 additions & 63 deletions circus/tests/support.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
from unittest2 import findTestCases # NOQA

from tornado.testing import AsyncTestCase
from zmq.eventloop import ioloop
import mock
import tornado

Expand All @@ -32,7 +31,6 @@

DEBUG = sysconfig.get_config_var('Py_DEBUG') == 1

ioloop.install()
if 'ASYNC_TEST_TIMEOUT' not in os.environ:
os.environ['ASYNC_TEST_TIMEOUT'] = '30'

Expand All @@ -55,68 +53,7 @@ def __init__(self, name):


def get_ioloop():
from zmq.eventloop.ioloop import ZMQPoller
from zmq.eventloop.ioloop import ZMQError, ETERM
from tornado.ioloop import PollIOLoop

class DebugPoller(ZMQPoller):
def __init__(self):
super(DebugPoller, self).__init__()
self._fds = []

def register(self, fd, events):
if fd not in self._fds:
self._fds.append(fd)
return self._poller.register(fd, self._map_events(events))

def modify(self, fd, events):
if fd not in self._fds:
self._fds.append(fd)
return self._poller.modify(fd, self._map_events(events))

def unregister(self, fd):
if fd in self._fds:
self._fds.remove(fd)
return self._poller.unregister(fd)

def poll(self, timeout):
"""
#737 - For some reason the poller issues events with
unexistant FDs, usually with big ints. We have not found yet the
reason of this
behavior that happens only during the tests. But by filtering out
those events, everything works fine.
"""
z_events = self._poller.poll(1000*timeout)
return [(fd, self._remap_events(evt)) for fd, evt in z_events
if fd in self._fds]

class DebugLoop(PollIOLoop):
def initialize(self, **kwargs):
PollIOLoop.initialize(self, impl=DebugPoller(), **kwargs)

def handle_callback_exception(self, callback):
exc_type, exc_value, tb = sys.exc_info()
raise exc_value

@staticmethod
def instance():
PollIOLoop.configure(DebugLoop)
return PollIOLoop.instance()

def start(self):
try:
super(DebugLoop, self).start()
except ZMQError as e:
if e.errno == ETERM:
# quietly return on ETERM
pass
else:
raise e

from tornado import ioloop
ioloop.IOLoop.configure(DebugLoop)
return ioloop.IOLoop.instance()


Expand Down
2 changes: 1 addition & 1 deletion circus/tests/test_stats_collector.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from collections import defaultdict
from circus.fixed_threading import Thread

from zmq.eventloop import ioloop
from tornado import ioloop

from circus.stats import collector as collector_module
from circus.stats.collector import SocketStatsCollector, WatcherStatsCollector
Expand Down
2 changes: 1 addition & 1 deletion circus/watcher.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

from psutil import NoSuchProcess, TimeoutExpired
import zmq.utils.jsonapi as json
from zmq.eventloop import ioloop
from tornado import ioloop

from circus.process import Process, DEAD_OR_ZOMBIE, UNEXISTING
from circus.papa_process_proxy import PapaProcessProxy
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
raise SystemExit("Circus requires Python 2.7 or higher.")


install_requires = ['psutil', 'pyzmq>=13.1.0,<17.0', 'tornado>=3.0,<5.0', 'six']
install_requires = ['psutil', 'pyzmq>=17.0', 'tornado>=3.0,<5.0', 'six']

try:
import argparse # NOQA
Expand Down
2 changes: 1 addition & 1 deletion tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ deps =
PyYAML
six
tornado>=3.0,<5.0
pyzmq>=13.1.0,<17.0
pyzmq>=17.0

setenv =
TESTING=1
Expand Down

0 comments on commit b3a0647

Please sign in to comment.