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

Hello,

if I have a BlockingConnection-based sender that just sends:

    #!/usr/bin/python
    
    import pika
    import time
    
    credentials = pika.credentials.PlainCredentials('guest', 'guest')
    parameters = pika.ConnectionParameters(
        host="localhost",
        credentials=credentials,
        virtual_host="/")
    connection = pika.BlockingConnection(parameters)
    channel = connection.channel()
    
    while True:
        print "sending..."
        channel.basic_publish(
            exchange="",
            body="test",
            routing_key="",
            properties=pika.BasicProperties(
                content_type="text/plain",
                delivery_mode=2))
        time.sleep(1)

...and I shut down the server while it runs, it will never realise and
just keep sending happily:

$ ./dumb-sender 
sending...
sending...
sending...
sending...
sending...
***** /etc/init.d/rabbitmq-server stop *****
sending...
sending...
sending...
sending...
sending...
/usr/lib/python2.7/dist-packages/pika/connection.py:642: UserWarning: Pika: 
Write buffer exceeded warning threshold at 223 bytes and an estimated 10 frames 
behind
  warn(message % (self.outbound_buffer.size, est_frames_behind))
/usr/lib/python2.7/dist-packages/pika/connection.py:642: UserWarning: Pika: 
Write buffer exceeded warning threshold at 235 bytes and an estimated 10 frames 
behind
  warn(message % (self.outbound_buffer.size, est_frames_behind))
sending...
***** /etc/init.d/rabbitmq-server start *****
/usr/lib/python2.7/dist-packages/pika/connection.py:642: UserWarning: Pika: 
Write buffer exceeded warning threshold at 252 bytes and an estimated 11 frames 
behind
  warn(message % (self.outbound_buffer.size, est_frames_behind))
/usr/lib/python2.7/dist-packages/pika/connection.py:642: UserWarning: Pika: 
Write buffer exceeded warning threshold at 286 bytes and an estimated 13 frames 
behind
  warn(message % (self.outbound_buffer.size, est_frames_behind))
/usr/lib/python2.7/dist-packages/pika/connection.py:642: UserWarning: Pika: 
Write buffer exceeded warning threshold at 298 bytes and an estimated 13 frames 
behind
  warn(message % (self.outbound_buffer.size, est_frames_behind))
sending...

Note that it will just enqueue data and never send it out nor raise an
error.

This is rather an issue: simple scripts will not realise that their
messages have not been sent at all, and will happily pretend a
successful delivery to a dead broker (!!)

I'll now proceed to reimplement everything I have done in the last two
days using the asynchronous interface, and see if it works better :-/


Best regards,

Enrico


-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

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

Versions of packages python-pika depends on:
ii  python     2.7.2-9
ii  python2.6  2.6.7-4
ii  python2.7  2.7.2-7

python-pika recommends no packages.

python-pika suggests no packages.

-- no debconf information



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to