Package: python-pika
Version: 0.9.5-1
Severity: normal

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


Hello,

when you execute this code ...

    #!/usr/bin/env python

    import pika
    from itertools import count

    counter = count(1)

    def receive_callback(channel, method, properties, body):
        print 'Received message {counter}: {body}'.format(
            counter=counter.next(),
            body=body
        )

        channel.basic_ack(delivery_tag=method.delivery_tag)


    connection = pika.BlockingConnection(
        pika.ConnectionParameters(
            host='127.0.0.1',
            port=5672,
        )
    )

    channel = connection.channel()

    channel.queue_declare(queue='testertest', durable=True)
    channel.basic_qos(prefetch_count=1)
    channel.basic_consume(
        receive_callback,
        queue='testertest'
    )

    print 'Waiting for messages ...'
    channel.start_consuming()


you will get this Exception after N seconds (where N is defined at 
SOCKET_TIMEOUT_THRESHOLD in pika/adapters/blocking_connection.py (default is 
100))


    Waiting for messages ...
    Traceback (most recent call last):
      File 
"/usr/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", line 
293, in start_consuming
        self.transport.connection.process_data_events()
      File 
"/usr/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", line 
103, in process_data_events
        self.process_timeouts()
      File 
"/usr/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", line 
157, in process_timeouts
        log.debug('%s: Timeout calling %s',
    NameError: global name 'log' is not defined


This Exception makes it impossible for the process_timeouts method to
handle timeouts. Code, which uses BlockingConnection, will fail
in a unexpected way.

I attached a patch to fix this problem.

Cheers,
Robin


- -- System Information:
Debian Release: 7.4
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.2.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages python-pika depends on:
ii  python     2.7.3-4+deb7u1
ii  python2.6  2.6.8-1.1
ii  python2.7  2.7.3-6

python-pika recommends no packages.

python-pika suggests no packages.

- -- no debconf information

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iQIcBAEBAgAGBQJTPAHZAAoJEKkIkdarOw7WeikP/0E62/sNUOfD/GF7MCD+RydS
uHCINmKMEmWZGD6Qe9ygAcASophh1UrWUgrrIia75SR1I/5Cl3dd3khRpo0PFxZc
Fkhd3JOCJxJueziWLtWghAVSw/cSZrr67y/6Bh3h4EZSJrnyPYcYDfNNswEecBvj
U+ZM1/7o5DuQjzV8oyiopQX+69TpgbnVf+1dcKy4UGEH7wubO3+0n4kGF/X0xNO7
k+VsWVF0hPP951Pmr1i+tZdX/WkgkISOgFEdXyCLZ7Dvpq5lpPpjSqKuxnHTlIW4
gvLznjrKLNNZMmiLdp/aKmaemkJrtoa6oAF4/j24nmaFBWTTVzmzYEhAu1qKx/71
hMcVzB8nt9PWKr/pRtfyEah9rWg0n/EErPV4X7ZGTlYe6LqIKdF1IyEFMVm8HyXn
0YKLuwm4/AbPpBQ5PsECmxHRCX2nnDH0kmya+w6r2+SIsW8Bgo6uY24n2eeziLn4
2NsEuI+tU4DknZdTiVXBJpaom+Mcc2ZW02VtGz8JLK8pKkJsksdNTVJmQBVt4dZl
WO81UH1RMjzRUmx41uLULENKlN9THR8ZiRGS6DRYpywDwZWlWIXa+sc6e6wv3WX2
OTEr/X4s6aRTXrBgxeEt4cETbCGh7JVleIwBjzg5MPee2xDeX3hbhTQzvoxEaRRs
KDEXT1BrEDWZEkxPkHvk
=oht0
-----END PGP SIGNATURE-----
--- a/pika/adapters/blocking_connection.py
+++ b/pika/adapters/blocking_connection.py
@@ -8,6 +8,7 @@
 import time
 import types
 
+import pika.log
 import pika.spec as spec
 
 from pika.adapters import BaseConnection
@@ -78,7 +79,7 @@
         except socket.timeout:
             self._socket_timeouts += 1
             if self._socket_timeouts > SOCKET_TIMEOUT_THRESHOLD:
-                log.error(SOCKET_TIMEOUT_MESSAGE)
+                pika.log.error(SOCKET_TIMEOUT_MESSAGE)
                 self._handle_disconnect()
 
     def process_data_events(self):
@@ -96,7 +97,7 @@
         except socket.timeout:
             self._socket_timeouts += 1
             if self._socket_timeouts > SOCKET_TIMEOUT_THRESHOLD:
-                log.error(SOCKET_TIMEOUT_MESSAGE)
+                pika.log.error(SOCKET_TIMEOUT_MESSAGE)
                 self._handle_disconnect()
 
         # Process our timeout events
@@ -154,7 +155,7 @@
         for timeout_id in keys:
             if timeout_id in self._timeouts and \
                 self._timeouts[timeout_id]['deadline'] <= start_time:
-                log.debug('%s: Timeout calling %s',
+                pika.log.debug('%s: Timeout calling %s',
                           self.__class__.__name__,
                           self._timeouts[timeout_id]['handler'])
                 self._timeouts[timeout_id]['handler']()

Reply via email to