Your message dated Thu, 07 Jul 2022 12:04:24 +0000
with message-id <e1o9qf6-000ax1...@fasolo.debian.org>
and subject line Bug#1014102: fixed in python-redis 4.3.4-1
has caused the Debian Bug report #1014102,
regarding redis breaks python-redis autopkgtest: 14 tests fail
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
1014102: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1014102
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Source: redis, python-redis
Control: found -1 redis/5:7.0.2-2
Control: found -1 python-redis/3.5.3-2
Severity: serious
Tags: sid bookworm
User: debian...@lists.debian.org
Usertags: breaks needs-update

Dear maintainer(s),

With a recent upload of redis the autopkgtest of python-redis fails in testing when that autopkgtest is run with the binary packages of redis from unstable. It passes when run with only packages from testing. In tabular form:

                       pass            fail
redis                  from testing    5:7.0.2-2
python-redis           from testing    3.5.3-2
all others             from testing    from testing

I copied some of the output at the bottom of this report.

Currently this regression is blocking the migration of redis to testing [1]. Due to the nature of this issue, I filed this bug report against both packages. Can you please investigate the situation and reassign the bug to the right package?

More information about this bug and the reason for filing it can be found on
https://wiki.debian.org/ContinuousIntegration/RegressionEmailInformation

Paul

[1] https://qa.debian.org/excuses.php?package=redis

https://ci.debian.net/data/autopkgtest/testing/amd64/p/python-redis/23173373/log.gz

=================================== FAILURES =================================== __________________ TestRedisCommands.test_acl_getuser_setuser __________________

self = <tests.test_commands.TestRedisCommands object at 0x7fe1f02f2400>
r = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>
request = <FixtureRequest for <Function test_acl_getuser_setuser>>

    @skip_if_server_version_lt(REDIS_6_VERSION)
    def test_acl_getuser_setuser(self, r, request):
        username = 'redis-py-user'
            def teardown():
            r.acl_deluser(username)
        request.addfinalizer(teardown)
            # test enabled=False
        assert r.acl_setuser(username, enabled=False, reset=True)
      assert r.acl_getuser(username) == {
            'categories': ['-@all'],
            'commands': [],
            'enabled': False,
            'flags': ['off'],
            'keys': [],
            'passwords': [],
        }
E AssertionError: assert {'categories'...': False, ...} == {'categories'... ['off'], ...}
E         Omitting 4 identical items, use -vv to show
E         Differing items:
E         {'keys': b''} != {'keys': []}
E         {'flags': ['off', 'sanitize-payload']} != {'flags': ['off']}
E         Left contains 2 more items:
E         {'channels': b'', 'selectors': []}
E         Use -v to get the full diff

tests/test_commands.py:108: AssertionError
_______________________ TestRedisCommands.test_acl_list ________________________

self = <tests.test_commands.TestRedisCommands object at 0x7fe1f02eb970>
r = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>
request = <FixtureRequest for <Function test_acl_list>>

    @skip_if_server_version_lt(REDIS_6_VERSION)
    def test_acl_list(self, r, request):
        username = 'redis-py-user'
            def teardown():
            r.acl_deluser(username)
        request.addfinalizer(teardown)
            assert r.acl_setuser(username, enabled=False, reset=True)
        users = r.acl_list()
      assert 'user %s off -@all' % username in users
E AssertionError: assert ('user %s off -@all' % 'redis-py-user') in ['user default on nopass ~* &* +@all', 'user redis-py-user off sanitize-payload resetchannels -@all']

tests/test_commands.py:196: AssertionError
______________________ TestRedisCommands.test_config_set _______________________

self = <tests.test_commands.TestRedisCommands object at 0x7fe1f176b220>
r = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>

    def test_config_set(self, r):
        data = r.config_get()
        rdbname = data['dbfilename']
        try:
          assert r.config_set('dbfilename', 'redis_py_test.rdb')

tests/test_commands.py:379: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>
name = 'dbfilename', value = 'redis_py_test.rdb'

    def config_set(self, name, value):
        "Set config item ``name`` with ``value``"
      return self.execute_command('CONFIG SET', name, value)

redis/client.py:1243: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>
args = ('CONFIG SET', 'dbfilename', 'redis_py_test.rdb'), options = {}
pool = ConnectionPool<Connection<host=localhost,port=6379,db=9>>
command_name = 'CONFIG SET', conn = Connection<host=localhost,port=6379,db=9>

    def execute_command(self, *args, **options):
        "Execute a command and return a parsed response"
        pool = self.connection_pool
        command_name = args[0]
conn = self.connection or pool.get_connection(command_name, **options)
        try:
            conn.send_command(*args)
          return self.parse_response(conn, command_name, **options)

redis/client.py:901: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>
connection = Connection<host=localhost,port=6379,db=9>
command_name = 'CONFIG SET', options = {}

    def parse_response(self, connection, command_name, **options):
        "Parses a response from the Redis server"
        try:
          response = connection.read_response()

redis/client.py:915: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = Connection<host=localhost,port=6379,db=9>

    def read_response(self):
        "Read the response from a previously sent command"
        try:
            response = self._parser.read_response()
        except socket.timeout:
            self.disconnect()
            raise TimeoutError("Timeout reading from %s:%s" %
                               (self.host, self.port))
        except socket.error as e:
            self.disconnect()
            raise ConnectionError("Error while reading from %s:%s : %s" %
                                  (self.host, self.port, e.args))
        except BaseException:
            self.disconnect()
            raise
            if self.health_check_interval:
            self.next_health_check = time() + self.health_check_interval
            if isinstance(response, ResponseError):
          raise response
E redis.exceptions.ResponseError: CONFIG SET failed (possibly related to argument 'dbfilename') - can't set protected config

redis/connection.py:756: ResponseError

During handling of the above exception, another exception occurred:

self = <tests.test_commands.TestRedisCommands object at 0x7fe1f176b220>
r = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>

    def test_config_set(self, r):
        data = r.config_get()
        rdbname = data['dbfilename']
        try:
            assert r.config_set('dbfilename', 'redis_py_test.rdb')
            assert r.config_get()['dbfilename'] == 'redis_py_test.rdb'
        finally:
          assert r.config_set('dbfilename', rdbname)

tests/test_commands.py:382: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/client.py:1243: in config_set
    return self.execute_command('CONFIG SET', name, value)
redis/client.py:901: in execute_command
    return self.parse_response(conn, command_name, **options)
redis/client.py:915: in parse_response
    response = connection.read_response()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = Connection<host=localhost,port=6379,db=9>

    def read_response(self):
        "Read the response from a previously sent command"
        try:
            response = self._parser.read_response()
        except socket.timeout:
            self.disconnect()
            raise TimeoutError("Timeout reading from %s:%s" %
                               (self.host, self.port))
        except socket.error as e:
            self.disconnect()
            raise ConnectionError("Error while reading from %s:%s : %s" %
                                  (self.host, self.port, e.args))
        except BaseException:
            self.disconnect()
            raise
            if self.health_check_interval:
            self.next_health_check = time() + self.health_check_interval
            if isinstance(response, ResponseError):
          raise response
E redis.exceptions.ResponseError: CONFIG SET failed (possibly related to argument 'dbfilename') - can't set protected config

redis/connection.py:756: ResponseError
_______________________ TestRedisCommands.test_readwrite _______________________

self = <tests.test_commands.TestRedisCommands object at 0x7fe1f02ea550>
r = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>

    @skip_if_server_version_lt('3.0.0')
    def test_readwrite(self, r):
      assert r.readwrite()

tests/test_commands.py:1881: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/client.py:1231: in readwrite
    return self.execute_command('READWRITE')
redis/client.py:901: in execute_command
    return self.parse_response(conn, command_name, **options)
redis/client.py:915: in parse_response
    response = connection.read_response()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = Connection<host=localhost,port=6379,db=9>

    def read_response(self):
        "Read the response from a previously sent command"
        try:
            response = self._parser.read_response()
        except socket.timeout:
            self.disconnect()
            raise TimeoutError("Timeout reading from %s:%s" %
                               (self.host, self.port))
        except socket.error as e:
            self.disconnect()
            raise ConnectionError("Error while reading from %s:%s : %s" %
                                  (self.host, self.port, e.args))
        except BaseException:
            self.disconnect()
            raise
            if self.health_check_interval:
            self.next_health_check = time() + self.health_check_interval
            if isinstance(response, ResponseError):
          raise response
E redis.exceptions.ResponseError: This instance has cluster support disabled

redis/connection.py:756: ResponseError
____________________ TestRedisCommands.test_xclaim_trimmed _____________________

self = <tests.test_commands.TestRedisCommands object at 0x7fe1f0bbe790>
r = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>

    @skip_if_server_version_lt('5.0.0')
    def test_xclaim_trimmed(self, r):
        # xclaim should not raise an exception if the item is not there
        stream = 'stream'
        group = 'group'
            r.xgroup_create(stream, group, id="$", mkstream=True)
            # add a couple of new items
        sid1 = r.xadd(stream, {"item": 0})
        sid2 = r.xadd(stream, {"item": 0})
            # read them from consumer1
        r.xreadgroup(group, 'consumer1', {stream: ">"})
            # add a 3rd and trim the stream down to 2 items
        r.xadd(stream, {"item": 3}, maxlen=2, approximate=False)
            # xclaim them from consumer2
        # the item that is still in the stream should be returned
        item = r.xclaim(stream, group, 'consumer2', 0, [sid1, sid2])
      assert len(item) == 2
E       AssertionError: assert 1 == 2
E        +  where 1 = len([(b'1656465151154-1', {b'item': b'0'})])

tests/test_commands.py:2165: AssertionError
_____________________ TestRedisCommands.test_xgroup_create _____________________

self = <tests.test_commands.TestRedisCommands object at 0x7fe1f1676cd0>
r = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>

    @skip_if_server_version_lt('5.0.0')
    def test_xgroup_create(self, r):
        # tests xgroup_create and xinfo_groups
        stream = 'stream'
        group = 'group'
        r.xadd(stream, {'foo': 'bar'})
            # no group is setup yet, no info to obtain
        assert r.xinfo_groups(stream) == []
            assert r.xgroup_create(stream, group, 0)
        expected = [{
            'name': group.encode(),
            'consumers': 0,
            'pending': 0,
            'last-delivered-id': b'0-0'
        }]
      assert r.xinfo_groups(stream) == expected
E AssertionError: assert [{'consumers'... b'0-0', ...}] == [{'consumers'...'pending': 0}] E At index 0 diff: {'name': b'group', 'consumers': 0, 'pending': 0, 'last-delivered-id': b'0-0', 'entries-read': None, 'lag': 1} != {'name': b'group', 'consumers': 0, 'pending': 0, 'last-delivered-id': b'0-0'}
E         Use -v to get the full diff

tests/test_commands.py:2201: AssertionError
________________ TestRedisCommands.test_xgroup_create_mkstream _________________

self = <tests.test_commands.TestRedisCommands object at 0x7fe1f17e5d90>
r = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>

    @skip_if_server_version_lt('5.0.0')
    def test_xgroup_create_mkstream(self, r):
        # tests xgroup_create and xinfo_groups
        stream = 'stream'
        group = 'group'
            # an error is raised if a group is created on a stream that
        # doesn't already exist
        with pytest.raises(exceptions.ResponseError):
            r.xgroup_create(stream, group, 0)
            # however, with mkstream=True, the underlying stream is created
        # automatically
        assert r.xgroup_create(stream, group, 0, mkstream=True)
        expected = [{
            'name': group.encode(),
            'consumers': 0,
            'pending': 0,
            'last-delivered-id': b'0-0'
        }]
      assert r.xinfo_groups(stream) == expected
E AssertionError: assert [{'consumers'... b'0-0', ...}] == [{'consumers'...'pending': 0}] E At index 0 diff: {'name': b'group', 'consumers': 0, 'pending': 0, 'last-delivered-id': b'0-0', 'entries-read': None, 'lag': 0} != {'name': b'group', 'consumers': 0, 'pending': 0, 'last-delivered-id': b'0-0'}
E         Use -v to get the full diff

tests/test_commands.py:2223: AssertionError
_____________________ TestRedisCommands.test_xgroup_setid ______________________

self = <tests.test_commands.TestRedisCommands object at 0x7fe1f02eae80>
r = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>

    @skip_if_server_version_lt('5.0.0')
    def test_xgroup_setid(self, r):
        stream = 'stream'
        group = 'group'
        message_id = r.xadd(stream, {'foo': 'bar'})
            r.xgroup_create(stream, group, 0)
        # advance the last_delivered_id to the message_id
        r.xgroup_setid(stream, group, message_id)
        expected = [{
            'name': group.encode(),
            'consumers': 0,
            'pending': 0,
            'last-delivered-id': message_id
        }]
      assert r.xinfo_groups(stream) == expected
E AssertionError: assert [{'consumers'...1316-0', ...}] == [{'consumers'...'pending': 0}] E At index 0 diff: {'name': b'group', 'consumers': 0, 'pending': 0, 'last-delivered-id': b'1656465151316-0', 'entries-read': None, 'lag': 0} != {'name': b'group', 'consumers': 0, 'pending': 0, 'last-delivered-id': b'1656465151316-0'}
E         Use -v to get the full diff

tests/test_commands.py:2270: AssertionError
_____________ TestConnection.test_busy_loading_disconnects_socket ______________

self = <tests.test_connection_pool.TestConnection object at 0x7fe1f11dc250>
r = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>

    @skip_if_server_version_lt('2.8.8')
    def test_busy_loading_disconnects_socket(self, r):
        """
        If Redis raises a LOADING error, the connection should be
        disconnected and a BusyLoadingError raised
        """
        with pytest.raises(redis.BusyLoadingError):
          r.execute_command('DEBUG', 'ERROR', 'LOADING fake message')

tests/test_connection_pool.py:577: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/client.py:901: in execute_command
    return self.parse_response(conn, command_name, **options)
redis/client.py:915: in parse_response
    response = connection.read_response()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = Connection<host=localhost,port=6379,db=9>

    def read_response(self):
        "Read the response from a previously sent command"
        try:
            response = self._parser.read_response()
        except socket.timeout:
            self.disconnect()
            raise TimeoutError("Timeout reading from %s:%s" %
                               (self.host, self.port))
        except socket.error as e:
            self.disconnect()
            raise ConnectionError("Error while reading from %s:%s : %s" %
                                  (self.host, self.port, e.args))
        except BaseException:
            self.disconnect()
            raise
            if self.health_check_interval:
            self.next_health_check = time() + self.health_check_interval
            if isinstance(response, ResponseError):
          raise response
E redis.exceptions.ResponseError: DEBUG command not allowed. If the enable-debug-command option is set to "local", you can run it from a local connection, otherwise you need to set this option in the configuration file, and then restart the server.

redis/connection.py:756: ResponseError
_______ TestConnection.test_busy_loading_from_pipeline_immediate_command _______

self = <tests.test_connection_pool.TestConnection object at 0x7fe1f0160a00>
r = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>

    @skip_if_server_version_lt('2.8.8')
    def test_busy_loading_from_pipeline_immediate_command(self, r):
        """
        BusyLoadingErrors should raise from Pipelines that execute a
        command immediately, like WATCH does.
        """
        pipe = r.pipeline()
        with pytest.raises(redis.BusyLoadingError):
          pipe.immediate_execute_command('DEBUG', 'ERROR',
                                           'LOADING fake message')

tests/test_connection_pool.py:588: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/client.py:3841: in immediate_execute_command
    return self.parse_response(conn, command_name, **options)
redis/client.py:3977: in parse_response
    result = Redis.parse_response(
redis/client.py:915: in parse_response
    response = connection.read_response()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = Connection<host=localhost,port=6379,db=9>

    def read_response(self):
        "Read the response from a previously sent command"
        try:
            response = self._parser.read_response()
        except socket.timeout:
            self.disconnect()
            raise TimeoutError("Timeout reading from %s:%s" %
                               (self.host, self.port))
        except socket.error as e:
            self.disconnect()
            raise ConnectionError("Error while reading from %s:%s : %s" %
                                  (self.host, self.port, e.args))
        except BaseException:
            self.disconnect()
            raise
            if self.health_check_interval:
            self.next_health_check = time() + self.health_check_interval
            if isinstance(response, ResponseError):
          raise response
E redis.exceptions.ResponseError: DEBUG command not allowed. If the enable-debug-command option is set to "local", you can run it from a local connection, otherwise you need to set this option in the configuration file, and then restart the server.

redis/connection.py:756: ResponseError
________________ TestConnection.test_busy_loading_from_pipeline ________________

self = Pipeline<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>
connection = Connection<host=localhost,port=6379,db=9>
commands = [(('DEBUG', 'ERROR', 'LOADING fake message'), {})]
raise_on_error = True

    def _execute_transaction(self, connection, commands, raise_on_error):
        cmds = chain([(('MULTI', ), {})], commands, [(('EXEC', ), {})])
        all_cmds = connection.pack_commands([args for args, options in cmds
if EMPTY_RESPONSE not in options])
        connection.send_packed_command(all_cmds)
        errors = []
            # parse off the response for MULTI
        # NOTE: we need to handle ResponseErrors here and continue
        # so that we read all the additional command messages from
        # the socket
        try:
            self.parse_response(connection, '_')
        except ResponseError as e:
            errors.append((0, e))
            # and all the other commands
        for i, command in enumerate(commands):
            if EMPTY_RESPONSE in command[1]:
                errors.append((i, command[1][EMPTY_RESPONSE]))
            else:
                try:
                    self.parse_response(connection, '_')
                except ResponseError as e:
                    self.annotate_exception(e, i + 1, command[0])
                    errors.append((i, e))
            # parse the EXEC.
        try:
          response = self.parse_response(connection, '_')

redis/client.py:3911: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = Pipeline<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>
connection = Connection<host=localhost,port=6379,db=9>, command_name = '_'
options = {}

    def parse_response(self, connection, command_name, **options):
      result = Redis.parse_response(
            self, connection, command_name, **options)

redis/client.py:3977: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = Pipeline<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>
connection = Connection<host=localhost,port=6379,db=9>, command_name = '_'
options = {}

    def parse_response(self, connection, command_name, **options):
        "Parses a response from the Redis server"
        try:
          response = connection.read_response()

redis/client.py:915: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = Connection<host=localhost,port=6379,db=9>

    def read_response(self):
        "Read the response from a previously sent command"
        try:
            response = self._parser.read_response()
        except socket.timeout:
            self.disconnect()
            raise TimeoutError("Timeout reading from %s:%s" %
                               (self.host, self.port))
        except socket.error as e:
            self.disconnect()
            raise ConnectionError("Error while reading from %s:%s : %s" %
                                  (self.host, self.port, e.args))
        except BaseException:
            self.disconnect()
            raise
            if self.health_check_interval:
            self.next_health_check = time() + self.health_check_interval
            if isinstance(response, ResponseError):
          raise response
E redis.exceptions.ExecAbortError: Transaction discarded because of previous errors.

redis/connection.py:756: ExecAbortError

During handling of the above exception, another exception occurred:

self = <tests.test_connection_pool.TestConnection object at 0x7fe1f02f2ca0>
r = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>

    @skip_if_server_version_lt('2.8.8')
    def test_busy_loading_from_pipeline(self, r):
        """
        BusyLoadingErrors should be raised from a pipeline execution
        regardless of the raise_on_error flag.
        """
        pipe = r.pipeline()
        pipe.execute_command('DEBUG', 'ERROR', 'LOADING fake message')
        with pytest.raises(redis.BusyLoadingError):
          pipe.execute()

tests/test_connection_pool.py:604: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/client.py:4019: in execute
    return execute(conn, stack, raise_on_error)
redis/client.py:3914: in _execute_transaction
    raise errors[0][1]
redis/client.py:3904: in _execute_transaction
    self.parse_response(connection, '_')
redis/client.py:3977: in parse_response
    result = Redis.parse_response(
redis/client.py:915: in parse_response
    response = connection.read_response()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = Connection<host=localhost,port=6379,db=9>

    def read_response(self):
        "Read the response from a previously sent command"
        try:
            response = self._parser.read_response()
        except socket.timeout:
            self.disconnect()
            raise TimeoutError("Timeout reading from %s:%s" %
                               (self.host, self.port))
        except socket.error as e:
            self.disconnect()
            raise ConnectionError("Error while reading from %s:%s : %s" %
                                  (self.host, self.port, e.args))
        except BaseException:
            self.disconnect()
            raise
            if self.health_check_interval:
            self.next_health_check = time() + self.health_check_interval
            if isinstance(response, ResponseError):
          raise response
E redis.exceptions.ResponseError: Command # 1 (DEBUG ERROR LOADING fake message) of pipeline caused error: DEBUG command not allowed. If the enable-debug-command option is set to "local", you can run it from a local connection, otherwise you need to set this option in the configuration file, and then restart the server.

redis/connection.py:756: ResponseError
_____________________ TestConnection.test_read_only_error ______________________

self = <tests.test_connection_pool.TestConnection object at 0x7fe1f03a4700>
r = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>

    @skip_if_server_version_lt('2.8.8')
    def test_read_only_error(self, r):
        "READONLY errors get turned in ReadOnlyError exceptions"
        with pytest.raises(redis.ReadOnlyError):
          r.execute_command('DEBUG', 'ERROR', 'READONLY blah blah')

tests/test_connection_pool.py:614: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/client.py:901: in execute_command
    return self.parse_response(conn, command_name, **options)
redis/client.py:915: in parse_response
    response = connection.read_response()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = Connection<host=localhost,port=6379,db=9>

    def read_response(self):
        "Read the response from a previously sent command"
        try:
            response = self._parser.read_response()
        except socket.timeout:
            self.disconnect()
            raise TimeoutError("Timeout reading from %s:%s" %
                               (self.host, self.port))
        except socket.error as e:
            self.disconnect()
            raise ConnectionError("Error while reading from %s:%s : %s" %
                                  (self.host, self.port, e.args))
        except BaseException:
            self.disconnect()
            raise
            if self.health_check_interval:
            self.next_health_check = time() + self.health_check_interval
            if isinstance(response, ResponseError):
          raise response
E redis.exceptions.ResponseError: DEBUG command not allowed. If the enable-debug-command option is set to "local", you can run it from a local connection, otherwise you need to set this option in the configuration file, and then restart the server.

redis/connection.py:756: ResponseError
__________ TestConnection.test_connect_no_auth_supplied_when_required __________

self = <tests.test_connection_pool.TestConnection object at 0x7fe1f0c0cb20>
r = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>

    def test_connect_no_auth_supplied_when_required(self, r):
        """
        AuthenticationError should be raised when the server requires a
        password but one isn't supplied.
        """
        with pytest.raises(redis.AuthenticationError):
          r.execute_command('DEBUG', 'ERROR',
'ERR Client sent AUTH, but no password is set')

tests/test_connection_pool.py:642: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/client.py:901: in execute_command
    return self.parse_response(conn, command_name, **options)
redis/client.py:915: in parse_response
    response = connection.read_response()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = Connection<host=localhost,port=6379,db=9>

    def read_response(self):
        "Read the response from a previously sent command"
        try:
            response = self._parser.read_response()
        except socket.timeout:
            self.disconnect()
            raise TimeoutError("Timeout reading from %s:%s" %
                               (self.host, self.port))
        except socket.error as e:
            self.disconnect()
            raise ConnectionError("Error while reading from %s:%s : %s" %
                                  (self.host, self.port, e.args))
        except BaseException:
            self.disconnect()
            raise
            if self.health_check_interval:
            self.next_health_check = time() + self.health_check_interval
            if isinstance(response, ResponseError):
          raise response
E redis.exceptions.ResponseError: DEBUG command not allowed. If the enable-debug-command option is set to "local", you can run it from a local connection, otherwise you need to set this option in the configuration file, and then restart the server.

redis/connection.py:756: ResponseError
____________ TestConnection.test_connect_invalid_password_supplied _____________

self = <tests.test_connection_pool.TestConnection object at 0x7fe1f1676d90>
r = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>

    def test_connect_invalid_password_supplied(self, r):
"AuthenticationError should be raised when sending the wrong password"
        with pytest.raises(redis.AuthenticationError):
          r.execute_command('DEBUG', 'ERROR', 'ERR invalid password')

tests/test_connection_pool.py:648: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/client.py:901: in execute_command
    return self.parse_response(conn, command_name, **options)
redis/client.py:915: in parse_response
    response = connection.read_response()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = Connection<host=localhost,port=6379,db=9>

    def read_response(self):
        "Read the response from a previously sent command"
        try:
            response = self._parser.read_response()
        except socket.timeout:
            self.disconnect()
            raise TimeoutError("Timeout reading from %s:%s" %
                               (self.host, self.port))
        except socket.error as e:
            self.disconnect()
            raise ConnectionError("Error while reading from %s:%s : %s" %
                                  (self.host, self.port, e.args))
        except BaseException:
            self.disconnect()
            raise
            if self.health_check_interval:
            self.next_health_check = time() + self.health_check_interval
            if isinstance(response, ResponseError):
          raise response
E redis.exceptions.ResponseError: DEBUG command not allowed. If the enable-debug-command option is set to "local", you can run it from a local connection, otherwise you need to set this option in the configuration file, and then restart the server.

redis/connection.py:756: ResponseError
=========================== short test summary info ============================ FAILED tests/test_commands.py::TestRedisCommands::test_acl_getuser_setuser - ... FAILED tests/test_commands.py::TestRedisCommands::test_acl_list - AssertionEr... FAILED tests/test_commands.py::TestRedisCommands::test_config_set - redis.exc... FAILED tests/test_commands.py::TestRedisCommands::test_readwrite - redis.exce... FAILED tests/test_commands.py::TestRedisCommands::test_xclaim_trimmed - Asser... FAILED tests/test_commands.py::TestRedisCommands::test_xgroup_create - Assert... FAILED tests/test_commands.py::TestRedisCommands::test_xgroup_create_mkstream FAILED tests/test_commands.py::TestRedisCommands::test_xgroup_setid - Asserti... FAILED tests/test_connection_pool.py::TestConnection::test_busy_loading_disconnects_socket FAILED tests/test_connection_pool.py::TestConnection::test_busy_loading_from_pipeline_immediate_command FAILED tests/test_connection_pool.py::TestConnection::test_busy_loading_from_pipeline FAILED tests/test_connection_pool.py::TestConnection::test_read_only_error - ... FAILED tests/test_connection_pool.py::TestConnection::test_connect_no_auth_supplied_when_required FAILED tests/test_connection_pool.py::TestConnection::test_connect_invalid_password_supplied ================== 14 failed, 460 passed, 1 skipped in 11.89s ==================
autopkgtest [01:12:35]: test 0002-python3

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


--- End Message ---
--- Begin Message ---
Source: python-redis
Source-Version: 4.3.4-1
Done: Chris Lamb <la...@debian.org>

We believe that the bug you reported is fixed in the latest version of
python-redis, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1014...@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Chris Lamb <la...@debian.org> (supplier of updated python-redis package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmas...@ftp-master.debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 1.8
Date: Thu, 07 Jul 2022 12:43:29 +0100
Source: python-redis
Architecture: source
Version: 4.3.4-1
Distribution: unstable
Urgency: medium
Maintainer: Debian Python Team <team+pyt...@tracker.debian.org>
Changed-By: Chris Lamb <la...@debian.org>
Closes: 1014102
Changes:
 python-redis (4.3.4-1) unstable; urgency=medium
 .
   * New upstream release. (Closes: #1014102)
   * Use py3versions --supported in autopkgtests over --requested.
   * Bump debhelper compatibility level to 13.
   * Update debian/copyright.
   * Bump Standards-Version to 4.6.1.
   * Install examples.
Checksums-Sha1:
 d8cc262e6e366497ebfddafa2740edc2b1cf6a72 2129 python-redis_4.3.4-1.dsc
 71193eea1e329fbeca00d9cdd4f29310e08c6e6b 4613714 python-redis_4.3.4.orig.tar.gz
 e7152966285d2959ed1c431949521b1d979506f5 5240 
python-redis_4.3.4-1.debian.tar.xz
 d3f5228f0ace3588029a4189dae4d963486146dc 6566 
python-redis_4.3.4-1_amd64.buildinfo
Checksums-Sha256:
 47bc6b89b41bba04903b61d5a83a9f548f70913f7ddf3844bb5aa99c676663f7 2129 
python-redis_4.3.4-1.dsc
 a3d3b6e86cc73c253fd5c02d174098abf3fa043dfdcb29689eb928f60a552fd6 4613714 
python-redis_4.3.4.orig.tar.gz
 69f8a1d6bd83e00ccdb5e80fb8f4d02ce04546eddd1ec2e721ba37cf76273514 5240 
python-redis_4.3.4-1.debian.tar.xz
 5ea485001f6d085dbca3a17aa44a9696ba8e14f34507374a47368b7f468cae9c 6566 
python-redis_4.3.4-1_amd64.buildinfo
Files:
 a34a436a90309d1468b7ae1954fb1419 2129 python optional python-redis_4.3.4-1.dsc
 83ddb004c1b83a74b8fbe03cbc0ee7fe 4613714 python optional 
python-redis_4.3.4.orig.tar.gz
 8db2b34721797e870c10c417fc6f089b 5240 python optional 
python-redis_4.3.4-1.debian.tar.xz
 460102da8de96e8572aa564b81b1d138 6566 python optional 
python-redis_4.3.4-1_amd64.buildinfo

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEwv5L0nHBObhsUz5GHpU+J9QxHlgFAmLGyBUACgkQHpU+J9Qx
Hlhxag//c17GrPmZE3vQLz4kbKYbtxvuqLvvPMysVo+vNJEoF3zS6qeZHY8LKKab
hfx95WwLWsmdtWEFsdPs+vdMj9qAHhL44KsiI7irHGf36JIcmhh2ak3lZOZltyMk
GHCTwVGwgQRE3PWINQKBMlQbwrO/VMqjZMSV5XREBv4nLUA5vuupan0N63a5xKJ9
pY3NTYQWLOwSiFU1GiG2D6faadLK+vpLApltZjj/xedVv7oc5JL63TbRrv4MsiCu
5iq7NRpRGIW5iOSfzMCGMScFm4oyRge9yuPMR4AKTyG9FnHQenI69evtO5XvqT7/
mzXUK5q2gYurOD91Wqzy2h5N5HXtZm5Szu0ZtGM8jnwqIMnuNSqro5R01QQVlSHA
5OOm0VDYoX8FL8c2mEAMbTr+nyo2eQzLSPBnXvDOCTN6CXKSVSm7QQ9nww1+bYdS
qairQOwJ5oom8xJd+FLg53OhYXqFS7PKlIfgLbsRLLEGazgBXE2R+r7a3L6ZRr/g
oFG78ABzcWLFj5ViC+JOnl92bAB3xIFFxQ80gBwEZGRd5/xAf20bkmTb5HWkvQU5
96h66ofdcusXlvRdnnFPt0cI6+fYSmmS4vmmEzTQ7qG3rZXSzypThzGgja8orE+D
OGvwoaxt6tvYi4QpZew/NAF6HrHG146i18KugsRtgRINJ8PbZ/0=
=kbKW
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to