Skip to content

DISCARD without MULTI #795

@jkarneges

Description

@jkarneges

Hey folks,

I came across a weird issue today where one of our processes started raising ResponseError: DISCARD without MULTI when calling execute() on a pipeline object. As far as I can tell, this error should be impossible to receive since redis-py is supposed to take care of any discard/unwatching when using pipeline objects. This suggests a bug in redis-py not properly cleaning up after itself, although I've been reading the code and I don't see yet how this is possible. I also don't know how to reproduce the bug.

ERROR 2016-10-29 04:34:32.807 error expiring
Traceback (most recent call last):
  File "dmserver.py", line 1477, in push_in_worker
    redis_ops.cq_expire_items(channel_key)
  File "redis_ops.py", line 129, in cq_expire_items
    pipe.execute()
  File "/usr/lib/python2.7/dist-packages/redis/client.py", line 2626, in execute
    return execute(conn, stack, raise_on_error)
  File "/usr/lib/python2.7/dist-packages/redis/client.py", line 2521, in _execute_transaction
    self.immediate_execute_command('DISCARD')
  File "/usr/lib/python2.7/dist-packages/redis/client.py", line 2461, in immediate_execute_command
    return self.parse_response(conn, command_name, **options)
  File "/usr/lib/python2.7/dist-packages/redis/client.py", line 2584, in parse_response
    self, connection, command_name, **options)
  File "/usr/lib/python2.7/dist-packages/redis/client.py", line 585, in parse_response
    response = connection.read_response()
  File "/usr/lib/python2.7/dist-packages/redis/connection.py", line 582, in read_response
    raise response
ResponseError: DISCARD without MULTI

I'm using Redis 3.0.6 and redis-py 2.10.5.

Anyone seen anything like this before and have any suggestions?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions