Redis-CappedCollection v1.10 Perl 5 v5.39.3 x86_64-linux

Status
Fail
From
Andreas J. König (ANDK)
Dist
Redis-CappedCollection v1.10
Platform
Perl 5 v5.39.3 x86_64-linux
Date
2023-10-07 20:28:12
ID
0987ca2c-6550-11ee-abdd-df9ef98fa6fb
This distribution has been tested as part of the CPAN Testers
project, supporting the Perl programming language.  See
http://wiki.cpantesters.org/ for more information or email
questions to cpan-testers-discuss@perl.org


--
Dear Sergey Gladkov,

This is a computer-generated report for Redis-CappedCollection-1.10
on perl 5.39.3, created by CPAN-Reporter-1.2019.

Thank you for uploading your work to CPAN.  However, there was a problem
testing your distribution.

If you think this report is invalid, please consult the CPAN Testers Wiki
for suggestions on how to avoid getting FAIL reports for missing library
or binary dependencies, unsupported operating systems, and so on:

http://wiki.cpantesters.org/wiki/CPANAuthorNotes

Sections of this report:

    * Tester comments
    * Program output
    * Prerequisites
    * Environment and other context

------------------------------
TESTER COMMENTS
------------------------------

Additional comments from tester:

this report is from an automated smoke testing program
and was not reviewed by a human for accuracy

------------------------------
PROGRAM OUTPUT
------------------------------

Output from '/usr/bin/make test':

PERL_DL_NONLAZY=1 "/tmp/basesmoker-reloperl-WrhG/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/00_compile.t t/00_CappedCollection/00_compile.t t/00_CappedCollection/01_new.t t/00_CappedCollection/02_insert.t t/00_CappedCollection/03_update.t t/00_CappedCollection/04_receive.t t/00_CappedCollection/05_collection_info.t t/00_CappedCollection/06_pop_oldest.t t/00_CappedCollection/07_exists.t t/00_CappedCollection/08_lists.t t/00_CappedCollection/09_drop_collection.t t/00_CappedCollection/10_quit.t t/00_CappedCollection/11_max_datasize.t t/00_CappedCollection/12_last_errorcode.t t/00_CappedCollection/13_name.t t/00_CappedCollection/14_max_list_items.t t/00_CappedCollection/15_cleanup_bytes.t t/00_CappedCollection/17_cleanup_items.t t/00_CappedCollection/18_info.t t/00_CappedCollection/19_drop.t t/00_CappedCollection/20_cleaning.t t/00_CappedCollection/21_rollback.t t/00_CappedCollection/22_alarm.t t/00_CappedCollection/23_cleaning_bench.t t/00_CappedCollection/24_timeout.t t/00_CappedCollection/25_cleaning_correctness.t t/00_CappedCollection/26_script_variable_protection.t t/00_CappedCollection/27_fork.t t/00_CappedCollection/28_data_dependency.t

#   Failed test 'no warnings'
#   at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/5.39.3/Test/Builder.pm line 193.
# There were 1 warning(s)
#     Previous test 0 ''
#     Attempt to call undefined import method with arguments ("1.976") via package "Redis" (Perhaps you forgot to load the package?) at lib/Redis/CappedCollection.pm line 78.
#  at lib/Redis/CappedCollection.pm line 78.
# 	Redis::CappedCollection::BEGIN() called at lib/Redis/CappedCollection.pm line 78
# 	eval {...} called at lib/Redis/CappedCollection.pm line 78
# 	require Redis/CappedCollection.pm called at t/00_CappedCollection/00_compile.t line 17
# 	main::BEGIN() called at t/00_CappedCollection/00_compile.t line 17
# 	eval {...} called at t/00_CappedCollection/00_compile.t line 17
# 	eval 'package main;
# BEGIN { ${^WARNING_BITS} = $args[-1] if defined $args[-1] }
# #line 17 t/00_CappedCollection/00_compile.t
# use Redis::CappedCollection @{$args[0]};
# 1;
# ' called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/5.39.3/Test/More.pm line 1056
# 	Test::More::_eval("package main;\x{a}BEGIN { \${^WARNING_BITS} = \$args[-1] if defined"..., ARRAY(0x55e0c0d54628), "UUUUUUUUUUUUUUUUUUUUU") called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/5.39.3/Test/More.pm line 1031
# 	Test::More::use_ok("Redis::CappedCollection") called at t/00_CappedCollection/00_compile.t line 17
# 	main::BEGIN() called at t/00_CappedCollection/00_compile.t line 17
# 	eval {...} called at t/00_CappedCollection/00_compile.t line 17
# 
# Looks like you failed 1 test of 34.
t/00_CappedCollection/00_compile.t ..................... 
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/34 subtests 
# Unable to create test Redis server

#   Failed test 'no warnings'
#   at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/5.39.3/Test/Builder.pm line 193.
# There were 1 warning(s)
#     Previous test 0 ''
#     Attempt to call undefined import method with arguments ("1.976") via package "Redis" (Perhaps you forgot to load the package?) at lib/Redis/CappedCollection.pm line 78.
#  at lib/Redis/CappedCollection.pm line 78.
# 	Redis::CappedCollection::BEGIN() called at lib/Redis/CappedCollection.pm line 78
# 	eval {...} called at lib/Redis/CappedCollection.pm line 78
# 	require Redis/CappedCollection.pm called at t/00_CappedCollection/01_new.t line 42
# 	main::BEGIN() called at t/00_CappedCollection/01_new.t line 42
# 	eval {...} called at t/00_CappedCollection/01_new.t line 42
# 
# Looks like you failed 1 test of 2.
t/00_CappedCollection/01_new.t ......................... 
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/2 subtests 
	(less 1 skipped subtest: 0 okay)
[EVAL] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.

Lua script 'insert':
-- adding data to a list of collections
collectgarbage( 'stop' )

local coll_name             = ARGV[2]
local list_id               = ARGV[3]
local data_id               = ARGV[4]
local data                  = ARGV[5]
local data_time             = tonumber( ARGV[6] )

-- key data storage structures
local NAMESPACE  = 'C'
local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
local STATUS_KEY = NAMESPACE..':S:'..coll_name
local DATA_KEYS  = NAMESPACE..':D:'..coll_name
local TIME_KEYS  = NAMESPACE..':T:'..coll_name
local DATA_KEY   = DATA_KEYS..':'..list_id
local TIME_KEY   = TIME_KEYS..':'..list_id
local REDIS_USED_MEMORY                     = 0
local REDIS_MAXMEMORY                       = 0
local ROLLBACK                              = {}
local TOTAL_BYTES_DELETED                   = 0
local LAST_CLEANUP_BYTES_MUST_BE_DELETED    = 0
local LAST_CLEANUP_ITEMS                    = 0
local LAST_OPERATION                        = ''
local INSERTS_SINCE_CLEANING                = 0
local UPDATES_SINCE_CLEANING                = 0

local _DEBUG, _DEBUG_ID, _FUNC_NAME

local table_merge = function ( t1, t2 )
    for key, val in pairs( t2 ) do
        t1[ key ] = val
    end
end

local _debug_log = function ( values )
    table_merge( values, {
        _DEBUG_ID                   = _DEBUG_ID,
        _FUNC_NAME                  = _FUNC_NAME,
        REDIS_USED_MEMORY           = REDIS_USED_MEMORY,
        list_id                     = list_id,
        data_id                     = data_id,
        data_len                    = #data,
        ROLLBACK                    = ROLLBACK
    } )

    redis.log( redis.LOG_NOTICE, _FUNC_NAME..': '..cjson.encode( values ) )
end

local _setup = function ( argv_idx, func_name, extra_data_len )
    LAST_OPERATION = func_name

    REDIS_MAXMEMORY = tonumber( redis.call( 'CONFIG', 'GET', 'maxmemory' )[2] )
    local memory_reserve_coefficient = 1 + tonumber( redis.call( 'HGET', STATUS_KEY, 'memory_reserve' ) )

    local redis_used_memory = string.match(
        redis.call( 'INFO', 'memory' ),
        'used_memory:(%d+)'
    )
    REDIS_USED_MEMORY = tonumber( redis_used_memory )
    LAST_CLEANUP_BYTES_MUST_BE_DELETED = REDIS_USED_MEMORY + extra_data_len - math.floor( REDIS_MAXMEMORY / memory_reserve_coefficient )
    if LAST_CLEANUP_BYTES_MUST_BE_DELETED < 0 or REDIS_MAXMEMORY == 0 then
        LAST_CLEANUP_BYTES_MUST_BE_DELETED = 0
    end

    INSERTS_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'inserts_since_cleaning' ) )
    if INSERTS_SINCE_CLEANING == nil then
        INSERTS_SINCE_CLEANING = 0
    end
    UPDATES_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'updates_since_cleaning' ) )
    if UPDATES_SINCE_CLEANING == nil then
        UPDATES_SINCE_CLEANING = 0
    end

    _FUNC_NAME  = func_name
    _DEBUG_ID   = tonumber( ARGV[ argv_idx ] )
    if _DEBUG_ID ~= 0 then
        _DEBUG = true
        _debug_log( {
            _STEP                   = '_setup',
            maxmemory               = REDIS_MAXMEMORY,
            redis_used_memory       = REDIS_USED_MEMORY,
            bytes_must_be_deleted   = LAST_CLEANUP_BYTES_MUST_BE_DELETED
        } )
    else
        _DEBUG = false
    end
end

local renew_last_cleanup_values = function ()
    if LAST_CLEANUP_ITEMS > 0 then
        local last_cleanup_bytes_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_bytes' ) )
        local last_cleanup_items_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_items' ) )
        if #last_cleanup_bytes_values >= 10 then
            table.remove ( last_cleanup_bytes_values, 1 )
            table.remove ( last_cleanup_items_values, 1 )
        end
        table.insert( last_cleanup_bytes_values, TOTAL_BYTES_DELETED )
        table.insert( last_cleanup_items_values, LAST_CLEANUP_ITEMS )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', cjson.encode( last_cleanup_bytes_values ) )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_items', cjson.encode( last_cleanup_items_values ) )
    end
end

local cleaning_error = function ( error_msg )
    if _DEBUG then
        _debug_log( {
            _STEP       = 'cleaning_error',
            error_msg   = error_msg
        } )
    end

    for _, rollback_command in ipairs( ROLLBACK ) do
        redis.call( unpack( rollback_command ) )
    end
    -- Level 2 points the error to where the function that called error was called
    renew_last_cleanup_values()
    error( error_msg, 2 )
end

-- deleting old data to make room for new data
local cleaning = function ( list_id, data_id, is_cleaning_needed )
    local coll_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'items' ) )

    if coll_items == 0 then
        return
    end

    local cleanup_bytes = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_bytes' ) )
    local cleanup_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_items' ) )

    if not ( is_cleaning_needed or LAST_CLEANUP_BYTES_MUST_BE_DELETED > 0 ) then
        return
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Before cleanings',
            coll_items      = coll_items,
            cleanup_items   = cleanup_items,
            cleanup_bytes   = cleanup_bytes,
        } )
    end

    local items_deleted = 0
    local bytes_deleted = 0
    local lists_deleted = 0

    repeat
        if redis.call( 'EXISTS', QUEUE_KEY ) == 0 then
            -- Level 2 points the error to where the function that called error was called
            renew_last_cleanup_values()
            error( 'Queue key does not exist', 2 )
        end

        -- continue to work with the to_delete (requiring removal) data and for them using the prefix 'to_delete_'
        local to_delete_list_id, last_removed_time = unpack( redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' ) )
        last_removed_time = tonumber( last_removed_time )
        -- key data structures
        local to_delete_data_key = DATA_KEYS..':'..to_delete_list_id
        local to_delete_time_key = TIME_KEYS..':'..to_delete_list_id

        -- looking for the oldest data
        local to_delete_data_id
        local to_delete_data
        local items = redis.call( 'HLEN', to_delete_data_key )
-- #FIXME: to_delete_data -> to_delete_data_len
-- HSTRLEN key field
-- Available since 3.2.0.
        if items == 1 then
            to_delete_data_id, to_delete_data = unpack( redis.call( 'HGETALL', to_delete_data_key ) )
        else
            to_delete_data_id = unpack( redis.call( 'ZRANGE', to_delete_time_key, 0, 0 ) )
            to_delete_data    = redis.call( 'HGET', to_delete_data_key, to_delete_data_id )
        end
        local to_delete_data_len = #to_delete_data
        to_delete_data = nil    -- free memory

        if _DEBUG then
            _debug_log( {
                _STEP               = 'Before real cleaning',
                items               = items,
                to_delete_list_id   = to_delete_list_id,
                to_delete_data_id   = to_delete_data_id,
                to_delete_data_len  = to_delete_data_len
            } )
        end

        if to_delete_list_id == list_id and to_delete_data_id == data_id then
            if items_deleted == 0 then
                -- Its first attempt to clean the conflicting data, for which the primary operation executed.
                -- In this case, we are roll back operations that have been made before, and immediately return an error,
                -- shifting the handling of such errors on the client.
                cleaning_error( "OOM Command not allowed when used memory > 'maxmemory'." )
            end
            break
        end

        if _DEBUG then
            _debug_log( {
                _STEP           = 'Why it is cleared?',
                coll_items      = coll_items,
                cleanup_bytes   = cleanup_bytes,
                cleanup_items   = cleanup_items,
                items_deleted   = items_deleted,
                bytes_deleted   = bytes_deleted,
            } )
        end

        -- actually remove the oldest item
        redis.call( 'HDEL', to_delete_data_key, to_delete_data_id )
        items = items - 1
        coll_items = coll_items - 1

        redis.call( 'HSET', STATUS_KEY, 'last_removed_time', last_removed_time )

        if items > 0 then
            -- If the list has more data
            redis.call( 'ZREM', to_delete_time_key, to_delete_data_id )
            local oldest_item_time = tonumber( redis.call( 'ZRANGE', to_delete_time_key, 0, 0, 'WITHSCORES' )[2] )
            redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, to_delete_list_id )

            if items == 1 then
                redis.call( 'DEL', to_delete_time_key )
            end
        else
            -- If the list does not have data
            -- remove the name of the list from the queue collection
            redis.call( 'ZREM', QUEUE_KEY, to_delete_list_id )
            lists_deleted = lists_deleted + 1
        end

        -- amount of data collection decreased
        items_deleted = items_deleted + 1
        bytes_deleted = bytes_deleted + to_delete_data_len

        if _DEBUG then
            _debug_log( {
                _STEP               = 'After real cleaning',
                to_delete_data_key  = to_delete_data_key,
                to_delete_data_id   = to_delete_data_id,
                items               = items,
                items_deleted       = items_deleted,
                bytes_deleted       = bytes_deleted,
            } )
        end

    until
            coll_items <= 0
        or (
                items_deleted >= cleanup_items
            and bytes_deleted >= cleanup_bytes
        )

    if items_deleted > 0 then
        -- reduce the number of items in the collection
        redis.call( 'HINCRBY', STATUS_KEY, 'items', -items_deleted )
    end
    if lists_deleted > 0 then
        -- reduce the number of lists stored in a collection
        redis.call( 'HINCRBY',  STATUS_KEY, 'lists', -lists_deleted )
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Cleaning finished',
            items_deleted   = items_deleted,
            bytes_deleted   = bytes_deleted,
            lists_deleted   = lists_deleted,
            cleanup_bytes   = cleanup_bytes,
            cleanup_items   = cleanup_items,
            coll_items      = coll_items,
        } )
    end

    if bytes_deleted > 0 then
        if TOTAL_BYTES_DELETED == 0 then    -- first cleaning
            INSERTS_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
            UPDATES_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'updates_since_cleaning', UPDATES_SINCE_CLEANING )
        end

        TOTAL_BYTES_DELETED = TOTAL_BYTES_DELETED + bytes_deleted
        LAST_CLEANUP_ITEMS = LAST_CLEANUP_ITEMS + items_deleted

        -- information values
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_maxmemory', REDIS_MAXMEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_used_memory', REDIS_USED_MEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_bytes_must_be_deleted', LAST_CLEANUP_BYTES_MUST_BE_DELETED )
    end
end

local call_with_error_control = function ( list_id, data_id, ... )
    local retries = 2
    local ret
    local error_msg = '<Empty error message>'
    repeat
        ret = redis.pcall( ... )
        if type( ret ) == 'table' and ret.err ~= nil then
            error_msg   = "OOM Command not allowed when used memory > 'maxmemory'. - " .. ret.err .. " (call = " .. cjson.encode( { ... } ) .. ")"
            if _DEBUG then
                _debug_log( {
                    _STEP       = 'call_with_error_control',
                    error_msg   = error_msg,
                    retries     = retries
                } )
            end

            cleaning( list_id, data_id, true )
        else
            break
        end
        retries = retries - 1
    until retries == 0

    if retries == 0 then
        -- Operation returned an error related to insufficient memory.
        -- Start cleaning process and then re-try operation.
        -- Repeat the cycle of operation + memory cleaning a couple of times and return an error / fail,
        -- if it still did not work.
        cleaning_error( error_msg )
    end

    return ret
end


-- determine whether there is a list of data and a collection
if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
    return { -1006, 0, 0, 0 }
end

local reduce_list_items = function ( list_id )
    local max_list_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'max_list_items' ) )
    if max_list_items ~= nil and max_list_items > 0 and redis.call( 'EXISTS', DATA_KEY ) == 1 then
        local list_items        = redis.call( 'HLEN', DATA_KEY )
        local older_allowed     = tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) )
        local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

        while list_items >= max_list_items do
            local removed_data_time, removed_data_id
            list_items = list_items - 1

            if list_items == 0 then
                removed_data_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
                redis.call( 'ZREM', QUEUE_KEY, list_id )
                redis.call( 'DEL', DATA_KEY )
                redis.call( 'HINCRBY', STATUS_KEY, 'lists', -1 )
            else
                removed_data_id, removed_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                removed_data_id     = tonumber( removed_data_id )
                removed_data_time   = tonumber( removed_data_time )
                redis.call( 'ZREM', TIME_KEY, removed_data_id )
                redis.call( 'HDEL', DATA_KEY, removed_data_id )

                local lowest_data_id, lowest_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                redis.call( 'ZADD', QUEUE_KEY, lowest_data_time, lowest_data_id )

                if redis.call( 'HLEN', DATA_KEY ) == 1 then
                    redis.call( 'DEL', TIME_KEY )
                end
            end

            redis.call( 'HINCRBY', STATUS_KEY, 'items', -1 )

            if older_allowed == 0 and ( last_removed_time == 0 or removed_data_time < last_removed_time ) then
                redis.call( 'HSET', STATUS_KEY, 'last_removed_time', removed_data_time )
                last_removed_time = removed_data_time
            end
        end
    end
end

reduce_list_items( list_id )


-- verification of the existence of old data with new data identifier
if redis.call( 'HEXISTS', DATA_KEY, data_id ) == 1 then
    return { -1008, 0, 0, 0 }
end

-- Validating the time of new data, if required
local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

if tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) ) == 0 then
    if redis.call( 'EXISTS', QUEUE_KEY ) == 1 then
        if data_time < last_removed_time then
            return { -1009, 0, 0, 0 }
        end
    end
end

-- deleting obsolete data, if it is necessary
local data_len = #data
_setup( 7, 'insert', data_len ) -- 7 -> is the index of ARGV[7]
cleaning( list_id, data_id, false )

-- add data to the list
-- Remember that the list and the collection can be automatically deleted after the "crowding out" old data

-- the existing data
local items = redis.call( 'HLEN', DATA_KEY )
local existing_id, existing_time
if items == 1 then
    existing_id   = unpack( redis.call( 'HGETALL', DATA_KEY ) )
    existing_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
end

-- actually add data to the list
call_with_error_control( list_id, data_id, 'HSET', DATA_KEY, data_id, data )
data = nil  -- free memory
table.insert( ROLLBACK, 1, { 'HDEL', DATA_KEY, data_id } )

if redis.call( 'HLEN', DATA_KEY ) == 1 then  -- list recreated after cleaning
    redis.call( 'HINCRBY', STATUS_KEY, 'lists', 1 )
    table.insert( ROLLBACK, 1, { 'HINCRBY', STATUS_KEY, 'lists', -1 } )
    call_with_error_control( list_id, data_id, 'ZADD', QUEUE_KEY, data_time, list_id )
else
    if items == 1 then
        call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, existing_time, existing_id )
        table.insert( ROLLBACK, 1, { 'ZREM', TIME_KEY, existing_id } )
    end
    call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, data_time, data_id )
    local oldest_item_time = redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' )[2]
    redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, list_id )
end

-- reflect the addition of new data
redis.call( 'HINCRBY', STATUS_KEY, 'items', 1 )
if data_time < last_removed_time then
    redis.call( 'HSET', STATUS_KEY, 'last_removed_time', 0 )
end

renew_last_cleanup_values()
-- redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', LAST_CLEANUP_BYTES )
INSERTS_SINCE_CLEANING = INSERTS_SINCE_CLEANING + 1
redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
return { -1000, LAST_CLEANUP_ITEMS, REDIS_USED_MEMORY, TOTAL_BYTES_DELETED }

  at lib/Redis/CappedCollection.pm line 3800.

#   Failed test 'no warnings'
#   at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/5.39.3/Test/Builder.pm line 193.
# There were 1 warning(s)
#     Previous test 0 ''
#     Attempt to call undefined import method with arguments ("1.976") via package "Redis" (Perhaps you forgot to load the package?) at lib/Redis/CappedCollection.pm line 78.
#  at lib/Redis/CappedCollection.pm line 78.
# 	Redis::CappedCollection::BEGIN() called at lib/Redis/CappedCollection.pm line 78
# 	eval {...} called at lib/Redis/CappedCollection.pm line 78
# 	require Redis/CappedCollection.pm called at t/00_CappedCollection/02_insert.t line 41
# 	main::BEGIN() called at t/00_CappedCollection/02_insert.t line 41
# 	eval {...} called at t/00_CappedCollection/02_insert.t line 41
# 
# Looks like your test exited with -1 just after 8.
t/00_CappedCollection/02_insert.t ...................... 
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 1/8 subtests 
[EVAL] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.

Lua script 'insert':
-- adding data to a list of collections
collectgarbage( 'stop' )

local coll_name             = ARGV[2]
local list_id               = ARGV[3]
local data_id               = ARGV[4]
local data                  = ARGV[5]
local data_time             = tonumber( ARGV[6] )

-- key data storage structures
local NAMESPACE  = 'C'
local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
local STATUS_KEY = NAMESPACE..':S:'..coll_name
local DATA_KEYS  = NAMESPACE..':D:'..coll_name
local TIME_KEYS  = NAMESPACE..':T:'..coll_name
local DATA_KEY   = DATA_KEYS..':'..list_id
local TIME_KEY   = TIME_KEYS..':'..list_id
local REDIS_USED_MEMORY                     = 0
local REDIS_MAXMEMORY                       = 0
local ROLLBACK                              = {}
local TOTAL_BYTES_DELETED                   = 0
local LAST_CLEANUP_BYTES_MUST_BE_DELETED    = 0
local LAST_CLEANUP_ITEMS                    = 0
local LAST_OPERATION                        = ''
local INSERTS_SINCE_CLEANING                = 0
local UPDATES_SINCE_CLEANING                = 0

local _DEBUG, _DEBUG_ID, _FUNC_NAME

local table_merge = function ( t1, t2 )
    for key, val in pairs( t2 ) do
        t1[ key ] = val
    end
end

local _debug_log = function ( values )
    table_merge( values, {
        _DEBUG_ID                   = _DEBUG_ID,
        _FUNC_NAME                  = _FUNC_NAME,
        REDIS_USED_MEMORY           = REDIS_USED_MEMORY,
        list_id                     = list_id,
        data_id                     = data_id,
        data_len                    = #data,
        ROLLBACK                    = ROLLBACK
    } )

    redis.log( redis.LOG_NOTICE, _FUNC_NAME..': '..cjson.encode( values ) )
end

local _setup = function ( argv_idx, func_name, extra_data_len )
    LAST_OPERATION = func_name

    REDIS_MAXMEMORY = tonumber( redis.call( 'CONFIG', 'GET', 'maxmemory' )[2] )
    local memory_reserve_coefficient = 1 + tonumber( redis.call( 'HGET', STATUS_KEY, 'memory_reserve' ) )

    local redis_used_memory = string.match(
        redis.call( 'INFO', 'memory' ),
        'used_memory:(%d+)'
    )
    REDIS_USED_MEMORY = tonumber( redis_used_memory )
    LAST_CLEANUP_BYTES_MUST_BE_DELETED = REDIS_USED_MEMORY + extra_data_len - math.floor( REDIS_MAXMEMORY / memory_reserve_coefficient )
    if LAST_CLEANUP_BYTES_MUST_BE_DELETED < 0 or REDIS_MAXMEMORY == 0 then
        LAST_CLEANUP_BYTES_MUST_BE_DELETED = 0
    end

    INSERTS_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'inserts_since_cleaning' ) )
    if INSERTS_SINCE_CLEANING == nil then
        INSERTS_SINCE_CLEANING = 0
    end
    UPDATES_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'updates_since_cleaning' ) )
    if UPDATES_SINCE_CLEANING == nil then
        UPDATES_SINCE_CLEANING = 0
    end

    _FUNC_NAME  = func_name
    _DEBUG_ID   = tonumber( ARGV[ argv_idx ] )
    if _DEBUG_ID ~= 0 then
        _DEBUG = true
        _debug_log( {
            _STEP                   = '_setup',
            maxmemory               = REDIS_MAXMEMORY,
            redis_used_memory       = REDIS_USED_MEMORY,
            bytes_must_be_deleted   = LAST_CLEANUP_BYTES_MUST_BE_DELETED
        } )
    else
        _DEBUG = false
    end
end

local renew_last_cleanup_values = function ()
    if LAST_CLEANUP_ITEMS > 0 then
        local last_cleanup_bytes_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_bytes' ) )
        local last_cleanup_items_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_items' ) )
        if #last_cleanup_bytes_values >= 10 then
            table.remove ( last_cleanup_bytes_values, 1 )
            table.remove ( last_cleanup_items_values, 1 )
        end
        table.insert( last_cleanup_bytes_values, TOTAL_BYTES_DELETED )
        table.insert( last_cleanup_items_values, LAST_CLEANUP_ITEMS )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', cjson.encode( last_cleanup_bytes_values ) )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_items', cjson.encode( last_cleanup_items_values ) )
    end
end

local cleaning_error = function ( error_msg )
    if _DEBUG then
        _debug_log( {
            _STEP       = 'cleaning_error',
            error_msg   = error_msg
        } )
    end

    for _, rollback_command in ipairs( ROLLBACK ) do
        redis.call( unpack( rollback_command ) )
    end
    -- Level 2 points the error to where the function that called error was called
    renew_last_cleanup_values()
    error( error_msg, 2 )
end

-- deleting old data to make room for new data
local cleaning = function ( list_id, data_id, is_cleaning_needed )
    local coll_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'items' ) )

    if coll_items == 0 then
        return
    end

    local cleanup_bytes = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_bytes' ) )
    local cleanup_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_items' ) )

    if not ( is_cleaning_needed or LAST_CLEANUP_BYTES_MUST_BE_DELETED > 0 ) then
        return
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Before cleanings',
            coll_items      = coll_items,
            cleanup_items   = cleanup_items,
            cleanup_bytes   = cleanup_bytes,
        } )
    end

    local items_deleted = 0
    local bytes_deleted = 0
    local lists_deleted = 0

    repeat
        if redis.call( 'EXISTS', QUEUE_KEY ) == 0 then
            -- Level 2 points the error to where the function that called error was called
            renew_last_cleanup_values()
            error( 'Queue key does not exist', 2 )
        end

        -- continue to work with the to_delete (requiring removal) data and for them using the prefix 'to_delete_'
        local to_delete_list_id, last_removed_time = unpack( redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' ) )
        last_removed_time = tonumber( last_removed_time )
        -- key data structures
        local to_delete_data_key = DATA_KEYS..':'..to_delete_list_id
        local to_delete_time_key = TIME_KEYS..':'..to_delete_list_id

        -- looking for the oldest data
        local to_delete_data_id
        local to_delete_data
        local items = redis.call( 'HLEN', to_delete_data_key )
-- #FIXME: to_delete_data -> to_delete_data_len
-- HSTRLEN key field
-- Available since 3.2.0.
        if items == 1 then
            to_delete_data_id, to_delete_data = unpack( redis.call( 'HGETALL', to_delete_data_key ) )
        else
            to_delete_data_id = unpack( redis.call( 'ZRANGE', to_delete_time_key, 0, 0 ) )
            to_delete_data    = redis.call( 'HGET', to_delete_data_key, to_delete_data_id )
        end
        local to_delete_data_len = #to_delete_data
        to_delete_data = nil    -- free memory

        if _DEBUG then
            _debug_log( {
                _STEP               = 'Before real cleaning',
                items               = items,
                to_delete_list_id   = to_delete_list_id,
                to_delete_data_id   = to_delete_data_id,
                to_delete_data_len  = to_delete_data_len
            } )
        end

        if to_delete_list_id == list_id and to_delete_data_id == data_id then
            if items_deleted == 0 then
                -- Its first attempt to clean the conflicting data, for which the primary operation executed.
                -- In this case, we are roll back operations that have been made before, and immediately return an error,
                -- shifting the handling of such errors on the client.
                cleaning_error( "OOM Command not allowed when used memory > 'maxmemory'." )
            end
            break
        end

        if _DEBUG then
            _debug_log( {
                _STEP           = 'Why it is cleared?',
                coll_items      = coll_items,
                cleanup_bytes   = cleanup_bytes,
                cleanup_items   = cleanup_items,
                items_deleted   = items_deleted,
                bytes_deleted   = bytes_deleted,
            } )
        end

        -- actually remove the oldest item
        redis.call( 'HDEL', to_delete_data_key, to_delete_data_id )
        items = items - 1
        coll_items = coll_items - 1

        redis.call( 'HSET', STATUS_KEY, 'last_removed_time', last_removed_time )

        if items > 0 then
            -- If the list has more data
            redis.call( 'ZREM', to_delete_time_key, to_delete_data_id )
            local oldest_item_time = tonumber( redis.call( 'ZRANGE', to_delete_time_key, 0, 0, 'WITHSCORES' )[2] )
            redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, to_delete_list_id )

            if items == 1 then
                redis.call( 'DEL', to_delete_time_key )
            end
        else
            -- If the list does not have data
            -- remove the name of the list from the queue collection
            redis.call( 'ZREM', QUEUE_KEY, to_delete_list_id )
            lists_deleted = lists_deleted + 1
        end

        -- amount of data collection decreased
        items_deleted = items_deleted + 1
        bytes_deleted = bytes_deleted + to_delete_data_len

        if _DEBUG then
            _debug_log( {
                _STEP               = 'After real cleaning',
                to_delete_data_key  = to_delete_data_key,
                to_delete_data_id   = to_delete_data_id,
                items               = items,
                items_deleted       = items_deleted,
                bytes_deleted       = bytes_deleted,
            } )
        end

    until
            coll_items <= 0
        or (
                items_deleted >= cleanup_items
            and bytes_deleted >= cleanup_bytes
        )

    if items_deleted > 0 then
        -- reduce the number of items in the collection
        redis.call( 'HINCRBY', STATUS_KEY, 'items', -items_deleted )
    end
    if lists_deleted > 0 then
        -- reduce the number of lists stored in a collection
        redis.call( 'HINCRBY',  STATUS_KEY, 'lists', -lists_deleted )
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Cleaning finished',
            items_deleted   = items_deleted,
            bytes_deleted   = bytes_deleted,
            lists_deleted   = lists_deleted,
            cleanup_bytes   = cleanup_bytes,
            cleanup_items   = cleanup_items,
            coll_items      = coll_items,
        } )
    end

    if bytes_deleted > 0 then
        if TOTAL_BYTES_DELETED == 0 then    -- first cleaning
            INSERTS_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
            UPDATES_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'updates_since_cleaning', UPDATES_SINCE_CLEANING )
        end

        TOTAL_BYTES_DELETED = TOTAL_BYTES_DELETED + bytes_deleted
        LAST_CLEANUP_ITEMS = LAST_CLEANUP_ITEMS + items_deleted

        -- information values
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_maxmemory', REDIS_MAXMEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_used_memory', REDIS_USED_MEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_bytes_must_be_deleted', LAST_CLEANUP_BYTES_MUST_BE_DELETED )
    end
end

local call_with_error_control = function ( list_id, data_id, ... )
    local retries = 2
    local ret
    local error_msg = '<Empty error message>'
    repeat
        ret = redis.pcall( ... )
        if type( ret ) == 'table' and ret.err ~= nil then
            error_msg   = "OOM Command not allowed when used memory > 'maxmemory'. - " .. ret.err .. " (call = " .. cjson.encode( { ... } ) .. ")"
            if _DEBUG then
                _debug_log( {
                    _STEP       = 'call_with_error_control',
                    error_msg   = error_msg,
                    retries     = retries
                } )
            end

            cleaning( list_id, data_id, true )
        else
            break
        end
        retries = retries - 1
    until retries == 0

    if retries == 0 then
        -- Operation returned an error related to insufficient memory.
        -- Start cleaning process and then re-try operation.
        -- Repeat the cycle of operation + memory cleaning a couple of times and return an error / fail,
        -- if it still did not work.
        cleaning_error( error_msg )
    end

    return ret
end


-- determine whether there is a list of data and a collection
if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
    return { -1006, 0, 0, 0 }
end

local reduce_list_items = function ( list_id )
    local max_list_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'max_list_items' ) )
    if max_list_items ~= nil and max_list_items > 0 and redis.call( 'EXISTS', DATA_KEY ) == 1 then
        local list_items        = redis.call( 'HLEN', DATA_KEY )
        local older_allowed     = tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) )
        local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

        while list_items >= max_list_items do
            local removed_data_time, removed_data_id
            list_items = list_items - 1

            if list_items == 0 then
                removed_data_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
                redis.call( 'ZREM', QUEUE_KEY, list_id )
                redis.call( 'DEL', DATA_KEY )
                redis.call( 'HINCRBY', STATUS_KEY, 'lists', -1 )
            else
                removed_data_id, removed_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                removed_data_id     = tonumber( removed_data_id )
                removed_data_time   = tonumber( removed_data_time )
                redis.call( 'ZREM', TIME_KEY, removed_data_id )
                redis.call( 'HDEL', DATA_KEY, removed_data_id )

                local lowest_data_id, lowest_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                redis.call( 'ZADD', QUEUE_KEY, lowest_data_time, lowest_data_id )

                if redis.call( 'HLEN', DATA_KEY ) == 1 then
                    redis.call( 'DEL', TIME_KEY )
                end
            end

            redis.call( 'HINCRBY', STATUS_KEY, 'items', -1 )

            if older_allowed == 0 and ( last_removed_time == 0 or removed_data_time < last_removed_time ) then
                redis.call( 'HSET', STATUS_KEY, 'last_removed_time', removed_data_time )
                last_removed_time = removed_data_time
            end
        end
    end
end

reduce_list_items( list_id )


-- verification of the existence of old data with new data identifier
if redis.call( 'HEXISTS', DATA_KEY, data_id ) == 1 then
    return { -1008, 0, 0, 0 }
end

-- Validating the time of new data, if required
local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

if tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) ) == 0 then
    if redis.call( 'EXISTS', QUEUE_KEY ) == 1 then
        if data_time < last_removed_time then
            return { -1009, 0, 0, 0 }
        end
    end
end

-- deleting obsolete data, if it is necessary
local data_len = #data
_setup( 7, 'insert', data_len ) -- 7 -> is the index of ARGV[7]
cleaning( list_id, data_id, false )

-- add data to the list
-- Remember that the list and the collection can be automatically deleted after the "crowding out" old data

-- the existing data
local items = redis.call( 'HLEN', DATA_KEY )
local existing_id, existing_time
if items == 1 then
    existing_id   = unpack( redis.call( 'HGETALL', DATA_KEY ) )
    existing_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
end

-- actually add data to the list
call_with_error_control( list_id, data_id, 'HSET', DATA_KEY, data_id, data )
data = nil  -- free memory
table.insert( ROLLBACK, 1, { 'HDEL', DATA_KEY, data_id } )

if redis.call( 'HLEN', DATA_KEY ) == 1 then  -- list recreated after cleaning
    redis.call( 'HINCRBY', STATUS_KEY, 'lists', 1 )
    table.insert( ROLLBACK, 1, { 'HINCRBY', STATUS_KEY, 'lists', -1 } )
    call_with_error_control( list_id, data_id, 'ZADD', QUEUE_KEY, data_time, list_id )
else
    if items == 1 then
        call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, existing_time, existing_id )
        table.insert( ROLLBACK, 1, { 'ZREM', TIME_KEY, existing_id } )
    end
    call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, data_time, data_id )
    local oldest_item_time = redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' )[2]
    redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, list_id )
end

-- reflect the addition of new data
redis.call( 'HINCRBY', STATUS_KEY, 'items', 1 )
if data_time < last_removed_time then
    redis.call( 'HSET', STATUS_KEY, 'last_removed_time', 0 )
end

renew_last_cleanup_values()
-- redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', LAST_CLEANUP_BYTES )
INSERTS_SINCE_CLEANING = INSERTS_SINCE_CLEANING + 1
redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
return { -1000, LAST_CLEANUP_ITEMS, REDIS_USED_MEMORY, TOTAL_BYTES_DELETED }

  at lib/Redis/CappedCollection.pm line 3800.

#   Failed test 'no warnings'
#   at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/5.39.3/Test/Builder.pm line 193.
# There were 1 warning(s)
#     Previous test 0 ''
#     Attempt to call undefined import method with arguments ("1.976") via package "Redis" (Perhaps you forgot to load the package?) at lib/Redis/CappedCollection.pm line 78.
#  at lib/Redis/CappedCollection.pm line 78.
# 	Redis::CappedCollection::BEGIN() called at lib/Redis/CappedCollection.pm line 78
# 	eval {...} called at lib/Redis/CappedCollection.pm line 78
# 	require Redis/CappedCollection.pm called at t/00_CappedCollection/03_update.t line 36
# 	main::BEGIN() called at t/00_CappedCollection/03_update.t line 36
# 	eval {...} called at t/00_CappedCollection/03_update.t line 36
# 
# Looks like your test exited with -1 just after 8.
	(in cleanup) Can't call method "current_test" on an undefined value at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Test/NoWarnings/Warning.pm line 55 during global destruction.
t/00_CappedCollection/03_update.t ...................... 
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 1/8 subtests 
[EVAL] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.

Lua script 'insert':
-- adding data to a list of collections
collectgarbage( 'stop' )

local coll_name             = ARGV[2]
local list_id               = ARGV[3]
local data_id               = ARGV[4]
local data                  = ARGV[5]
local data_time             = tonumber( ARGV[6] )

-- key data storage structures
local NAMESPACE  = 'C'
local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
local STATUS_KEY = NAMESPACE..':S:'..coll_name
local DATA_KEYS  = NAMESPACE..':D:'..coll_name
local TIME_KEYS  = NAMESPACE..':T:'..coll_name
local DATA_KEY   = DATA_KEYS..':'..list_id
local TIME_KEY   = TIME_KEYS..':'..list_id
local REDIS_USED_MEMORY                     = 0
local REDIS_MAXMEMORY                       = 0
local ROLLBACK                              = {}
local TOTAL_BYTES_DELETED                   = 0
local LAST_CLEANUP_BYTES_MUST_BE_DELETED    = 0
local LAST_CLEANUP_ITEMS                    = 0
local LAST_OPERATION                        = ''
local INSERTS_SINCE_CLEANING                = 0
local UPDATES_SINCE_CLEANING                = 0

local _DEBUG, _DEBUG_ID, _FUNC_NAME

local table_merge = function ( t1, t2 )
    for key, val in pairs( t2 ) do
        t1[ key ] = val
    end
end

local _debug_log = function ( values )
    table_merge( values, {
        _DEBUG_ID                   = _DEBUG_ID,
        _FUNC_NAME                  = _FUNC_NAME,
        REDIS_USED_MEMORY           = REDIS_USED_MEMORY,
        list_id                     = list_id,
        data_id                     = data_id,
        data_len                    = #data,
        ROLLBACK                    = ROLLBACK
    } )

    redis.log( redis.LOG_NOTICE, _FUNC_NAME..': '..cjson.encode( values ) )
end

local _setup = function ( argv_idx, func_name, extra_data_len )
    LAST_OPERATION = func_name

    REDIS_MAXMEMORY = tonumber( redis.call( 'CONFIG', 'GET', 'maxmemory' )[2] )
    local memory_reserve_coefficient = 1 + tonumber( redis.call( 'HGET', STATUS_KEY, 'memory_reserve' ) )

    local redis_used_memory = string.match(
        redis.call( 'INFO', 'memory' ),
        'used_memory:(%d+)'
    )
    REDIS_USED_MEMORY = tonumber( redis_used_memory )
    LAST_CLEANUP_BYTES_MUST_BE_DELETED = REDIS_USED_MEMORY + extra_data_len - math.floor( REDIS_MAXMEMORY / memory_reserve_coefficient )
    if LAST_CLEANUP_BYTES_MUST_BE_DELETED < 0 or REDIS_MAXMEMORY == 0 then
        LAST_CLEANUP_BYTES_MUST_BE_DELETED = 0
    end

    INSERTS_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'inserts_since_cleaning' ) )
    if INSERTS_SINCE_CLEANING == nil then
        INSERTS_SINCE_CLEANING = 0
    end
    UPDATES_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'updates_since_cleaning' ) )
    if UPDATES_SINCE_CLEANING == nil then
        UPDATES_SINCE_CLEANING = 0
    end

    _FUNC_NAME  = func_name
    _DEBUG_ID   = tonumber( ARGV[ argv_idx ] )
    if _DEBUG_ID ~= 0 then
        _DEBUG = true
        _debug_log( {
            _STEP                   = '_setup',
            maxmemory               = REDIS_MAXMEMORY,
            redis_used_memory       = REDIS_USED_MEMORY,
            bytes_must_be_deleted   = LAST_CLEANUP_BYTES_MUST_BE_DELETED
        } )
    else
        _DEBUG = false
    end
end

local renew_last_cleanup_values = function ()
    if LAST_CLEANUP_ITEMS > 0 then
        local last_cleanup_bytes_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_bytes' ) )
        local last_cleanup_items_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_items' ) )
        if #last_cleanup_bytes_values >= 10 then
            table.remove ( last_cleanup_bytes_values, 1 )
            table.remove ( last_cleanup_items_values, 1 )
        end
        table.insert( last_cleanup_bytes_values, TOTAL_BYTES_DELETED )
        table.insert( last_cleanup_items_values, LAST_CLEANUP_ITEMS )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', cjson.encode( last_cleanup_bytes_values ) )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_items', cjson.encode( last_cleanup_items_values ) )
    end
end

local cleaning_error = function ( error_msg )
    if _DEBUG then
        _debug_log( {
            _STEP       = 'cleaning_error',
            error_msg   = error_msg
        } )
    end

    for _, rollback_command in ipairs( ROLLBACK ) do
        redis.call( unpack( rollback_command ) )
    end
    -- Level 2 points the error to where the function that called error was called
    renew_last_cleanup_values()
    error( error_msg, 2 )
end

-- deleting old data to make room for new data
local cleaning = function ( list_id, data_id, is_cleaning_needed )
    local coll_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'items' ) )

    if coll_items == 0 then
        return
    end

    local cleanup_bytes = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_bytes' ) )
    local cleanup_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_items' ) )

    if not ( is_cleaning_needed or LAST_CLEANUP_BYTES_MUST_BE_DELETED > 0 ) then
        return
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Before cleanings',
            coll_items      = coll_items,
            cleanup_items   = cleanup_items,
            cleanup_bytes   = cleanup_bytes,
        } )
    end

    local items_deleted = 0
    local bytes_deleted = 0
    local lists_deleted = 0

    repeat
        if redis.call( 'EXISTS', QUEUE_KEY ) == 0 then
            -- Level 2 points the error to where the function that called error was called
            renew_last_cleanup_values()
            error( 'Queue key does not exist', 2 )
        end

        -- continue to work with the to_delete (requiring removal) data and for them using the prefix 'to_delete_'
        local to_delete_list_id, last_removed_time = unpack( redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' ) )
        last_removed_time = tonumber( last_removed_time )
        -- key data structures
        local to_delete_data_key = DATA_KEYS..':'..to_delete_list_id
        local to_delete_time_key = TIME_KEYS..':'..to_delete_list_id

        -- looking for the oldest data
        local to_delete_data_id
        local to_delete_data
        local items = redis.call( 'HLEN', to_delete_data_key )
-- #FIXME: to_delete_data -> to_delete_data_len
-- HSTRLEN key field
-- Available since 3.2.0.
        if items == 1 then
            to_delete_data_id, to_delete_data = unpack( redis.call( 'HGETALL', to_delete_data_key ) )
        else
            to_delete_data_id = unpack( redis.call( 'ZRANGE', to_delete_time_key, 0, 0 ) )
            to_delete_data    = redis.call( 'HGET', to_delete_data_key, to_delete_data_id )
        end
        local to_delete_data_len = #to_delete_data
        to_delete_data = nil    -- free memory

        if _DEBUG then
            _debug_log( {
                _STEP               = 'Before real cleaning',
                items               = items,
                to_delete_list_id   = to_delete_list_id,
                to_delete_data_id   = to_delete_data_id,
                to_delete_data_len  = to_delete_data_len
            } )
        end

        if to_delete_list_id == list_id and to_delete_data_id == data_id then
            if items_deleted == 0 then
                -- Its first attempt to clean the conflicting data, for which the primary operation executed.
                -- In this case, we are roll back operations that have been made before, and immediately return an error,
                -- shifting the handling of such errors on the client.
                cleaning_error( "OOM Command not allowed when used memory > 'maxmemory'." )
            end
            break
        end

        if _DEBUG then
            _debug_log( {
                _STEP           = 'Why it is cleared?',
                coll_items      = coll_items,
                cleanup_bytes   = cleanup_bytes,
                cleanup_items   = cleanup_items,
                items_deleted   = items_deleted,
                bytes_deleted   = bytes_deleted,
            } )
        end

        -- actually remove the oldest item
        redis.call( 'HDEL', to_delete_data_key, to_delete_data_id )
        items = items - 1
        coll_items = coll_items - 1

        redis.call( 'HSET', STATUS_KEY, 'last_removed_time', last_removed_time )

        if items > 0 then
            -- If the list has more data
            redis.call( 'ZREM', to_delete_time_key, to_delete_data_id )
            local oldest_item_time = tonumber( redis.call( 'ZRANGE', to_delete_time_key, 0, 0, 'WITHSCORES' )[2] )
            redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, to_delete_list_id )

            if items == 1 then
                redis.call( 'DEL', to_delete_time_key )
            end
        else
            -- If the list does not have data
            -- remove the name of the list from the queue collection
            redis.call( 'ZREM', QUEUE_KEY, to_delete_list_id )
            lists_deleted = lists_deleted + 1
        end

        -- amount of data collection decreased
        items_deleted = items_deleted + 1
        bytes_deleted = bytes_deleted + to_delete_data_len

        if _DEBUG then
            _debug_log( {
                _STEP               = 'After real cleaning',
                to_delete_data_key  = to_delete_data_key,
                to_delete_data_id   = to_delete_data_id,
                items               = items,
                items_deleted       = items_deleted,
                bytes_deleted       = bytes_deleted,
            } )
        end

    until
            coll_items <= 0
        or (
                items_deleted >= cleanup_items
            and bytes_deleted >= cleanup_bytes
        )

    if items_deleted > 0 then
        -- reduce the number of items in the collection
        redis.call( 'HINCRBY', STATUS_KEY, 'items', -items_deleted )
    end
    if lists_deleted > 0 then
        -- reduce the number of lists stored in a collection
        redis.call( 'HINCRBY',  STATUS_KEY, 'lists', -lists_deleted )
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Cleaning finished',
            items_deleted   = items_deleted,
            bytes_deleted   = bytes_deleted,
            lists_deleted   = lists_deleted,
            cleanup_bytes   = cleanup_bytes,
            cleanup_items   = cleanup_items,
            coll_items      = coll_items,
        } )
    end

    if bytes_deleted > 0 then
        if TOTAL_BYTES_DELETED == 0 then    -- first cleaning
            INSERTS_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
            UPDATES_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'updates_since_cleaning', UPDATES_SINCE_CLEANING )
        end

        TOTAL_BYTES_DELETED = TOTAL_BYTES_DELETED + bytes_deleted
        LAST_CLEANUP_ITEMS = LAST_CLEANUP_ITEMS + items_deleted

        -- information values
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_maxmemory', REDIS_MAXMEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_used_memory', REDIS_USED_MEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_bytes_must_be_deleted', LAST_CLEANUP_BYTES_MUST_BE_DELETED )
    end
end

local call_with_error_control = function ( list_id, data_id, ... )
    local retries = 2
    local ret
    local error_msg = '<Empty error message>'
    repeat
        ret = redis.pcall( ... )
        if type( ret ) == 'table' and ret.err ~= nil then
            error_msg   = "OOM Command not allowed when used memory > 'maxmemory'. - " .. ret.err .. " (call = " .. cjson.encode( { ... } ) .. ")"
            if _DEBUG then
                _debug_log( {
                    _STEP       = 'call_with_error_control',
                    error_msg   = error_msg,
                    retries     = retries
                } )
            end

            cleaning( list_id, data_id, true )
        else
            break
        end
        retries = retries - 1
    until retries == 0

    if retries == 0 then
        -- Operation returned an error related to insufficient memory.
        -- Start cleaning process and then re-try operation.
        -- Repeat the cycle of operation + memory cleaning a couple of times and return an error / fail,
        -- if it still did not work.
        cleaning_error( error_msg )
    end

    return ret
end


-- determine whether there is a list of data and a collection
if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
    return { -1006, 0, 0, 0 }
end

local reduce_list_items = function ( list_id )
    local max_list_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'max_list_items' ) )
    if max_list_items ~= nil and max_list_items > 0 and redis.call( 'EXISTS', DATA_KEY ) == 1 then
        local list_items        = redis.call( 'HLEN', DATA_KEY )
        local older_allowed     = tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) )
        local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

        while list_items >= max_list_items do
            local removed_data_time, removed_data_id
            list_items = list_items - 1

            if list_items == 0 then
                removed_data_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
                redis.call( 'ZREM', QUEUE_KEY, list_id )
                redis.call( 'DEL', DATA_KEY )
                redis.call( 'HINCRBY', STATUS_KEY, 'lists', -1 )
            else
                removed_data_id, removed_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                removed_data_id     = tonumber( removed_data_id )
                removed_data_time   = tonumber( removed_data_time )
                redis.call( 'ZREM', TIME_KEY, removed_data_id )
                redis.call( 'HDEL', DATA_KEY, removed_data_id )

                local lowest_data_id, lowest_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                redis.call( 'ZADD', QUEUE_KEY, lowest_data_time, lowest_data_id )

                if redis.call( 'HLEN', DATA_KEY ) == 1 then
                    redis.call( 'DEL', TIME_KEY )
                end
            end

            redis.call( 'HINCRBY', STATUS_KEY, 'items', -1 )

            if older_allowed == 0 and ( last_removed_time == 0 or removed_data_time < last_removed_time ) then
                redis.call( 'HSET', STATUS_KEY, 'last_removed_time', removed_data_time )
                last_removed_time = removed_data_time
            end
        end
    end
end

reduce_list_items( list_id )


-- verification of the existence of old data with new data identifier
if redis.call( 'HEXISTS', DATA_KEY, data_id ) == 1 then
    return { -1008, 0, 0, 0 }
end

-- Validating the time of new data, if required
local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

if tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) ) == 0 then
    if redis.call( 'EXISTS', QUEUE_KEY ) == 1 then
        if data_time < last_removed_time then
            return { -1009, 0, 0, 0 }
        end
    end
end

-- deleting obsolete data, if it is necessary
local data_len = #data
_setup( 7, 'insert', data_len ) -- 7 -> is the index of ARGV[7]
cleaning( list_id, data_id, false )

-- add data to the list
-- Remember that the list and the collection can be automatically deleted after the "crowding out" old data

-- the existing data
local items = redis.call( 'HLEN', DATA_KEY )
local existing_id, existing_time
if items == 1 then
    existing_id   = unpack( redis.call( 'HGETALL', DATA_KEY ) )
    existing_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
end

-- actually add data to the list
call_with_error_control( list_id, data_id, 'HSET', DATA_KEY, data_id, data )
data = nil  -- free memory
table.insert( ROLLBACK, 1, { 'HDEL', DATA_KEY, data_id } )

if redis.call( 'HLEN', DATA_KEY ) == 1 then  -- list recreated after cleaning
    redis.call( 'HINCRBY', STATUS_KEY, 'lists', 1 )
    table.insert( ROLLBACK, 1, { 'HINCRBY', STATUS_KEY, 'lists', -1 } )
    call_with_error_control( list_id, data_id, 'ZADD', QUEUE_KEY, data_time, list_id )
else
    if items == 1 then
        call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, existing_time, existing_id )
        table.insert( ROLLBACK, 1, { 'ZREM', TIME_KEY, existing_id } )
    end
    call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, data_time, data_id )
    local oldest_item_time = redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' )[2]
    redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, list_id )
end

-- reflect the addition of new data
redis.call( 'HINCRBY', STATUS_KEY, 'items', 1 )
if data_time < last_removed_time then
    redis.call( 'HSET', STATUS_KEY, 'last_removed_time', 0 )
end

renew_last_cleanup_values()
-- redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', LAST_CLEANUP_BYTES )
INSERTS_SINCE_CLEANING = INSERTS_SINCE_CLEANING + 1
redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
return { -1000, LAST_CLEANUP_ITEMS, REDIS_USED_MEMORY, TOTAL_BYTES_DELETED }

  at lib/Redis/CappedCollection.pm line 3800.

#   Failed test 'no warnings'
#   at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/5.39.3/Test/Builder.pm line 193.
# There were 1 warning(s)
#     Previous test 0 ''
#     Attempt to call undefined import method with arguments ("1.976") via package "Redis" (Perhaps you forgot to load the package?) at lib/Redis/CappedCollection.pm line 78.
#  at lib/Redis/CappedCollection.pm line 78.
# 	Redis::CappedCollection::BEGIN() called at lib/Redis/CappedCollection.pm line 78
# 	eval {...} called at lib/Redis/CappedCollection.pm line 78
# 	require Redis/CappedCollection.pm called at t/00_CappedCollection/04_receive.t line 36
# 	main::BEGIN() called at t/00_CappedCollection/04_receive.t line 36
# 	eval {...} called at t/00_CappedCollection/04_receive.t line 36
# 
# Looks like your test exited with -1 just after 7.
t/00_CappedCollection/04_receive.t ..................... 
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 1/7 subtests 
[EVAL] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.

Lua script 'insert':
-- adding data to a list of collections
collectgarbage( 'stop' )

local coll_name             = ARGV[2]
local list_id               = ARGV[3]
local data_id               = ARGV[4]
local data                  = ARGV[5]
local data_time             = tonumber( ARGV[6] )

-- key data storage structures
local NAMESPACE  = 'C'
local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
local STATUS_KEY = NAMESPACE..':S:'..coll_name
local DATA_KEYS  = NAMESPACE..':D:'..coll_name
local TIME_KEYS  = NAMESPACE..':T:'..coll_name
local DATA_KEY   = DATA_KEYS..':'..list_id
local TIME_KEY   = TIME_KEYS..':'..list_id
local REDIS_USED_MEMORY                     = 0
local REDIS_MAXMEMORY                       = 0
local ROLLBACK                              = {}
local TOTAL_BYTES_DELETED                   = 0
local LAST_CLEANUP_BYTES_MUST_BE_DELETED    = 0
local LAST_CLEANUP_ITEMS                    = 0
local LAST_OPERATION                        = ''
local INSERTS_SINCE_CLEANING                = 0
local UPDATES_SINCE_CLEANING                = 0

local _DEBUG, _DEBUG_ID, _FUNC_NAME

local table_merge = function ( t1, t2 )
    for key, val in pairs( t2 ) do
        t1[ key ] = val
    end
end

local _debug_log = function ( values )
    table_merge( values, {
        _DEBUG_ID                   = _DEBUG_ID,
        _FUNC_NAME                  = _FUNC_NAME,
        REDIS_USED_MEMORY           = REDIS_USED_MEMORY,
        list_id                     = list_id,
        data_id                     = data_id,
        data_len                    = #data,
        ROLLBACK                    = ROLLBACK
    } )

    redis.log( redis.LOG_NOTICE, _FUNC_NAME..': '..cjson.encode( values ) )
end

local _setup = function ( argv_idx, func_name, extra_data_len )
    LAST_OPERATION = func_name

    REDIS_MAXMEMORY = tonumber( redis.call( 'CONFIG', 'GET', 'maxmemory' )[2] )
    local memory_reserve_coefficient = 1 + tonumber( redis.call( 'HGET', STATUS_KEY, 'memory_reserve' ) )

    local redis_used_memory = string.match(
        redis.call( 'INFO', 'memory' ),
        'used_memory:(%d+)'
    )
    REDIS_USED_MEMORY = tonumber( redis_used_memory )
    LAST_CLEANUP_BYTES_MUST_BE_DELETED = REDIS_USED_MEMORY + extra_data_len - math.floor( REDIS_MAXMEMORY / memory_reserve_coefficient )
    if LAST_CLEANUP_BYTES_MUST_BE_DELETED < 0 or REDIS_MAXMEMORY == 0 then
        LAST_CLEANUP_BYTES_MUST_BE_DELETED = 0
    end

    INSERTS_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'inserts_since_cleaning' ) )
    if INSERTS_SINCE_CLEANING == nil then
        INSERTS_SINCE_CLEANING = 0
    end
    UPDATES_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'updates_since_cleaning' ) )
    if UPDATES_SINCE_CLEANING == nil then
        UPDATES_SINCE_CLEANING = 0
    end

    _FUNC_NAME  = func_name
    _DEBUG_ID   = tonumber( ARGV[ argv_idx ] )
    if _DEBUG_ID ~= 0 then
        _DEBUG = true
        _debug_log( {
            _STEP                   = '_setup',
            maxmemory               = REDIS_MAXMEMORY,
            redis_used_memory       = REDIS_USED_MEMORY,
            bytes_must_be_deleted   = LAST_CLEANUP_BYTES_MUST_BE_DELETED
        } )
    else
        _DEBUG = false
    end
end

local renew_last_cleanup_values = function ()
    if LAST_CLEANUP_ITEMS > 0 then
        local last_cleanup_bytes_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_bytes' ) )
        local last_cleanup_items_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_items' ) )
        if #last_cleanup_bytes_values >= 10 then
            table.remove ( last_cleanup_bytes_values, 1 )
            table.remove ( last_cleanup_items_values, 1 )
        end
        table.insert( last_cleanup_bytes_values, TOTAL_BYTES_DELETED )
        table.insert( last_cleanup_items_values, LAST_CLEANUP_ITEMS )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', cjson.encode( last_cleanup_bytes_values ) )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_items', cjson.encode( last_cleanup_items_values ) )
    end
end

local cleaning_error = function ( error_msg )
    if _DEBUG then
        _debug_log( {
            _STEP       = 'cleaning_error',
            error_msg   = error_msg
        } )
    end

    for _, rollback_command in ipairs( ROLLBACK ) do
        redis.call( unpack( rollback_command ) )
    end
    -- Level 2 points the error to where the function that called error was called
    renew_last_cleanup_values()
    error( error_msg, 2 )
end

-- deleting old data to make room for new data
local cleaning = function ( list_id, data_id, is_cleaning_needed )
    local coll_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'items' ) )

    if coll_items == 0 then
        return
    end

    local cleanup_bytes = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_bytes' ) )
    local cleanup_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_items' ) )

    if not ( is_cleaning_needed or LAST_CLEANUP_BYTES_MUST_BE_DELETED > 0 ) then
        return
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Before cleanings',
            coll_items      = coll_items,
            cleanup_items   = cleanup_items,
            cleanup_bytes   = cleanup_bytes,
        } )
    end

    local items_deleted = 0
    local bytes_deleted = 0
    local lists_deleted = 0

    repeat
        if redis.call( 'EXISTS', QUEUE_KEY ) == 0 then
            -- Level 2 points the error to where the function that called error was called
            renew_last_cleanup_values()
            error( 'Queue key does not exist', 2 )
        end

        -- continue to work with the to_delete (requiring removal) data and for them using the prefix 'to_delete_'
        local to_delete_list_id, last_removed_time = unpack( redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' ) )
        last_removed_time = tonumber( last_removed_time )
        -- key data structures
        local to_delete_data_key = DATA_KEYS..':'..to_delete_list_id
        local to_delete_time_key = TIME_KEYS..':'..to_delete_list_id

        -- looking for the oldest data
        local to_delete_data_id
        local to_delete_data
        local items = redis.call( 'HLEN', to_delete_data_key )
-- #FIXME: to_delete_data -> to_delete_data_len
-- HSTRLEN key field
-- Available since 3.2.0.
        if items == 1 then
            to_delete_data_id, to_delete_data = unpack( redis.call( 'HGETALL', to_delete_data_key ) )
        else
            to_delete_data_id = unpack( redis.call( 'ZRANGE', to_delete_time_key, 0, 0 ) )
            to_delete_data    = redis.call( 'HGET', to_delete_data_key, to_delete_data_id )
        end
        local to_delete_data_len = #to_delete_data
        to_delete_data = nil    -- free memory

        if _DEBUG then
            _debug_log( {
                _STEP               = 'Before real cleaning',
                items               = items,
                to_delete_list_id   = to_delete_list_id,
                to_delete_data_id   = to_delete_data_id,
                to_delete_data_len  = to_delete_data_len
            } )
        end

        if to_delete_list_id == list_id and to_delete_data_id == data_id then
            if items_deleted == 0 then
                -- Its first attempt to clean the conflicting data, for which the primary operation executed.
                -- In this case, we are roll back operations that have been made before, and immediately return an error,
                -- shifting the handling of such errors on the client.
                cleaning_error( "OOM Command not allowed when used memory > 'maxmemory'." )
            end
            break
        end

        if _DEBUG then
            _debug_log( {
                _STEP           = 'Why it is cleared?',
                coll_items      = coll_items,
                cleanup_bytes   = cleanup_bytes,
                cleanup_items   = cleanup_items,
                items_deleted   = items_deleted,
                bytes_deleted   = bytes_deleted,
            } )
        end

        -- actually remove the oldest item
        redis.call( 'HDEL', to_delete_data_key, to_delete_data_id )
        items = items - 1
        coll_items = coll_items - 1

        redis.call( 'HSET', STATUS_KEY, 'last_removed_time', last_removed_time )

        if items > 0 then
            -- If the list has more data
            redis.call( 'ZREM', to_delete_time_key, to_delete_data_id )
            local oldest_item_time = tonumber( redis.call( 'ZRANGE', to_delete_time_key, 0, 0, 'WITHSCORES' )[2] )
            redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, to_delete_list_id )

            if items == 1 then
                redis.call( 'DEL', to_delete_time_key )
            end
        else
            -- If the list does not have data
            -- remove the name of the list from the queue collection
            redis.call( 'ZREM', QUEUE_KEY, to_delete_list_id )
            lists_deleted = lists_deleted + 1
        end

        -- amount of data collection decreased
        items_deleted = items_deleted + 1
        bytes_deleted = bytes_deleted + to_delete_data_len

        if _DEBUG then
            _debug_log( {
                _STEP               = 'After real cleaning',
                to_delete_data_key  = to_delete_data_key,
                to_delete_data_id   = to_delete_data_id,
                items               = items,
                items_deleted       = items_deleted,
                bytes_deleted       = bytes_deleted,
            } )
        end

    until
            coll_items <= 0
        or (
                items_deleted >= cleanup_items
            and bytes_deleted >= cleanup_bytes
        )

    if items_deleted > 0 then
        -- reduce the number of items in the collection
        redis.call( 'HINCRBY', STATUS_KEY, 'items', -items_deleted )
    end
    if lists_deleted > 0 then
        -- reduce the number of lists stored in a collection
        redis.call( 'HINCRBY',  STATUS_KEY, 'lists', -lists_deleted )
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Cleaning finished',
            items_deleted   = items_deleted,
            bytes_deleted   = bytes_deleted,
            lists_deleted   = lists_deleted,
            cleanup_bytes   = cleanup_bytes,
            cleanup_items   = cleanup_items,
            coll_items      = coll_items,
        } )
    end

    if bytes_deleted > 0 then
        if TOTAL_BYTES_DELETED == 0 then    -- first cleaning
            INSERTS_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
            UPDATES_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'updates_since_cleaning', UPDATES_SINCE_CLEANING )
        end

        TOTAL_BYTES_DELETED = TOTAL_BYTES_DELETED + bytes_deleted
        LAST_CLEANUP_ITEMS = LAST_CLEANUP_ITEMS + items_deleted

        -- information values
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_maxmemory', REDIS_MAXMEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_used_memory', REDIS_USED_MEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_bytes_must_be_deleted', LAST_CLEANUP_BYTES_MUST_BE_DELETED )
    end
end

local call_with_error_control = function ( list_id, data_id, ... )
    local retries = 2
    local ret
    local error_msg = '<Empty error message>'
    repeat
        ret = redis.pcall( ... )
        if type( ret ) == 'table' and ret.err ~= nil then
            error_msg   = "OOM Command not allowed when used memory > 'maxmemory'. - " .. ret.err .. " (call = " .. cjson.encode( { ... } ) .. ")"
            if _DEBUG then
                _debug_log( {
                    _STEP       = 'call_with_error_control',
                    error_msg   = error_msg,
                    retries     = retries
                } )
            end

            cleaning( list_id, data_id, true )
        else
            break
        end
        retries = retries - 1
    until retries == 0

    if retries == 0 then
        -- Operation returned an error related to insufficient memory.
        -- Start cleaning process and then re-try operation.
        -- Repeat the cycle of operation + memory cleaning a couple of times and return an error / fail,
        -- if it still did not work.
        cleaning_error( error_msg )
    end

    return ret
end


-- determine whether there is a list of data and a collection
if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
    return { -1006, 0, 0, 0 }
end

local reduce_list_items = function ( list_id )
    local max_list_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'max_list_items' ) )
    if max_list_items ~= nil and max_list_items > 0 and redis.call( 'EXISTS', DATA_KEY ) == 1 then
        local list_items        = redis.call( 'HLEN', DATA_KEY )
        local older_allowed     = tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) )
        local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

        while list_items >= max_list_items do
            local removed_data_time, removed_data_id
            list_items = list_items - 1

            if list_items == 0 then
                removed_data_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
                redis.call( 'ZREM', QUEUE_KEY, list_id )
                redis.call( 'DEL', DATA_KEY )
                redis.call( 'HINCRBY', STATUS_KEY, 'lists', -1 )
            else
                removed_data_id, removed_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                removed_data_id     = tonumber( removed_data_id )
                removed_data_time   = tonumber( removed_data_time )
                redis.call( 'ZREM', TIME_KEY, removed_data_id )
                redis.call( 'HDEL', DATA_KEY, removed_data_id )

                local lowest_data_id, lowest_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                redis.call( 'ZADD', QUEUE_KEY, lowest_data_time, lowest_data_id )

                if redis.call( 'HLEN', DATA_KEY ) == 1 then
                    redis.call( 'DEL', TIME_KEY )
                end
            end

            redis.call( 'HINCRBY', STATUS_KEY, 'items', -1 )

            if older_allowed == 0 and ( last_removed_time == 0 or removed_data_time < last_removed_time ) then
                redis.call( 'HSET', STATUS_KEY, 'last_removed_time', removed_data_time )
                last_removed_time = removed_data_time
            end
        end
    end
end

reduce_list_items( list_id )


-- verification of the existence of old data with new data identifier
if redis.call( 'HEXISTS', DATA_KEY, data_id ) == 1 then
    return { -1008, 0, 0, 0 }
end

-- Validating the time of new data, if required
local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

if tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) ) == 0 then
    if redis.call( 'EXISTS', QUEUE_KEY ) == 1 then
        if data_time < last_removed_time then
            return { -1009, 0, 0, 0 }
        end
    end
end

-- deleting obsolete data, if it is necessary
local data_len = #data
_setup( 7, 'insert', data_len ) -- 7 -> is the index of ARGV[7]
cleaning( list_id, data_id, false )

-- add data to the list
-- Remember that the list and the collection can be automatically deleted after the "crowding out" old data

-- the existing data
local items = redis.call( 'HLEN', DATA_KEY )
local existing_id, existing_time
if items == 1 then
    existing_id   = unpack( redis.call( 'HGETALL', DATA_KEY ) )
    existing_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
end

-- actually add data to the list
call_with_error_control( list_id, data_id, 'HSET', DATA_KEY, data_id, data )
data = nil  -- free memory
table.insert( ROLLBACK, 1, { 'HDEL', DATA_KEY, data_id } )

if redis.call( 'HLEN', DATA_KEY ) == 1 then  -- list recreated after cleaning
    redis.call( 'HINCRBY', STATUS_KEY, 'lists', 1 )
    table.insert( ROLLBACK, 1, { 'HINCRBY', STATUS_KEY, 'lists', -1 } )
    call_with_error_control( list_id, data_id, 'ZADD', QUEUE_KEY, data_time, list_id )
else
    if items == 1 then
        call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, existing_time, existing_id )
        table.insert( ROLLBACK, 1, { 'ZREM', TIME_KEY, existing_id } )
    end
    call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, data_time, data_id )
    local oldest_item_time = redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' )[2]
    redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, list_id )
end

-- reflect the addition of new data
redis.call( 'HINCRBY', STATUS_KEY, 'items', 1 )
if data_time < last_removed_time then
    redis.call( 'HSET', STATUS_KEY, 'last_removed_time', 0 )
end

renew_last_cleanup_values()
-- redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', LAST_CLEANUP_BYTES )
INSERTS_SINCE_CLEANING = INSERTS_SINCE_CLEANING + 1
redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
return { -1000, LAST_CLEANUP_ITEMS, REDIS_USED_MEMORY, TOTAL_BYTES_DELETED }

  at lib/Redis/CappedCollection.pm line 3800.

#   Failed test 'no warnings'
#   at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/5.39.3/Test/Builder.pm line 193.
# There were 1 warning(s)
#     Previous test 0 ''
#     Attempt to call undefined import method with arguments ("1.976") via package "Redis" (Perhaps you forgot to load the package?) at lib/Redis/CappedCollection.pm line 78.
#  at lib/Redis/CappedCollection.pm line 78.
# 	Redis::CappedCollection::BEGIN() called at lib/Redis/CappedCollection.pm line 78
# 	eval {...} called at lib/Redis/CappedCollection.pm line 78
# 	require Redis/CappedCollection.pm called at t/00_CappedCollection/05_collection_info.t line 41
# 	main::BEGIN() called at t/00_CappedCollection/05_collection_info.t line 41
# 	eval {...} called at t/00_CappedCollection/05_collection_info.t line 41
# 
# Looks like your test exited with -1 just after 36.
t/00_CappedCollection/05_collection_info.t ............. 
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 1/36 subtests 
[EVAL] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.

Lua script 'insert':
-- adding data to a list of collections
collectgarbage( 'stop' )

local coll_name             = ARGV[2]
local list_id               = ARGV[3]
local data_id               = ARGV[4]
local data                  = ARGV[5]
local data_time             = tonumber( ARGV[6] )

-- key data storage structures
local NAMESPACE  = 'C'
local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
local STATUS_KEY = NAMESPACE..':S:'..coll_name
local DATA_KEYS  = NAMESPACE..':D:'..coll_name
local TIME_KEYS  = NAMESPACE..':T:'..coll_name
local DATA_KEY   = DATA_KEYS..':'..list_id
local TIME_KEY   = TIME_KEYS..':'..list_id
local REDIS_USED_MEMORY                     = 0
local REDIS_MAXMEMORY                       = 0
local ROLLBACK                              = {}
local TOTAL_BYTES_DELETED                   = 0
local LAST_CLEANUP_BYTES_MUST_BE_DELETED    = 0
local LAST_CLEANUP_ITEMS                    = 0
local LAST_OPERATION                        = ''
local INSERTS_SINCE_CLEANING                = 0
local UPDATES_SINCE_CLEANING                = 0

local _DEBUG, _DEBUG_ID, _FUNC_NAME

local table_merge = function ( t1, t2 )
    for key, val in pairs( t2 ) do
        t1[ key ] = val
    end
end

local _debug_log = function ( values )
    table_merge( values, {
        _DEBUG_ID                   = _DEBUG_ID,
        _FUNC_NAME                  = _FUNC_NAME,
        REDIS_USED_MEMORY           = REDIS_USED_MEMORY,
        list_id                     = list_id,
        data_id                     = data_id,
        data_len                    = #data,
        ROLLBACK                    = ROLLBACK
    } )

    redis.log( redis.LOG_NOTICE, _FUNC_NAME..': '..cjson.encode( values ) )
end

local _setup = function ( argv_idx, func_name, extra_data_len )
    LAST_OPERATION = func_name

    REDIS_MAXMEMORY = tonumber( redis.call( 'CONFIG', 'GET', 'maxmemory' )[2] )
    local memory_reserve_coefficient = 1 + tonumber( redis.call( 'HGET', STATUS_KEY, 'memory_reserve' ) )

    local redis_used_memory = string.match(
        redis.call( 'INFO', 'memory' ),
        'used_memory:(%d+)'
    )
    REDIS_USED_MEMORY = tonumber( redis_used_memory )
    LAST_CLEANUP_BYTES_MUST_BE_DELETED = REDIS_USED_MEMORY + extra_data_len - math.floor( REDIS_MAXMEMORY / memory_reserve_coefficient )
    if LAST_CLEANUP_BYTES_MUST_BE_DELETED < 0 or REDIS_MAXMEMORY == 0 then
        LAST_CLEANUP_BYTES_MUST_BE_DELETED = 0
    end

    INSERTS_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'inserts_since_cleaning' ) )
    if INSERTS_SINCE_CLEANING == nil then
        INSERTS_SINCE_CLEANING = 0
    end
    UPDATES_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'updates_since_cleaning' ) )
    if UPDATES_SINCE_CLEANING == nil then
        UPDATES_SINCE_CLEANING = 0
    end

    _FUNC_NAME  = func_name
    _DEBUG_ID   = tonumber( ARGV[ argv_idx ] )
    if _DEBUG_ID ~= 0 then
        _DEBUG = true
        _debug_log( {
            _STEP                   = '_setup',
            maxmemory               = REDIS_MAXMEMORY,
            redis_used_memory       = REDIS_USED_MEMORY,
            bytes_must_be_deleted   = LAST_CLEANUP_BYTES_MUST_BE_DELETED
        } )
    else
        _DEBUG = false
    end
end

local renew_last_cleanup_values = function ()
    if LAST_CLEANUP_ITEMS > 0 then
        local last_cleanup_bytes_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_bytes' ) )
        local last_cleanup_items_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_items' ) )
        if #last_cleanup_bytes_values >= 10 then
            table.remove ( last_cleanup_bytes_values, 1 )
            table.remove ( last_cleanup_items_values, 1 )
        end
        table.insert( last_cleanup_bytes_values, TOTAL_BYTES_DELETED )
        table.insert( last_cleanup_items_values, LAST_CLEANUP_ITEMS )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', cjson.encode( last_cleanup_bytes_values ) )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_items', cjson.encode( last_cleanup_items_values ) )
    end
end

local cleaning_error = function ( error_msg )
    if _DEBUG then
        _debug_log( {
            _STEP       = 'cleaning_error',
            error_msg   = error_msg
        } )
    end

    for _, rollback_command in ipairs( ROLLBACK ) do
        redis.call( unpack( rollback_command ) )
    end
    -- Level 2 points the error to where the function that called error was called
    renew_last_cleanup_values()
    error( error_msg, 2 )
end

-- deleting old data to make room for new data
local cleaning = function ( list_id, data_id, is_cleaning_needed )
    local coll_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'items' ) )

    if coll_items == 0 then
        return
    end

    local cleanup_bytes = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_bytes' ) )
    local cleanup_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_items' ) )

    if not ( is_cleaning_needed or LAST_CLEANUP_BYTES_MUST_BE_DELETED > 0 ) then
        return
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Before cleanings',
            coll_items      = coll_items,
            cleanup_items   = cleanup_items,
            cleanup_bytes   = cleanup_bytes,
        } )
    end

    local items_deleted = 0
    local bytes_deleted = 0
    local lists_deleted = 0

    repeat
        if redis.call( 'EXISTS', QUEUE_KEY ) == 0 then
            -- Level 2 points the error to where the function that called error was called
            renew_last_cleanup_values()
            error( 'Queue key does not exist', 2 )
        end

        -- continue to work with the to_delete (requiring removal) data and for them using the prefix 'to_delete_'
        local to_delete_list_id, last_removed_time = unpack( redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' ) )
        last_removed_time = tonumber( last_removed_time )
        -- key data structures
        local to_delete_data_key = DATA_KEYS..':'..to_delete_list_id
        local to_delete_time_key = TIME_KEYS..':'..to_delete_list_id

        -- looking for the oldest data
        local to_delete_data_id
        local to_delete_data
        local items = redis.call( 'HLEN', to_delete_data_key )
-- #FIXME: to_delete_data -> to_delete_data_len
-- HSTRLEN key field
-- Available since 3.2.0.
        if items == 1 then
            to_delete_data_id, to_delete_data = unpack( redis.call( 'HGETALL', to_delete_data_key ) )
        else
            to_delete_data_id = unpack( redis.call( 'ZRANGE', to_delete_time_key, 0, 0 ) )
            to_delete_data    = redis.call( 'HGET', to_delete_data_key, to_delete_data_id )
        end
        local to_delete_data_len = #to_delete_data
        to_delete_data = nil    -- free memory

        if _DEBUG then
            _debug_log( {
                _STEP               = 'Before real cleaning',
                items               = items,
                to_delete_list_id   = to_delete_list_id,
                to_delete_data_id   = to_delete_data_id,
                to_delete_data_len  = to_delete_data_len
            } )
        end

        if to_delete_list_id == list_id and to_delete_data_id == data_id then
            if items_deleted == 0 then
                -- Its first attempt to clean the conflicting data, for which the primary operation executed.
                -- In this case, we are roll back operations that have been made before, and immediately return an error,
                -- shifting the handling of such errors on the client.
                cleaning_error( "OOM Command not allowed when used memory > 'maxmemory'." )
            end
            break
        end

        if _DEBUG then
            _debug_log( {
                _STEP           = 'Why it is cleared?',
                coll_items      = coll_items,
                cleanup_bytes   = cleanup_bytes,
                cleanup_items   = cleanup_items,
                items_deleted   = items_deleted,
                bytes_deleted   = bytes_deleted,
            } )
        end

        -- actually remove the oldest item
        redis.call( 'HDEL', to_delete_data_key, to_delete_data_id )
        items = items - 1
        coll_items = coll_items - 1

        redis.call( 'HSET', STATUS_KEY, 'last_removed_time', last_removed_time )

        if items > 0 then
            -- If the list has more data
            redis.call( 'ZREM', to_delete_time_key, to_delete_data_id )
            local oldest_item_time = tonumber( redis.call( 'ZRANGE', to_delete_time_key, 0, 0, 'WITHSCORES' )[2] )
            redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, to_delete_list_id )

            if items == 1 then
                redis.call( 'DEL', to_delete_time_key )
            end
        else
            -- If the list does not have data
            -- remove the name of the list from the queue collection
            redis.call( 'ZREM', QUEUE_KEY, to_delete_list_id )
            lists_deleted = lists_deleted + 1
        end

        -- amount of data collection decreased
        items_deleted = items_deleted + 1
        bytes_deleted = bytes_deleted + to_delete_data_len

        if _DEBUG then
            _debug_log( {
                _STEP               = 'After real cleaning',
                to_delete_data_key  = to_delete_data_key,
                to_delete_data_id   = to_delete_data_id,
                items               = items,
                items_deleted       = items_deleted,
                bytes_deleted       = bytes_deleted,
            } )
        end

    until
            coll_items <= 0
        or (
                items_deleted >= cleanup_items
            and bytes_deleted >= cleanup_bytes
        )

    if items_deleted > 0 then
        -- reduce the number of items in the collection
        redis.call( 'HINCRBY', STATUS_KEY, 'items', -items_deleted )
    end
    if lists_deleted > 0 then
        -- reduce the number of lists stored in a collection
        redis.call( 'HINCRBY',  STATUS_KEY, 'lists', -lists_deleted )
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Cleaning finished',
            items_deleted   = items_deleted,
            bytes_deleted   = bytes_deleted,
            lists_deleted   = lists_deleted,
            cleanup_bytes   = cleanup_bytes,
            cleanup_items   = cleanup_items,
            coll_items      = coll_items,
        } )
    end

    if bytes_deleted > 0 then
        if TOTAL_BYTES_DELETED == 0 then    -- first cleaning
            INSERTS_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
            UPDATES_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'updates_since_cleaning', UPDATES_SINCE_CLEANING )
        end

        TOTAL_BYTES_DELETED = TOTAL_BYTES_DELETED + bytes_deleted
        LAST_CLEANUP_ITEMS = LAST_CLEANUP_ITEMS + items_deleted

        -- information values
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_maxmemory', REDIS_MAXMEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_used_memory', REDIS_USED_MEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_bytes_must_be_deleted', LAST_CLEANUP_BYTES_MUST_BE_DELETED )
    end
end

local call_with_error_control = function ( list_id, data_id, ... )
    local retries = 2
    local ret
    local error_msg = '<Empty error message>'
    repeat
        ret = redis.pcall( ... )
        if type( ret ) == 'table' and ret.err ~= nil then
            error_msg   = "OOM Command not allowed when used memory > 'maxmemory'. - " .. ret.err .. " (call = " .. cjson.encode( { ... } ) .. ")"
            if _DEBUG then
                _debug_log( {
                    _STEP       = 'call_with_error_control',
                    error_msg   = error_msg,
                    retries     = retries
                } )
            end

            cleaning( list_id, data_id, true )
        else
            break
        end
        retries = retries - 1
    until retries == 0

    if retries == 0 then
        -- Operation returned an error related to insufficient memory.
        -- Start cleaning process and then re-try operation.
        -- Repeat the cycle of operation + memory cleaning a couple of times and return an error / fail,
        -- if it still did not work.
        cleaning_error( error_msg )
    end

    return ret
end


-- determine whether there is a list of data and a collection
if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
    return { -1006, 0, 0, 0 }
end

local reduce_list_items = function ( list_id )
    local max_list_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'max_list_items' ) )
    if max_list_items ~= nil and max_list_items > 0 and redis.call( 'EXISTS', DATA_KEY ) == 1 then
        local list_items        = redis.call( 'HLEN', DATA_KEY )
        local older_allowed     = tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) )
        local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

        while list_items >= max_list_items do
            local removed_data_time, removed_data_id
            list_items = list_items - 1

            if list_items == 0 then
                removed_data_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
                redis.call( 'ZREM', QUEUE_KEY, list_id )
                redis.call( 'DEL', DATA_KEY )
                redis.call( 'HINCRBY', STATUS_KEY, 'lists', -1 )
            else
                removed_data_id, removed_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                removed_data_id     = tonumber( removed_data_id )
                removed_data_time   = tonumber( removed_data_time )
                redis.call( 'ZREM', TIME_KEY, removed_data_id )
                redis.call( 'HDEL', DATA_KEY, removed_data_id )

                local lowest_data_id, lowest_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                redis.call( 'ZADD', QUEUE_KEY, lowest_data_time, lowest_data_id )

                if redis.call( 'HLEN', DATA_KEY ) == 1 then
                    redis.call( 'DEL', TIME_KEY )
                end
            end

            redis.call( 'HINCRBY', STATUS_KEY, 'items', -1 )

            if older_allowed == 0 and ( last_removed_time == 0 or removed_data_time < last_removed_time ) then
                redis.call( 'HSET', STATUS_KEY, 'last_removed_time', removed_data_time )
                last_removed_time = removed_data_time
            end
        end
    end
end

reduce_list_items( list_id )


-- verification of the existence of old data with new data identifier
if redis.call( 'HEXISTS', DATA_KEY, data_id ) == 1 then
    return { -1008, 0, 0, 0 }
end

-- Validating the time of new data, if required
local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

if tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) ) == 0 then
    if redis.call( 'EXISTS', QUEUE_KEY ) == 1 then
        if data_time < last_removed_time then
            return { -1009, 0, 0, 0 }
        end
    end
end

-- deleting obsolete data, if it is necessary
local data_len = #data
_setup( 7, 'insert', data_len ) -- 7 -> is the index of ARGV[7]
cleaning( list_id, data_id, false )

-- add data to the list
-- Remember that the list and the collection can be automatically deleted after the "crowding out" old data

-- the existing data
local items = redis.call( 'HLEN', DATA_KEY )
local existing_id, existing_time
if items == 1 then
    existing_id   = unpack( redis.call( 'HGETALL', DATA_KEY ) )
    existing_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
end

-- actually add data to the list
call_with_error_control( list_id, data_id, 'HSET', DATA_KEY, data_id, data )
data = nil  -- free memory
table.insert( ROLLBACK, 1, { 'HDEL', DATA_KEY, data_id } )

if redis.call( 'HLEN', DATA_KEY ) == 1 then  -- list recreated after cleaning
    redis.call( 'HINCRBY', STATUS_KEY, 'lists', 1 )
    table.insert( ROLLBACK, 1, { 'HINCRBY', STATUS_KEY, 'lists', -1 } )
    call_with_error_control( list_id, data_id, 'ZADD', QUEUE_KEY, data_time, list_id )
else
    if items == 1 then
        call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, existing_time, existing_id )
        table.insert( ROLLBACK, 1, { 'ZREM', TIME_KEY, existing_id } )
    end
    call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, data_time, data_id )
    local oldest_item_time = redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' )[2]
    redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, list_id )
end

-- reflect the addition of new data
redis.call( 'HINCRBY', STATUS_KEY, 'items', 1 )
if data_time < last_removed_time then
    redis.call( 'HSET', STATUS_KEY, 'last_removed_time', 0 )
end

renew_last_cleanup_values()
-- redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', LAST_CLEANUP_BYTES )
INSERTS_SINCE_CLEANING = INSERTS_SINCE_CLEANING + 1
redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
return { -1000, LAST_CLEANUP_ITEMS, REDIS_USED_MEMORY, TOTAL_BYTES_DELETED }

  at lib/Redis/CappedCollection.pm line 3800.

#   Failed test 'no warnings'
#   at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/5.39.3/Test/Builder.pm line 193.
# There were 1 warning(s)
#     Previous test 0 ''
#     Attempt to call undefined import method with arguments ("1.976") via package "Redis" (Perhaps you forgot to load the package?) at lib/Redis/CappedCollection.pm line 78.
#  at lib/Redis/CappedCollection.pm line 78.
# 	Redis::CappedCollection::BEGIN() called at lib/Redis/CappedCollection.pm line 78
# 	eval {...} called at lib/Redis/CappedCollection.pm line 78
# 	require Redis/CappedCollection.pm called at t/00_CappedCollection/06_pop_oldest.t line 41
# 	main::BEGIN() called at t/00_CappedCollection/06_pop_oldest.t line 41
# 	eval {...} called at t/00_CappedCollection/06_pop_oldest.t line 41
# 
# Looks like your test exited with -1 just after 8.
t/00_CappedCollection/06_pop_oldest.t .................. 
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 1/8 subtests 
[EVAL] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.

Lua script 'insert':
-- adding data to a list of collections
collectgarbage( 'stop' )

local coll_name             = ARGV[2]
local list_id               = ARGV[3]
local data_id               = ARGV[4]
local data                  = ARGV[5]
local data_time             = tonumber( ARGV[6] )

-- key data storage structures
local NAMESPACE  = 'C'
local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
local STATUS_KEY = NAMESPACE..':S:'..coll_name
local DATA_KEYS  = NAMESPACE..':D:'..coll_name
local TIME_KEYS  = NAMESPACE..':T:'..coll_name
local DATA_KEY   = DATA_KEYS..':'..list_id
local TIME_KEY   = TIME_KEYS..':'..list_id
local REDIS_USED_MEMORY                     = 0
local REDIS_MAXMEMORY                       = 0
local ROLLBACK                              = {}
local TOTAL_BYTES_DELETED                   = 0
local LAST_CLEANUP_BYTES_MUST_BE_DELETED    = 0
local LAST_CLEANUP_ITEMS                    = 0
local LAST_OPERATION                        = ''
local INSERTS_SINCE_CLEANING                = 0
local UPDATES_SINCE_CLEANING                = 0

local _DEBUG, _DEBUG_ID, _FUNC_NAME

local table_merge = function ( t1, t2 )
    for key, val in pairs( t2 ) do
        t1[ key ] = val
    end
end

local _debug_log = function ( values )
    table_merge( values, {
        _DEBUG_ID                   = _DEBUG_ID,
        _FUNC_NAME                  = _FUNC_NAME,
        REDIS_USED_MEMORY           = REDIS_USED_MEMORY,
        list_id                     = list_id,
        data_id                     = data_id,
        data_len                    = #data,
        ROLLBACK                    = ROLLBACK
    } )

    redis.log( redis.LOG_NOTICE, _FUNC_NAME..': '..cjson.encode( values ) )
end

local _setup = function ( argv_idx, func_name, extra_data_len )
    LAST_OPERATION = func_name

    REDIS_MAXMEMORY = tonumber( redis.call( 'CONFIG', 'GET', 'maxmemory' )[2] )
    local memory_reserve_coefficient = 1 + tonumber( redis.call( 'HGET', STATUS_KEY, 'memory_reserve' ) )

    local redis_used_memory = string.match(
        redis.call( 'INFO', 'memory' ),
        'used_memory:(%d+)'
    )
    REDIS_USED_MEMORY = tonumber( redis_used_memory )
    LAST_CLEANUP_BYTES_MUST_BE_DELETED = REDIS_USED_MEMORY + extra_data_len - math.floor( REDIS_MAXMEMORY / memory_reserve_coefficient )
    if LAST_CLEANUP_BYTES_MUST_BE_DELETED < 0 or REDIS_MAXMEMORY == 0 then
        LAST_CLEANUP_BYTES_MUST_BE_DELETED = 0
    end

    INSERTS_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'inserts_since_cleaning' ) )
    if INSERTS_SINCE_CLEANING == nil then
        INSERTS_SINCE_CLEANING = 0
    end
    UPDATES_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'updates_since_cleaning' ) )
    if UPDATES_SINCE_CLEANING == nil then
        UPDATES_SINCE_CLEANING = 0
    end

    _FUNC_NAME  = func_name
    _DEBUG_ID   = tonumber( ARGV[ argv_idx ] )
    if _DEBUG_ID ~= 0 then
        _DEBUG = true
        _debug_log( {
            _STEP                   = '_setup',
            maxmemory               = REDIS_MAXMEMORY,
            redis_used_memory       = REDIS_USED_MEMORY,
            bytes_must_be_deleted   = LAST_CLEANUP_BYTES_MUST_BE_DELETED
        } )
    else
        _DEBUG = false
    end
end

local renew_last_cleanup_values = function ()
    if LAST_CLEANUP_ITEMS > 0 then
        local last_cleanup_bytes_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_bytes' ) )
        local last_cleanup_items_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_items' ) )
        if #last_cleanup_bytes_values >= 10 then
            table.remove ( last_cleanup_bytes_values, 1 )
            table.remove ( last_cleanup_items_values, 1 )
        end
        table.insert( last_cleanup_bytes_values, TOTAL_BYTES_DELETED )
        table.insert( last_cleanup_items_values, LAST_CLEANUP_ITEMS )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', cjson.encode( last_cleanup_bytes_values ) )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_items', cjson.encode( last_cleanup_items_values ) )
    end
end

local cleaning_error = function ( error_msg )
    if _DEBUG then
        _debug_log( {
            _STEP       = 'cleaning_error',
            error_msg   = error_msg
        } )
    end

    for _, rollback_command in ipairs( ROLLBACK ) do
        redis.call( unpack( rollback_command ) )
    end
    -- Level 2 points the error to where the function that called error was called
    renew_last_cleanup_values()
    error( error_msg, 2 )
end

-- deleting old data to make room for new data
local cleaning = function ( list_id, data_id, is_cleaning_needed )
    local coll_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'items' ) )

    if coll_items == 0 then
        return
    end

    local cleanup_bytes = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_bytes' ) )
    local cleanup_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_items' ) )

    if not ( is_cleaning_needed or LAST_CLEANUP_BYTES_MUST_BE_DELETED > 0 ) then
        return
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Before cleanings',
            coll_items      = coll_items,
            cleanup_items   = cleanup_items,
            cleanup_bytes   = cleanup_bytes,
        } )
    end

    local items_deleted = 0
    local bytes_deleted = 0
    local lists_deleted = 0

    repeat
        if redis.call( 'EXISTS', QUEUE_KEY ) == 0 then
            -- Level 2 points the error to where the function that called error was called
            renew_last_cleanup_values()
            error( 'Queue key does not exist', 2 )
        end

        -- continue to work with the to_delete (requiring removal) data and for them using the prefix 'to_delete_'
        local to_delete_list_id, last_removed_time = unpack( redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' ) )
        last_removed_time = tonumber( last_removed_time )
        -- key data structures
        local to_delete_data_key = DATA_KEYS..':'..to_delete_list_id
        local to_delete_time_key = TIME_KEYS..':'..to_delete_list_id

        -- looking for the oldest data
        local to_delete_data_id
        local to_delete_data
        local items = redis.call( 'HLEN', to_delete_data_key )
-- #FIXME: to_delete_data -> to_delete_data_len
-- HSTRLEN key field
-- Available since 3.2.0.
        if items == 1 then
            to_delete_data_id, to_delete_data = unpack( redis.call( 'HGETALL', to_delete_data_key ) )
        else
            to_delete_data_id = unpack( redis.call( 'ZRANGE', to_delete_time_key, 0, 0 ) )
            to_delete_data    = redis.call( 'HGET', to_delete_data_key, to_delete_data_id )
        end
        local to_delete_data_len = #to_delete_data
        to_delete_data = nil    -- free memory

        if _DEBUG then
            _debug_log( {
                _STEP               = 'Before real cleaning',
                items               = items,
                to_delete_list_id   = to_delete_list_id,
                to_delete_data_id   = to_delete_data_id,
                to_delete_data_len  = to_delete_data_len
            } )
        end

        if to_delete_list_id == list_id and to_delete_data_id == data_id then
            if items_deleted == 0 then
                -- Its first attempt to clean the conflicting data, for which the primary operation executed.
                -- In this case, we are roll back operations that have been made before, and immediately return an error,
                -- shifting the handling of such errors on the client.
                cleaning_error( "OOM Command not allowed when used memory > 'maxmemory'." )
            end
            break
        end

        if _DEBUG then
            _debug_log( {
                _STEP           = 'Why it is cleared?',
                coll_items      = coll_items,
                cleanup_bytes   = cleanup_bytes,
                cleanup_items   = cleanup_items,
                items_deleted   = items_deleted,
                bytes_deleted   = bytes_deleted,
            } )
        end

        -- actually remove the oldest item
        redis.call( 'HDEL', to_delete_data_key, to_delete_data_id )
        items = items - 1
        coll_items = coll_items - 1

        redis.call( 'HSET', STATUS_KEY, 'last_removed_time', last_removed_time )

        if items > 0 then
            -- If the list has more data
            redis.call( 'ZREM', to_delete_time_key, to_delete_data_id )
            local oldest_item_time = tonumber( redis.call( 'ZRANGE', to_delete_time_key, 0, 0, 'WITHSCORES' )[2] )
            redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, to_delete_list_id )

            if items == 1 then
                redis.call( 'DEL', to_delete_time_key )
            end
        else
            -- If the list does not have data
            -- remove the name of the list from the queue collection
            redis.call( 'ZREM', QUEUE_KEY, to_delete_list_id )
            lists_deleted = lists_deleted + 1
        end

        -- amount of data collection decreased
        items_deleted = items_deleted + 1
        bytes_deleted = bytes_deleted + to_delete_data_len

        if _DEBUG then
            _debug_log( {
                _STEP               = 'After real cleaning',
                to_delete_data_key  = to_delete_data_key,
                to_delete_data_id   = to_delete_data_id,
                items               = items,
                items_deleted       = items_deleted,
                bytes_deleted       = bytes_deleted,
            } )
        end

    until
            coll_items <= 0
        or (
                items_deleted >= cleanup_items
            and bytes_deleted >= cleanup_bytes
        )

    if items_deleted > 0 then
        -- reduce the number of items in the collection
        redis.call( 'HINCRBY', STATUS_KEY, 'items', -items_deleted )
    end
    if lists_deleted > 0 then
        -- reduce the number of lists stored in a collection
        redis.call( 'HINCRBY',  STATUS_KEY, 'lists', -lists_deleted )
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Cleaning finished',
            items_deleted   = items_deleted,
            bytes_deleted   = bytes_deleted,
            lists_deleted   = lists_deleted,
            cleanup_bytes   = cleanup_bytes,
            cleanup_items   = cleanup_items,
            coll_items      = coll_items,
        } )
    end

    if bytes_deleted > 0 then
        if TOTAL_BYTES_DELETED == 0 then    -- first cleaning
            INSERTS_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
            UPDATES_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'updates_since_cleaning', UPDATES_SINCE_CLEANING )
        end

        TOTAL_BYTES_DELETED = TOTAL_BYTES_DELETED + bytes_deleted
        LAST_CLEANUP_ITEMS = LAST_CLEANUP_ITEMS + items_deleted

        -- information values
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_maxmemory', REDIS_MAXMEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_used_memory', REDIS_USED_MEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_bytes_must_be_deleted', LAST_CLEANUP_BYTES_MUST_BE_DELETED )
    end
end

local call_with_error_control = function ( list_id, data_id, ... )
    local retries = 2
    local ret
    local error_msg = '<Empty error message>'
    repeat
        ret = redis.pcall( ... )
        if type( ret ) == 'table' and ret.err ~= nil then
            error_msg   = "OOM Command not allowed when used memory > 'maxmemory'. - " .. ret.err .. " (call = " .. cjson.encode( { ... } ) .. ")"
            if _DEBUG then
                _debug_log( {
                    _STEP       = 'call_with_error_control',
                    error_msg   = error_msg,
                    retries     = retries
                } )
            end

            cleaning( list_id, data_id, true )
        else
            break
        end
        retries = retries - 1
    until retries == 0

    if retries == 0 then
        -- Operation returned an error related to insufficient memory.
        -- Start cleaning process and then re-try operation.
        -- Repeat the cycle of operation + memory cleaning a couple of times and return an error / fail,
        -- if it still did not work.
        cleaning_error( error_msg )
    end

    return ret
end


-- determine whether there is a list of data and a collection
if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
    return { -1006, 0, 0, 0 }
end

local reduce_list_items = function ( list_id )
    local max_list_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'max_list_items' ) )
    if max_list_items ~= nil and max_list_items > 0 and redis.call( 'EXISTS', DATA_KEY ) == 1 then
        local list_items        = redis.call( 'HLEN', DATA_KEY )
        local older_allowed     = tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) )
        local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

        while list_items >= max_list_items do
            local removed_data_time, removed_data_id
            list_items = list_items - 1

            if list_items == 0 then
                removed_data_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
                redis.call( 'ZREM', QUEUE_KEY, list_id )
                redis.call( 'DEL', DATA_KEY )
                redis.call( 'HINCRBY', STATUS_KEY, 'lists', -1 )
            else
                removed_data_id, removed_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                removed_data_id     = tonumber( removed_data_id )
                removed_data_time   = tonumber( removed_data_time )
                redis.call( 'ZREM', TIME_KEY, removed_data_id )
                redis.call( 'HDEL', DATA_KEY, removed_data_id )

                local lowest_data_id, lowest_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                redis.call( 'ZADD', QUEUE_KEY, lowest_data_time, lowest_data_id )

                if redis.call( 'HLEN', DATA_KEY ) == 1 then
                    redis.call( 'DEL', TIME_KEY )
                end
            end

            redis.call( 'HINCRBY', STATUS_KEY, 'items', -1 )

            if older_allowed == 0 and ( last_removed_time == 0 or removed_data_time < last_removed_time ) then
                redis.call( 'HSET', STATUS_KEY, 'last_removed_time', removed_data_time )
                last_removed_time = removed_data_time
            end
        end
    end
end

reduce_list_items( list_id )


-- verification of the existence of old data with new data identifier
if redis.call( 'HEXISTS', DATA_KEY, data_id ) == 1 then
    return { -1008, 0, 0, 0 }
end

-- Validating the time of new data, if required
local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

if tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) ) == 0 then
    if redis.call( 'EXISTS', QUEUE_KEY ) == 1 then
        if data_time < last_removed_time then
            return { -1009, 0, 0, 0 }
        end
    end
end

-- deleting obsolete data, if it is necessary
local data_len = #data
_setup( 7, 'insert', data_len ) -- 7 -> is the index of ARGV[7]
cleaning( list_id, data_id, false )

-- add data to the list
-- Remember that the list and the collection can be automatically deleted after the "crowding out" old data

-- the existing data
local items = redis.call( 'HLEN', DATA_KEY )
local existing_id, existing_time
if items == 1 then
    existing_id   = unpack( redis.call( 'HGETALL', DATA_KEY ) )
    existing_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
end

-- actually add data to the list
call_with_error_control( list_id, data_id, 'HSET', DATA_KEY, data_id, data )
data = nil  -- free memory
table.insert( ROLLBACK, 1, { 'HDEL', DATA_KEY, data_id } )

if redis.call( 'HLEN', DATA_KEY ) == 1 then  -- list recreated after cleaning
    redis.call( 'HINCRBY', STATUS_KEY, 'lists', 1 )
    table.insert( ROLLBACK, 1, { 'HINCRBY', STATUS_KEY, 'lists', -1 } )
    call_with_error_control( list_id, data_id, 'ZADD', QUEUE_KEY, data_time, list_id )
else
    if items == 1 then
        call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, existing_time, existing_id )
        table.insert( ROLLBACK, 1, { 'ZREM', TIME_KEY, existing_id } )
    end
    call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, data_time, data_id )
    local oldest_item_time = redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' )[2]
    redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, list_id )
end

-- reflect the addition of new data
redis.call( 'HINCRBY', STATUS_KEY, 'items', 1 )
if data_time < last_removed_time then
    redis.call( 'HSET', STATUS_KEY, 'last_removed_time', 0 )
end

renew_last_cleanup_values()
-- redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', LAST_CLEANUP_BYTES )
INSERTS_SINCE_CLEANING = INSERTS_SINCE_CLEANING + 1
redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
return { -1000, LAST_CLEANUP_ITEMS, REDIS_USED_MEMORY, TOTAL_BYTES_DELETED }

  at lib/Redis/CappedCollection.pm line 3800.

#   Failed test 'no warnings'
#   at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/5.39.3/Test/Builder.pm line 193.
# There were 1 warning(s)
#     Previous test 0 ''
#     Attempt to call undefined import method with arguments ("1.976") via package "Redis" (Perhaps you forgot to load the package?) at lib/Redis/CappedCollection.pm line 78.
#  at lib/Redis/CappedCollection.pm line 78.
# 	Redis::CappedCollection::BEGIN() called at lib/Redis/CappedCollection.pm line 78
# 	eval {...} called at lib/Redis/CappedCollection.pm line 78
# 	require Redis/CappedCollection.pm called at t/00_CappedCollection/07_exists.t line 36
# 	main::BEGIN() called at t/00_CappedCollection/07_exists.t line 36
# 	eval {...} called at t/00_CappedCollection/07_exists.t line 36
# 
# Looks like your test exited with -1 just after 23.
t/00_CappedCollection/07_exists.t ...................... 
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 1/23 subtests 
[EVAL] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.

Lua script 'insert':
-- adding data to a list of collections
collectgarbage( 'stop' )

local coll_name             = ARGV[2]
local list_id               = ARGV[3]
local data_id               = ARGV[4]
local data                  = ARGV[5]
local data_time             = tonumber( ARGV[6] )

-- key data storage structures
local NAMESPACE  = 'C'
local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
local STATUS_KEY = NAMESPACE..':S:'..coll_name
local DATA_KEYS  = NAMESPACE..':D:'..coll_name
local TIME_KEYS  = NAMESPACE..':T:'..coll_name
local DATA_KEY   = DATA_KEYS..':'..list_id
local TIME_KEY   = TIME_KEYS..':'..list_id
local REDIS_USED_MEMORY                     = 0
local REDIS_MAXMEMORY                       = 0
local ROLLBACK                              = {}
local TOTAL_BYTES_DELETED                   = 0
local LAST_CLEANUP_BYTES_MUST_BE_DELETED    = 0
local LAST_CLEANUP_ITEMS                    = 0
local LAST_OPERATION                        = ''
local INSERTS_SINCE_CLEANING                = 0
local UPDATES_SINCE_CLEANING                = 0

local _DEBUG, _DEBUG_ID, _FUNC_NAME

local table_merge = function ( t1, t2 )
    for key, val in pairs( t2 ) do
        t1[ key ] = val
    end
end

local _debug_log = function ( values )
    table_merge( values, {
        _DEBUG_ID                   = _DEBUG_ID,
        _FUNC_NAME                  = _FUNC_NAME,
        REDIS_USED_MEMORY           = REDIS_USED_MEMORY,
        list_id                     = list_id,
        data_id                     = data_id,
        data_len                    = #data,
        ROLLBACK                    = ROLLBACK
    } )

    redis.log( redis.LOG_NOTICE, _FUNC_NAME..': '..cjson.encode( values ) )
end

local _setup = function ( argv_idx, func_name, extra_data_len )
    LAST_OPERATION = func_name

    REDIS_MAXMEMORY = tonumber( redis.call( 'CONFIG', 'GET', 'maxmemory' )[2] )
    local memory_reserve_coefficient = 1 + tonumber( redis.call( 'HGET', STATUS_KEY, 'memory_reserve' ) )

    local redis_used_memory = string.match(
        redis.call( 'INFO', 'memory' ),
        'used_memory:(%d+)'
    )
    REDIS_USED_MEMORY = tonumber( redis_used_memory )
    LAST_CLEANUP_BYTES_MUST_BE_DELETED = REDIS_USED_MEMORY + extra_data_len - math.floor( REDIS_MAXMEMORY / memory_reserve_coefficient )
    if LAST_CLEANUP_BYTES_MUST_BE_DELETED < 0 or REDIS_MAXMEMORY == 0 then
        LAST_CLEANUP_BYTES_MUST_BE_DELETED = 0
    end

    INSERTS_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'inserts_since_cleaning' ) )
    if INSERTS_SINCE_CLEANING == nil then
        INSERTS_SINCE_CLEANING = 0
    end
    UPDATES_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'updates_since_cleaning' ) )
    if UPDATES_SINCE_CLEANING == nil then
        UPDATES_SINCE_CLEANING = 0
    end

    _FUNC_NAME  = func_name
    _DEBUG_ID   = tonumber( ARGV[ argv_idx ] )
    if _DEBUG_ID ~= 0 then
        _DEBUG = true
        _debug_log( {
            _STEP                   = '_setup',
            maxmemory               = REDIS_MAXMEMORY,
            redis_used_memory       = REDIS_USED_MEMORY,
            bytes_must_be_deleted   = LAST_CLEANUP_BYTES_MUST_BE_DELETED
        } )
    else
        _DEBUG = false
    end
end

local renew_last_cleanup_values = function ()
    if LAST_CLEANUP_ITEMS > 0 then
        local last_cleanup_bytes_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_bytes' ) )
        local last_cleanup_items_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_items' ) )
        if #last_cleanup_bytes_values >= 10 then
            table.remove ( last_cleanup_bytes_values, 1 )
            table.remove ( last_cleanup_items_values, 1 )
        end
        table.insert( last_cleanup_bytes_values, TOTAL_BYTES_DELETED )
        table.insert( last_cleanup_items_values, LAST_CLEANUP_ITEMS )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', cjson.encode( last_cleanup_bytes_values ) )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_items', cjson.encode( last_cleanup_items_values ) )
    end
end

local cleaning_error = function ( error_msg )
    if _DEBUG then
        _debug_log( {
            _STEP       = 'cleaning_error',
            error_msg   = error_msg
        } )
    end

    for _, rollback_command in ipairs( ROLLBACK ) do
        redis.call( unpack( rollback_command ) )
    end
    -- Level 2 points the error to where the function that called error was called
    renew_last_cleanup_values()
    error( error_msg, 2 )
end

-- deleting old data to make room for new data
local cleaning = function ( list_id, data_id, is_cleaning_needed )
    local coll_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'items' ) )

    if coll_items == 0 then
        return
    end

    local cleanup_bytes = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_bytes' ) )
    local cleanup_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_items' ) )

    if not ( is_cleaning_needed or LAST_CLEANUP_BYTES_MUST_BE_DELETED > 0 ) then
        return
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Before cleanings',
            coll_items      = coll_items,
            cleanup_items   = cleanup_items,
            cleanup_bytes   = cleanup_bytes,
        } )
    end

    local items_deleted = 0
    local bytes_deleted = 0
    local lists_deleted = 0

    repeat
        if redis.call( 'EXISTS', QUEUE_KEY ) == 0 then
            -- Level 2 points the error to where the function that called error was called
            renew_last_cleanup_values()
            error( 'Queue key does not exist', 2 )
        end

        -- continue to work with the to_delete (requiring removal) data and for them using the prefix 'to_delete_'
        local to_delete_list_id, last_removed_time = unpack( redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' ) )
        last_removed_time = tonumber( last_removed_time )
        -- key data structures
        local to_delete_data_key = DATA_KEYS..':'..to_delete_list_id
        local to_delete_time_key = TIME_KEYS..':'..to_delete_list_id

        -- looking for the oldest data
        local to_delete_data_id
        local to_delete_data
        local items = redis.call( 'HLEN', to_delete_data_key )
-- #FIXME: to_delete_data -> to_delete_data_len
-- HSTRLEN key field
-- Available since 3.2.0.
        if items == 1 then
            to_delete_data_id, to_delete_data = unpack( redis.call( 'HGETALL', to_delete_data_key ) )
        else
            to_delete_data_id = unpack( redis.call( 'ZRANGE', to_delete_time_key, 0, 0 ) )
            to_delete_data    = redis.call( 'HGET', to_delete_data_key, to_delete_data_id )
        end
        local to_delete_data_len = #to_delete_data
        to_delete_data = nil    -- free memory

        if _DEBUG then
            _debug_log( {
                _STEP               = 'Before real cleaning',
                items               = items,
                to_delete_list_id   = to_delete_list_id,
                to_delete_data_id   = to_delete_data_id,
                to_delete_data_len  = to_delete_data_len
            } )
        end

        if to_delete_list_id == list_id and to_delete_data_id == data_id then
            if items_deleted == 0 then
                -- Its first attempt to clean the conflicting data, for which the primary operation executed.
                -- In this case, we are roll back operations that have been made before, and immediately return an error,
                -- shifting the handling of such errors on the client.
                cleaning_error( "OOM Command not allowed when used memory > 'maxmemory'." )
            end
            break
        end

        if _DEBUG then
            _debug_log( {
                _STEP           = 'Why it is cleared?',
                coll_items      = coll_items,
                cleanup_bytes   = cleanup_bytes,
                cleanup_items   = cleanup_items,
                items_deleted   = items_deleted,
                bytes_deleted   = bytes_deleted,
            } )
        end

        -- actually remove the oldest item
        redis.call( 'HDEL', to_delete_data_key, to_delete_data_id )
        items = items - 1
        coll_items = coll_items - 1

        redis.call( 'HSET', STATUS_KEY, 'last_removed_time', last_removed_time )

        if items > 0 then
            -- If the list has more data
            redis.call( 'ZREM', to_delete_time_key, to_delete_data_id )
            local oldest_item_time = tonumber( redis.call( 'ZRANGE', to_delete_time_key, 0, 0, 'WITHSCORES' )[2] )
            redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, to_delete_list_id )

            if items == 1 then
                redis.call( 'DEL', to_delete_time_key )
            end
        else
            -- If the list does not have data
            -- remove the name of the list from the queue collection
            redis.call( 'ZREM', QUEUE_KEY, to_delete_list_id )
            lists_deleted = lists_deleted + 1
        end

        -- amount of data collection decreased
        items_deleted = items_deleted + 1
        bytes_deleted = bytes_deleted + to_delete_data_len

        if _DEBUG then
            _debug_log( {
                _STEP               = 'After real cleaning',
                to_delete_data_key  = to_delete_data_key,
                to_delete_data_id   = to_delete_data_id,
                items               = items,
                items_deleted       = items_deleted,
                bytes_deleted       = bytes_deleted,
            } )
        end

    until
            coll_items <= 0
        or (
                items_deleted >= cleanup_items
            and bytes_deleted >= cleanup_bytes
        )

    if items_deleted > 0 then
        -- reduce the number of items in the collection
        redis.call( 'HINCRBY', STATUS_KEY, 'items', -items_deleted )
    end
    if lists_deleted > 0 then
        -- reduce the number of lists stored in a collection
        redis.call( 'HINCRBY',  STATUS_KEY, 'lists', -lists_deleted )
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Cleaning finished',
            items_deleted   = items_deleted,
            bytes_deleted   = bytes_deleted,
            lists_deleted   = lists_deleted,
            cleanup_bytes   = cleanup_bytes,
            cleanup_items   = cleanup_items,
            coll_items      = coll_items,
        } )
    end

    if bytes_deleted > 0 then
        if TOTAL_BYTES_DELETED == 0 then    -- first cleaning
            INSERTS_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
            UPDATES_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'updates_since_cleaning', UPDATES_SINCE_CLEANING )
        end

        TOTAL_BYTES_DELETED = TOTAL_BYTES_DELETED + bytes_deleted
        LAST_CLEANUP_ITEMS = LAST_CLEANUP_ITEMS + items_deleted

        -- information values
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_maxmemory', REDIS_MAXMEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_used_memory', REDIS_USED_MEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_bytes_must_be_deleted', LAST_CLEANUP_BYTES_MUST_BE_DELETED )
    end
end

local call_with_error_control = function ( list_id, data_id, ... )
    local retries = 2
    local ret
    local error_msg = '<Empty error message>'
    repeat
        ret = redis.pcall( ... )
        if type( ret ) == 'table' and ret.err ~= nil then
            error_msg   = "OOM Command not allowed when used memory > 'maxmemory'. - " .. ret.err .. " (call = " .. cjson.encode( { ... } ) .. ")"
            if _DEBUG then
                _debug_log( {
                    _STEP       = 'call_with_error_control',
                    error_msg   = error_msg,
                    retries     = retries
                } )
            end

            cleaning( list_id, data_id, true )
        else
            break
        end
        retries = retries - 1
    until retries == 0

    if retries == 0 then
        -- Operation returned an error related to insufficient memory.
        -- Start cleaning process and then re-try operation.
        -- Repeat the cycle of operation + memory cleaning a couple of times and return an error / fail,
        -- if it still did not work.
        cleaning_error( error_msg )
    end

    return ret
end


-- determine whether there is a list of data and a collection
if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
    return { -1006, 0, 0, 0 }
end

local reduce_list_items = function ( list_id )
    local max_list_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'max_list_items' ) )
    if max_list_items ~= nil and max_list_items > 0 and redis.call( 'EXISTS', DATA_KEY ) == 1 then
        local list_items        = redis.call( 'HLEN', DATA_KEY )
        local older_allowed     = tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) )
        local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

        while list_items >= max_list_items do
            local removed_data_time, removed_data_id
            list_items = list_items - 1

            if list_items == 0 then
                removed_data_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
                redis.call( 'ZREM', QUEUE_KEY, list_id )
                redis.call( 'DEL', DATA_KEY )
                redis.call( 'HINCRBY', STATUS_KEY, 'lists', -1 )
            else
                removed_data_id, removed_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                removed_data_id     = tonumber( removed_data_id )
                removed_data_time   = tonumber( removed_data_time )
                redis.call( 'ZREM', TIME_KEY, removed_data_id )
                redis.call( 'HDEL', DATA_KEY, removed_data_id )

                local lowest_data_id, lowest_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                redis.call( 'ZADD', QUEUE_KEY, lowest_data_time, lowest_data_id )

                if redis.call( 'HLEN', DATA_KEY ) == 1 then
                    redis.call( 'DEL', TIME_KEY )
                end
            end

            redis.call( 'HINCRBY', STATUS_KEY, 'items', -1 )

            if older_allowed == 0 and ( last_removed_time == 0 or removed_data_time < last_removed_time ) then
                redis.call( 'HSET', STATUS_KEY, 'last_removed_time', removed_data_time )
                last_removed_time = removed_data_time
            end
        end
    end
end

reduce_list_items( list_id )


-- verification of the existence of old data with new data identifier
if redis.call( 'HEXISTS', DATA_KEY, data_id ) == 1 then
    return { -1008, 0, 0, 0 }
end

-- Validating the time of new data, if required
local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

if tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) ) == 0 then
    if redis.call( 'EXISTS', QUEUE_KEY ) == 1 then
        if data_time < last_removed_time then
            return { -1009, 0, 0, 0 }
        end
    end
end

-- deleting obsolete data, if it is necessary
local data_len = #data
_setup( 7, 'insert', data_len ) -- 7 -> is the index of ARGV[7]
cleaning( list_id, data_id, false )

-- add data to the list
-- Remember that the list and the collection can be automatically deleted after the "crowding out" old data

-- the existing data
local items = redis.call( 'HLEN', DATA_KEY )
local existing_id, existing_time
if items == 1 then
    existing_id   = unpack( redis.call( 'HGETALL', DATA_KEY ) )
    existing_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
end

-- actually add data to the list
call_with_error_control( list_id, data_id, 'HSET', DATA_KEY, data_id, data )
data = nil  -- free memory
table.insert( ROLLBACK, 1, { 'HDEL', DATA_KEY, data_id } )

if redis.call( 'HLEN', DATA_KEY ) == 1 then  -- list recreated after cleaning
    redis.call( 'HINCRBY', STATUS_KEY, 'lists', 1 )
    table.insert( ROLLBACK, 1, { 'HINCRBY', STATUS_KEY, 'lists', -1 } )
    call_with_error_control( list_id, data_id, 'ZADD', QUEUE_KEY, data_time, list_id )
else
    if items == 1 then
        call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, existing_time, existing_id )
        table.insert( ROLLBACK, 1, { 'ZREM', TIME_KEY, existing_id } )
    end
    call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, data_time, data_id )
    local oldest_item_time = redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' )[2]
    redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, list_id )
end

-- reflect the addition of new data
redis.call( 'HINCRBY', STATUS_KEY, 'items', 1 )
if data_time < last_removed_time then
    redis.call( 'HSET', STATUS_KEY, 'last_removed_time', 0 )
end

renew_last_cleanup_values()
-- redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', LAST_CLEANUP_BYTES )
INSERTS_SINCE_CLEANING = INSERTS_SINCE_CLEANING + 1
redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
return { -1000, LAST_CLEANUP_ITEMS, REDIS_USED_MEMORY, TOTAL_BYTES_DELETED }

  at lib/Redis/CappedCollection.pm line 3800.

#   Failed test 'no warnings'
#   at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/5.39.3/Test/Builder.pm line 193.
# There were 1 warning(s)
#     Previous test 0 ''
#     Attempt to call undefined import method with arguments ("1.976") via package "Redis" (Perhaps you forgot to load the package?) at lib/Redis/CappedCollection.pm line 78.
#  at lib/Redis/CappedCollection.pm line 78.
# 	Redis::CappedCollection::BEGIN() called at lib/Redis/CappedCollection.pm line 78
# 	eval {...} called at lib/Redis/CappedCollection.pm line 78
# 	require Redis/CappedCollection.pm called at t/00_CappedCollection/08_lists.t line 36
# 	main::BEGIN() called at t/00_CappedCollection/08_lists.t line 36
# 	eval {...} called at t/00_CappedCollection/08_lists.t line 36
# 
# Looks like your test exited with -1 just after 8.
t/00_CappedCollection/08_lists.t ....................... 
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 1/8 subtests 
[EVAL] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.

Lua script 'insert':
-- adding data to a list of collections
collectgarbage( 'stop' )

local coll_name             = ARGV[2]
local list_id               = ARGV[3]
local data_id               = ARGV[4]
local data                  = ARGV[5]
local data_time             = tonumber( ARGV[6] )

-- key data storage structures
local NAMESPACE  = 'C'
local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
local STATUS_KEY = NAMESPACE..':S:'..coll_name
local DATA_KEYS  = NAMESPACE..':D:'..coll_name
local TIME_KEYS  = NAMESPACE..':T:'..coll_name
local DATA_KEY   = DATA_KEYS..':'..list_id
local TIME_KEY   = TIME_KEYS..':'..list_id
local REDIS_USED_MEMORY                     = 0
local REDIS_MAXMEMORY                       = 0
local ROLLBACK                              = {}
local TOTAL_BYTES_DELETED                   = 0
local LAST_CLEANUP_BYTES_MUST_BE_DELETED    = 0
local LAST_CLEANUP_ITEMS                    = 0
local LAST_OPERATION                        = ''
local INSERTS_SINCE_CLEANING                = 0
local UPDATES_SINCE_CLEANING                = 0

local _DEBUG, _DEBUG_ID, _FUNC_NAME

local table_merge = function ( t1, t2 )
    for key, val in pairs( t2 ) do
        t1[ key ] = val
    end
end

local _debug_log = function ( values )
    table_merge( values, {
        _DEBUG_ID                   = _DEBUG_ID,
        _FUNC_NAME                  = _FUNC_NAME,
        REDIS_USED_MEMORY           = REDIS_USED_MEMORY,
        list_id                     = list_id,
        data_id                     = data_id,
        data_len                    = #data,
        ROLLBACK                    = ROLLBACK
    } )

    redis.log( redis.LOG_NOTICE, _FUNC_NAME..': '..cjson.encode( values ) )
end

local _setup = function ( argv_idx, func_name, extra_data_len )
    LAST_OPERATION = func_name

    REDIS_MAXMEMORY = tonumber( redis.call( 'CONFIG', 'GET', 'maxmemory' )[2] )
    local memory_reserve_coefficient = 1 + tonumber( redis.call( 'HGET', STATUS_KEY, 'memory_reserve' ) )

    local redis_used_memory = string.match(
        redis.call( 'INFO', 'memory' ),
        'used_memory:(%d+)'
    )
    REDIS_USED_MEMORY = tonumber( redis_used_memory )
    LAST_CLEANUP_BYTES_MUST_BE_DELETED = REDIS_USED_MEMORY + extra_data_len - math.floor( REDIS_MAXMEMORY / memory_reserve_coefficient )
    if LAST_CLEANUP_BYTES_MUST_BE_DELETED < 0 or REDIS_MAXMEMORY == 0 then
        LAST_CLEANUP_BYTES_MUST_BE_DELETED = 0
    end

    INSERTS_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'inserts_since_cleaning' ) )
    if INSERTS_SINCE_CLEANING == nil then
        INSERTS_SINCE_CLEANING = 0
    end
    UPDATES_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'updates_since_cleaning' ) )
    if UPDATES_SINCE_CLEANING == nil then
        UPDATES_SINCE_CLEANING = 0
    end

    _FUNC_NAME  = func_name
    _DEBUG_ID   = tonumber( ARGV[ argv_idx ] )
    if _DEBUG_ID ~= 0 then
        _DEBUG = true
        _debug_log( {
            _STEP                   = '_setup',
            maxmemory               = REDIS_MAXMEMORY,
            redis_used_memory       = REDIS_USED_MEMORY,
            bytes_must_be_deleted   = LAST_CLEANUP_BYTES_MUST_BE_DELETED
        } )
    else
        _DEBUG = false
    end
end

local renew_last_cleanup_values = function ()
    if LAST_CLEANUP_ITEMS > 0 then
        local last_cleanup_bytes_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_bytes' ) )
        local last_cleanup_items_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_items' ) )
        if #last_cleanup_bytes_values >= 10 then
            table.remove ( last_cleanup_bytes_values, 1 )
            table.remove ( last_cleanup_items_values, 1 )
        end
        table.insert( last_cleanup_bytes_values, TOTAL_BYTES_DELETED )
        table.insert( last_cleanup_items_values, LAST_CLEANUP_ITEMS )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', cjson.encode( last_cleanup_bytes_values ) )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_items', cjson.encode( last_cleanup_items_values ) )
    end
end

local cleaning_error = function ( error_msg )
    if _DEBUG then
        _debug_log( {
            _STEP       = 'cleaning_error',
            error_msg   = error_msg
        } )
    end

    for _, rollback_command in ipairs( ROLLBACK ) do
        redis.call( unpack( rollback_command ) )
    end
    -- Level 2 points the error to where the function that called error was called
    renew_last_cleanup_values()
    error( error_msg, 2 )
end

-- deleting old data to make room for new data
local cleaning = function ( list_id, data_id, is_cleaning_needed )
    local coll_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'items' ) )

    if coll_items == 0 then
        return
    end

    local cleanup_bytes = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_bytes' ) )
    local cleanup_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_items' ) )

    if not ( is_cleaning_needed or LAST_CLEANUP_BYTES_MUST_BE_DELETED > 0 ) then
        return
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Before cleanings',
            coll_items      = coll_items,
            cleanup_items   = cleanup_items,
            cleanup_bytes   = cleanup_bytes,
        } )
    end

    local items_deleted = 0
    local bytes_deleted = 0
    local lists_deleted = 0

    repeat
        if redis.call( 'EXISTS', QUEUE_KEY ) == 0 then
            -- Level 2 points the error to where the function that called error was called
            renew_last_cleanup_values()
            error( 'Queue key does not exist', 2 )
        end

        -- continue to work with the to_delete (requiring removal) data and for them using the prefix 'to_delete_'
        local to_delete_list_id, last_removed_time = unpack( redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' ) )
        last_removed_time = tonumber( last_removed_time )
        -- key data structures
        local to_delete_data_key = DATA_KEYS..':'..to_delete_list_id
        local to_delete_time_key = TIME_KEYS..':'..to_delete_list_id

        -- looking for the oldest data
        local to_delete_data_id
        local to_delete_data
        local items = redis.call( 'HLEN', to_delete_data_key )
-- #FIXME: to_delete_data -> to_delete_data_len
-- HSTRLEN key field
-- Available since 3.2.0.
        if items == 1 then
            to_delete_data_id, to_delete_data = unpack( redis.call( 'HGETALL', to_delete_data_key ) )
        else
            to_delete_data_id = unpack( redis.call( 'ZRANGE', to_delete_time_key, 0, 0 ) )
            to_delete_data    = redis.call( 'HGET', to_delete_data_key, to_delete_data_id )
        end
        local to_delete_data_len = #to_delete_data
        to_delete_data = nil    -- free memory

        if _DEBUG then
            _debug_log( {
                _STEP               = 'Before real cleaning',
                items               = items,
                to_delete_list_id   = to_delete_list_id,
                to_delete_data_id   = to_delete_data_id,
                to_delete_data_len  = to_delete_data_len
            } )
        end

        if to_delete_list_id == list_id and to_delete_data_id == data_id then
            if items_deleted == 0 then
                -- Its first attempt to clean the conflicting data, for which the primary operation executed.
                -- In this case, we are roll back operations that have been made before, and immediately return an error,
                -- shifting the handling of such errors on the client.
                cleaning_error( "OOM Command not allowed when used memory > 'maxmemory'." )
            end
            break
        end

        if _DEBUG then
            _debug_log( {
                _STEP           = 'Why it is cleared?',
                coll_items      = coll_items,
                cleanup_bytes   = cleanup_bytes,
                cleanup_items   = cleanup_items,
                items_deleted   = items_deleted,
                bytes_deleted   = bytes_deleted,
            } )
        end

        -- actually remove the oldest item
        redis.call( 'HDEL', to_delete_data_key, to_delete_data_id )
        items = items - 1
        coll_items = coll_items - 1

        redis.call( 'HSET', STATUS_KEY, 'last_removed_time', last_removed_time )

        if items > 0 then
            -- If the list has more data
            redis.call( 'ZREM', to_delete_time_key, to_delete_data_id )
            local oldest_item_time = tonumber( redis.call( 'ZRANGE', to_delete_time_key, 0, 0, 'WITHSCORES' )[2] )
            redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, to_delete_list_id )

            if items == 1 then
                redis.call( 'DEL', to_delete_time_key )
            end
        else
            -- If the list does not have data
            -- remove the name of the list from the queue collection
            redis.call( 'ZREM', QUEUE_KEY, to_delete_list_id )
            lists_deleted = lists_deleted + 1
        end

        -- amount of data collection decreased
        items_deleted = items_deleted + 1
        bytes_deleted = bytes_deleted + to_delete_data_len

        if _DEBUG then
            _debug_log( {
                _STEP               = 'After real cleaning',
                to_delete_data_key  = to_delete_data_key,
                to_delete_data_id   = to_delete_data_id,
                items               = items,
                items_deleted       = items_deleted,
                bytes_deleted       = bytes_deleted,
            } )
        end

    until
            coll_items <= 0
        or (
                items_deleted >= cleanup_items
            and bytes_deleted >= cleanup_bytes
        )

    if items_deleted > 0 then
        -- reduce the number of items in the collection
        redis.call( 'HINCRBY', STATUS_KEY, 'items', -items_deleted )
    end
    if lists_deleted > 0 then
        -- reduce the number of lists stored in a collection
        redis.call( 'HINCRBY',  STATUS_KEY, 'lists', -lists_deleted )
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Cleaning finished',
            items_deleted   = items_deleted,
            bytes_deleted   = bytes_deleted,
            lists_deleted   = lists_deleted,
            cleanup_bytes   = cleanup_bytes,
            cleanup_items   = cleanup_items,
            coll_items      = coll_items,
        } )
    end

    if bytes_deleted > 0 then
        if TOTAL_BYTES_DELETED == 0 then    -- first cleaning
            INSERTS_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
            UPDATES_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'updates_since_cleaning', UPDATES_SINCE_CLEANING )
        end

        TOTAL_BYTES_DELETED = TOTAL_BYTES_DELETED + bytes_deleted
        LAST_CLEANUP_ITEMS = LAST_CLEANUP_ITEMS + items_deleted

        -- information values
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_maxmemory', REDIS_MAXMEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_used_memory', REDIS_USED_MEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_bytes_must_be_deleted', LAST_CLEANUP_BYTES_MUST_BE_DELETED )
    end
end

local call_with_error_control = function ( list_id, data_id, ... )
    local retries = 2
    local ret
    local error_msg = '<Empty error message>'
    repeat
        ret = redis.pcall( ... )
        if type( ret ) == 'table' and ret.err ~= nil then
            error_msg   = "OOM Command not allowed when used memory > 'maxmemory'. - " .. ret.err .. " (call = " .. cjson.encode( { ... } ) .. ")"
            if _DEBUG then
                _debug_log( {
                    _STEP       = 'call_with_error_control',
                    error_msg   = error_msg,
                    retries     = retries
                } )
            end

            cleaning( list_id, data_id, true )
        else
            break
        end
        retries = retries - 1
    until retries == 0

    if retries == 0 then
        -- Operation returned an error related to insufficient memory.
        -- Start cleaning process and then re-try operation.
        -- Repeat the cycle of operation + memory cleaning a couple of times and return an error / fail,
        -- if it still did not work.
        cleaning_error( error_msg )
    end

    return ret
end


-- determine whether there is a list of data and a collection
if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
    return { -1006, 0, 0, 0 }
end

local reduce_list_items = function ( list_id )
    local max_list_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'max_list_items' ) )
    if max_list_items ~= nil and max_list_items > 0 and redis.call( 'EXISTS', DATA_KEY ) == 1 then
        local list_items        = redis.call( 'HLEN', DATA_KEY )
        local older_allowed     = tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) )
        local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

        while list_items >= max_list_items do
            local removed_data_time, removed_data_id
            list_items = list_items - 1

            if list_items == 0 then
                removed_data_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
                redis.call( 'ZREM', QUEUE_KEY, list_id )
                redis.call( 'DEL', DATA_KEY )
                redis.call( 'HINCRBY', STATUS_KEY, 'lists', -1 )
            else
                removed_data_id, removed_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                removed_data_id     = tonumber( removed_data_id )
                removed_data_time   = tonumber( removed_data_time )
                redis.call( 'ZREM', TIME_KEY, removed_data_id )
                redis.call( 'HDEL', DATA_KEY, removed_data_id )

                local lowest_data_id, lowest_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                redis.call( 'ZADD', QUEUE_KEY, lowest_data_time, lowest_data_id )

                if redis.call( 'HLEN', DATA_KEY ) == 1 then
                    redis.call( 'DEL', TIME_KEY )
                end
            end

            redis.call( 'HINCRBY', STATUS_KEY, 'items', -1 )

            if older_allowed == 0 and ( last_removed_time == 0 or removed_data_time < last_removed_time ) then
                redis.call( 'HSET', STATUS_KEY, 'last_removed_time', removed_data_time )
                last_removed_time = removed_data_time
            end
        end
    end
end

reduce_list_items( list_id )


-- verification of the existence of old data with new data identifier
if redis.call( 'HEXISTS', DATA_KEY, data_id ) == 1 then
    return { -1008, 0, 0, 0 }
end

-- Validating the time of new data, if required
local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

if tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) ) == 0 then
    if redis.call( 'EXISTS', QUEUE_KEY ) == 1 then
        if data_time < last_removed_time then
            return { -1009, 0, 0, 0 }
        end
    end
end

-- deleting obsolete data, if it is necessary
local data_len = #data
_setup( 7, 'insert', data_len ) -- 7 -> is the index of ARGV[7]
cleaning( list_id, data_id, false )

-- add data to the list
-- Remember that the list and the collection can be automatically deleted after the "crowding out" old data

-- the existing data
local items = redis.call( 'HLEN', DATA_KEY )
local existing_id, existing_time
if items == 1 then
    existing_id   = unpack( redis.call( 'HGETALL', DATA_KEY ) )
    existing_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
end

-- actually add data to the list
call_with_error_control( list_id, data_id, 'HSET', DATA_KEY, data_id, data )
data = nil  -- free memory
table.insert( ROLLBACK, 1, { 'HDEL', DATA_KEY, data_id } )

if redis.call( 'HLEN', DATA_KEY ) == 1 then  -- list recreated after cleaning
    redis.call( 'HINCRBY', STATUS_KEY, 'lists', 1 )
    table.insert( ROLLBACK, 1, { 'HINCRBY', STATUS_KEY, 'lists', -1 } )
    call_with_error_control( list_id, data_id, 'ZADD', QUEUE_KEY, data_time, list_id )
else
    if items == 1 then
        call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, existing_time, existing_id )
        table.insert( ROLLBACK, 1, { 'ZREM', TIME_KEY, existing_id } )
    end
    call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, data_time, data_id )
    local oldest_item_time = redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' )[2]
    redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, list_id )
end

-- reflect the addition of new data
redis.call( 'HINCRBY', STATUS_KEY, 'items', 1 )
if data_time < last_removed_time then
    redis.call( 'HSET', STATUS_KEY, 'last_removed_time', 0 )
end

renew_last_cleanup_values()
-- redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', LAST_CLEANUP_BYTES )
INSERTS_SINCE_CLEANING = INSERTS_SINCE_CLEANING + 1
redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
return { -1000, LAST_CLEANUP_ITEMS, REDIS_USED_MEMORY, TOTAL_BYTES_DELETED }

  at lib/Redis/CappedCollection.pm line 3800.

#   Failed test 'no warnings'
#   at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/5.39.3/Test/Builder.pm line 193.
# There were 1 warning(s)
#     Previous test 0 ''
#     Attempt to call undefined import method with arguments ("1.976") via package "Redis" (Perhaps you forgot to load the package?) at lib/Redis/CappedCollection.pm line 78.
#  at lib/Redis/CappedCollection.pm line 78.
# 	Redis::CappedCollection::BEGIN() called at lib/Redis/CappedCollection.pm line 78
# 	eval {...} called at lib/Redis/CappedCollection.pm line 78
# 	require Redis/CappedCollection.pm called at t/00_CappedCollection/09_drop_collection.t line 40
# 	main::BEGIN() called at t/00_CappedCollection/09_drop_collection.t line 40
# 	eval {...} called at t/00_CappedCollection/09_drop_collection.t line 40
# 
# Looks like your test exited with -1 just after 8.
t/00_CappedCollection/09_drop_collection.t ............. 
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 1/8 subtests 
[EVAL] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.

Lua script 'insert':
-- adding data to a list of collections
collectgarbage( 'stop' )

local coll_name             = ARGV[2]
local list_id               = ARGV[3]
local data_id               = ARGV[4]
local data                  = ARGV[5]
local data_time             = tonumber( ARGV[6] )

-- key data storage structures
local NAMESPACE  = 'C'
local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
local STATUS_KEY = NAMESPACE..':S:'..coll_name
local DATA_KEYS  = NAMESPACE..':D:'..coll_name
local TIME_KEYS  = NAMESPACE..':T:'..coll_name
local DATA_KEY   = DATA_KEYS..':'..list_id
local TIME_KEY   = TIME_KEYS..':'..list_id
local REDIS_USED_MEMORY                     = 0
local REDIS_MAXMEMORY                       = 0
local ROLLBACK                              = {}
local TOTAL_BYTES_DELETED                   = 0
local LAST_CLEANUP_BYTES_MUST_BE_DELETED    = 0
local LAST_CLEANUP_ITEMS                    = 0
local LAST_OPERATION                        = ''
local INSERTS_SINCE_CLEANING                = 0
local UPDATES_SINCE_CLEANING                = 0

local _DEBUG, _DEBUG_ID, _FUNC_NAME

local table_merge = function ( t1, t2 )
    for key, val in pairs( t2 ) do
        t1[ key ] = val
    end
end

local _debug_log = function ( values )
    table_merge( values, {
        _DEBUG_ID                   = _DEBUG_ID,
        _FUNC_NAME                  = _FUNC_NAME,
        REDIS_USED_MEMORY           = REDIS_USED_MEMORY,
        list_id                     = list_id,
        data_id                     = data_id,
        data_len                    = #data,
        ROLLBACK                    = ROLLBACK
    } )

    redis.log( redis.LOG_NOTICE, _FUNC_NAME..': '..cjson.encode( values ) )
end

local _setup = function ( argv_idx, func_name, extra_data_len )
    LAST_OPERATION = func_name

    REDIS_MAXMEMORY = tonumber( redis.call( 'CONFIG', 'GET', 'maxmemory' )[2] )
    local memory_reserve_coefficient = 1 + tonumber( redis.call( 'HGET', STATUS_KEY, 'memory_reserve' ) )

    local redis_used_memory = string.match(
        redis.call( 'INFO', 'memory' ),
        'used_memory:(%d+)'
    )
    REDIS_USED_MEMORY = tonumber( redis_used_memory )
    LAST_CLEANUP_BYTES_MUST_BE_DELETED = REDIS_USED_MEMORY + extra_data_len - math.floor( REDIS_MAXMEMORY / memory_reserve_coefficient )
    if LAST_CLEANUP_BYTES_MUST_BE_DELETED < 0 or REDIS_MAXMEMORY == 0 then
        LAST_CLEANUP_BYTES_MUST_BE_DELETED = 0
    end

    INSERTS_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'inserts_since_cleaning' ) )
    if INSERTS_SINCE_CLEANING == nil then
        INSERTS_SINCE_CLEANING = 0
    end
    UPDATES_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'updates_since_cleaning' ) )
    if UPDATES_SINCE_CLEANING == nil then
        UPDATES_SINCE_CLEANING = 0
    end

    _FUNC_NAME  = func_name
    _DEBUG_ID   = tonumber( ARGV[ argv_idx ] )
    if _DEBUG_ID ~= 0 then
        _DEBUG = true
        _debug_log( {
            _STEP                   = '_setup',
            maxmemory               = REDIS_MAXMEMORY,
            redis_used_memory       = REDIS_USED_MEMORY,
            bytes_must_be_deleted   = LAST_CLEANUP_BYTES_MUST_BE_DELETED
        } )
    else
        _DEBUG = false
    end
end

local renew_last_cleanup_values = function ()
    if LAST_CLEANUP_ITEMS > 0 then
        local last_cleanup_bytes_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_bytes' ) )
        local last_cleanup_items_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_items' ) )
        if #last_cleanup_bytes_values >= 10 then
            table.remove ( last_cleanup_bytes_values, 1 )
            table.remove ( last_cleanup_items_values, 1 )
        end
        table.insert( last_cleanup_bytes_values, TOTAL_BYTES_DELETED )
        table.insert( last_cleanup_items_values, LAST_CLEANUP_ITEMS )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', cjson.encode( last_cleanup_bytes_values ) )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_items', cjson.encode( last_cleanup_items_values ) )
    end
end

local cleaning_error = function ( error_msg )
    if _DEBUG then
        _debug_log( {
            _STEP       = 'cleaning_error',
            error_msg   = error_msg
        } )
    end

    for _, rollback_command in ipairs( ROLLBACK ) do
        redis.call( unpack( rollback_command ) )
    end
    -- Level 2 points the error to where the function that called error was called
    renew_last_cleanup_values()
    error( error_msg, 2 )
end

-- deleting old data to make room for new data
local cleaning = function ( list_id, data_id, is_cleaning_needed )
    local coll_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'items' ) )

    if coll_items == 0 then
        return
    end

    local cleanup_bytes = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_bytes' ) )
    local cleanup_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_items' ) )

    if not ( is_cleaning_needed or LAST_CLEANUP_BYTES_MUST_BE_DELETED > 0 ) then
        return
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Before cleanings',
            coll_items      = coll_items,
            cleanup_items   = cleanup_items,
            cleanup_bytes   = cleanup_bytes,
        } )
    end

    local items_deleted = 0
    local bytes_deleted = 0
    local lists_deleted = 0

    repeat
        if redis.call( 'EXISTS', QUEUE_KEY ) == 0 then
            -- Level 2 points the error to where the function that called error was called
            renew_last_cleanup_values()
            error( 'Queue key does not exist', 2 )
        end

        -- continue to work with the to_delete (requiring removal) data and for them using the prefix 'to_delete_'
        local to_delete_list_id, last_removed_time = unpack( redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' ) )
        last_removed_time = tonumber( last_removed_time )
        -- key data structures
        local to_delete_data_key = DATA_KEYS..':'..to_delete_list_id
        local to_delete_time_key = TIME_KEYS..':'..to_delete_list_id

        -- looking for the oldest data
        local to_delete_data_id
        local to_delete_data
        local items = redis.call( 'HLEN', to_delete_data_key )
-- #FIXME: to_delete_data -> to_delete_data_len
-- HSTRLEN key field
-- Available since 3.2.0.
        if items == 1 then
            to_delete_data_id, to_delete_data = unpack( redis.call( 'HGETALL', to_delete_data_key ) )
        else
            to_delete_data_id = unpack( redis.call( 'ZRANGE', to_delete_time_key, 0, 0 ) )
            to_delete_data    = redis.call( 'HGET', to_delete_data_key, to_delete_data_id )
        end
        local to_delete_data_len = #to_delete_data
        to_delete_data = nil    -- free memory

        if _DEBUG then
            _debug_log( {
                _STEP               = 'Before real cleaning',
                items               = items,
                to_delete_list_id   = to_delete_list_id,
                to_delete_data_id   = to_delete_data_id,
                to_delete_data_len  = to_delete_data_len
            } )
        end

        if to_delete_list_id == list_id and to_delete_data_id == data_id then
            if items_deleted == 0 then
                -- Its first attempt to clean the conflicting data, for which the primary operation executed.
                -- In this case, we are roll back operations that have been made before, and immediately return an error,
                -- shifting the handling of such errors on the client.
                cleaning_error( "OOM Command not allowed when used memory > 'maxmemory'." )
            end
            break
        end

        if _DEBUG then
            _debug_log( {
                _STEP           = 'Why it is cleared?',
                coll_items      = coll_items,
                cleanup_bytes   = cleanup_bytes,
                cleanup_items   = cleanup_items,
                items_deleted   = items_deleted,
                bytes_deleted   = bytes_deleted,
            } )
        end

        -- actually remove the oldest item
        redis.call( 'HDEL', to_delete_data_key, to_delete_data_id )
        items = items - 1
        coll_items = coll_items - 1

        redis.call( 'HSET', STATUS_KEY, 'last_removed_time', last_removed_time )

        if items > 0 then
            -- If the list has more data
            redis.call( 'ZREM', to_delete_time_key, to_delete_data_id )
            local oldest_item_time = tonumber( redis.call( 'ZRANGE', to_delete_time_key, 0, 0, 'WITHSCORES' )[2] )
            redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, to_delete_list_id )

            if items == 1 then
                redis.call( 'DEL', to_delete_time_key )
            end
        else
            -- If the list does not have data
            -- remove the name of the list from the queue collection
            redis.call( 'ZREM', QUEUE_KEY, to_delete_list_id )
            lists_deleted = lists_deleted + 1
        end

        -- amount of data collection decreased
        items_deleted = items_deleted + 1
        bytes_deleted = bytes_deleted + to_delete_data_len

        if _DEBUG then
            _debug_log( {
                _STEP               = 'After real cleaning',
                to_delete_data_key  = to_delete_data_key,
                to_delete_data_id   = to_delete_data_id,
                items               = items,
                items_deleted       = items_deleted,
                bytes_deleted       = bytes_deleted,
            } )
        end

    until
            coll_items <= 0
        or (
                items_deleted >= cleanup_items
            and bytes_deleted >= cleanup_bytes
        )

    if items_deleted > 0 then
        -- reduce the number of items in the collection
        redis.call( 'HINCRBY', STATUS_KEY, 'items', -items_deleted )
    end
    if lists_deleted > 0 then
        -- reduce the number of lists stored in a collection
        redis.call( 'HINCRBY',  STATUS_KEY, 'lists', -lists_deleted )
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Cleaning finished',
            items_deleted   = items_deleted,
            bytes_deleted   = bytes_deleted,
            lists_deleted   = lists_deleted,
            cleanup_bytes   = cleanup_bytes,
            cleanup_items   = cleanup_items,
            coll_items      = coll_items,
        } )
    end

    if bytes_deleted > 0 then
        if TOTAL_BYTES_DELETED == 0 then    -- first cleaning
            INSERTS_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
            UPDATES_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'updates_since_cleaning', UPDATES_SINCE_CLEANING )
        end

        TOTAL_BYTES_DELETED = TOTAL_BYTES_DELETED + bytes_deleted
        LAST_CLEANUP_ITEMS = LAST_CLEANUP_ITEMS + items_deleted

        -- information values
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_maxmemory', REDIS_MAXMEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_used_memory', REDIS_USED_MEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_bytes_must_be_deleted', LAST_CLEANUP_BYTES_MUST_BE_DELETED )
    end
end

local call_with_error_control = function ( list_id, data_id, ... )
    local retries = 2
    local ret
    local error_msg = '<Empty error message>'
    repeat
        ret = redis.pcall( ... )
        if type( ret ) == 'table' and ret.err ~= nil then
            error_msg   = "OOM Command not allowed when used memory > 'maxmemory'. - " .. ret.err .. " (call = " .. cjson.encode( { ... } ) .. ")"
            if _DEBUG then
                _debug_log( {
                    _STEP       = 'call_with_error_control',
                    error_msg   = error_msg,
                    retries     = retries
                } )
            end

            cleaning( list_id, data_id, true )
        else
            break
        end
        retries = retries - 1
    until retries == 0

    if retries == 0 then
        -- Operation returned an error related to insufficient memory.
        -- Start cleaning process and then re-try operation.
        -- Repeat the cycle of operation + memory cleaning a couple of times and return an error / fail,
        -- if it still did not work.
        cleaning_error( error_msg )
    end

    return ret
end


-- determine whether there is a list of data and a collection
if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
    return { -1006, 0, 0, 0 }
end

local reduce_list_items = function ( list_id )
    local max_list_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'max_list_items' ) )
    if max_list_items ~= nil and max_list_items > 0 and redis.call( 'EXISTS', DATA_KEY ) == 1 then
        local list_items        = redis.call( 'HLEN', DATA_KEY )
        local older_allowed     = tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) )
        local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

        while list_items >= max_list_items do
            local removed_data_time, removed_data_id
            list_items = list_items - 1

            if list_items == 0 then
                removed_data_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
                redis.call( 'ZREM', QUEUE_KEY, list_id )
                redis.call( 'DEL', DATA_KEY )
                redis.call( 'HINCRBY', STATUS_KEY, 'lists', -1 )
            else
                removed_data_id, removed_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                removed_data_id     = tonumber( removed_data_id )
                removed_data_time   = tonumber( removed_data_time )
                redis.call( 'ZREM', TIME_KEY, removed_data_id )
                redis.call( 'HDEL', DATA_KEY, removed_data_id )

                local lowest_data_id, lowest_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                redis.call( 'ZADD', QUEUE_KEY, lowest_data_time, lowest_data_id )

                if redis.call( 'HLEN', DATA_KEY ) == 1 then
                    redis.call( 'DEL', TIME_KEY )
                end
            end

            redis.call( 'HINCRBY', STATUS_KEY, 'items', -1 )

            if older_allowed == 0 and ( last_removed_time == 0 or removed_data_time < last_removed_time ) then
                redis.call( 'HSET', STATUS_KEY, 'last_removed_time', removed_data_time )
                last_removed_time = removed_data_time
            end
        end
    end
end

reduce_list_items( list_id )


-- verification of the existence of old data with new data identifier
if redis.call( 'HEXISTS', DATA_KEY, data_id ) == 1 then
    return { -1008, 0, 0, 0 }
end

-- Validating the time of new data, if required
local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

if tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) ) == 0 then
    if redis.call( 'EXISTS', QUEUE_KEY ) == 1 then
        if data_time < last_removed_time then
            return { -1009, 0, 0, 0 }
        end
    end
end

-- deleting obsolete data, if it is necessary
local data_len = #data
_setup( 7, 'insert', data_len ) -- 7 -> is the index of ARGV[7]
cleaning( list_id, data_id, false )

-- add data to the list
-- Remember that the list and the collection can be automatically deleted after the "crowding out" old data

-- the existing data
local items = redis.call( 'HLEN', DATA_KEY )
local existing_id, existing_time
if items == 1 then
    existing_id   = unpack( redis.call( 'HGETALL', DATA_KEY ) )
    existing_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
end

-- actually add data to the list
call_with_error_control( list_id, data_id, 'HSET', DATA_KEY, data_id, data )
data = nil  -- free memory
table.insert( ROLLBACK, 1, { 'HDEL', DATA_KEY, data_id } )

if redis.call( 'HLEN', DATA_KEY ) == 1 then  -- list recreated after cleaning
    redis.call( 'HINCRBY', STATUS_KEY, 'lists', 1 )
    table.insert( ROLLBACK, 1, { 'HINCRBY', STATUS_KEY, 'lists', -1 } )
    call_with_error_control( list_id, data_id, 'ZADD', QUEUE_KEY, data_time, list_id )
else
    if items == 1 then
        call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, existing_time, existing_id )
        table.insert( ROLLBACK, 1, { 'ZREM', TIME_KEY, existing_id } )
    end
    call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, data_time, data_id )
    local oldest_item_time = redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' )[2]
    redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, list_id )
end

-- reflect the addition of new data
redis.call( 'HINCRBY', STATUS_KEY, 'items', 1 )
if data_time < last_removed_time then
    redis.call( 'HSET', STATUS_KEY, 'last_removed_time', 0 )
end

renew_last_cleanup_values()
-- redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', LAST_CLEANUP_BYTES )
INSERTS_SINCE_CLEANING = INSERTS_SINCE_CLEANING + 1
redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
return { -1000, LAST_CLEANUP_ITEMS, REDIS_USED_MEMORY, TOTAL_BYTES_DELETED }

  at lib/Redis/CappedCollection.pm line 3800.

#   Failed test 'no warnings'
#   at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/5.39.3/Test/Builder.pm line 193.
# There were 1 warning(s)
#     Previous test 0 ''
#     Attempt to call undefined import method with arguments ("1.976") via package "Redis" (Perhaps you forgot to load the package?) at lib/Redis/CappedCollection.pm line 78.
#  at lib/Redis/CappedCollection.pm line 78.
# 	Redis::CappedCollection::BEGIN() called at lib/Redis/CappedCollection.pm line 78
# 	eval {...} called at lib/Redis/CappedCollection.pm line 78
# 	require Redis/CappedCollection.pm called at t/00_CappedCollection/10_quit.t line 39
# 	main::BEGIN() called at t/00_CappedCollection/10_quit.t line 39
# 	eval {...} called at t/00_CappedCollection/10_quit.t line 39
# 
# Looks like your test exited with -1 just after 8.
t/00_CappedCollection/10_quit.t ........................ 
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 1/8 subtests 
[EVAL] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.

Lua script 'insert':
-- adding data to a list of collections
collectgarbage( 'stop' )

local coll_name             = ARGV[2]
local list_id               = ARGV[3]
local data_id               = ARGV[4]
local data                  = ARGV[5]
local data_time             = tonumber( ARGV[6] )

-- key data storage structures
local NAMESPACE  = 'C'
local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
local STATUS_KEY = NAMESPACE..':S:'..coll_name
local DATA_KEYS  = NAMESPACE..':D:'..coll_name
local TIME_KEYS  = NAMESPACE..':T:'..coll_name
local DATA_KEY   = DATA_KEYS..':'..list_id
local TIME_KEY   = TIME_KEYS..':'..list_id
local REDIS_USED_MEMORY                     = 0
local REDIS_MAXMEMORY                       = 0
local ROLLBACK                              = {}
local TOTAL_BYTES_DELETED                   = 0
local LAST_CLEANUP_BYTES_MUST_BE_DELETED    = 0
local LAST_CLEANUP_ITEMS                    = 0
local LAST_OPERATION                        = ''
local INSERTS_SINCE_CLEANING                = 0
local UPDATES_SINCE_CLEANING                = 0

local _DEBUG, _DEBUG_ID, _FUNC_NAME

local table_merge = function ( t1, t2 )
    for key, val in pairs( t2 ) do
        t1[ key ] = val
    end
end

local _debug_log = function ( values )
    table_merge( values, {
        _DEBUG_ID                   = _DEBUG_ID,
        _FUNC_NAME                  = _FUNC_NAME,
        REDIS_USED_MEMORY           = REDIS_USED_MEMORY,
        list_id                     = list_id,
        data_id                     = data_id,
        data_len                    = #data,
        ROLLBACK                    = ROLLBACK
    } )

    redis.log( redis.LOG_NOTICE, _FUNC_NAME..': '..cjson.encode( values ) )
end

local _setup = function ( argv_idx, func_name, extra_data_len )
    LAST_OPERATION = func_name

    REDIS_MAXMEMORY = tonumber( redis.call( 'CONFIG', 'GET', 'maxmemory' )[2] )
    local memory_reserve_coefficient = 1 + tonumber( redis.call( 'HGET', STATUS_KEY, 'memory_reserve' ) )

    local redis_used_memory = string.match(
        redis.call( 'INFO', 'memory' ),
        'used_memory:(%d+)'
    )
    REDIS_USED_MEMORY = tonumber( redis_used_memory )
    LAST_CLEANUP_BYTES_MUST_BE_DELETED = REDIS_USED_MEMORY + extra_data_len - math.floor( REDIS_MAXMEMORY / memory_reserve_coefficient )
    if LAST_CLEANUP_BYTES_MUST_BE_DELETED < 0 or REDIS_MAXMEMORY == 0 then
        LAST_CLEANUP_BYTES_MUST_BE_DELETED = 0
    end

    INSERTS_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'inserts_since_cleaning' ) )
    if INSERTS_SINCE_CLEANING == nil then
        INSERTS_SINCE_CLEANING = 0
    end
    UPDATES_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'updates_since_cleaning' ) )
    if UPDATES_SINCE_CLEANING == nil then
        UPDATES_SINCE_CLEANING = 0
    end

    _FUNC_NAME  = func_name
    _DEBUG_ID   = tonumber( ARGV[ argv_idx ] )
    if _DEBUG_ID ~= 0 then
        _DEBUG = true
        _debug_log( {
            _STEP                   = '_setup',
            maxmemory               = REDIS_MAXMEMORY,
            redis_used_memory       = REDIS_USED_MEMORY,
            bytes_must_be_deleted   = LAST_CLEANUP_BYTES_MUST_BE_DELETED
        } )
    else
        _DEBUG = false
    end
end

local renew_last_cleanup_values = function ()
    if LAST_CLEANUP_ITEMS > 0 then
        local last_cleanup_bytes_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_bytes' ) )
        local last_cleanup_items_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_items' ) )
        if #last_cleanup_bytes_values >= 10 then
            table.remove ( last_cleanup_bytes_values, 1 )
            table.remove ( last_cleanup_items_values, 1 )
        end
        table.insert( last_cleanup_bytes_values, TOTAL_BYTES_DELETED )
        table.insert( last_cleanup_items_values, LAST_CLEANUP_ITEMS )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', cjson.encode( last_cleanup_bytes_values ) )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_items', cjson.encode( last_cleanup_items_values ) )
    end
end

local cleaning_error = function ( error_msg )
    if _DEBUG then
        _debug_log( {
            _STEP       = 'cleaning_error',
            error_msg   = error_msg
        } )
    end

    for _, rollback_command in ipairs( ROLLBACK ) do
        redis.call( unpack( rollback_command ) )
    end
    -- Level 2 points the error to where the function that called error was called
    renew_last_cleanup_values()
    error( error_msg, 2 )
end

-- deleting old data to make room for new data
local cleaning = function ( list_id, data_id, is_cleaning_needed )
    local coll_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'items' ) )

    if coll_items == 0 then
        return
    end

    local cleanup_bytes = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_bytes' ) )
    local cleanup_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_items' ) )

    if not ( is_cleaning_needed or LAST_CLEANUP_BYTES_MUST_BE_DELETED > 0 ) then
        return
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Before cleanings',
            coll_items      = coll_items,
            cleanup_items   = cleanup_items,
            cleanup_bytes   = cleanup_bytes,
        } )
    end

    local items_deleted = 0
    local bytes_deleted = 0
    local lists_deleted = 0

    repeat
        if redis.call( 'EXISTS', QUEUE_KEY ) == 0 then
            -- Level 2 points the error to where the function that called error was called
            renew_last_cleanup_values()
            error( 'Queue key does not exist', 2 )
        end

        -- continue to work with the to_delete (requiring removal) data and for them using the prefix 'to_delete_'
        local to_delete_list_id, last_removed_time = unpack( redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' ) )
        last_removed_time = tonumber( last_removed_time )
        -- key data structures
        local to_delete_data_key = DATA_KEYS..':'..to_delete_list_id
        local to_delete_time_key = TIME_KEYS..':'..to_delete_list_id

        -- looking for the oldest data
        local to_delete_data_id
        local to_delete_data
        local items = redis.call( 'HLEN', to_delete_data_key )
-- #FIXME: to_delete_data -> to_delete_data_len
-- HSTRLEN key field
-- Available since 3.2.0.
        if items == 1 then
            to_delete_data_id, to_delete_data = unpack( redis.call( 'HGETALL', to_delete_data_key ) )
        else
            to_delete_data_id = unpack( redis.call( 'ZRANGE', to_delete_time_key, 0, 0 ) )
            to_delete_data    = redis.call( 'HGET', to_delete_data_key, to_delete_data_id )
        end
        local to_delete_data_len = #to_delete_data
        to_delete_data = nil    -- free memory

        if _DEBUG then
            _debug_log( {
                _STEP               = 'Before real cleaning',
                items               = items,
                to_delete_list_id   = to_delete_list_id,
                to_delete_data_id   = to_delete_data_id,
                to_delete_data_len  = to_delete_data_len
            } )
        end

        if to_delete_list_id == list_id and to_delete_data_id == data_id then
            if items_deleted == 0 then
                -- Its first attempt to clean the conflicting data, for which the primary operation executed.
                -- In this case, we are roll back operations that have been made before, and immediately return an error,
                -- shifting the handling of such errors on the client.
                cleaning_error( "OOM Command not allowed when used memory > 'maxmemory'." )
            end
            break
        end

        if _DEBUG then
            _debug_log( {
                _STEP           = 'Why it is cleared?',
                coll_items      = coll_items,
                cleanup_bytes   = cleanup_bytes,
                cleanup_items   = cleanup_items,
                items_deleted   = items_deleted,
                bytes_deleted   = bytes_deleted,
            } )
        end

        -- actually remove the oldest item
        redis.call( 'HDEL', to_delete_data_key, to_delete_data_id )
        items = items - 1
        coll_items = coll_items - 1

        redis.call( 'HSET', STATUS_KEY, 'last_removed_time', last_removed_time )

        if items > 0 then
            -- If the list has more data
            redis.call( 'ZREM', to_delete_time_key, to_delete_data_id )
            local oldest_item_time = tonumber( redis.call( 'ZRANGE', to_delete_time_key, 0, 0, 'WITHSCORES' )[2] )
            redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, to_delete_list_id )

            if items == 1 then
                redis.call( 'DEL', to_delete_time_key )
            end
        else
            -- If the list does not have data
            -- remove the name of the list from the queue collection
            redis.call( 'ZREM', QUEUE_KEY, to_delete_list_id )
            lists_deleted = lists_deleted + 1
        end

        -- amount of data collection decreased
        items_deleted = items_deleted + 1
        bytes_deleted = bytes_deleted + to_delete_data_len

        if _DEBUG then
            _debug_log( {
                _STEP               = 'After real cleaning',
                to_delete_data_key  = to_delete_data_key,
                to_delete_data_id   = to_delete_data_id,
                items               = items,
                items_deleted       = items_deleted,
                bytes_deleted       = bytes_deleted,
            } )
        end

    until
            coll_items <= 0
        or (
                items_deleted >= cleanup_items
            and bytes_deleted >= cleanup_bytes
        )

    if items_deleted > 0 then
        -- reduce the number of items in the collection
        redis.call( 'HINCRBY', STATUS_KEY, 'items', -items_deleted )
    end
    if lists_deleted > 0 then
        -- reduce the number of lists stored in a collection
        redis.call( 'HINCRBY',  STATUS_KEY, 'lists', -lists_deleted )
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Cleaning finished',
            items_deleted   = items_deleted,
            bytes_deleted   = bytes_deleted,
            lists_deleted   = lists_deleted,
            cleanup_bytes   = cleanup_bytes,
            cleanup_items   = cleanup_items,
            coll_items      = coll_items,
        } )
    end

    if bytes_deleted > 0 then
        if TOTAL_BYTES_DELETED == 0 then    -- first cleaning
            INSERTS_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
            UPDATES_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'updates_since_cleaning', UPDATES_SINCE_CLEANING )
        end

        TOTAL_BYTES_DELETED = TOTAL_BYTES_DELETED + bytes_deleted
        LAST_CLEANUP_ITEMS = LAST_CLEANUP_ITEMS + items_deleted

        -- information values
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_maxmemory', REDIS_MAXMEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_used_memory', REDIS_USED_MEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_bytes_must_be_deleted', LAST_CLEANUP_BYTES_MUST_BE_DELETED )
    end
end

local call_with_error_control = function ( list_id, data_id, ... )
    local retries = 2
    local ret
    local error_msg = '<Empty error message>'
    repeat
        ret = redis.pcall( ... )
        if type( ret ) == 'table' and ret.err ~= nil then
            error_msg   = "OOM Command not allowed when used memory > 'maxmemory'. - " .. ret.err .. " (call = " .. cjson.encode( { ... } ) .. ")"
            if _DEBUG then
                _debug_log( {
                    _STEP       = 'call_with_error_control',
                    error_msg   = error_msg,
                    retries     = retries
                } )
            end

            cleaning( list_id, data_id, true )
        else
            break
        end
        retries = retries - 1
    until retries == 0

    if retries == 0 then
        -- Operation returned an error related to insufficient memory.
        -- Start cleaning process and then re-try operation.
        -- Repeat the cycle of operation + memory cleaning a couple of times and return an error / fail,
        -- if it still did not work.
        cleaning_error( error_msg )
    end

    return ret
end


-- determine whether there is a list of data and a collection
if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
    return { -1006, 0, 0, 0 }
end

local reduce_list_items = function ( list_id )
    local max_list_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'max_list_items' ) )
    if max_list_items ~= nil and max_list_items > 0 and redis.call( 'EXISTS', DATA_KEY ) == 1 then
        local list_items        = redis.call( 'HLEN', DATA_KEY )
        local older_allowed     = tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) )
        local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

        while list_items >= max_list_items do
            local removed_data_time, removed_data_id
            list_items = list_items - 1

            if list_items == 0 then
                removed_data_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
                redis.call( 'ZREM', QUEUE_KEY, list_id )
                redis.call( 'DEL', DATA_KEY )
                redis.call( 'HINCRBY', STATUS_KEY, 'lists', -1 )
            else
                removed_data_id, removed_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                removed_data_id     = tonumber( removed_data_id )
                removed_data_time   = tonumber( removed_data_time )
                redis.call( 'ZREM', TIME_KEY, removed_data_id )
                redis.call( 'HDEL', DATA_KEY, removed_data_id )

                local lowest_data_id, lowest_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                redis.call( 'ZADD', QUEUE_KEY, lowest_data_time, lowest_data_id )

                if redis.call( 'HLEN', DATA_KEY ) == 1 then
                    redis.call( 'DEL', TIME_KEY )
                end
            end

            redis.call( 'HINCRBY', STATUS_KEY, 'items', -1 )

            if older_allowed == 0 and ( last_removed_time == 0 or removed_data_time < last_removed_time ) then
                redis.call( 'HSET', STATUS_KEY, 'last_removed_time', removed_data_time )
                last_removed_time = removed_data_time
            end
        end
    end
end

reduce_list_items( list_id )


-- verification of the existence of old data with new data identifier
if redis.call( 'HEXISTS', DATA_KEY, data_id ) == 1 then
    return { -1008, 0, 0, 0 }
end

-- Validating the time of new data, if required
local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

if tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) ) == 0 then
    if redis.call( 'EXISTS', QUEUE_KEY ) == 1 then
        if data_time < last_removed_time then
            return { -1009, 0, 0, 0 }
        end
    end
end

-- deleting obsolete data, if it is necessary
local data_len = #data
_setup( 7, 'insert', data_len ) -- 7 -> is the index of ARGV[7]
cleaning( list_id, data_id, false )

-- add data to the list
-- Remember that the list and the collection can be automatically deleted after the "crowding out" old data

-- the existing data
local items = redis.call( 'HLEN', DATA_KEY )
local existing_id, existing_time
if items == 1 then
    existing_id   = unpack( redis.call( 'HGETALL', DATA_KEY ) )
    existing_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
end

-- actually add data to the list
call_with_error_control( list_id, data_id, 'HSET', DATA_KEY, data_id, data )
data = nil  -- free memory
table.insert( ROLLBACK, 1, { 'HDEL', DATA_KEY, data_id } )

if redis.call( 'HLEN', DATA_KEY ) == 1 then  -- list recreated after cleaning
    redis.call( 'HINCRBY', STATUS_KEY, 'lists', 1 )
    table.insert( ROLLBACK, 1, { 'HINCRBY', STATUS_KEY, 'lists', -1 } )
    call_with_error_control( list_id, data_id, 'ZADD', QUEUE_KEY, data_time, list_id )
else
    if items == 1 then
        call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, existing_time, existing_id )
        table.insert( ROLLBACK, 1, { 'ZREM', TIME_KEY, existing_id } )
    end
    call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, data_time, data_id )
    local oldest_item_time = redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' )[2]
    redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, list_id )
end

-- reflect the addition of new data
redis.call( 'HINCRBY', STATUS_KEY, 'items', 1 )
if data_time < last_removed_time then
    redis.call( 'HSET', STATUS_KEY, 'last_removed_time', 0 )
end

renew_last_cleanup_values()
-- redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', LAST_CLEANUP_BYTES )
INSERTS_SINCE_CLEANING = INSERTS_SINCE_CLEANING + 1
redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
return { -1000, LAST_CLEANUP_ITEMS, REDIS_USED_MEMORY, TOTAL_BYTES_DELETED }

  at lib/Redis/CappedCollection.pm line 3800.

#   Failed test 'no warnings'
#   at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/5.39.3/Test/Builder.pm line 193.
# There were 1 warning(s)
#     Previous test 0 ''
#     Attempt to call undefined import method with arguments ("1.976") via package "Redis" (Perhaps you forgot to load the package?) at lib/Redis/CappedCollection.pm line 78.
#  at lib/Redis/CappedCollection.pm line 78.
# 	Redis::CappedCollection::BEGIN() called at lib/Redis/CappedCollection.pm line 78
# 	eval {...} called at lib/Redis/CappedCollection.pm line 78
# 	require Redis/CappedCollection.pm called at t/00_CappedCollection/11_max_datasize.t line 41
# 	main::BEGIN() called at t/00_CappedCollection/11_max_datasize.t line 41
# 	eval {...} called at t/00_CappedCollection/11_max_datasize.t line 41
# 
# Looks like your test exited with -1 just after 21.
	(in cleanup) Can't call method "current_test" on an undefined value at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Test/NoWarnings/Warning.pm line 55 during global destruction.
t/00_CappedCollection/11_max_datasize.t ................ 
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 1/21 subtests 
[EVAL] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Redis.pm line 321.

Lua script 'insert':
-- adding data to a list of collections
collectgarbage( 'stop' )

local coll_name             = ARGV[2]
local list_id               = ARGV[3]
local data_id               = ARGV[4]
local data                  = ARGV[5]
local data_time             = tonumber( ARGV[6] )

-- key data storage structures
local NAMESPACE  = 'C'
local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
local STATUS_KEY = NAMESPACE..':S:'..coll_name
local DATA_KEYS  = NAMESPACE..':D:'..coll_name
local TIME_KEYS  = NAMESPACE..':T:'..coll_name
local DATA_KEY   = DATA_KEYS..':'..list_id
local TIME_KEY   = TIME_KEYS..':'..list_id
local REDIS_USED_MEMORY                     = 0
local REDIS_MAXMEMORY                       = 0
local ROLLBACK                              = {}
local TOTAL_BYTES_DELETED                   = 0
local LAST_CLEANUP_BYTES_MUST_BE_DELETED    = 0
local LAST_CLEANUP_ITEMS                    = 0
local LAST_OPERATION                        = ''
local INSERTS_SINCE_CLEANING                = 0
local UPDATES_SINCE_CLEANING                = 0

local _DEBUG, _DEBUG_ID, _FUNC_NAME

local table_merge = function ( t1, t2 )
    for key, val in pairs( t2 ) do
        t1[ key ] = val
    end
end

local _debug_log = function ( values )
    table_merge( values, {
        _DEBUG_ID                   = _DEBUG_ID,
        _FUNC_NAME                  = _FUNC_NAME,
        REDIS_USED_MEMORY           = REDIS_USED_MEMORY,
        list_id                     = list_id,
        data_id                     = data_id,
        data_len                    = #data,
        ROLLBACK                    = ROLLBACK
    } )

    redis.log( redis.LOG_NOTICE, _FUNC_NAME..': '..cjson.encode( values ) )
end

local _setup = function ( argv_idx, func_name, extra_data_len )
    LAST_OPERATION = func_name

    REDIS_MAXMEMORY = tonumber( redis.call( 'CONFIG', 'GET', 'maxmemory' )[2] )
    local memory_reserve_coefficient = 1 + tonumber( redis.call( 'HGET', STATUS_KEY, 'memory_reserve' ) )

    local redis_used_memory = string.match(
        redis.call( 'INFO', 'memory' ),
        'used_memory:(%d+)'
    )
    REDIS_USED_MEMORY = tonumber( redis_used_memory )
    LAST_CLEANUP_BYTES_MUST_BE_DELETED = REDIS_USED_MEMORY + extra_data_len - math.floor( REDIS_MAXMEMORY / memory_reserve_coefficient )
    if LAST_CLEANUP_BYTES_MUST_BE_DELETED < 0 or REDIS_MAXMEMORY == 0 then
        LAST_CLEANUP_BYTES_MUST_BE_DELETED = 0
    end

    INSERTS_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'inserts_since_cleaning' ) )
    if INSERTS_SINCE_CLEANING == nil then
        INSERTS_SINCE_CLEANING = 0
    end
    UPDATES_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'updates_since_cleaning' ) )
    if UPDATES_SINCE_CLEANING == nil then
        UPDATES_SINCE_CLEANING = 0
    end

    _FUNC_NAME  = func_name
    _DEBUG_ID   = tonumber( ARGV[ argv_idx ] )
    if _DEBUG_ID ~= 0 then
        _DEBUG = true
        _debug_log( {
            _STEP                   = '_setup',
            maxmemory               = REDIS_MAXMEMORY,
            redis_used_memory       = REDIS_USED_MEMORY,
            bytes_must_be_deleted   = LAST_CLEANUP_BYTES_MUST_BE_DELETED
        } )
    else
        _DEBUG = false
    end
end

local renew_last_cleanup_values = function ()
    if LAST_CLEANUP_ITEMS > 0 then
        local last_cleanup_bytes_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_bytes' ) )
        local last_cleanup_items_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_items' ) )
        if #last_cleanup_bytes_values >= 10 then
            table.remove ( last_cleanup_bytes_values, 1 )
            table.remove ( last_cleanup_items_values, 1 )
        end
        table.insert( last_cleanup_bytes_values, TOTAL_BYTES_DELETED )
        table.insert( last_cleanup_items_values, LAST_CLEANUP_ITEMS )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', cjson.encode( last_cleanup_bytes_values ) )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_items', cjson.encode( last_cleanup_items_values ) )
    end
end

local cleaning_error = function ( error_msg )
    if _DEBUG then
        _debug_log( {
            _STEP       = 'cleaning_error',
            error_msg   = error_msg
        } )
    end

    for _, rollback_command in ipairs( ROLLBACK ) do
        redis.call( unpack( rollback_command ) )
    end
    -- Level 2 points the error to where the function that called error was called
    renew_last_cleanup_values()
    error( error_msg, 2 )
end

-- deleting old data to make room for new data
local cleaning = function ( list_id, data_id, is_cleaning_needed )
    local coll_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'items' ) )

    if coll_items == 0 then
        return
    end

    local cleanup_bytes = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_bytes' ) )
    local cleanup_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_items' ) )

    if not ( is_cleaning_needed or LAST_CLEANUP_BYTES_MUST_BE_DELETED > 0 ) then
        return
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Before cleanings',
            coll_items      = coll_items,
            cleanup_items   = cleanup_items,
            cleanup_bytes   = cleanup_bytes,
        } )
    end

    local items_deleted = 0
    local bytes_deleted = 0
    local lists_deleted = 0

    repeat
        if redis.call( 'EXISTS', QUEUE_KEY ) == 0 then
            -- Level 2 points the error to where the function that called error was called
            renew_last_cleanup_values()
            error( 'Queue key does not exist', 2 )
        end

        -- continue to work with the to_delete (requiring removal) data and for them using the prefix 'to_delete_'
        local to_delete_list_id, last_removed_time = unpack( redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' ) )
        last_removed_time = tonumber( last_removed_time )
        -- key data structures
        local to_delete_data_key = DATA_KEYS..':'..to_delete_list_id
        local to_delete_time_key = TIME_KEYS..':'..to_delete_list_id

        -- looking for the oldest data
        local to_delete_data_id
        local to_delete_data
        local items = redis.call( 'HLEN', to_delete_data_key )
-- #FIXME: to_delete_data -> to_delete_data_len
-- HSTRLEN key field
-- Available since 3.2.0.
        if items == 1 then
            to_delete_data_id, to_delete_data = unpack( redis.call( 'HGETALL', to_delete_data_key ) )
        else
            to_delete_data_id = unpack( redis.call( 'ZRANGE', to_delete_time_key, 0, 0 ) )
            to_delete_data    = redis.call( 'HGET', to_delete_data_key, to_delete_data_id )
        end
        local to_delete_data_len = #to_delete_data
        to_delete_data = nil    -- free memory

        if _DEBUG then
            _debug_log( {
                _STEP               = 'Before real cleaning',
                items               = items,
                to_delete_list_id   = to_delete_list_id,
                to_delete_data_id   = to_delete_data_id,
                to_delete_data_len  = to_delete_data_len
            } )
        end

        if to_delete_list_id == list_id and to_delete_data_id == data_id then
            if items_deleted == 0 then
                -- Its first attempt to clean the conflicting data, for which the primary operation executed.
                -- In this case, we are roll back operations that have been made before, and immediately return an error,
                -- shifting the handling of such errors on the client.
                cleaning_error( "OOM Command not allowed when used memory > 'maxmemory'." )
            end
            break
        end

        if _DEBUG then
            _debug_log( {
                _STEP           = 'Why it is cleared?',
                coll_items      = coll_items,
                cleanup_bytes   = cleanup_bytes,
                cleanup_items   = cleanup_items,
                items_deleted   = items_deleted,
                bytes_deleted   = bytes_deleted,
            } )
        end

        -- actually remove the oldest item
        redis.call( 'HDEL', to_delete_data_key, to_delete_data_id )
        items = items - 1
        coll_items = coll_items - 1

        redis.call( 'HSET', STATUS_KEY, 'last_removed_time', last_removed_time )

        if items > 0 then
            -- If the list has more data
            redis.call( 'ZREM', to_delete_time_key, to_delete_data_id )
            local oldest_item_time = tonumber( redis.call( 'ZRANGE', to_delete_time_key, 0, 0, 'WITHSCORES' )[2] )
            redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, to_delete_list_id )

            if items == 1 then
                redis.call( 'DEL', to_delete_time_key )
            end
        else
            -- If the list does not have data
            -- remove the name of the list from the queue collection
            redis.call( 'ZREM', QUEUE_KEY, to_delete_list_id )
            lists_deleted = lists_deleted + 1
        end

        -- amount of data collection decreased
        items_deleted = items_deleted + 1
        bytes_deleted = bytes_deleted + to_delete_data_len

        if _DEBUG then
            _debug_log( {
                _STEP               = 'After real cleaning',
                to_delete_data_key  = to_delete_data_key,
                to_delete_data_id   = to_delete_data_id,
                items               = items,
                items_deleted       = items_deleted,
                bytes_deleted       = bytes_deleted,
            } )
        end

    until
            coll_items <= 0
        or (
                items_deleted >= cleanup_items
            and bytes_deleted >= cleanup_bytes
        )

    if items_deleted > 0 then
        -- reduce the number of items in the collection
        redis.call( 'HINCRBY', STATUS_KEY, 'items', -items_deleted )
    end
    if lists_deleted > 0 then
        -- reduce the number of lists stored in a collection
        redis.call( 'HINCRBY',  STATUS_KEY, 'lists', -lists_deleted )
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Cleaning finished',
            items_deleted   = items_deleted,
            bytes_deleted   = bytes_deleted,
            lists_deleted   = lists_deleted,
            cleanup_bytes   = cleanup_bytes,
            cleanup_items   = cleanup_items,
            coll_items      = coll_items,
        } )
    end

    if bytes_deleted > 0 then
        if TOTAL_BYTES_DELETED == 0 then    -- first cleaning
            INSERTS_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
            UPDATES_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'updates_since_cleaning', UPDATES_SINCE_CLEANING )
        end

        TOTAL_BYTES_DELETED = TOTAL_BYTES_DELETED + bytes_deleted
        LAST_CLEANUP_ITEMS = LAST_CLEANUP_ITEMS + items_deleted

        -- information values
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_maxmemory', REDIS_MAXMEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_used_memory', REDIS_USED_MEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_bytes_must_be_deleted', LAST_CLEANUP_BYTES_MUST_BE_DELETED )
    end
end

local call_with_error_control = function ( list_id, data_id, ... )
    local retries = 2
    local ret
    local error_msg = '<Empty error message>'
    repeat
        ret = redis.pcall( ... )
        if type( ret ) == 'table' and ret.err ~= nil then
            error_msg   = "OOM Command not allowed when used memory > 'maxmemory'. - " .. ret.err .. " (call = " .. cjson.encode( { ... } ) .. ")"
            if _DEBUG then
                _debug_log( {
                    _STEP       = 'call_with_error_control',
                    error_msg   = error_msg,
                    retries     = retries
                } )
            end

            cleaning( list_id, data_id, true )
        else
            break
        end
        retries = retries - 1
    until retries == 0

    if retries == 0 then
        -- Operation returned an error related to insufficient memory.
        -- Start cleaning process and then re-try operation.
        -- Repeat the cycle of operation + memory cleaning a couple of times and return an error / fail,
        -- if it still did not work.
        cleaning_error( error_msg )
    end

    return ret
end


-- determine whether there is a list of data and a collection
if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
    return { -1006, 0, 0, 0 }
end

local reduce_list_items = function ( list_id )
    local max_list_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'max_list_items' ) )
    if max_list_items ~= nil and max_list_items > 0 and redis.call( 'EXISTS', DATA_KEY ) == 1 then
        local list_items        = redis.call( 'HLEN', DATA_KEY )
        local older_allowed     = tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) )
        local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

        while list_items >= max_list_items do
            local removed_data_time, removed_data_id
            list_items = list_items - 1

            if list_items == 0 then
                removed_data_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
                redis.call( 'ZREM', QUEUE_KEY, list_id )
                redis.call( 'DEL', DATA_KEY )
                redis.call( 'HINCRBY', STATUS_KEY, 'lists', -1 )
            else
                removed_data_id, removed_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                removed_data_id     = tonumber( removed_data_id )
                removed_data_time   = tonumber( removed_data_time )
                redis.call( 'ZREM', TIME_KEY, removed_data_id )
                redis.call( 'HDEL', DATA_KEY, removed_data_id )

                local lowest_data_id, lowest_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                redis.call( 'ZADD', QUEUE_KEY, lowest_data_time, lowest_data_id )

                if redis.call( 'HLEN', DATA_KEY ) == 1 then
                    redis.call( 'DEL', TIME_KEY )
                end
            end

            redis.call( 'HINCRBY', STATUS_KEY, 'items', -1 )

            if older_allowed == 0 and ( last_removed_time == 0 or removed_data_time < last_removed_time ) then
                redis.call( 'HSET', STATUS_KEY, 'last_removed_time', removed_data_time )
                last_removed_time = removed_data_time
            end
        end
    end
end

reduce_list_items( list_id )


-- verification of the existence of old data with new data identifier
if redis.call( 'HEXISTS', DATA_KEY, data_id ) == 1 then
    return { -1008, 0, 0, 0 }
end

-- Validating the time of new data, if required
local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

if tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) ) == 0 then
    if redis.call( 'EXISTS', QUEUE_KEY ) == 1 then
        if data_time < last_removed_time then
            return { -1009, 0, 0, 0 }
        end
    end
end

-- deleting obsolete data, if it is necessary
local data_len = #data
_setup( 7, 'insert', data_len ) -- 7 -> is the index of ARGV[7]
cleaning( list_id, data_id, false )

-- add data to the list
-- Remember that the list and the collection can be automatically deleted after the "crowding out" old data

-- the existing data
local items = redis.call( 'HLEN', DATA_KEY )
local existing_id, existing_time
if items == 1 then
    existing_id   = unpack( redis.call( 'HGETALL', DATA_KEY ) )
    existing_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
end

-- actually add data to the list
call_with_error_control( list_id, data_id, 'HSET', DATA_KEY, data_id, data )
data = nil  -- free memory
table.insert( ROLLBACK, 1, { 'HDEL', DATA_KEY, data_id } )

if redis.call( 'HLEN', DATA_KEY ) == 1 then  -- list recreated after cleaning
    redis.call( 'HINCRBY', STATUS_KEY, 'lists', 1 )
    table.insert( ROLLBACK, 1, { 'HINCRBY', STATUS_KEY, 'lists', -1 } )
    call_with_error_control( list_id, data_id, 'ZADD', QUEUE_KEY, data_time, list_id )
else
    if items == 1 then
        call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, existing_time, existing_id )
        table.insert( ROLLBACK, 1, { 'ZREM', TIME_KEY, existing_id } )
    end
    call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, data_time, data_id )
    local oldest_item_time = redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' )[2]
    redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, list_id )
end

-- reflect the addition of new data
redis.call( 'HINCRBY', STATUS_KEY, 'items', 1 )
if data_time < last_removed_time then
    redis.call( 'HSET', STATUS_KEY, 'last_removed_time', 0 )
end

renew_last_cleanup_values()
-- redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', LAST_CLEANUP_BYTES )
INSERTS_SINCE_CLEANING = INSERTS_SINCE_CLEANING + 1
redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
return { -1000, LAST_CLEANUP_ITEMS, REDIS_USED_MEMORY, TOTAL_BYTES_DELETED }

  at lib/Redis/CappedCollection.pm line 3800.

#   Failed test 'no warnings'
#   at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/5.39.3/Test/Builder.pm line 193.
# There were 1 warning(s)
#     Previous test 0 ''
#     Attempt to call undefined import method with arguments ("1.976") via package "Redis" (Perhaps you forgot to load the package?) at lib/Redis/CappedCollection.pm line 78.
#  at lib/Redis/CappedCollection.pm line 78.
# 	Redis::CappedCollection::BEGIN() called at lib/Redis/CappedCollection.pm line 78
# 	eval {...} called at lib/Redis/CappedCollection.pm line 78
# 	require Redis/CappedCollection.pm called at t/00_CappedCollection/12_last_errorcode.t line 50
# 	main::BEGIN() called at t/00_CappedCollection/12_last_errorcode.t line 50
# 	eval {...} called at t/00_CappedCollection/12_last_errorcode.t line 50
# 
# Looks like your test exited with -1 just after 11.
t/00_CappedCollection/12_last_errorcode.t .............. 
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 1/11 subtests 
[EVAL] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.

Lua script 'insert':
-- adding data to a list of collections
collectgarbage( 'stop' )

local coll_name             = ARGV[2]
local list_id               = ARGV[3]
local data_id               = ARGV[4]
local data                  = ARGV[5]
local data_time             = tonumber( ARGV[6] )

-- key data storage structures
local NAMESPACE  = 'C'
local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
local STATUS_KEY = NAMESPACE..':S:'..coll_name
local DATA_KEYS  = NAMESPACE..':D:'..coll_name
local TIME_KEYS  = NAMESPACE..':T:'..coll_name
local DATA_KEY   = DATA_KEYS..':'..list_id
local TIME_KEY   = TIME_KEYS..':'..list_id
local REDIS_USED_MEMORY                     = 0
local REDIS_MAXMEMORY                       = 0
local ROLLBACK                              = {}
local TOTAL_BYTES_DELETED                   = 0
local LAST_CLEANUP_BYTES_MUST_BE_DELETED    = 0
local LAST_CLEANUP_ITEMS                    = 0
local LAST_OPERATION                        = ''
local INSERTS_SINCE_CLEANING                = 0
local UPDATES_SINCE_CLEANING                = 0

local _DEBUG, _DEBUG_ID, _FUNC_NAME

local table_merge = function ( t1, t2 )
    for key, val in pairs( t2 ) do
        t1[ key ] = val
    end
end

local _debug_log = function ( values )
    table_merge( values, {
        _DEBUG_ID                   = _DEBUG_ID,
        _FUNC_NAME                  = _FUNC_NAME,
        REDIS_USED_MEMORY           = REDIS_USED_MEMORY,
        list_id                     = list_id,
        data_id                     = data_id,
        data_len                    = #data,
        ROLLBACK                    = ROLLBACK
    } )

    redis.log( redis.LOG_NOTICE, _FUNC_NAME..': '..cjson.encode( values ) )
end

local _setup = function ( argv_idx, func_name, extra_data_len )
    LAST_OPERATION = func_name

    REDIS_MAXMEMORY = tonumber( redis.call( 'CONFIG', 'GET', 'maxmemory' )[2] )
    local memory_reserve_coefficient = 1 + tonumber( redis.call( 'HGET', STATUS_KEY, 'memory_reserve' ) )

    local redis_used_memory = string.match(
        redis.call( 'INFO', 'memory' ),
        'used_memory:(%d+)'
    )
    REDIS_USED_MEMORY = tonumber( redis_used_memory )
    LAST_CLEANUP_BYTES_MUST_BE_DELETED = REDIS_USED_MEMORY + extra_data_len - math.floor( REDIS_MAXMEMORY / memory_reserve_coefficient )
    if LAST_CLEANUP_BYTES_MUST_BE_DELETED < 0 or REDIS_MAXMEMORY == 0 then
        LAST_CLEANUP_BYTES_MUST_BE_DELETED = 0
    end

    INSERTS_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'inserts_since_cleaning' ) )
    if INSERTS_SINCE_CLEANING == nil then
        INSERTS_SINCE_CLEANING = 0
    end
    UPDATES_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'updates_since_cleaning' ) )
    if UPDATES_SINCE_CLEANING == nil then
        UPDATES_SINCE_CLEANING = 0
    end

    _FUNC_NAME  = func_name
    _DEBUG_ID   = tonumber( ARGV[ argv_idx ] )
    if _DEBUG_ID ~= 0 then
        _DEBUG = true
        _debug_log( {
            _STEP                   = '_setup',
            maxmemory               = REDIS_MAXMEMORY,
            redis_used_memory       = REDIS_USED_MEMORY,
            bytes_must_be_deleted   = LAST_CLEANUP_BYTES_MUST_BE_DELETED
        } )
    else
        _DEBUG = false
    end
end

local renew_last_cleanup_values = function ()
    if LAST_CLEANUP_ITEMS > 0 then
        local last_cleanup_bytes_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_bytes' ) )
        local last_cleanup_items_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_items' ) )
        if #last_cleanup_bytes_values >= 10 then
            table.remove ( last_cleanup_bytes_values, 1 )
            table.remove ( last_cleanup_items_values, 1 )
        end
        table.insert( last_cleanup_bytes_values, TOTAL_BYTES_DELETED )
        table.insert( last_cleanup_items_values, LAST_CLEANUP_ITEMS )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', cjson.encode( last_cleanup_bytes_values ) )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_items', cjson.encode( last_cleanup_items_values ) )
    end
end

local cleaning_error = function ( error_msg )
    if _DEBUG then
        _debug_log( {
            _STEP       = 'cleaning_error',
            error_msg   = error_msg
        } )
    end

    for _, rollback_command in ipairs( ROLLBACK ) do
        redis.call( unpack( rollback_command ) )
    end
    -- Level 2 points the error to where the function that called error was called
    renew_last_cleanup_values()
    error( error_msg, 2 )
end

-- deleting old data to make room for new data
local cleaning = function ( list_id, data_id, is_cleaning_needed )
    local coll_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'items' ) )

    if coll_items == 0 then
        return
    end

    local cleanup_bytes = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_bytes' ) )
    local cleanup_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_items' ) )

    if not ( is_cleaning_needed or LAST_CLEANUP_BYTES_MUST_BE_DELETED > 0 ) then
        return
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Before cleanings',
            coll_items      = coll_items,
            cleanup_items   = cleanup_items,
            cleanup_bytes   = cleanup_bytes,
        } )
    end

    local items_deleted = 0
    local bytes_deleted = 0
    local lists_deleted = 0

    repeat
        if redis.call( 'EXISTS', QUEUE_KEY ) == 0 then
            -- Level 2 points the error to where the function that called error was called
            renew_last_cleanup_values()
            error( 'Queue key does not exist', 2 )
        end

        -- continue to work with the to_delete (requiring removal) data and for them using the prefix 'to_delete_'
        local to_delete_list_id, last_removed_time = unpack( redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' ) )
        last_removed_time = tonumber( last_removed_time )
        -- key data structures
        local to_delete_data_key = DATA_KEYS..':'..to_delete_list_id
        local to_delete_time_key = TIME_KEYS..':'..to_delete_list_id

        -- looking for the oldest data
        local to_delete_data_id
        local to_delete_data
        local items = redis.call( 'HLEN', to_delete_data_key )
-- #FIXME: to_delete_data -> to_delete_data_len
-- HSTRLEN key field
-- Available since 3.2.0.
        if items == 1 then
            to_delete_data_id, to_delete_data = unpack( redis.call( 'HGETALL', to_delete_data_key ) )
        else
            to_delete_data_id = unpack( redis.call( 'ZRANGE', to_delete_time_key, 0, 0 ) )
            to_delete_data    = redis.call( 'HGET', to_delete_data_key, to_delete_data_id )
        end
        local to_delete_data_len = #to_delete_data
        to_delete_data = nil    -- free memory

        if _DEBUG then
            _debug_log( {
                _STEP               = 'Before real cleaning',
                items               = items,
                to_delete_list_id   = to_delete_list_id,
                to_delete_data_id   = to_delete_data_id,
                to_delete_data_len  = to_delete_data_len
            } )
        end

        if to_delete_list_id == list_id and to_delete_data_id == data_id then
            if items_deleted == 0 then
                -- Its first attempt to clean the conflicting data, for which the primary operation executed.
                -- In this case, we are roll back operations that have been made before, and immediately return an error,
                -- shifting the handling of such errors on the client.
                cleaning_error( "OOM Command not allowed when used memory > 'maxmemory'." )
            end
            break
        end

        if _DEBUG then
            _debug_log( {
                _STEP           = 'Why it is cleared?',
                coll_items      = coll_items,
                cleanup_bytes   = cleanup_bytes,
                cleanup_items   = cleanup_items,
                items_deleted   = items_deleted,
                bytes_deleted   = bytes_deleted,
            } )
        end

        -- actually remove the oldest item
        redis.call( 'HDEL', to_delete_data_key, to_delete_data_id )
        items = items - 1
        coll_items = coll_items - 1

        redis.call( 'HSET', STATUS_KEY, 'last_removed_time', last_removed_time )

        if items > 0 then
            -- If the list has more data
            redis.call( 'ZREM', to_delete_time_key, to_delete_data_id )
            local oldest_item_time = tonumber( redis.call( 'ZRANGE', to_delete_time_key, 0, 0, 'WITHSCORES' )[2] )
            redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, to_delete_list_id )

            if items == 1 then
                redis.call( 'DEL', to_delete_time_key )
            end
        else
            -- If the list does not have data
            -- remove the name of the list from the queue collection
            redis.call( 'ZREM', QUEUE_KEY, to_delete_list_id )
            lists_deleted = lists_deleted + 1
        end

        -- amount of data collection decreased
        items_deleted = items_deleted + 1
        bytes_deleted = bytes_deleted + to_delete_data_len

        if _DEBUG then
            _debug_log( {
                _STEP               = 'After real cleaning',
                to_delete_data_key  = to_delete_data_key,
                to_delete_data_id   = to_delete_data_id,
                items               = items,
                items_deleted       = items_deleted,
                bytes_deleted       = bytes_deleted,
            } )
        end

    until
            coll_items <= 0
        or (
                items_deleted >= cleanup_items
            and bytes_deleted >= cleanup_bytes
        )

    if items_deleted > 0 then
        -- reduce the number of items in the collection
        redis.call( 'HINCRBY', STATUS_KEY, 'items', -items_deleted )
    end
    if lists_deleted > 0 then
        -- reduce the number of lists stored in a collection
        redis.call( 'HINCRBY',  STATUS_KEY, 'lists', -lists_deleted )
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Cleaning finished',
            items_deleted   = items_deleted,
            bytes_deleted   = bytes_deleted,
            lists_deleted   = lists_deleted,
            cleanup_bytes   = cleanup_bytes,
            cleanup_items   = cleanup_items,
            coll_items      = coll_items,
        } )
    end

    if bytes_deleted > 0 then
        if TOTAL_BYTES_DELETED == 0 then    -- first cleaning
            INSERTS_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
            UPDATES_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'updates_since_cleaning', UPDATES_SINCE_CLEANING )
        end

        TOTAL_BYTES_DELETED = TOTAL_BYTES_DELETED + bytes_deleted
        LAST_CLEANUP_ITEMS = LAST_CLEANUP_ITEMS + items_deleted

        -- information values
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_maxmemory', REDIS_MAXMEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_used_memory', REDIS_USED_MEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_bytes_must_be_deleted', LAST_CLEANUP_BYTES_MUST_BE_DELETED )
    end
end

local call_with_error_control = function ( list_id, data_id, ... )
    local retries = 2
    local ret
    local error_msg = '<Empty error message>'
    repeat
        ret = redis.pcall( ... )
        if type( ret ) == 'table' and ret.err ~= nil then
            error_msg   = "OOM Command not allowed when used memory > 'maxmemory'. - " .. ret.err .. " (call = " .. cjson.encode( { ... } ) .. ")"
            if _DEBUG then
                _debug_log( {
                    _STEP       = 'call_with_error_control',
                    error_msg   = error_msg,
                    retries     = retries
                } )
            end

            cleaning( list_id, data_id, true )
        else
            break
        end
        retries = retries - 1
    until retries == 0

    if retries == 0 then
        -- Operation returned an error related to insufficient memory.
        -- Start cleaning process and then re-try operation.
        -- Repeat the cycle of operation + memory cleaning a couple of times and return an error / fail,
        -- if it still did not work.
        cleaning_error( error_msg )
    end

    return ret
end


-- determine whether there is a list of data and a collection
if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
    return { -1006, 0, 0, 0 }
end

local reduce_list_items = function ( list_id )
    local max_list_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'max_list_items' ) )
    if max_list_items ~= nil and max_list_items > 0 and redis.call( 'EXISTS', DATA_KEY ) == 1 then
        local list_items        = redis.call( 'HLEN', DATA_KEY )
        local older_allowed     = tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) )
        local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

        while list_items >= max_list_items do
            local removed_data_time, removed_data_id
            list_items = list_items - 1

            if list_items == 0 then
                removed_data_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
                redis.call( 'ZREM', QUEUE_KEY, list_id )
                redis.call( 'DEL', DATA_KEY )
                redis.call( 'HINCRBY', STATUS_KEY, 'lists', -1 )
            else
                removed_data_id, removed_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                removed_data_id     = tonumber( removed_data_id )
                removed_data_time   = tonumber( removed_data_time )
                redis.call( 'ZREM', TIME_KEY, removed_data_id )
                redis.call( 'HDEL', DATA_KEY, removed_data_id )

                local lowest_data_id, lowest_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                redis.call( 'ZADD', QUEUE_KEY, lowest_data_time, lowest_data_id )

                if redis.call( 'HLEN', DATA_KEY ) == 1 then
                    redis.call( 'DEL', TIME_KEY )
                end
            end

            redis.call( 'HINCRBY', STATUS_KEY, 'items', -1 )

            if older_allowed == 0 and ( last_removed_time == 0 or removed_data_time < last_removed_time ) then
                redis.call( 'HSET', STATUS_KEY, 'last_removed_time', removed_data_time )
                last_removed_time = removed_data_time
            end
        end
    end
end

reduce_list_items( list_id )


-- verification of the existence of old data with new data identifier
if redis.call( 'HEXISTS', DATA_KEY, data_id ) == 1 then
    return { -1008, 0, 0, 0 }
end

-- Validating the time of new data, if required
local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

if tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) ) == 0 then
    if redis.call( 'EXISTS', QUEUE_KEY ) == 1 then
        if data_time < last_removed_time then
            return { -1009, 0, 0, 0 }
        end
    end
end

-- deleting obsolete data, if it is necessary
local data_len = #data
_setup( 7, 'insert', data_len ) -- 7 -> is the index of ARGV[7]
cleaning( list_id, data_id, false )

-- add data to the list
-- Remember that the list and the collection can be automatically deleted after the "crowding out" old data

-- the existing data
local items = redis.call( 'HLEN', DATA_KEY )
local existing_id, existing_time
if items == 1 then
    existing_id   = unpack( redis.call( 'HGETALL', DATA_KEY ) )
    existing_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
end

-- actually add data to the list
call_with_error_control( list_id, data_id, 'HSET', DATA_KEY, data_id, data )
data = nil  -- free memory
table.insert( ROLLBACK, 1, { 'HDEL', DATA_KEY, data_id } )

if redis.call( 'HLEN', DATA_KEY ) == 1 then  -- list recreated after cleaning
    redis.call( 'HINCRBY', STATUS_KEY, 'lists', 1 )
    table.insert( ROLLBACK, 1, { 'HINCRBY', STATUS_KEY, 'lists', -1 } )
    call_with_error_control( list_id, data_id, 'ZADD', QUEUE_KEY, data_time, list_id )
else
    if items == 1 then
        call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, existing_time, existing_id )
        table.insert( ROLLBACK, 1, { 'ZREM', TIME_KEY, existing_id } )
    end
    call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, data_time, data_id )
    local oldest_item_time = redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' )[2]
    redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, list_id )
end

-- reflect the addition of new data
redis.call( 'HINCRBY', STATUS_KEY, 'items', 1 )
if data_time < last_removed_time then
    redis.call( 'HSET', STATUS_KEY, 'last_removed_time', 0 )
end

renew_last_cleanup_values()
-- redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', LAST_CLEANUP_BYTES )
INSERTS_SINCE_CLEANING = INSERTS_SINCE_CLEANING + 1
redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
return { -1000, LAST_CLEANUP_ITEMS, REDIS_USED_MEMORY, TOTAL_BYTES_DELETED }

  at lib/Redis/CappedCollection.pm line 3800.

#   Failed test 'no warnings'
#   at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/5.39.3/Test/Builder.pm line 193.
# There were 1 warning(s)
#     Previous test 0 ''
#     Attempt to call undefined import method with arguments ("1.976") via package "Redis" (Perhaps you forgot to load the package?) at lib/Redis/CappedCollection.pm line 78.
#  at lib/Redis/CappedCollection.pm line 78.
# 	Redis::CappedCollection::BEGIN() called at lib/Redis/CappedCollection.pm line 78
# 	eval {...} called at lib/Redis/CappedCollection.pm line 78
# 	require Redis/CappedCollection.pm called at t/00_CappedCollection/13_name.t line 38
# 	main::BEGIN() called at t/00_CappedCollection/13_name.t line 38
# 	eval {...} called at t/00_CappedCollection/13_name.t line 38
# 
# Looks like your test exited with -1 just after 14.
	(in cleanup) Can't call method "current_test" on an undefined value at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Test/NoWarnings/Warning.pm line 55 during global destruction.
t/00_CappedCollection/13_name.t ........................ 
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 1/14 subtests 
[EVAL] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.

Lua script 'insert':
-- adding data to a list of collections
collectgarbage( 'stop' )

local coll_name             = ARGV[2]
local list_id               = ARGV[3]
local data_id               = ARGV[4]
local data                  = ARGV[5]
local data_time             = tonumber( ARGV[6] )

-- key data storage structures
local NAMESPACE  = 'C'
local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
local STATUS_KEY = NAMESPACE..':S:'..coll_name
local DATA_KEYS  = NAMESPACE..':D:'..coll_name
local TIME_KEYS  = NAMESPACE..':T:'..coll_name
local DATA_KEY   = DATA_KEYS..':'..list_id
local TIME_KEY   = TIME_KEYS..':'..list_id
local REDIS_USED_MEMORY                     = 0
local REDIS_MAXMEMORY                       = 0
local ROLLBACK                              = {}
local TOTAL_BYTES_DELETED                   = 0
local LAST_CLEANUP_BYTES_MUST_BE_DELETED    = 0
local LAST_CLEANUP_ITEMS                    = 0
local LAST_OPERATION                        = ''
local INSERTS_SINCE_CLEANING                = 0
local UPDATES_SINCE_CLEANING                = 0

local _DEBUG, _DEBUG_ID, _FUNC_NAME

local table_merge = function ( t1, t2 )
    for key, val in pairs( t2 ) do
        t1[ key ] = val
    end
end

local _debug_log = function ( values )
    table_merge( values, {
        _DEBUG_ID                   = _DEBUG_ID,
        _FUNC_NAME                  = _FUNC_NAME,
        REDIS_USED_MEMORY           = REDIS_USED_MEMORY,
        list_id                     = list_id,
        data_id                     = data_id,
        data_len                    = #data,
        ROLLBACK                    = ROLLBACK
    } )

    redis.log( redis.LOG_NOTICE, _FUNC_NAME..': '..cjson.encode( values ) )
end

local _setup = function ( argv_idx, func_name, extra_data_len )
    LAST_OPERATION = func_name

    REDIS_MAXMEMORY = tonumber( redis.call( 'CONFIG', 'GET', 'maxmemory' )[2] )
    local memory_reserve_coefficient = 1 + tonumber( redis.call( 'HGET', STATUS_KEY, 'memory_reserve' ) )

    local redis_used_memory = string.match(
        redis.call( 'INFO', 'memory' ),
        'used_memory:(%d+)'
    )
    REDIS_USED_MEMORY = tonumber( redis_used_memory )
    LAST_CLEANUP_BYTES_MUST_BE_DELETED = REDIS_USED_MEMORY + extra_data_len - math.floor( REDIS_MAXMEMORY / memory_reserve_coefficient )
    if LAST_CLEANUP_BYTES_MUST_BE_DELETED < 0 or REDIS_MAXMEMORY == 0 then
        LAST_CLEANUP_BYTES_MUST_BE_DELETED = 0
    end

    INSERTS_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'inserts_since_cleaning' ) )
    if INSERTS_SINCE_CLEANING == nil then
        INSERTS_SINCE_CLEANING = 0
    end
    UPDATES_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'updates_since_cleaning' ) )
    if UPDATES_SINCE_CLEANING == nil then
        UPDATES_SINCE_CLEANING = 0
    end

    _FUNC_NAME  = func_name
    _DEBUG_ID   = tonumber( ARGV[ argv_idx ] )
    if _DEBUG_ID ~= 0 then
        _DEBUG = true
        _debug_log( {
            _STEP                   = '_setup',
            maxmemory               = REDIS_MAXMEMORY,
            redis_used_memory       = REDIS_USED_MEMORY,
            bytes_must_be_deleted   = LAST_CLEANUP_BYTES_MUST_BE_DELETED
        } )
    else
        _DEBUG = false
    end
end

local renew_last_cleanup_values = function ()
    if LAST_CLEANUP_ITEMS > 0 then
        local last_cleanup_bytes_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_bytes' ) )
        local last_cleanup_items_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_items' ) )
        if #last_cleanup_bytes_values >= 10 then
            table.remove ( last_cleanup_bytes_values, 1 )
            table.remove ( last_cleanup_items_values, 1 )
        end
        table.insert( last_cleanup_bytes_values, TOTAL_BYTES_DELETED )
        table.insert( last_cleanup_items_values, LAST_CLEANUP_ITEMS )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', cjson.encode( last_cleanup_bytes_values ) )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_items', cjson.encode( last_cleanup_items_values ) )
    end
end

local cleaning_error = function ( error_msg )
    if _DEBUG then
        _debug_log( {
            _STEP       = 'cleaning_error',
            error_msg   = error_msg
        } )
    end

    for _, rollback_command in ipairs( ROLLBACK ) do
        redis.call( unpack( rollback_command ) )
    end
    -- Level 2 points the error to where the function that called error was called
    renew_last_cleanup_values()
    error( error_msg, 2 )
end

-- deleting old data to make room for new data
local cleaning = function ( list_id, data_id, is_cleaning_needed )
    local coll_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'items' ) )

    if coll_items == 0 then
        return
    end

    local cleanup_bytes = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_bytes' ) )
    local cleanup_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_items' ) )

    if not ( is_cleaning_needed or LAST_CLEANUP_BYTES_MUST_BE_DELETED > 0 ) then
        return
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Before cleanings',
            coll_items      = coll_items,
            cleanup_items   = cleanup_items,
            cleanup_bytes   = cleanup_bytes,
        } )
    end

    local items_deleted = 0
    local bytes_deleted = 0
    local lists_deleted = 0

    repeat
        if redis.call( 'EXISTS', QUEUE_KEY ) == 0 then
            -- Level 2 points the error to where the function that called error was called
            renew_last_cleanup_values()
            error( 'Queue key does not exist', 2 )
        end

        -- continue to work with the to_delete (requiring removal) data and for them using the prefix 'to_delete_'
        local to_delete_list_id, last_removed_time = unpack( redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' ) )
        last_removed_time = tonumber( last_removed_time )
        -- key data structures
        local to_delete_data_key = DATA_KEYS..':'..to_delete_list_id
        local to_delete_time_key = TIME_KEYS..':'..to_delete_list_id

        -- looking for the oldest data
        local to_delete_data_id
        local to_delete_data
        local items = redis.call( 'HLEN', to_delete_data_key )
-- #FIXME: to_delete_data -> to_delete_data_len
-- HSTRLEN key field
-- Available since 3.2.0.
        if items == 1 then
            to_delete_data_id, to_delete_data = unpack( redis.call( 'HGETALL', to_delete_data_key ) )
        else
            to_delete_data_id = unpack( redis.call( 'ZRANGE', to_delete_time_key, 0, 0 ) )
            to_delete_data    = redis.call( 'HGET', to_delete_data_key, to_delete_data_id )
        end
        local to_delete_data_len = #to_delete_data
        to_delete_data = nil    -- free memory

        if _DEBUG then
            _debug_log( {
                _STEP               = 'Before real cleaning',
                items               = items,
                to_delete_list_id   = to_delete_list_id,
                to_delete_data_id   = to_delete_data_id,
                to_delete_data_len  = to_delete_data_len
            } )
        end

        if to_delete_list_id == list_id and to_delete_data_id == data_id then
            if items_deleted == 0 then
                -- Its first attempt to clean the conflicting data, for which the primary operation executed.
                -- In this case, we are roll back operations that have been made before, and immediately return an error,
                -- shifting the handling of such errors on the client.
                cleaning_error( "OOM Command not allowed when used memory > 'maxmemory'." )
            end
            break
        end

        if _DEBUG then
            _debug_log( {
                _STEP           = 'Why it is cleared?',
                coll_items      = coll_items,
                cleanup_bytes   = cleanup_bytes,
                cleanup_items   = cleanup_items,
                items_deleted   = items_deleted,
                bytes_deleted   = bytes_deleted,
            } )
        end

        -- actually remove the oldest item
        redis.call( 'HDEL', to_delete_data_key, to_delete_data_id )
        items = items - 1
        coll_items = coll_items - 1

        redis.call( 'HSET', STATUS_KEY, 'last_removed_time', last_removed_time )

        if items > 0 then
            -- If the list has more data
            redis.call( 'ZREM', to_delete_time_key, to_delete_data_id )
            local oldest_item_time = tonumber( redis.call( 'ZRANGE', to_delete_time_key, 0, 0, 'WITHSCORES' )[2] )
            redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, to_delete_list_id )

            if items == 1 then
                redis.call( 'DEL', to_delete_time_key )
            end
        else
            -- If the list does not have data
            -- remove the name of the list from the queue collection
            redis.call( 'ZREM', QUEUE_KEY, to_delete_list_id )
            lists_deleted = lists_deleted + 1
        end

        -- amount of data collection decreased
        items_deleted = items_deleted + 1
        bytes_deleted = bytes_deleted + to_delete_data_len

        if _DEBUG then
            _debug_log( {
                _STEP               = 'After real cleaning',
                to_delete_data_key  = to_delete_data_key,
                to_delete_data_id   = to_delete_data_id,
                items               = items,
                items_deleted       = items_deleted,
                bytes_deleted       = bytes_deleted,
            } )
        end

    until
            coll_items <= 0
        or (
                items_deleted >= cleanup_items
            and bytes_deleted >= cleanup_bytes
        )

    if items_deleted > 0 then
        -- reduce the number of items in the collection
        redis.call( 'HINCRBY', STATUS_KEY, 'items', -items_deleted )
    end
    if lists_deleted > 0 then
        -- reduce the number of lists stored in a collection
        redis.call( 'HINCRBY',  STATUS_KEY, 'lists', -lists_deleted )
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Cleaning finished',
            items_deleted   = items_deleted,
            bytes_deleted   = bytes_deleted,
            lists_deleted   = lists_deleted,
            cleanup_bytes   = cleanup_bytes,
            cleanup_items   = cleanup_items,
            coll_items      = coll_items,
        } )
    end

    if bytes_deleted > 0 then
        if TOTAL_BYTES_DELETED == 0 then    -- first cleaning
            INSERTS_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
            UPDATES_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'updates_since_cleaning', UPDATES_SINCE_CLEANING )
        end

        TOTAL_BYTES_DELETED = TOTAL_BYTES_DELETED + bytes_deleted
        LAST_CLEANUP_ITEMS = LAST_CLEANUP_ITEMS + items_deleted

        -- information values
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_maxmemory', REDIS_MAXMEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_used_memory', REDIS_USED_MEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_bytes_must_be_deleted', LAST_CLEANUP_BYTES_MUST_BE_DELETED )
    end
end

local call_with_error_control = function ( list_id, data_id, ... )
    local retries = 2
    local ret
    local error_msg = '<Empty error message>'
    repeat
        ret = redis.pcall( ... )
        if type( ret ) == 'table' and ret.err ~= nil then
            error_msg   = "OOM Command not allowed when used memory > 'maxmemory'. - " .. ret.err .. " (call = " .. cjson.encode( { ... } ) .. ")"
            if _DEBUG then
                _debug_log( {
                    _STEP       = 'call_with_error_control',
                    error_msg   = error_msg,
                    retries     = retries
                } )
            end

            cleaning( list_id, data_id, true )
        else
            break
        end
        retries = retries - 1
    until retries == 0

    if retries == 0 then
        -- Operation returned an error related to insufficient memory.
        -- Start cleaning process and then re-try operation.
        -- Repeat the cycle of operation + memory cleaning a couple of times and return an error / fail,
        -- if it still did not work.
        cleaning_error( error_msg )
    end

    return ret
end


-- determine whether there is a list of data and a collection
if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
    return { -1006, 0, 0, 0 }
end

local reduce_list_items = function ( list_id )
    local max_list_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'max_list_items' ) )
    if max_list_items ~= nil and max_list_items > 0 and redis.call( 'EXISTS', DATA_KEY ) == 1 then
        local list_items        = redis.call( 'HLEN', DATA_KEY )
        local older_allowed     = tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) )
        local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

        while list_items >= max_list_items do
            local removed_data_time, removed_data_id
            list_items = list_items - 1

            if list_items == 0 then
                removed_data_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
                redis.call( 'ZREM', QUEUE_KEY, list_id )
                redis.call( 'DEL', DATA_KEY )
                redis.call( 'HINCRBY', STATUS_KEY, 'lists', -1 )
            else
                removed_data_id, removed_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                removed_data_id     = tonumber( removed_data_id )
                removed_data_time   = tonumber( removed_data_time )
                redis.call( 'ZREM', TIME_KEY, removed_data_id )
                redis.call( 'HDEL', DATA_KEY, removed_data_id )

                local lowest_data_id, lowest_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                redis.call( 'ZADD', QUEUE_KEY, lowest_data_time, lowest_data_id )

                if redis.call( 'HLEN', DATA_KEY ) == 1 then
                    redis.call( 'DEL', TIME_KEY )
                end
            end

            redis.call( 'HINCRBY', STATUS_KEY, 'items', -1 )

            if older_allowed == 0 and ( last_removed_time == 0 or removed_data_time < last_removed_time ) then
                redis.call( 'HSET', STATUS_KEY, 'last_removed_time', removed_data_time )
                last_removed_time = removed_data_time
            end
        end
    end
end

reduce_list_items( list_id )


-- verification of the existence of old data with new data identifier
if redis.call( 'HEXISTS', DATA_KEY, data_id ) == 1 then
    return { -1008, 0, 0, 0 }
end

-- Validating the time of new data, if required
local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

if tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) ) == 0 then
    if redis.call( 'EXISTS', QUEUE_KEY ) == 1 then
        if data_time < last_removed_time then
            return { -1009, 0, 0, 0 }
        end
    end
end

-- deleting obsolete data, if it is necessary
local data_len = #data
_setup( 7, 'insert', data_len ) -- 7 -> is the index of ARGV[7]
cleaning( list_id, data_id, false )

-- add data to the list
-- Remember that the list and the collection can be automatically deleted after the "crowding out" old data

-- the existing data
local items = redis.call( 'HLEN', DATA_KEY )
local existing_id, existing_time
if items == 1 then
    existing_id   = unpack( redis.call( 'HGETALL', DATA_KEY ) )
    existing_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
end

-- actually add data to the list
call_with_error_control( list_id, data_id, 'HSET', DATA_KEY, data_id, data )
data = nil  -- free memory
table.insert( ROLLBACK, 1, { 'HDEL', DATA_KEY, data_id } )

if redis.call( 'HLEN', DATA_KEY ) == 1 then  -- list recreated after cleaning
    redis.call( 'HINCRBY', STATUS_KEY, 'lists', 1 )
    table.insert( ROLLBACK, 1, { 'HINCRBY', STATUS_KEY, 'lists', -1 } )
    call_with_error_control( list_id, data_id, 'ZADD', QUEUE_KEY, data_time, list_id )
else
    if items == 1 then
        call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, existing_time, existing_id )
        table.insert( ROLLBACK, 1, { 'ZREM', TIME_KEY, existing_id } )
    end
    call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, data_time, data_id )
    local oldest_item_time = redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' )[2]
    redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, list_id )
end

-- reflect the addition of new data
redis.call( 'HINCRBY', STATUS_KEY, 'items', 1 )
if data_time < last_removed_time then
    redis.call( 'HSET', STATUS_KEY, 'last_removed_time', 0 )
end

renew_last_cleanup_values()
-- redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', LAST_CLEANUP_BYTES )
INSERTS_SINCE_CLEANING = INSERTS_SINCE_CLEANING + 1
redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
return { -1000, LAST_CLEANUP_ITEMS, REDIS_USED_MEMORY, TOTAL_BYTES_DELETED }

  at lib/Redis/CappedCollection.pm line 3800.

#   Failed test 'no warnings'
#   at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/5.39.3/Test/Builder.pm line 193.
# There were 1 warning(s)
#     Previous test 0 ''
#     Attempt to call undefined import method with arguments ("1.976") via package "Redis" (Perhaps you forgot to load the package?) at lib/Redis/CappedCollection.pm line 78.
#  at lib/Redis/CappedCollection.pm line 78.
# 	Redis::CappedCollection::BEGIN() called at lib/Redis/CappedCollection.pm line 78
# 	eval {...} called at lib/Redis/CappedCollection.pm line 78
# 	require Redis/CappedCollection.pm called at t/00_CappedCollection/14_max_list_items.t line 43
# 	main::BEGIN() called at t/00_CappedCollection/14_max_list_items.t line 43
# 	eval {...} called at t/00_CappedCollection/14_max_list_items.t line 43
# 
# Looks like your test exited with -1 just after 12.
	(in cleanup) Can't call method "current_test" on an undefined value at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Test/NoWarnings/Warning.pm line 55 during global destruction.
t/00_CappedCollection/14_max_list_items.t .............. 
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 1/12 subtests 
[EVAL] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.

Lua script 'insert':
-- adding data to a list of collections
collectgarbage( 'stop' )

local coll_name             = ARGV[2]
local list_id               = ARGV[3]
local data_id               = ARGV[4]
local data                  = ARGV[5]
local data_time             = tonumber( ARGV[6] )

-- key data storage structures
local NAMESPACE  = 'C'
local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
local STATUS_KEY = NAMESPACE..':S:'..coll_name
local DATA_KEYS  = NAMESPACE..':D:'..coll_name
local TIME_KEYS  = NAMESPACE..':T:'..coll_name
local DATA_KEY   = DATA_KEYS..':'..list_id
local TIME_KEY   = TIME_KEYS..':'..list_id
local REDIS_USED_MEMORY                     = 0
local REDIS_MAXMEMORY                       = 0
local ROLLBACK                              = {}
local TOTAL_BYTES_DELETED                   = 0
local LAST_CLEANUP_BYTES_MUST_BE_DELETED    = 0
local LAST_CLEANUP_ITEMS                    = 0
local LAST_OPERATION                        = ''
local INSERTS_SINCE_CLEANING                = 0
local UPDATES_SINCE_CLEANING                = 0

local _DEBUG, _DEBUG_ID, _FUNC_NAME

local table_merge = function ( t1, t2 )
    for key, val in pairs( t2 ) do
        t1[ key ] = val
    end
end

local _debug_log = function ( values )
    table_merge( values, {
        _DEBUG_ID                   = _DEBUG_ID,
        _FUNC_NAME                  = _FUNC_NAME,
        REDIS_USED_MEMORY           = REDIS_USED_MEMORY,
        list_id                     = list_id,
        data_id                     = data_id,
        data_len                    = #data,
        ROLLBACK                    = ROLLBACK
    } )

    redis.log( redis.LOG_NOTICE, _FUNC_NAME..': '..cjson.encode( values ) )
end

local _setup = function ( argv_idx, func_name, extra_data_len )
    LAST_OPERATION = func_name

    REDIS_MAXMEMORY = tonumber( redis.call( 'CONFIG', 'GET', 'maxmemory' )[2] )
    local memory_reserve_coefficient = 1 + tonumber( redis.call( 'HGET', STATUS_KEY, 'memory_reserve' ) )

    local redis_used_memory = string.match(
        redis.call( 'INFO', 'memory' ),
        'used_memory:(%d+)'
    )
    REDIS_USED_MEMORY = tonumber( redis_used_memory )
    LAST_CLEANUP_BYTES_MUST_BE_DELETED = REDIS_USED_MEMORY + extra_data_len - math.floor( REDIS_MAXMEMORY / memory_reserve_coefficient )
    if LAST_CLEANUP_BYTES_MUST_BE_DELETED < 0 or REDIS_MAXMEMORY == 0 then
        LAST_CLEANUP_BYTES_MUST_BE_DELETED = 0
    end

    INSERTS_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'inserts_since_cleaning' ) )
    if INSERTS_SINCE_CLEANING == nil then
        INSERTS_SINCE_CLEANING = 0
    end
    UPDATES_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'updates_since_cleaning' ) )
    if UPDATES_SINCE_CLEANING == nil then
        UPDATES_SINCE_CLEANING = 0
    end

    _FUNC_NAME  = func_name
    _DEBUG_ID   = tonumber( ARGV[ argv_idx ] )
    if _DEBUG_ID ~= 0 then
        _DEBUG = true
        _debug_log( {
            _STEP                   = '_setup',
            maxmemory               = REDIS_MAXMEMORY,
            redis_used_memory       = REDIS_USED_MEMORY,
            bytes_must_be_deleted   = LAST_CLEANUP_BYTES_MUST_BE_DELETED
        } )
    else
        _DEBUG = false
    end
end

local renew_last_cleanup_values = function ()
    if LAST_CLEANUP_ITEMS > 0 then
        local last_cleanup_bytes_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_bytes' ) )
        local last_cleanup_items_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_items' ) )
        if #last_cleanup_bytes_values >= 10 then
            table.remove ( last_cleanup_bytes_values, 1 )
            table.remove ( last_cleanup_items_values, 1 )
        end
        table.insert( last_cleanup_bytes_values, TOTAL_BYTES_DELETED )
        table.insert( last_cleanup_items_values, LAST_CLEANUP_ITEMS )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', cjson.encode( last_cleanup_bytes_values ) )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_items', cjson.encode( last_cleanup_items_values ) )
    end
end

local cleaning_error = function ( error_msg )
    if _DEBUG then
        _debug_log( {
            _STEP       = 'cleaning_error',
            error_msg   = error_msg
        } )
    end

    for _, rollback_command in ipairs( ROLLBACK ) do
        redis.call( unpack( rollback_command ) )
    end
    -- Level 2 points the error to where the function that called error was called
    renew_last_cleanup_values()
    error( error_msg, 2 )
end

-- deleting old data to make room for new data
local cleaning = function ( list_id, data_id, is_cleaning_needed )
    local coll_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'items' ) )

    if coll_items == 0 then
        return
    end

    local cleanup_bytes = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_bytes' ) )
    local cleanup_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_items' ) )

    if not ( is_cleaning_needed or LAST_CLEANUP_BYTES_MUST_BE_DELETED > 0 ) then
        return
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Before cleanings',
            coll_items      = coll_items,
            cleanup_items   = cleanup_items,
            cleanup_bytes   = cleanup_bytes,
        } )
    end

    local items_deleted = 0
    local bytes_deleted = 0
    local lists_deleted = 0

    repeat
        if redis.call( 'EXISTS', QUEUE_KEY ) == 0 then
            -- Level 2 points the error to where the function that called error was called
            renew_last_cleanup_values()
            error( 'Queue key does not exist', 2 )
        end

        -- continue to work with the to_delete (requiring removal) data and for them using the prefix 'to_delete_'
        local to_delete_list_id, last_removed_time = unpack( redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' ) )
        last_removed_time = tonumber( last_removed_time )
        -- key data structures
        local to_delete_data_key = DATA_KEYS..':'..to_delete_list_id
        local to_delete_time_key = TIME_KEYS..':'..to_delete_list_id

        -- looking for the oldest data
        local to_delete_data_id
        local to_delete_data
        local items = redis.call( 'HLEN', to_delete_data_key )
-- #FIXME: to_delete_data -> to_delete_data_len
-- HSTRLEN key field
-- Available since 3.2.0.
        if items == 1 then
            to_delete_data_id, to_delete_data = unpack( redis.call( 'HGETALL', to_delete_data_key ) )
        else
            to_delete_data_id = unpack( redis.call( 'ZRANGE', to_delete_time_key, 0, 0 ) )
            to_delete_data    = redis.call( 'HGET', to_delete_data_key, to_delete_data_id )
        end
        local to_delete_data_len = #to_delete_data
        to_delete_data = nil    -- free memory

        if _DEBUG then
            _debug_log( {
                _STEP               = 'Before real cleaning',
                items               = items,
                to_delete_list_id   = to_delete_list_id,
                to_delete_data_id   = to_delete_data_id,
                to_delete_data_len  = to_delete_data_len
            } )
        end

        if to_delete_list_id == list_id and to_delete_data_id == data_id then
            if items_deleted == 0 then
                -- Its first attempt to clean the conflicting data, for which the primary operation executed.
                -- In this case, we are roll back operations that have been made before, and immediately return an error,
                -- shifting the handling of such errors on the client.
                cleaning_error( "OOM Command not allowed when used memory > 'maxmemory'." )
            end
            break
        end

        if _DEBUG then
            _debug_log( {
                _STEP           = 'Why it is cleared?',
                coll_items      = coll_items,
                cleanup_bytes   = cleanup_bytes,
                cleanup_items   = cleanup_items,
                items_deleted   = items_deleted,
                bytes_deleted   = bytes_deleted,
            } )
        end

        -- actually remove the oldest item
        redis.call( 'HDEL', to_delete_data_key, to_delete_data_id )
        items = items - 1
        coll_items = coll_items - 1

        redis.call( 'HSET', STATUS_KEY, 'last_removed_time', last_removed_time )

        if items > 0 then
            -- If the list has more data
            redis.call( 'ZREM', to_delete_time_key, to_delete_data_id )
            local oldest_item_time = tonumber( redis.call( 'ZRANGE', to_delete_time_key, 0, 0, 'WITHSCORES' )[2] )
            redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, to_delete_list_id )

            if items == 1 then
                redis.call( 'DEL', to_delete_time_key )
            end
        else
            -- If the list does not have data
            -- remove the name of the list from the queue collection
            redis.call( 'ZREM', QUEUE_KEY, to_delete_list_id )
            lists_deleted = lists_deleted + 1
        end

        -- amount of data collection decreased
        items_deleted = items_deleted + 1
        bytes_deleted = bytes_deleted + to_delete_data_len

        if _DEBUG then
            _debug_log( {
                _STEP               = 'After real cleaning',
                to_delete_data_key  = to_delete_data_key,
                to_delete_data_id   = to_delete_data_id,
                items               = items,
                items_deleted       = items_deleted,
                bytes_deleted       = bytes_deleted,
            } )
        end

    until
            coll_items <= 0
        or (
                items_deleted >= cleanup_items
            and bytes_deleted >= cleanup_bytes
        )

    if items_deleted > 0 then
        -- reduce the number of items in the collection
        redis.call( 'HINCRBY', STATUS_KEY, 'items', -items_deleted )
    end
    if lists_deleted > 0 then
        -- reduce the number of lists stored in a collection
        redis.call( 'HINCRBY',  STATUS_KEY, 'lists', -lists_deleted )
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Cleaning finished',
            items_deleted   = items_deleted,
            bytes_deleted   = bytes_deleted,
            lists_deleted   = lists_deleted,
            cleanup_bytes   = cleanup_bytes,
            cleanup_items   = cleanup_items,
            coll_items      = coll_items,
        } )
    end

    if bytes_deleted > 0 then
        if TOTAL_BYTES_DELETED == 0 then    -- first cleaning
            INSERTS_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
            UPDATES_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'updates_since_cleaning', UPDATES_SINCE_CLEANING )
        end

        TOTAL_BYTES_DELETED = TOTAL_BYTES_DELETED + bytes_deleted
        LAST_CLEANUP_ITEMS = LAST_CLEANUP_ITEMS + items_deleted

        -- information values
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_maxmemory', REDIS_MAXMEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_used_memory', REDIS_USED_MEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_bytes_must_be_deleted', LAST_CLEANUP_BYTES_MUST_BE_DELETED )
    end
end

local call_with_error_control = function ( list_id, data_id, ... )
    local retries = 2
    local ret
    local error_msg = '<Empty error message>'
    repeat
        ret = redis.pcall( ... )
        if type( ret ) == 'table' and ret.err ~= nil then
            error_msg   = "OOM Command not allowed when used memory > 'maxmemory'. - " .. ret.err .. " (call = " .. cjson.encode( { ... } ) .. ")"
            if _DEBUG then
                _debug_log( {
                    _STEP       = 'call_with_error_control',
                    error_msg   = error_msg,
                    retries     = retries
                } )
            end

            cleaning( list_id, data_id, true )
        else
            break
        end
        retries = retries - 1
    until retries == 0

    if retries == 0 then
        -- Operation returned an error related to insufficient memory.
        -- Start cleaning process and then re-try operation.
        -- Repeat the cycle of operation + memory cleaning a couple of times and return an error / fail,
        -- if it still did not work.
        cleaning_error( error_msg )
    end

    return ret
end


-- determine whether there is a list of data and a collection
if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
    return { -1006, 0, 0, 0 }
end

local reduce_list_items = function ( list_id )
    local max_list_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'max_list_items' ) )
    if max_list_items ~= nil and max_list_items > 0 and redis.call( 'EXISTS', DATA_KEY ) == 1 then
        local list_items        = redis.call( 'HLEN', DATA_KEY )
        local older_allowed     = tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) )
        local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

        while list_items >= max_list_items do
            local removed_data_time, removed_data_id
            list_items = list_items - 1

            if list_items == 0 then
                removed_data_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
                redis.call( 'ZREM', QUEUE_KEY, list_id )
                redis.call( 'DEL', DATA_KEY )
                redis.call( 'HINCRBY', STATUS_KEY, 'lists', -1 )
            else
                removed_data_id, removed_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                removed_data_id     = tonumber( removed_data_id )
                removed_data_time   = tonumber( removed_data_time )
                redis.call( 'ZREM', TIME_KEY, removed_data_id )
                redis.call( 'HDEL', DATA_KEY, removed_data_id )

                local lowest_data_id, lowest_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                redis.call( 'ZADD', QUEUE_KEY, lowest_data_time, lowest_data_id )

                if redis.call( 'HLEN', DATA_KEY ) == 1 then
                    redis.call( 'DEL', TIME_KEY )
                end
            end

            redis.call( 'HINCRBY', STATUS_KEY, 'items', -1 )

            if older_allowed == 0 and ( last_removed_time == 0 or removed_data_time < last_removed_time ) then
                redis.call( 'HSET', STATUS_KEY, 'last_removed_time', removed_data_time )
                last_removed_time = removed_data_time
            end
        end
    end
end

reduce_list_items( list_id )


-- verification of the existence of old data with new data identifier
if redis.call( 'HEXISTS', DATA_KEY, data_id ) == 1 then
    return { -1008, 0, 0, 0 }
end

-- Validating the time of new data, if required
local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

if tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) ) == 0 then
    if redis.call( 'EXISTS', QUEUE_KEY ) == 1 then
        if data_time < last_removed_time then
            return { -1009, 0, 0, 0 }
        end
    end
end

-- deleting obsolete data, if it is necessary
local data_len = #data
_setup( 7, 'insert', data_len ) -- 7 -> is the index of ARGV[7]
cleaning( list_id, data_id, false )

-- add data to the list
-- Remember that the list and the collection can be automatically deleted after the "crowding out" old data

-- the existing data
local items = redis.call( 'HLEN', DATA_KEY )
local existing_id, existing_time
if items == 1 then
    existing_id   = unpack( redis.call( 'HGETALL', DATA_KEY ) )
    existing_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
end

-- actually add data to the list
call_with_error_control( list_id, data_id, 'HSET', DATA_KEY, data_id, data )
data = nil  -- free memory
table.insert( ROLLBACK, 1, { 'HDEL', DATA_KEY, data_id } )

if redis.call( 'HLEN', DATA_KEY ) == 1 then  -- list recreated after cleaning
    redis.call( 'HINCRBY', STATUS_KEY, 'lists', 1 )
    table.insert( ROLLBACK, 1, { 'HINCRBY', STATUS_KEY, 'lists', -1 } )
    call_with_error_control( list_id, data_id, 'ZADD', QUEUE_KEY, data_time, list_id )
else
    if items == 1 then
        call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, existing_time, existing_id )
        table.insert( ROLLBACK, 1, { 'ZREM', TIME_KEY, existing_id } )
    end
    call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, data_time, data_id )
    local oldest_item_time = redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' )[2]
    redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, list_id )
end

-- reflect the addition of new data
redis.call( 'HINCRBY', STATUS_KEY, 'items', 1 )
if data_time < last_removed_time then
    redis.call( 'HSET', STATUS_KEY, 'last_removed_time', 0 )
end

renew_last_cleanup_values()
-- redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', LAST_CLEANUP_BYTES )
INSERTS_SINCE_CLEANING = INSERTS_SINCE_CLEANING + 1
redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
return { -1000, LAST_CLEANUP_ITEMS, REDIS_USED_MEMORY, TOTAL_BYTES_DELETED }

  at lib/Redis/CappedCollection.pm line 3800.

#   Failed test 'no warnings'
#   at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/5.39.3/Test/Builder.pm line 193.
# There were 1 warning(s)
#     Previous test 0 ''
#     Attempt to call undefined import method with arguments ("1.976") via package "Redis" (Perhaps you forgot to load the package?) at lib/Redis/CappedCollection.pm line 78.
#  at lib/Redis/CappedCollection.pm line 78.
# 	Redis::CappedCollection::BEGIN() called at lib/Redis/CappedCollection.pm line 78
# 	eval {...} called at lib/Redis/CappedCollection.pm line 78
# 	require Redis/CappedCollection.pm called at t/00_CappedCollection/15_cleanup_bytes.t line 39
# 	main::BEGIN() called at t/00_CappedCollection/15_cleanup_bytes.t line 39
# 	eval {...} called at t/00_CappedCollection/15_cleanup_bytes.t line 39
# 
# Looks like your test exited with -1 just after 14.
	(in cleanup) Can't call method "current_test" on an undefined value at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Test/NoWarnings/Warning.pm line 55 during global destruction.
t/00_CappedCollection/15_cleanup_bytes.t ............... 
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 1/14 subtests 
[EVAL] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.

Lua script 'insert':
-- adding data to a list of collections
collectgarbage( 'stop' )

local coll_name             = ARGV[2]
local list_id               = ARGV[3]
local data_id               = ARGV[4]
local data                  = ARGV[5]
local data_time             = tonumber( ARGV[6] )

-- key data storage structures
local NAMESPACE  = 'C'
local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
local STATUS_KEY = NAMESPACE..':S:'..coll_name
local DATA_KEYS  = NAMESPACE..':D:'..coll_name
local TIME_KEYS  = NAMESPACE..':T:'..coll_name
local DATA_KEY   = DATA_KEYS..':'..list_id
local TIME_KEY   = TIME_KEYS..':'..list_id
local REDIS_USED_MEMORY                     = 0
local REDIS_MAXMEMORY                       = 0
local ROLLBACK                              = {}
local TOTAL_BYTES_DELETED                   = 0
local LAST_CLEANUP_BYTES_MUST_BE_DELETED    = 0
local LAST_CLEANUP_ITEMS                    = 0
local LAST_OPERATION                        = ''
local INSERTS_SINCE_CLEANING                = 0
local UPDATES_SINCE_CLEANING                = 0

local _DEBUG, _DEBUG_ID, _FUNC_NAME

local table_merge = function ( t1, t2 )
    for key, val in pairs( t2 ) do
        t1[ key ] = val
    end
end

local _debug_log = function ( values )
    table_merge( values, {
        _DEBUG_ID                   = _DEBUG_ID,
        _FUNC_NAME                  = _FUNC_NAME,
        REDIS_USED_MEMORY           = REDIS_USED_MEMORY,
        list_id                     = list_id,
        data_id                     = data_id,
        data_len                    = #data,
        ROLLBACK                    = ROLLBACK
    } )

    redis.log( redis.LOG_NOTICE, _FUNC_NAME..': '..cjson.encode( values ) )
end

local _setup = function ( argv_idx, func_name, extra_data_len )
    LAST_OPERATION = func_name

    REDIS_MAXMEMORY = tonumber( redis.call( 'CONFIG', 'GET', 'maxmemory' )[2] )
    local memory_reserve_coefficient = 1 + tonumber( redis.call( 'HGET', STATUS_KEY, 'memory_reserve' ) )

    local redis_used_memory = string.match(
        redis.call( 'INFO', 'memory' ),
        'used_memory:(%d+)'
    )
    REDIS_USED_MEMORY = tonumber( redis_used_memory )
    LAST_CLEANUP_BYTES_MUST_BE_DELETED = REDIS_USED_MEMORY + extra_data_len - math.floor( REDIS_MAXMEMORY / memory_reserve_coefficient )
    if LAST_CLEANUP_BYTES_MUST_BE_DELETED < 0 or REDIS_MAXMEMORY == 0 then
        LAST_CLEANUP_BYTES_MUST_BE_DELETED = 0
    end

    INSERTS_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'inserts_since_cleaning' ) )
    if INSERTS_SINCE_CLEANING == nil then
        INSERTS_SINCE_CLEANING = 0
    end
    UPDATES_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'updates_since_cleaning' ) )
    if UPDATES_SINCE_CLEANING == nil then
        UPDATES_SINCE_CLEANING = 0
    end

    _FUNC_NAME  = func_name
    _DEBUG_ID   = tonumber( ARGV[ argv_idx ] )
    if _DEBUG_ID ~= 0 then
        _DEBUG = true
        _debug_log( {
            _STEP                   = '_setup',
            maxmemory               = REDIS_MAXMEMORY,
            redis_used_memory       = REDIS_USED_MEMORY,
            bytes_must_be_deleted   = LAST_CLEANUP_BYTES_MUST_BE_DELETED
        } )
    else
        _DEBUG = false
    end
end

local renew_last_cleanup_values = function ()
    if LAST_CLEANUP_ITEMS > 0 then
        local last_cleanup_bytes_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_bytes' ) )
        local last_cleanup_items_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_items' ) )
        if #last_cleanup_bytes_values >= 10 then
            table.remove ( last_cleanup_bytes_values, 1 )
            table.remove ( last_cleanup_items_values, 1 )
        end
        table.insert( last_cleanup_bytes_values, TOTAL_BYTES_DELETED )
        table.insert( last_cleanup_items_values, LAST_CLEANUP_ITEMS )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', cjson.encode( last_cleanup_bytes_values ) )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_items', cjson.encode( last_cleanup_items_values ) )
    end
end

local cleaning_error = function ( error_msg )
    if _DEBUG then
        _debug_log( {
            _STEP       = 'cleaning_error',
            error_msg   = error_msg
        } )
    end

    for _, rollback_command in ipairs( ROLLBACK ) do
        redis.call( unpack( rollback_command ) )
    end
    -- Level 2 points the error to where the function that called error was called
    renew_last_cleanup_values()
    error( error_msg, 2 )
end

-- deleting old data to make room for new data
local cleaning = function ( list_id, data_id, is_cleaning_needed )
    local coll_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'items' ) )

    if coll_items == 0 then
        return
    end

    local cleanup_bytes = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_bytes' ) )
    local cleanup_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_items' ) )

    if not ( is_cleaning_needed or LAST_CLEANUP_BYTES_MUST_BE_DELETED > 0 ) then
        return
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Before cleanings',
            coll_items      = coll_items,
            cleanup_items   = cleanup_items,
            cleanup_bytes   = cleanup_bytes,
        } )
    end

    local items_deleted = 0
    local bytes_deleted = 0
    local lists_deleted = 0

    repeat
        if redis.call( 'EXISTS', QUEUE_KEY ) == 0 then
            -- Level 2 points the error to where the function that called error was called
            renew_last_cleanup_values()
            error( 'Queue key does not exist', 2 )
        end

        -- continue to work with the to_delete (requiring removal) data and for them using the prefix 'to_delete_'
        local to_delete_list_id, last_removed_time = unpack( redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' ) )
        last_removed_time = tonumber( last_removed_time )
        -- key data structures
        local to_delete_data_key = DATA_KEYS..':'..to_delete_list_id
        local to_delete_time_key = TIME_KEYS..':'..to_delete_list_id

        -- looking for the oldest data
        local to_delete_data_id
        local to_delete_data
        local items = redis.call( 'HLEN', to_delete_data_key )
-- #FIXME: to_delete_data -> to_delete_data_len
-- HSTRLEN key field
-- Available since 3.2.0.
        if items == 1 then
            to_delete_data_id, to_delete_data = unpack( redis.call( 'HGETALL', to_delete_data_key ) )
        else
            to_delete_data_id = unpack( redis.call( 'ZRANGE', to_delete_time_key, 0, 0 ) )
            to_delete_data    = redis.call( 'HGET', to_delete_data_key, to_delete_data_id )
        end
        local to_delete_data_len = #to_delete_data
        to_delete_data = nil    -- free memory

        if _DEBUG then
            _debug_log( {
                _STEP               = 'Before real cleaning',
                items               = items,
                to_delete_list_id   = to_delete_list_id,
                to_delete_data_id   = to_delete_data_id,
                to_delete_data_len  = to_delete_data_len
            } )
        end

        if to_delete_list_id == list_id and to_delete_data_id == data_id then
            if items_deleted == 0 then
                -- Its first attempt to clean the conflicting data, for which the primary operation executed.
                -- In this case, we are roll back operations that have been made before, and immediately return an error,
                -- shifting the handling of such errors on the client.
                cleaning_error( "OOM Command not allowed when used memory > 'maxmemory'." )
            end
            break
        end

        if _DEBUG then
            _debug_log( {
                _STEP           = 'Why it is cleared?',
                coll_items      = coll_items,
                cleanup_bytes   = cleanup_bytes,
                cleanup_items   = cleanup_items,
                items_deleted   = items_deleted,
                bytes_deleted   = bytes_deleted,
            } )
        end

        -- actually remove the oldest item
        redis.call( 'HDEL', to_delete_data_key, to_delete_data_id )
        items = items - 1
        coll_items = coll_items - 1

        redis.call( 'HSET', STATUS_KEY, 'last_removed_time', last_removed_time )

        if items > 0 then
            -- If the list has more data
            redis.call( 'ZREM', to_delete_time_key, to_delete_data_id )
            local oldest_item_time = tonumber( redis.call( 'ZRANGE', to_delete_time_key, 0, 0, 'WITHSCORES' )[2] )
            redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, to_delete_list_id )

            if items == 1 then
                redis.call( 'DEL', to_delete_time_key )
            end
        else
            -- If the list does not have data
            -- remove the name of the list from the queue collection
            redis.call( 'ZREM', QUEUE_KEY, to_delete_list_id )
            lists_deleted = lists_deleted + 1
        end

        -- amount of data collection decreased
        items_deleted = items_deleted + 1
        bytes_deleted = bytes_deleted + to_delete_data_len

        if _DEBUG then
            _debug_log( {
                _STEP               = 'After real cleaning',
                to_delete_data_key  = to_delete_data_key,
                to_delete_data_id   = to_delete_data_id,
                items               = items,
                items_deleted       = items_deleted,
                bytes_deleted       = bytes_deleted,
            } )
        end

    until
            coll_items <= 0
        or (
                items_deleted >= cleanup_items
            and bytes_deleted >= cleanup_bytes
        )

    if items_deleted > 0 then
        -- reduce the number of items in the collection
        redis.call( 'HINCRBY', STATUS_KEY, 'items', -items_deleted )
    end
    if lists_deleted > 0 then
        -- reduce the number of lists stored in a collection
        redis.call( 'HINCRBY',  STATUS_KEY, 'lists', -lists_deleted )
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Cleaning finished',
            items_deleted   = items_deleted,
            bytes_deleted   = bytes_deleted,
            lists_deleted   = lists_deleted,
            cleanup_bytes   = cleanup_bytes,
            cleanup_items   = cleanup_items,
            coll_items      = coll_items,
        } )
    end

    if bytes_deleted > 0 then
        if TOTAL_BYTES_DELETED == 0 then    -- first cleaning
            INSERTS_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
            UPDATES_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'updates_since_cleaning', UPDATES_SINCE_CLEANING )
        end

        TOTAL_BYTES_DELETED = TOTAL_BYTES_DELETED + bytes_deleted
        LAST_CLEANUP_ITEMS = LAST_CLEANUP_ITEMS + items_deleted

        -- information values
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_maxmemory', REDIS_MAXMEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_used_memory', REDIS_USED_MEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_bytes_must_be_deleted', LAST_CLEANUP_BYTES_MUST_BE_DELETED )
    end
end

local call_with_error_control = function ( list_id, data_id, ... )
    local retries = 2
    local ret
    local error_msg = '<Empty error message>'
    repeat
        ret = redis.pcall( ... )
        if type( ret ) == 'table' and ret.err ~= nil then
            error_msg   = "OOM Command not allowed when used memory > 'maxmemory'. - " .. ret.err .. " (call = " .. cjson.encode( { ... } ) .. ")"
            if _DEBUG then
                _debug_log( {
                    _STEP       = 'call_with_error_control',
                    error_msg   = error_msg,
                    retries     = retries
                } )
            end

            cleaning( list_id, data_id, true )
        else
            break
        end
        retries = retries - 1
    until retries == 0

    if retries == 0 then
        -- Operation returned an error related to insufficient memory.
        -- Start cleaning process and then re-try operation.
        -- Repeat the cycle of operation + memory cleaning a couple of times and return an error / fail,
        -- if it still did not work.
        cleaning_error( error_msg )
    end

    return ret
end


-- determine whether there is a list of data and a collection
if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
    return { -1006, 0, 0, 0 }
end

local reduce_list_items = function ( list_id )
    local max_list_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'max_list_items' ) )
    if max_list_items ~= nil and max_list_items > 0 and redis.call( 'EXISTS', DATA_KEY ) == 1 then
        local list_items        = redis.call( 'HLEN', DATA_KEY )
        local older_allowed     = tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) )
        local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

        while list_items >= max_list_items do
            local removed_data_time, removed_data_id
            list_items = list_items - 1

            if list_items == 0 then
                removed_data_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
                redis.call( 'ZREM', QUEUE_KEY, list_id )
                redis.call( 'DEL', DATA_KEY )
                redis.call( 'HINCRBY', STATUS_KEY, 'lists', -1 )
            else
                removed_data_id, removed_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                removed_data_id     = tonumber( removed_data_id )
                removed_data_time   = tonumber( removed_data_time )
                redis.call( 'ZREM', TIME_KEY, removed_data_id )
                redis.call( 'HDEL', DATA_KEY, removed_data_id )

                local lowest_data_id, lowest_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                redis.call( 'ZADD', QUEUE_KEY, lowest_data_time, lowest_data_id )

                if redis.call( 'HLEN', DATA_KEY ) == 1 then
                    redis.call( 'DEL', TIME_KEY )
                end
            end

            redis.call( 'HINCRBY', STATUS_KEY, 'items', -1 )

            if older_allowed == 0 and ( last_removed_time == 0 or removed_data_time < last_removed_time ) then
                redis.call( 'HSET', STATUS_KEY, 'last_removed_time', removed_data_time )
                last_removed_time = removed_data_time
            end
        end
    end
end

reduce_list_items( list_id )


-- verification of the existence of old data with new data identifier
if redis.call( 'HEXISTS', DATA_KEY, data_id ) == 1 then
    return { -1008, 0, 0, 0 }
end

-- Validating the time of new data, if required
local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

if tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) ) == 0 then
    if redis.call( 'EXISTS', QUEUE_KEY ) == 1 then
        if data_time < last_removed_time then
            return { -1009, 0, 0, 0 }
        end
    end
end

-- deleting obsolete data, if it is necessary
local data_len = #data
_setup( 7, 'insert', data_len ) -- 7 -> is the index of ARGV[7]
cleaning( list_id, data_id, false )

-- add data to the list
-- Remember that the list and the collection can be automatically deleted after the "crowding out" old data

-- the existing data
local items = redis.call( 'HLEN', DATA_KEY )
local existing_id, existing_time
if items == 1 then
    existing_id   = unpack( redis.call( 'HGETALL', DATA_KEY ) )
    existing_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
end

-- actually add data to the list
call_with_error_control( list_id, data_id, 'HSET', DATA_KEY, data_id, data )
data = nil  -- free memory
table.insert( ROLLBACK, 1, { 'HDEL', DATA_KEY, data_id } )

if redis.call( 'HLEN', DATA_KEY ) == 1 then  -- list recreated after cleaning
    redis.call( 'HINCRBY', STATUS_KEY, 'lists', 1 )
    table.insert( ROLLBACK, 1, { 'HINCRBY', STATUS_KEY, 'lists', -1 } )
    call_with_error_control( list_id, data_id, 'ZADD', QUEUE_KEY, data_time, list_id )
else
    if items == 1 then
        call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, existing_time, existing_id )
        table.insert( ROLLBACK, 1, { 'ZREM', TIME_KEY, existing_id } )
    end
    call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, data_time, data_id )
    local oldest_item_time = redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' )[2]
    redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, list_id )
end

-- reflect the addition of new data
redis.call( 'HINCRBY', STATUS_KEY, 'items', 1 )
if data_time < last_removed_time then
    redis.call( 'HSET', STATUS_KEY, 'last_removed_time', 0 )
end

renew_last_cleanup_values()
-- redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', LAST_CLEANUP_BYTES )
INSERTS_SINCE_CLEANING = INSERTS_SINCE_CLEANING + 1
redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
return { -1000, LAST_CLEANUP_ITEMS, REDIS_USED_MEMORY, TOTAL_BYTES_DELETED }

  at lib/Redis/CappedCollection.pm line 3800.

#   Failed test 'no warnings'
#   at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/5.39.3/Test/Builder.pm line 193.
# There were 1 warning(s)
#     Previous test 0 ''
#     Attempt to call undefined import method with arguments ("1.976") via package "Redis" (Perhaps you forgot to load the package?) at lib/Redis/CappedCollection.pm line 78.
#  at lib/Redis/CappedCollection.pm line 78.
# 	Redis::CappedCollection::BEGIN() called at lib/Redis/CappedCollection.pm line 78
# 	eval {...} called at lib/Redis/CappedCollection.pm line 78
# 	require Redis/CappedCollection.pm called at t/00_CappedCollection/17_cleanup_items.t line 42
# 	main::BEGIN() called at t/00_CappedCollection/17_cleanup_items.t line 42
# 	eval {...} called at t/00_CappedCollection/17_cleanup_items.t line 42
# 
# Looks like your test exited with -1 just after 26.
	(in cleanup) Can't call method "current_test" on an undefined value at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Test/NoWarnings/Warning.pm line 55 during global destruction.
t/00_CappedCollection/17_cleanup_items.t ............... 
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 1/26 subtests 
[EVAL] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.

Lua script 'insert':
-- adding data to a list of collections
collectgarbage( 'stop' )

local coll_name             = ARGV[2]
local list_id               = ARGV[3]
local data_id               = ARGV[4]
local data                  = ARGV[5]
local data_time             = tonumber( ARGV[6] )

-- key data storage structures
local NAMESPACE  = 'C'
local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
local STATUS_KEY = NAMESPACE..':S:'..coll_name
local DATA_KEYS  = NAMESPACE..':D:'..coll_name
local TIME_KEYS  = NAMESPACE..':T:'..coll_name
local DATA_KEY   = DATA_KEYS..':'..list_id
local TIME_KEY   = TIME_KEYS..':'..list_id
local REDIS_USED_MEMORY                     = 0
local REDIS_MAXMEMORY                       = 0
local ROLLBACK                              = {}
local TOTAL_BYTES_DELETED                   = 0
local LAST_CLEANUP_BYTES_MUST_BE_DELETED    = 0
local LAST_CLEANUP_ITEMS                    = 0
local LAST_OPERATION                        = ''
local INSERTS_SINCE_CLEANING                = 0
local UPDATES_SINCE_CLEANING                = 0

local _DEBUG, _DEBUG_ID, _FUNC_NAME

local table_merge = function ( t1, t2 )
    for key, val in pairs( t2 ) do
        t1[ key ] = val
    end
end

local _debug_log = function ( values )
    table_merge( values, {
        _DEBUG_ID                   = _DEBUG_ID,
        _FUNC_NAME                  = _FUNC_NAME,
        REDIS_USED_MEMORY           = REDIS_USED_MEMORY,
        list_id                     = list_id,
        data_id                     = data_id,
        data_len                    = #data,
        ROLLBACK                    = ROLLBACK
    } )

    redis.log( redis.LOG_NOTICE, _FUNC_NAME..': '..cjson.encode( values ) )
end

local _setup = function ( argv_idx, func_name, extra_data_len )
    LAST_OPERATION = func_name

    REDIS_MAXMEMORY = tonumber( redis.call( 'CONFIG', 'GET', 'maxmemory' )[2] )
    local memory_reserve_coefficient = 1 + tonumber( redis.call( 'HGET', STATUS_KEY, 'memory_reserve' ) )

    local redis_used_memory = string.match(
        redis.call( 'INFO', 'memory' ),
        'used_memory:(%d+)'
    )
    REDIS_USED_MEMORY = tonumber( redis_used_memory )
    LAST_CLEANUP_BYTES_MUST_BE_DELETED = REDIS_USED_MEMORY + extra_data_len - math.floor( REDIS_MAXMEMORY / memory_reserve_coefficient )
    if LAST_CLEANUP_BYTES_MUST_BE_DELETED < 0 or REDIS_MAXMEMORY == 0 then
        LAST_CLEANUP_BYTES_MUST_BE_DELETED = 0
    end

    INSERTS_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'inserts_since_cleaning' ) )
    if INSERTS_SINCE_CLEANING == nil then
        INSERTS_SINCE_CLEANING = 0
    end
    UPDATES_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'updates_since_cleaning' ) )
    if UPDATES_SINCE_CLEANING == nil then
        UPDATES_SINCE_CLEANING = 0
    end

    _FUNC_NAME  = func_name
    _DEBUG_ID   = tonumber( ARGV[ argv_idx ] )
    if _DEBUG_ID ~= 0 then
        _DEBUG = true
        _debug_log( {
            _STEP                   = '_setup',
            maxmemory               = REDIS_MAXMEMORY,
            redis_used_memory       = REDIS_USED_MEMORY,
            bytes_must_be_deleted   = LAST_CLEANUP_BYTES_MUST_BE_DELETED
        } )
    else
        _DEBUG = false
    end
end

local renew_last_cleanup_values = function ()
    if LAST_CLEANUP_ITEMS > 0 then
        local last_cleanup_bytes_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_bytes' ) )
        local last_cleanup_items_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_items' ) )
        if #last_cleanup_bytes_values >= 10 then
            table.remove ( last_cleanup_bytes_values, 1 )
            table.remove ( last_cleanup_items_values, 1 )
        end
        table.insert( last_cleanup_bytes_values, TOTAL_BYTES_DELETED )
        table.insert( last_cleanup_items_values, LAST_CLEANUP_ITEMS )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', cjson.encode( last_cleanup_bytes_values ) )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_items', cjson.encode( last_cleanup_items_values ) )
    end
end

local cleaning_error = function ( error_msg )
    if _DEBUG then
        _debug_log( {
            _STEP       = 'cleaning_error',
            error_msg   = error_msg
        } )
    end

    for _, rollback_command in ipairs( ROLLBACK ) do
        redis.call( unpack( rollback_command ) )
    end
    -- Level 2 points the error to where the function that called error was called
    renew_last_cleanup_values()
    error( error_msg, 2 )
end

-- deleting old data to make room for new data
local cleaning = function ( list_id, data_id, is_cleaning_needed )
    local coll_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'items' ) )

    if coll_items == 0 then
        return
    end

    local cleanup_bytes = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_bytes' ) )
    local cleanup_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_items' ) )

    if not ( is_cleaning_needed or LAST_CLEANUP_BYTES_MUST_BE_DELETED > 0 ) then
        return
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Before cleanings',
            coll_items      = coll_items,
            cleanup_items   = cleanup_items,
            cleanup_bytes   = cleanup_bytes,
        } )
    end

    local items_deleted = 0
    local bytes_deleted = 0
    local lists_deleted = 0

    repeat
        if redis.call( 'EXISTS', QUEUE_KEY ) == 0 then
            -- Level 2 points the error to where the function that called error was called
            renew_last_cleanup_values()
            error( 'Queue key does not exist', 2 )
        end

        -- continue to work with the to_delete (requiring removal) data and for them using the prefix 'to_delete_'
        local to_delete_list_id, last_removed_time = unpack( redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' ) )
        last_removed_time = tonumber( last_removed_time )
        -- key data structures
        local to_delete_data_key = DATA_KEYS..':'..to_delete_list_id
        local to_delete_time_key = TIME_KEYS..':'..to_delete_list_id

        -- looking for the oldest data
        local to_delete_data_id
        local to_delete_data
        local items = redis.call( 'HLEN', to_delete_data_key )
-- #FIXME: to_delete_data -> to_delete_data_len
-- HSTRLEN key field
-- Available since 3.2.0.
        if items == 1 then
            to_delete_data_id, to_delete_data = unpack( redis.call( 'HGETALL', to_delete_data_key ) )
        else
            to_delete_data_id = unpack( redis.call( 'ZRANGE', to_delete_time_key, 0, 0 ) )
            to_delete_data    = redis.call( 'HGET', to_delete_data_key, to_delete_data_id )
        end
        local to_delete_data_len = #to_delete_data
        to_delete_data = nil    -- free memory

        if _DEBUG then
            _debug_log( {
                _STEP               = 'Before real cleaning',
                items               = items,
                to_delete_list_id   = to_delete_list_id,
                to_delete_data_id   = to_delete_data_id,
                to_delete_data_len  = to_delete_data_len
            } )
        end

        if to_delete_list_id == list_id and to_delete_data_id == data_id then
            if items_deleted == 0 then
                -- Its first attempt to clean the conflicting data, for which the primary operation executed.
                -- In this case, we are roll back operations that have been made before, and immediately return an error,
                -- shifting the handling of such errors on the client.
                cleaning_error( "OOM Command not allowed when used memory > 'maxmemory'." )
            end
            break
        end

        if _DEBUG then
            _debug_log( {
                _STEP           = 'Why it is cleared?',
                coll_items      = coll_items,
                cleanup_bytes   = cleanup_bytes,
                cleanup_items   = cleanup_items,
                items_deleted   = items_deleted,
                bytes_deleted   = bytes_deleted,
            } )
        end

        -- actually remove the oldest item
        redis.call( 'HDEL', to_delete_data_key, to_delete_data_id )
        items = items - 1
        coll_items = coll_items - 1

        redis.call( 'HSET', STATUS_KEY, 'last_removed_time', last_removed_time )

        if items > 0 then
            -- If the list has more data
            redis.call( 'ZREM', to_delete_time_key, to_delete_data_id )
            local oldest_item_time = tonumber( redis.call( 'ZRANGE', to_delete_time_key, 0, 0, 'WITHSCORES' )[2] )
            redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, to_delete_list_id )

            if items == 1 then
                redis.call( 'DEL', to_delete_time_key )
            end
        else
            -- If the list does not have data
            -- remove the name of the list from the queue collection
            redis.call( 'ZREM', QUEUE_KEY, to_delete_list_id )
            lists_deleted = lists_deleted + 1
        end

        -- amount of data collection decreased
        items_deleted = items_deleted + 1
        bytes_deleted = bytes_deleted + to_delete_data_len

        if _DEBUG then
            _debug_log( {
                _STEP               = 'After real cleaning',
                to_delete_data_key  = to_delete_data_key,
                to_delete_data_id   = to_delete_data_id,
                items               = items,
                items_deleted       = items_deleted,
                bytes_deleted       = bytes_deleted,
            } )
        end

    until
            coll_items <= 0
        or (
                items_deleted >= cleanup_items
            and bytes_deleted >= cleanup_bytes
        )

    if items_deleted > 0 then
        -- reduce the number of items in the collection
        redis.call( 'HINCRBY', STATUS_KEY, 'items', -items_deleted )
    end
    if lists_deleted > 0 then
        -- reduce the number of lists stored in a collection
        redis.call( 'HINCRBY',  STATUS_KEY, 'lists', -lists_deleted )
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Cleaning finished',
            items_deleted   = items_deleted,
            bytes_deleted   = bytes_deleted,
            lists_deleted   = lists_deleted,
            cleanup_bytes   = cleanup_bytes,
            cleanup_items   = cleanup_items,
            coll_items      = coll_items,
        } )
    end

    if bytes_deleted > 0 then
        if TOTAL_BYTES_DELETED == 0 then    -- first cleaning
            INSERTS_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
            UPDATES_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'updates_since_cleaning', UPDATES_SINCE_CLEANING )
        end

        TOTAL_BYTES_DELETED = TOTAL_BYTES_DELETED + bytes_deleted
        LAST_CLEANUP_ITEMS = LAST_CLEANUP_ITEMS + items_deleted

        -- information values
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_maxmemory', REDIS_MAXMEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_used_memory', REDIS_USED_MEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_bytes_must_be_deleted', LAST_CLEANUP_BYTES_MUST_BE_DELETED )
    end
end

local call_with_error_control = function ( list_id, data_id, ... )
    local retries = 2
    local ret
    local error_msg = '<Empty error message>'
    repeat
        ret = redis.pcall( ... )
        if type( ret ) == 'table' and ret.err ~= nil then
            error_msg   = "OOM Command not allowed when used memory > 'maxmemory'. - " .. ret.err .. " (call = " .. cjson.encode( { ... } ) .. ")"
            if _DEBUG then
                _debug_log( {
                    _STEP       = 'call_with_error_control',
                    error_msg   = error_msg,
                    retries     = retries
                } )
            end

            cleaning( list_id, data_id, true )
        else
            break
        end
        retries = retries - 1
    until retries == 0

    if retries == 0 then
        -- Operation returned an error related to insufficient memory.
        -- Start cleaning process and then re-try operation.
        -- Repeat the cycle of operation + memory cleaning a couple of times and return an error / fail,
        -- if it still did not work.
        cleaning_error( error_msg )
    end

    return ret
end


-- determine whether there is a list of data and a collection
if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
    return { -1006, 0, 0, 0 }
end

local reduce_list_items = function ( list_id )
    local max_list_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'max_list_items' ) )
    if max_list_items ~= nil and max_list_items > 0 and redis.call( 'EXISTS', DATA_KEY ) == 1 then
        local list_items        = redis.call( 'HLEN', DATA_KEY )
        local older_allowed     = tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) )
        local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

        while list_items >= max_list_items do
            local removed_data_time, removed_data_id
            list_items = list_items - 1

            if list_items == 0 then
                removed_data_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
                redis.call( 'ZREM', QUEUE_KEY, list_id )
                redis.call( 'DEL', DATA_KEY )
                redis.call( 'HINCRBY', STATUS_KEY, 'lists', -1 )
            else
                removed_data_id, removed_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                removed_data_id     = tonumber( removed_data_id )
                removed_data_time   = tonumber( removed_data_time )
                redis.call( 'ZREM', TIME_KEY, removed_data_id )
                redis.call( 'HDEL', DATA_KEY, removed_data_id )

                local lowest_data_id, lowest_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                redis.call( 'ZADD', QUEUE_KEY, lowest_data_time, lowest_data_id )

                if redis.call( 'HLEN', DATA_KEY ) == 1 then
                    redis.call( 'DEL', TIME_KEY )
                end
            end

            redis.call( 'HINCRBY', STATUS_KEY, 'items', -1 )

            if older_allowed == 0 and ( last_removed_time == 0 or removed_data_time < last_removed_time ) then
                redis.call( 'HSET', STATUS_KEY, 'last_removed_time', removed_data_time )
                last_removed_time = removed_data_time
            end
        end
    end
end

reduce_list_items( list_id )


-- verification of the existence of old data with new data identifier
if redis.call( 'HEXISTS', DATA_KEY, data_id ) == 1 then
    return { -1008, 0, 0, 0 }
end

-- Validating the time of new data, if required
local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

if tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) ) == 0 then
    if redis.call( 'EXISTS', QUEUE_KEY ) == 1 then
        if data_time < last_removed_time then
            return { -1009, 0, 0, 0 }
        end
    end
end

-- deleting obsolete data, if it is necessary
local data_len = #data
_setup( 7, 'insert', data_len ) -- 7 -> is the index of ARGV[7]
cleaning( list_id, data_id, false )

-- add data to the list
-- Remember that the list and the collection can be automatically deleted after the "crowding out" old data

-- the existing data
local items = redis.call( 'HLEN', DATA_KEY )
local existing_id, existing_time
if items == 1 then
    existing_id   = unpack( redis.call( 'HGETALL', DATA_KEY ) )
    existing_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
end

-- actually add data to the list
call_with_error_control( list_id, data_id, 'HSET', DATA_KEY, data_id, data )
data = nil  -- free memory
table.insert( ROLLBACK, 1, { 'HDEL', DATA_KEY, data_id } )

if redis.call( 'HLEN', DATA_KEY ) == 1 then  -- list recreated after cleaning
    redis.call( 'HINCRBY', STATUS_KEY, 'lists', 1 )
    table.insert( ROLLBACK, 1, { 'HINCRBY', STATUS_KEY, 'lists', -1 } )
    call_with_error_control( list_id, data_id, 'ZADD', QUEUE_KEY, data_time, list_id )
else
    if items == 1 then
        call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, existing_time, existing_id )
        table.insert( ROLLBACK, 1, { 'ZREM', TIME_KEY, existing_id } )
    end
    call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, data_time, data_id )
    local oldest_item_time = redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' )[2]
    redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, list_id )
end

-- reflect the addition of new data
redis.call( 'HINCRBY', STATUS_KEY, 'items', 1 )
if data_time < last_removed_time then
    redis.call( 'HSET', STATUS_KEY, 'last_removed_time', 0 )
end

renew_last_cleanup_values()
-- redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', LAST_CLEANUP_BYTES )
INSERTS_SINCE_CLEANING = INSERTS_SINCE_CLEANING + 1
redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
return { -1000, LAST_CLEANUP_ITEMS, REDIS_USED_MEMORY, TOTAL_BYTES_DELETED }

  at lib/Redis/CappedCollection.pm line 3800.

#   Failed test 'no warnings'
#   at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/5.39.3/Test/Builder.pm line 193.
# There were 1 warning(s)
#     Previous test 0 ''
#     Attempt to call undefined import method with arguments ("1.976") via package "Redis" (Perhaps you forgot to load the package?) at lib/Redis/CappedCollection.pm line 78.
#  at lib/Redis/CappedCollection.pm line 78.
# 	Redis::CappedCollection::BEGIN() called at lib/Redis/CappedCollection.pm line 78
# 	eval {...} called at lib/Redis/CappedCollection.pm line 78
# 	require Redis/CappedCollection.pm called at t/00_CappedCollection/18_info.t line 40
# 	main::BEGIN() called at t/00_CappedCollection/18_info.t line 40
# 	eval {...} called at t/00_CappedCollection/18_info.t line 40
# 
# Looks like your test exited with -1 just after 9.
t/00_CappedCollection/18_info.t ........................ 
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 1/9 subtests 
[EVAL] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.

Lua script 'insert':
-- adding data to a list of collections
collectgarbage( 'stop' )

local coll_name             = ARGV[2]
local list_id               = ARGV[3]
local data_id               = ARGV[4]
local data                  = ARGV[5]
local data_time             = tonumber( ARGV[6] )

-- key data storage structures
local NAMESPACE  = 'C'
local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
local STATUS_KEY = NAMESPACE..':S:'..coll_name
local DATA_KEYS  = NAMESPACE..':D:'..coll_name
local TIME_KEYS  = NAMESPACE..':T:'..coll_name
local DATA_KEY   = DATA_KEYS..':'..list_id
local TIME_KEY   = TIME_KEYS..':'..list_id
local REDIS_USED_MEMORY                     = 0
local REDIS_MAXMEMORY                       = 0
local ROLLBACK                              = {}
local TOTAL_BYTES_DELETED                   = 0
local LAST_CLEANUP_BYTES_MUST_BE_DELETED    = 0
local LAST_CLEANUP_ITEMS                    = 0
local LAST_OPERATION                        = ''
local INSERTS_SINCE_CLEANING                = 0
local UPDATES_SINCE_CLEANING                = 0

local _DEBUG, _DEBUG_ID, _FUNC_NAME

local table_merge = function ( t1, t2 )
    for key, val in pairs( t2 ) do
        t1[ key ] = val
    end
end

local _debug_log = function ( values )
    table_merge( values, {
        _DEBUG_ID                   = _DEBUG_ID,
        _FUNC_NAME                  = _FUNC_NAME,
        REDIS_USED_MEMORY           = REDIS_USED_MEMORY,
        list_id                     = list_id,
        data_id                     = data_id,
        data_len                    = #data,
        ROLLBACK                    = ROLLBACK
    } )

    redis.log( redis.LOG_NOTICE, _FUNC_NAME..': '..cjson.encode( values ) )
end

local _setup = function ( argv_idx, func_name, extra_data_len )
    LAST_OPERATION = func_name

    REDIS_MAXMEMORY = tonumber( redis.call( 'CONFIG', 'GET', 'maxmemory' )[2] )
    local memory_reserve_coefficient = 1 + tonumber( redis.call( 'HGET', STATUS_KEY, 'memory_reserve' ) )

    local redis_used_memory = string.match(
        redis.call( 'INFO', 'memory' ),
        'used_memory:(%d+)'
    )
    REDIS_USED_MEMORY = tonumber( redis_used_memory )
    LAST_CLEANUP_BYTES_MUST_BE_DELETED = REDIS_USED_MEMORY + extra_data_len - math.floor( REDIS_MAXMEMORY / memory_reserve_coefficient )
    if LAST_CLEANUP_BYTES_MUST_BE_DELETED < 0 or REDIS_MAXMEMORY == 0 then
        LAST_CLEANUP_BYTES_MUST_BE_DELETED = 0
    end

    INSERTS_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'inserts_since_cleaning' ) )
    if INSERTS_SINCE_CLEANING == nil then
        INSERTS_SINCE_CLEANING = 0
    end
    UPDATES_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'updates_since_cleaning' ) )
    if UPDATES_SINCE_CLEANING == nil then
        UPDATES_SINCE_CLEANING = 0
    end

    _FUNC_NAME  = func_name
    _DEBUG_ID   = tonumber( ARGV[ argv_idx ] )
    if _DEBUG_ID ~= 0 then
        _DEBUG = true
        _debug_log( {
            _STEP                   = '_setup',
            maxmemory               = REDIS_MAXMEMORY,
            redis_used_memory       = REDIS_USED_MEMORY,
            bytes_must_be_deleted   = LAST_CLEANUP_BYTES_MUST_BE_DELETED
        } )
    else
        _DEBUG = false
    end
end

local renew_last_cleanup_values = function ()
    if LAST_CLEANUP_ITEMS > 0 then
        local last_cleanup_bytes_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_bytes' ) )
        local last_cleanup_items_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_items' ) )
        if #last_cleanup_bytes_values >= 10 then
            table.remove ( last_cleanup_bytes_values, 1 )
            table.remove ( last_cleanup_items_values, 1 )
        end
        table.insert( last_cleanup_bytes_values, TOTAL_BYTES_DELETED )
        table.insert( last_cleanup_items_values, LAST_CLEANUP_ITEMS )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', cjson.encode( last_cleanup_bytes_values ) )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_items', cjson.encode( last_cleanup_items_values ) )
    end
end

local cleaning_error = function ( error_msg )
    if _DEBUG then
        _debug_log( {
            _STEP       = 'cleaning_error',
            error_msg   = error_msg
        } )
    end

    for _, rollback_command in ipairs( ROLLBACK ) do
        redis.call( unpack( rollback_command ) )
    end
    -- Level 2 points the error to where the function that called error was called
    renew_last_cleanup_values()
    error( error_msg, 2 )
end

-- deleting old data to make room for new data
local cleaning = function ( list_id, data_id, is_cleaning_needed )
    local coll_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'items' ) )

    if coll_items == 0 then
        return
    end

    local cleanup_bytes = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_bytes' ) )
    local cleanup_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_items' ) )

    if not ( is_cleaning_needed or LAST_CLEANUP_BYTES_MUST_BE_DELETED > 0 ) then
        return
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Before cleanings',
            coll_items      = coll_items,
            cleanup_items   = cleanup_items,
            cleanup_bytes   = cleanup_bytes,
        } )
    end

    local items_deleted = 0
    local bytes_deleted = 0
    local lists_deleted = 0

    repeat
        if redis.call( 'EXISTS', QUEUE_KEY ) == 0 then
            -- Level 2 points the error to where the function that called error was called
            renew_last_cleanup_values()
            error( 'Queue key does not exist', 2 )
        end

        -- continue to work with the to_delete (requiring removal) data and for them using the prefix 'to_delete_'
        local to_delete_list_id, last_removed_time = unpack( redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' ) )
        last_removed_time = tonumber( last_removed_time )
        -- key data structures
        local to_delete_data_key = DATA_KEYS..':'..to_delete_list_id
        local to_delete_time_key = TIME_KEYS..':'..to_delete_list_id

        -- looking for the oldest data
        local to_delete_data_id
        local to_delete_data
        local items = redis.call( 'HLEN', to_delete_data_key )
-- #FIXME: to_delete_data -> to_delete_data_len
-- HSTRLEN key field
-- Available since 3.2.0.
        if items == 1 then
            to_delete_data_id, to_delete_data = unpack( redis.call( 'HGETALL', to_delete_data_key ) )
        else
            to_delete_data_id = unpack( redis.call( 'ZRANGE', to_delete_time_key, 0, 0 ) )
            to_delete_data    = redis.call( 'HGET', to_delete_data_key, to_delete_data_id )
        end
        local to_delete_data_len = #to_delete_data
        to_delete_data = nil    -- free memory

        if _DEBUG then
            _debug_log( {
                _STEP               = 'Before real cleaning',
                items               = items,
                to_delete_list_id   = to_delete_list_id,
                to_delete_data_id   = to_delete_data_id,
                to_delete_data_len  = to_delete_data_len
            } )
        end

        if to_delete_list_id == list_id and to_delete_data_id == data_id then
            if items_deleted == 0 then
                -- Its first attempt to clean the conflicting data, for which the primary operation executed.
                -- In this case, we are roll back operations that have been made before, and immediately return an error,
                -- shifting the handling of such errors on the client.
                cleaning_error( "OOM Command not allowed when used memory > 'maxmemory'." )
            end
            break
        end

        if _DEBUG then
            _debug_log( {
                _STEP           = 'Why it is cleared?',
                coll_items      = coll_items,
                cleanup_bytes   = cleanup_bytes,
                cleanup_items   = cleanup_items,
                items_deleted   = items_deleted,
                bytes_deleted   = bytes_deleted,
            } )
        end

        -- actually remove the oldest item
        redis.call( 'HDEL', to_delete_data_key, to_delete_data_id )
        items = items - 1
        coll_items = coll_items - 1

        redis.call( 'HSET', STATUS_KEY, 'last_removed_time', last_removed_time )

        if items > 0 then
            -- If the list has more data
            redis.call( 'ZREM', to_delete_time_key, to_delete_data_id )
            local oldest_item_time = tonumber( redis.call( 'ZRANGE', to_delete_time_key, 0, 0, 'WITHSCORES' )[2] )
            redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, to_delete_list_id )

            if items == 1 then
                redis.call( 'DEL', to_delete_time_key )
            end
        else
            -- If the list does not have data
            -- remove the name of the list from the queue collection
            redis.call( 'ZREM', QUEUE_KEY, to_delete_list_id )
            lists_deleted = lists_deleted + 1
        end

        -- amount of data collection decreased
        items_deleted = items_deleted + 1
        bytes_deleted = bytes_deleted + to_delete_data_len

        if _DEBUG then
            _debug_log( {
                _STEP               = 'After real cleaning',
                to_delete_data_key  = to_delete_data_key,
                to_delete_data_id   = to_delete_data_id,
                items               = items,
                items_deleted       = items_deleted,
                bytes_deleted       = bytes_deleted,
            } )
        end

    until
            coll_items <= 0
        or (
                items_deleted >= cleanup_items
            and bytes_deleted >= cleanup_bytes
        )

    if items_deleted > 0 then
        -- reduce the number of items in the collection
        redis.call( 'HINCRBY', STATUS_KEY, 'items', -items_deleted )
    end
    if lists_deleted > 0 then
        -- reduce the number of lists stored in a collection
        redis.call( 'HINCRBY',  STATUS_KEY, 'lists', -lists_deleted )
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Cleaning finished',
            items_deleted   = items_deleted,
            bytes_deleted   = bytes_deleted,
            lists_deleted   = lists_deleted,
            cleanup_bytes   = cleanup_bytes,
            cleanup_items   = cleanup_items,
            coll_items      = coll_items,
        } )
    end

    if bytes_deleted > 0 then
        if TOTAL_BYTES_DELETED == 0 then    -- first cleaning
            INSERTS_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
            UPDATES_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'updates_since_cleaning', UPDATES_SINCE_CLEANING )
        end

        TOTAL_BYTES_DELETED = TOTAL_BYTES_DELETED + bytes_deleted
        LAST_CLEANUP_ITEMS = LAST_CLEANUP_ITEMS + items_deleted

        -- information values
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_maxmemory', REDIS_MAXMEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_used_memory', REDIS_USED_MEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_bytes_must_be_deleted', LAST_CLEANUP_BYTES_MUST_BE_DELETED )
    end
end

local call_with_error_control = function ( list_id, data_id, ... )
    local retries = 2
    local ret
    local error_msg = '<Empty error message>'
    repeat
        ret = redis.pcall( ... )
        if type( ret ) == 'table' and ret.err ~= nil then
            error_msg   = "OOM Command not allowed when used memory > 'maxmemory'. - " .. ret.err .. " (call = " .. cjson.encode( { ... } ) .. ")"
            if _DEBUG then
                _debug_log( {
                    _STEP       = 'call_with_error_control',
                    error_msg   = error_msg,
                    retries     = retries
                } )
            end

            cleaning( list_id, data_id, true )
        else
            break
        end
        retries = retries - 1
    until retries == 0

    if retries == 0 then
        -- Operation returned an error related to insufficient memory.
        -- Start cleaning process and then re-try operation.
        -- Repeat the cycle of operation + memory cleaning a couple of times and return an error / fail,
        -- if it still did not work.
        cleaning_error( error_msg )
    end

    return ret
end


-- determine whether there is a list of data and a collection
if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
    return { -1006, 0, 0, 0 }
end

local reduce_list_items = function ( list_id )
    local max_list_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'max_list_items' ) )
    if max_list_items ~= nil and max_list_items > 0 and redis.call( 'EXISTS', DATA_KEY ) == 1 then
        local list_items        = redis.call( 'HLEN', DATA_KEY )
        local older_allowed     = tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) )
        local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

        while list_items >= max_list_items do
            local removed_data_time, removed_data_id
            list_items = list_items - 1

            if list_items == 0 then
                removed_data_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
                redis.call( 'ZREM', QUEUE_KEY, list_id )
                redis.call( 'DEL', DATA_KEY )
                redis.call( 'HINCRBY', STATUS_KEY, 'lists', -1 )
            else
                removed_data_id, removed_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                removed_data_id     = tonumber( removed_data_id )
                removed_data_time   = tonumber( removed_data_time )
                redis.call( 'ZREM', TIME_KEY, removed_data_id )
                redis.call( 'HDEL', DATA_KEY, removed_data_id )

                local lowest_data_id, lowest_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                redis.call( 'ZADD', QUEUE_KEY, lowest_data_time, lowest_data_id )

                if redis.call( 'HLEN', DATA_KEY ) == 1 then
                    redis.call( 'DEL', TIME_KEY )
                end
            end

            redis.call( 'HINCRBY', STATUS_KEY, 'items', -1 )

            if older_allowed == 0 and ( last_removed_time == 0 or removed_data_time < last_removed_time ) then
                redis.call( 'HSET', STATUS_KEY, 'last_removed_time', removed_data_time )
                last_removed_time = removed_data_time
            end
        end
    end
end

reduce_list_items( list_id )


-- verification of the existence of old data with new data identifier
if redis.call( 'HEXISTS', DATA_KEY, data_id ) == 1 then
    return { -1008, 0, 0, 0 }
end

-- Validating the time of new data, if required
local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

if tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) ) == 0 then
    if redis.call( 'EXISTS', QUEUE_KEY ) == 1 then
        if data_time < last_removed_time then
            return { -1009, 0, 0, 0 }
        end
    end
end

-- deleting obsolete data, if it is necessary
local data_len = #data
_setup( 7, 'insert', data_len ) -- 7 -> is the index of ARGV[7]
cleaning( list_id, data_id, false )

-- add data to the list
-- Remember that the list and the collection can be automatically deleted after the "crowding out" old data

-- the existing data
local items = redis.call( 'HLEN', DATA_KEY )
local existing_id, existing_time
if items == 1 then
    existing_id   = unpack( redis.call( 'HGETALL', DATA_KEY ) )
    existing_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
end

-- actually add data to the list
call_with_error_control( list_id, data_id, 'HSET', DATA_KEY, data_id, data )
data = nil  -- free memory
table.insert( ROLLBACK, 1, { 'HDEL', DATA_KEY, data_id } )

if redis.call( 'HLEN', DATA_KEY ) == 1 then  -- list recreated after cleaning
    redis.call( 'HINCRBY', STATUS_KEY, 'lists', 1 )
    table.insert( ROLLBACK, 1, { 'HINCRBY', STATUS_KEY, 'lists', -1 } )
    call_with_error_control( list_id, data_id, 'ZADD', QUEUE_KEY, data_time, list_id )
else
    if items == 1 then
        call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, existing_time, existing_id )
        table.insert( ROLLBACK, 1, { 'ZREM', TIME_KEY, existing_id } )
    end
    call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, data_time, data_id )
    local oldest_item_time = redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' )[2]
    redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, list_id )
end

-- reflect the addition of new data
redis.call( 'HINCRBY', STATUS_KEY, 'items', 1 )
if data_time < last_removed_time then
    redis.call( 'HSET', STATUS_KEY, 'last_removed_time', 0 )
end

renew_last_cleanup_values()
-- redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', LAST_CLEANUP_BYTES )
INSERTS_SINCE_CLEANING = INSERTS_SINCE_CLEANING + 1
redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
return { -1000, LAST_CLEANUP_ITEMS, REDIS_USED_MEMORY, TOTAL_BYTES_DELETED }

  at lib/Redis/CappedCollection.pm line 3800.

#   Failed test 'no warnings'
#   at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/5.39.3/Test/Builder.pm line 193.
# There were 1 warning(s)
#     Previous test 0 ''
#     Attempt to call undefined import method with arguments ("1.976") via package "Redis" (Perhaps you forgot to load the package?) at lib/Redis/CappedCollection.pm line 78.
#  at lib/Redis/CappedCollection.pm line 78.
# 	Redis::CappedCollection::BEGIN() called at lib/Redis/CappedCollection.pm line 78
# 	eval {...} called at lib/Redis/CappedCollection.pm line 78
# 	require Redis/CappedCollection.pm called at t/00_CappedCollection/19_drop.t line 40
# 	main::BEGIN() called at t/00_CappedCollection/19_drop.t line 40
# 	eval {...} called at t/00_CappedCollection/19_drop.t line 40
# 
# Looks like your test exited with -1 just after 6.
t/00_CappedCollection/19_drop.t ........................ 
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 1/6 subtests 
[EVAL] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.

Lua script 'insert':
-- adding data to a list of collections
collectgarbage( 'stop' )

local coll_name             = ARGV[2]
local list_id               = ARGV[3]
local data_id               = ARGV[4]
local data                  = ARGV[5]
local data_time             = tonumber( ARGV[6] )

-- key data storage structures
local NAMESPACE  = 'C'
local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
local STATUS_KEY = NAMESPACE..':S:'..coll_name
local DATA_KEYS  = NAMESPACE..':D:'..coll_name
local TIME_KEYS  = NAMESPACE..':T:'..coll_name
local DATA_KEY   = DATA_KEYS..':'..list_id
local TIME_KEY   = TIME_KEYS..':'..list_id
local REDIS_USED_MEMORY                     = 0
local REDIS_MAXMEMORY                       = 0
local ROLLBACK                              = {}
local TOTAL_BYTES_DELETED                   = 0
local LAST_CLEANUP_BYTES_MUST_BE_DELETED    = 0
local LAST_CLEANUP_ITEMS                    = 0
local LAST_OPERATION                        = ''
local INSERTS_SINCE_CLEANING                = 0
local UPDATES_SINCE_CLEANING                = 0

local _DEBUG, _DEBUG_ID, _FUNC_NAME

local table_merge = function ( t1, t2 )
    for key, val in pairs( t2 ) do
        t1[ key ] = val
    end
end

local _debug_log = function ( values )
    table_merge( values, {
        _DEBUG_ID                   = _DEBUG_ID,
        _FUNC_NAME                  = _FUNC_NAME,
        REDIS_USED_MEMORY           = REDIS_USED_MEMORY,
        list_id                     = list_id,
        data_id                     = data_id,
        data_len                    = #data,
        ROLLBACK                    = ROLLBACK
    } )

    redis.log( redis.LOG_NOTICE, _FUNC_NAME..': '..cjson.encode( values ) )
end

local _setup = function ( argv_idx, func_name, extra_data_len )
    LAST_OPERATION = func_name

    REDIS_MAXMEMORY = tonumber( redis.call( 'CONFIG', 'GET', 'maxmemory' )[2] )
    local memory_reserve_coefficient = 1 + tonumber( redis.call( 'HGET', STATUS_KEY, 'memory_reserve' ) )

    local redis_used_memory = string.match(
        redis.call( 'INFO', 'memory' ),
        'used_memory:(%d+)'
    )
    REDIS_USED_MEMORY = tonumber( redis_used_memory )
    LAST_CLEANUP_BYTES_MUST_BE_DELETED = REDIS_USED_MEMORY + extra_data_len - math.floor( REDIS_MAXMEMORY / memory_reserve_coefficient )
    if LAST_CLEANUP_BYTES_MUST_BE_DELETED < 0 or REDIS_MAXMEMORY == 0 then
        LAST_CLEANUP_BYTES_MUST_BE_DELETED = 0
    end

    INSERTS_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'inserts_since_cleaning' ) )
    if INSERTS_SINCE_CLEANING == nil then
        INSERTS_SINCE_CLEANING = 0
    end
    UPDATES_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'updates_since_cleaning' ) )
    if UPDATES_SINCE_CLEANING == nil then
        UPDATES_SINCE_CLEANING = 0
    end

    _FUNC_NAME  = func_name
    _DEBUG_ID   = tonumber( ARGV[ argv_idx ] )
    if _DEBUG_ID ~= 0 then
        _DEBUG = true
        _debug_log( {
            _STEP                   = '_setup',
            maxmemory               = REDIS_MAXMEMORY,
            redis_used_memory       = REDIS_USED_MEMORY,
            bytes_must_be_deleted   = LAST_CLEANUP_BYTES_MUST_BE_DELETED
        } )
    else
        _DEBUG = false
    end
end

local renew_last_cleanup_values = function ()
    if LAST_CLEANUP_ITEMS > 0 then
        local last_cleanup_bytes_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_bytes' ) )
        local last_cleanup_items_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_items' ) )
        if #last_cleanup_bytes_values >= 10 then
            table.remove ( last_cleanup_bytes_values, 1 )
            table.remove ( last_cleanup_items_values, 1 )
        end
        table.insert( last_cleanup_bytes_values, TOTAL_BYTES_DELETED )
        table.insert( last_cleanup_items_values, LAST_CLEANUP_ITEMS )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', cjson.encode( last_cleanup_bytes_values ) )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_items', cjson.encode( last_cleanup_items_values ) )
    end
end

local cleaning_error = function ( error_msg )
    if _DEBUG then
        _debug_log( {
            _STEP       = 'cleaning_error',
            error_msg   = error_msg
        } )
    end

    for _, rollback_command in ipairs( ROLLBACK ) do
        redis.call( unpack( rollback_command ) )
    end
    -- Level 2 points the error to where the function that called error was called
    renew_last_cleanup_values()
    error( error_msg, 2 )
end

-- deleting old data to make room for new data
local cleaning = function ( list_id, data_id, is_cleaning_needed )
    local coll_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'items' ) )

    if coll_items == 0 then
        return
    end

    local cleanup_bytes = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_bytes' ) )
    local cleanup_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_items' ) )

    if not ( is_cleaning_needed or LAST_CLEANUP_BYTES_MUST_BE_DELETED > 0 ) then
        return
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Before cleanings',
            coll_items      = coll_items,
            cleanup_items   = cleanup_items,
            cleanup_bytes   = cleanup_bytes,
        } )
    end

    local items_deleted = 0
    local bytes_deleted = 0
    local lists_deleted = 0

    repeat
        if redis.call( 'EXISTS', QUEUE_KEY ) == 0 then
            -- Level 2 points the error to where the function that called error was called
            renew_last_cleanup_values()
            error( 'Queue key does not exist', 2 )
        end

        -- continue to work with the to_delete (requiring removal) data and for them using the prefix 'to_delete_'
        local to_delete_list_id, last_removed_time = unpack( redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' ) )
        last_removed_time = tonumber( last_removed_time )
        -- key data structures
        local to_delete_data_key = DATA_KEYS..':'..to_delete_list_id
        local to_delete_time_key = TIME_KEYS..':'..to_delete_list_id

        -- looking for the oldest data
        local to_delete_data_id
        local to_delete_data
        local items = redis.call( 'HLEN', to_delete_data_key )
-- #FIXME: to_delete_data -> to_delete_data_len
-- HSTRLEN key field
-- Available since 3.2.0.
        if items == 1 then
            to_delete_data_id, to_delete_data = unpack( redis.call( 'HGETALL', to_delete_data_key ) )
        else
            to_delete_data_id = unpack( redis.call( 'ZRANGE', to_delete_time_key, 0, 0 ) )
            to_delete_data    = redis.call( 'HGET', to_delete_data_key, to_delete_data_id )
        end
        local to_delete_data_len = #to_delete_data
        to_delete_data = nil    -- free memory

        if _DEBUG then
            _debug_log( {
                _STEP               = 'Before real cleaning',
                items               = items,
                to_delete_list_id   = to_delete_list_id,
                to_delete_data_id   = to_delete_data_id,
                to_delete_data_len  = to_delete_data_len
            } )
        end

        if to_delete_list_id == list_id and to_delete_data_id == data_id then
            if items_deleted == 0 then
                -- Its first attempt to clean the conflicting data, for which the primary operation executed.
                -- In this case, we are roll back operations that have been made before, and immediately return an error,
                -- shifting the handling of such errors on the client.
                cleaning_error( "OOM Command not allowed when used memory > 'maxmemory'." )
            end
            break
        end

        if _DEBUG then
            _debug_log( {
                _STEP           = 'Why it is cleared?',
                coll_items      = coll_items,
                cleanup_bytes   = cleanup_bytes,
                cleanup_items   = cleanup_items,
                items_deleted   = items_deleted,
                bytes_deleted   = bytes_deleted,
            } )
        end

        -- actually remove the oldest item
        redis.call( 'HDEL', to_delete_data_key, to_delete_data_id )
        items = items - 1
        coll_items = coll_items - 1

        redis.call( 'HSET', STATUS_KEY, 'last_removed_time', last_removed_time )

        if items > 0 then
            -- If the list has more data
            redis.call( 'ZREM', to_delete_time_key, to_delete_data_id )
            local oldest_item_time = tonumber( redis.call( 'ZRANGE', to_delete_time_key, 0, 0, 'WITHSCORES' )[2] )
            redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, to_delete_list_id )

            if items == 1 then
                redis.call( 'DEL', to_delete_time_key )
            end
        else
            -- If the list does not have data
            -- remove the name of the list from the queue collection
            redis.call( 'ZREM', QUEUE_KEY, to_delete_list_id )
            lists_deleted = lists_deleted + 1
        end

        -- amount of data collection decreased
        items_deleted = items_deleted + 1
        bytes_deleted = bytes_deleted + to_delete_data_len

        if _DEBUG then
            _debug_log( {
                _STEP               = 'After real cleaning',
                to_delete_data_key  = to_delete_data_key,
                to_delete_data_id   = to_delete_data_id,
                items               = items,
                items_deleted       = items_deleted,
                bytes_deleted       = bytes_deleted,
            } )
        end

    until
            coll_items <= 0
        or (
                items_deleted >= cleanup_items
            and bytes_deleted >= cleanup_bytes
        )

    if items_deleted > 0 then
        -- reduce the number of items in the collection
        redis.call( 'HINCRBY', STATUS_KEY, 'items', -items_deleted )
    end
    if lists_deleted > 0 then
        -- reduce the number of lists stored in a collection
        redis.call( 'HINCRBY',  STATUS_KEY, 'lists', -lists_deleted )
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Cleaning finished',
            items_deleted   = items_deleted,
            bytes_deleted   = bytes_deleted,
            lists_deleted   = lists_deleted,
            cleanup_bytes   = cleanup_bytes,
            cleanup_items   = cleanup_items,
            coll_items      = coll_items,
        } )
    end

    if bytes_deleted > 0 then
        if TOTAL_BYTES_DELETED == 0 then    -- first cleaning
            INSERTS_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
            UPDATES_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'updates_since_cleaning', UPDATES_SINCE_CLEANING )
        end

        TOTAL_BYTES_DELETED = TOTAL_BYTES_DELETED + bytes_deleted
        LAST_CLEANUP_ITEMS = LAST_CLEANUP_ITEMS + items_deleted

        -- information values
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_maxmemory', REDIS_MAXMEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_used_memory', REDIS_USED_MEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_bytes_must_be_deleted', LAST_CLEANUP_BYTES_MUST_BE_DELETED )
    end
end

local call_with_error_control = function ( list_id, data_id, ... )
    local retries = 2
    local ret
    local error_msg = '<Empty error message>'
    repeat
        ret = redis.pcall( ... )
        if type( ret ) == 'table' and ret.err ~= nil then
            error_msg   = "OOM Command not allowed when used memory > 'maxmemory'. - " .. ret.err .. " (call = " .. cjson.encode( { ... } ) .. ")"
            if _DEBUG then
                _debug_log( {
                    _STEP       = 'call_with_error_control',
                    error_msg   = error_msg,
                    retries     = retries
                } )
            end

            cleaning( list_id, data_id, true )
        else
            break
        end
        retries = retries - 1
    until retries == 0

    if retries == 0 then
        -- Operation returned an error related to insufficient memory.
        -- Start cleaning process and then re-try operation.
        -- Repeat the cycle of operation + memory cleaning a couple of times and return an error / fail,
        -- if it still did not work.
        cleaning_error( error_msg )
    end

    return ret
end


-- determine whether there is a list of data and a collection
if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
    return { -1006, 0, 0, 0 }
end

local reduce_list_items = function ( list_id )
    local max_list_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'max_list_items' ) )
    if max_list_items ~= nil and max_list_items > 0 and redis.call( 'EXISTS', DATA_KEY ) == 1 then
        local list_items        = redis.call( 'HLEN', DATA_KEY )
        local older_allowed     = tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) )
        local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

        while list_items >= max_list_items do
            local removed_data_time, removed_data_id
            list_items = list_items - 1

            if list_items == 0 then
                removed_data_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
                redis.call( 'ZREM', QUEUE_KEY, list_id )
                redis.call( 'DEL', DATA_KEY )
                redis.call( 'HINCRBY', STATUS_KEY, 'lists', -1 )
            else
                removed_data_id, removed_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                removed_data_id     = tonumber( removed_data_id )
                removed_data_time   = tonumber( removed_data_time )
                redis.call( 'ZREM', TIME_KEY, removed_data_id )
                redis.call( 'HDEL', DATA_KEY, removed_data_id )

                local lowest_data_id, lowest_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                redis.call( 'ZADD', QUEUE_KEY, lowest_data_time, lowest_data_id )

                if redis.call( 'HLEN', DATA_KEY ) == 1 then
                    redis.call( 'DEL', TIME_KEY )
                end
            end

            redis.call( 'HINCRBY', STATUS_KEY, 'items', -1 )

            if older_allowed == 0 and ( last_removed_time == 0 or removed_data_time < last_removed_time ) then
                redis.call( 'HSET', STATUS_KEY, 'last_removed_time', removed_data_time )
                last_removed_time = removed_data_time
            end
        end
    end
end

reduce_list_items( list_id )


-- verification of the existence of old data with new data identifier
if redis.call( 'HEXISTS', DATA_KEY, data_id ) == 1 then
    return { -1008, 0, 0, 0 }
end

-- Validating the time of new data, if required
local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

if tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) ) == 0 then
    if redis.call( 'EXISTS', QUEUE_KEY ) == 1 then
        if data_time < last_removed_time then
            return { -1009, 0, 0, 0 }
        end
    end
end

-- deleting obsolete data, if it is necessary
local data_len = #data
_setup( 7, 'insert', data_len ) -- 7 -> is the index of ARGV[7]
cleaning( list_id, data_id, false )

-- add data to the list
-- Remember that the list and the collection can be automatically deleted after the "crowding out" old data

-- the existing data
local items = redis.call( 'HLEN', DATA_KEY )
local existing_id, existing_time
if items == 1 then
    existing_id   = unpack( redis.call( 'HGETALL', DATA_KEY ) )
    existing_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
end

-- actually add data to the list
call_with_error_control( list_id, data_id, 'HSET', DATA_KEY, data_id, data )
data = nil  -- free memory
table.insert( ROLLBACK, 1, { 'HDEL', DATA_KEY, data_id } )

if redis.call( 'HLEN', DATA_KEY ) == 1 then  -- list recreated after cleaning
    redis.call( 'HINCRBY', STATUS_KEY, 'lists', 1 )
    table.insert( ROLLBACK, 1, { 'HINCRBY', STATUS_KEY, 'lists', -1 } )
    call_with_error_control( list_id, data_id, 'ZADD', QUEUE_KEY, data_time, list_id )
else
    if items == 1 then
        call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, existing_time, existing_id )
        table.insert( ROLLBACK, 1, { 'ZREM', TIME_KEY, existing_id } )
    end
    call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, data_time, data_id )
    local oldest_item_time = redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' )[2]
    redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, list_id )
end

-- reflect the addition of new data
redis.call( 'HINCRBY', STATUS_KEY, 'items', 1 )
if data_time < last_removed_time then
    redis.call( 'HSET', STATUS_KEY, 'last_removed_time', 0 )
end

renew_last_cleanup_values()
-- redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', LAST_CLEANUP_BYTES )
INSERTS_SINCE_CLEANING = INSERTS_SINCE_CLEANING + 1
redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
return { -1000, LAST_CLEANUP_ITEMS, REDIS_USED_MEMORY, TOTAL_BYTES_DELETED }

  at lib/Redis/CappedCollection.pm line 3800.

#   Failed test 'no warnings'
#   at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/5.39.3/Test/Builder.pm line 193.
# There were 1 warning(s)
#     Previous test 0 ''
#     Attempt to call undefined import method with arguments ("1.976") via package "Redis" (Perhaps you forgot to load the package?) at lib/Redis/CappedCollection.pm line 78.
#  at lib/Redis/CappedCollection.pm line 78.
# 	Redis::CappedCollection::BEGIN() called at lib/Redis/CappedCollection.pm line 78
# 	eval {...} called at lib/Redis/CappedCollection.pm line 78
# 	require Redis/CappedCollection.pm called at t/00_CappedCollection/20_cleaning.t line 55
# 	main::BEGIN() called at t/00_CappedCollection/20_cleaning.t line 55
# 	eval {...} called at t/00_CappedCollection/20_cleaning.t line 55
# 
# Looks like your test exited with -1 just after 7.
t/00_CappedCollection/20_cleaning.t .................... 
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 1/7 subtests 

#   Failed test 'Error adding data: [EVAL] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- adding data to a list of collections
# collectgarbage( 'stop' )
# 
# local coll_name             = ARGV[2]
# local list_id               = ARGV[3]
# local data_id               = ARGV[4]
# local data                  = ARGV[5]
# local data_time             = tonumber( ARGV[6] )
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# local DATA_KEYS  = NAMESPACE..':D:'..coll_name
# local TIME_KEYS  = NAMESPACE..':T:'..coll_name
# local DATA_KEY   = DATA_KEYS..':'..list_id
# local TIME_KEY   = TIME_KEYS..':'..list_id
# local REDIS_USED_MEMORY                     = 0
# local REDIS_MAXMEMORY                       = 0
# local ROLLBACK                              = {}
# local TOTAL_BYTES_DELETED                   = 0
# local LAST_CLEANUP_BYTES_MUST_BE_DELETED    = 0
# local LAST_CLEANUP_ITEMS                    = 0
# local LAST_OPERATION                        = ''
# local INSERTS_SINCE_CLEANING                = 0
# local UPDATES_SINCE_CLEANING                = 0
# 
# local _DEBUG, _DEBUG_ID, _FUNC_NAME
# 
# local table_merge = function ( t1, t2 )
#     for key, val in pairs( t2 ) do
#         t1[ key ] = val
#     end
# end
# 
# local _debug_log = function ( values )
#     table_merge( values, {
#         _DEBUG_ID                   = _DEBUG_ID,
#         _FUNC_NAME                  = _FUNC_NAME,
#         REDIS_USED_MEMORY           = REDIS_USED_MEMORY,
#         list_id                     = list_id,
#         data_id                     = data_id,
#         data_len                    = #data,
#         ROLLBACK                    = ROLLBACK
#     } )
# 
#     redis.log( redis.LOG_NOTICE, _FUNC_NAME..': '..cjson.encode( values ) )
# end
# 
# local _setup = function ( argv_idx, func_name, extra_data_len )
#     LAST_OPERATION = func_name
# 
#     REDIS_MAXMEMORY = tonumber( redis.call( 'CONFIG', 'GET', 'maxmemory' )[2] )
#     local memory_reserve_coefficient = 1 + tonumber( redis.call( 'HGET', STATUS_KEY, 'memory_reserve' ) )
# 
#     local redis_used_memory = string.match(
#         redis.call( 'INFO', 'memory' ),
#         'used_memory:(%d+)'
#     )
#     REDIS_USED_MEMORY = tonumber( redis_used_memory )
#     LAST_CLEANUP_BYTES_MUST_BE_DELETED = REDIS_USED_MEMORY + extra_data_len - math.floor( REDIS_MAXMEMORY / memory_reserve_coefficient )
#     if LAST_CLEANUP_BYTES_MUST_BE_DELETED < 0 or REDIS_MAXMEMORY == 0 then
#         LAST_CLEANUP_BYTES_MUST_BE_DELETED = 0
#     end
# 
#     INSERTS_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'inserts_since_cleaning' ) )
#     if INSERTS_SINCE_CLEANING == nil then
#         INSERTS_SINCE_CLEANING = 0
#     end
#     UPDATES_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'updates_since_cleaning' ) )
#     if UPDATES_SINCE_CLEANING == nil then
#         UPDATES_SINCE_CLEANING = 0
#     end
# 
#     _FUNC_NAME  = func_name
#     _DEBUG_ID   = tonumber( ARGV[ argv_idx ] )
#     if _DEBUG_ID ~= 0 then
#         _DEBUG = true
#         _debug_log( {
#             _STEP                   = '_setup',
#             maxmemory               = REDIS_MAXMEMORY,
#             redis_used_memory       = REDIS_USED_MEMORY,
#             bytes_must_be_deleted   = LAST_CLEANUP_BYTES_MUST_BE_DELETED
#         } )
#     else
#         _DEBUG = false
#     end
# end
# 
# local renew_last_cleanup_values = function ()
#     if LAST_CLEANUP_ITEMS > 0 then
#         local last_cleanup_bytes_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_bytes' ) )
#         local last_cleanup_items_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_items' ) )
#         if #last_cleanup_bytes_values >= 10 then
#             table.remove ( last_cleanup_bytes_values, 1 )
#             table.remove ( last_cleanup_items_values, 1 )
#         end
#         table.insert( last_cleanup_bytes_values, TOTAL_BYTES_DELETED )
#         table.insert( last_cleanup_items_values, LAST_CLEANUP_ITEMS )
#         redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', cjson.encode( last_cleanup_bytes_values ) )
#         redis.call( 'HSET', STATUS_KEY, 'last_cleanup_items', cjson.encode( last_cleanup_items_values ) )
#     end
# end
# 
# local cleaning_error = function ( error_msg )
#     if _DEBUG then
#         _debug_log( {
#             _STEP       = 'cleaning_error',
#             error_msg   = error_msg
#         } )
#     end
# 
#     for _, rollback_command in ipairs( ROLLBACK ) do
#         redis.call( unpack( rollback_command ) )
#     end
#     -- Level 2 points the error to where the function that called error was called
#     renew_last_cleanup_values()
#     error( error_msg, 2 )
# end
# 
# -- deleting old data to make room for new data
# local cleaning = function ( list_id, data_id, is_cleaning_needed )
#     local coll_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'items' ) )
# 
#     if coll_items == 0 then
#         return
#     end
# 
#     local cleanup_bytes = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_bytes' ) )
#     local cleanup_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_items' ) )
# 
#     if not ( is_cleaning_needed or LAST_CLEANUP_BYTES_MUST_BE_DELETED > 0 ) then
#         return
#     end
# 
#     if _DEBUG then
#         _debug_log( {
#             _STEP           = 'Before cleanings',
#             coll_items      = coll_items,
#             cleanup_items   = cleanup_items,
#             cleanup_bytes   = cleanup_bytes,
#         } )
#     end
# 
#     local items_deleted = 0
#     local bytes_deleted = 0
#     local lists_deleted = 0
# 
#     repeat
#         if redis.call( 'EXISTS', QUEUE_KEY ) == 0 then
#             -- Level 2 points the error to where the function that called error was called
#             renew_last_cleanup_values()
#             error( 'Queue key does not exist', 2 )
#         end
# 
#         -- continue to work with the to_delete (requiring removal) data and for them using the prefix 'to_delete_'
#         local to_delete_list_id, last_removed_time = unpack( redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' ) )
#         last_removed_time = tonumber( last_removed_time )
#         -- key data structures
#         local to_delete_data_key = DATA_KEYS..':'..to_delete_list_id
#         local to_delete_time_key = TIME_KEYS..':'..to_delete_list_id
# 
#         -- looking for the oldest data
#         local to_delete_data_id
#         local to_delete_data
#         local items = redis.call( 'HLEN', to_delete_data_key )
# -- #FIXME: to_delete_data -> to_delete_data_len
# -- HSTRLEN key field
# -- Available since 3.2.0.
#         if items == 1 then
#             to_delete_data_id, to_delete_data = unpack( redis.call( 'HGETALL', to_delete_data_key ) )
#         else
#             to_delete_data_id = unpack( redis.call( 'ZRANGE', to_delete_time_key, 0, 0 ) )
#             to_delete_data    = redis.call( 'HGET', to_delete_data_key, to_delete_data_id )
#         end
#         local to_delete_data_len = #to_delete_data
#         to_delete_data = nil    -- free memory
# 
#         if _DEBUG then
#             _debug_log( {
#                 _STEP               = 'Before real cleaning',
#                 items               = items,
#                 to_delete_list_id   = to_delete_list_id,
#                 to_delete_data_id   = to_delete_data_id,
#                 to_delete_data_len  = to_delete_data_len
#             } )
#         end
# 
#         if to_delete_list_id == list_id and to_delete_data_id == data_id then
#             if items_deleted == 0 then
#                 -- Its first attempt to clean the conflicting data, for which the primary operation executed.
#                 -- In this case, we are roll back operations that have been made before, and immediately return an error,
#                 -- shifting the handling of such errors on the client.
#                 cleaning_error( "OOM Command not allowed when used memory > 'maxmemory'." )
#             end
#             break
#         end
# 
#         if _DEBUG then
#             _debug_log( {
#                 _STEP           = 'Why it is cleared?',
#                 coll_items      = coll_items,
#                 cleanup_bytes   = cleanup_bytes,
#                 cleanup_items   = cleanup_items,
#                 items_deleted   = items_deleted,
#                 bytes_deleted   = bytes_deleted,
#             } )
#         end
# 
#         -- actually remove the oldest item
#         redis.call( 'HDEL', to_delete_data_key, to_delete_data_id )
#         items = items - 1
#         coll_items = coll_items - 1
# 
#         redis.call( 'HSET', STATUS_KEY, 'last_removed_time', last_removed_time )
# 
#         if items > 0 then
#             -- If the list has more data
#             redis.call( 'ZREM', to_delete_time_key, to_delete_data_id )
#             local oldest_item_time = tonumber( redis.call( 'ZRANGE', to_delete_time_key, 0, 0, 'WITHSCORES' )[2] )
#             redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, to_delete_list_id )
# 
#             if items == 1 then
#                 redis.call( 'DEL', to_delete_time_key )
#             end
#         else
#             -- If the list does not have data
#             -- remove the name of the list from the queue collection
#             redis.call( 'ZREM', QUEUE_KEY, to_delete_list_id )
#             lists_deleted = lists_deleted + 1
#         end
# 
#         -- amount of data collection decreased
#         items_deleted = items_deleted + 1
#         bytes_deleted = bytes_deleted + to_delete_data_len
# 
#         if _DEBUG then
#             _debug_log( {
#                 _STEP               = 'After real cleaning',
#                 to_delete_data_key  = to_delete_data_key,
#                 to_delete_data_id   = to_delete_data_id,
#                 items               = items,
#                 items_deleted       = items_deleted,
#                 bytes_deleted       = bytes_deleted,
#             } )
#         end
# 
#     until
#             coll_items <= 0
#         or (
#                 items_deleted >= cleanup_items
#             and bytes_deleted >= cleanup_bytes
#         )
# 
#     if items_deleted > 0 then
#         -- reduce the number of items in the collection
#         redis.call( 'HINCRBY', STATUS_KEY, 'items', -items_deleted )
#     end
#     if lists_deleted > 0 then
#         -- reduce the number of lists stored in a collection
#         redis.call( 'HINCRBY',  STATUS_KEY, 'lists', -lists_deleted )
#     end
# 
#     if _DEBUG then
#         _debug_log( {
#             _STEP           = 'Cleaning finished',
#             items_deleted   = items_deleted,
#             bytes_deleted   = bytes_deleted,
#             lists_deleted   = lists_deleted,
#             cleanup_bytes   = cleanup_bytes,
#             cleanup_items   = cleanup_items,
#             coll_items      = coll_items,
#         } )
#     end
# 
#     if bytes_deleted > 0 then
#         if TOTAL_BYTES_DELETED == 0 then    -- first cleaning
#             INSERTS_SINCE_CLEANING = 0
#             redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
#             UPDATES_SINCE_CLEANING = 0
#             redis.call( 'HSET', STATUS_KEY, 'updates_since_cleaning', UPDATES_SINCE_CLEANING )
#         end
# 
#         TOTAL_BYTES_DELETED = TOTAL_BYTES_DELETED + bytes_deleted
#         LAST_CLEANUP_ITEMS = LAST_CLEANUP_ITEMS + items_deleted
# 
#         -- information values
#         redis.call( 'HSET', STATUS_KEY, 'last_cleanup_maxmemory', REDIS_MAXMEMORY )
#         redis.call( 'HSET', STATUS_KEY, 'last_cleanup_used_memory', REDIS_USED_MEMORY )
#         redis.call( 'HSET', STATUS_KEY, 'last_bytes_must_be_deleted', LAST_CLEANUP_BYTES_MUST_BE_DELETED )
#     end
# end
# 
# local call_with_error_control = function ( list_id, data_id, ... )
#     local retries = 2
#     local ret
#     local error_msg = '<Empty error message>'
#     repeat
#         ret = redis.pcall( ... )
#         if type( ret ) == 'table' and ret.err ~= nil then
#             error_msg   = "OOM Command not allowed when used memory > 'maxmemory'. - " .. ret.err .. " (call = " .. cjson.encode( { ... } ) .. ")"
#             if _DEBUG then
#                 _debug_log( {
#                     _STEP       = 'call_with_error_control',
#                     error_msg   = error_msg,
#                     retries     = retries
#                 } )
#             end
# 
#             cleaning( list_id, data_id, true )
#         else
#             break
#         end
#         retries = retries - 1
#     until retries == 0
# 
#     if retries == 0 then
#         -- Operation returned an error related to insufficient memory.
#         -- Start cleaning process and then re-try operation.
#         -- Repeat the cycle of operation + memory cleaning a couple of times and return an error / fail,
#         -- if it still did not work.
#         cleaning_error( error_msg )
#     end
# 
#     return ret
# end
# 
# 
# -- determine whether there is a list of data and a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, 0, 0, 0 }
# end
# 
# local reduce_list_items = function ( list_id )
#     local max_list_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'max_list_items' ) )
#     if max_list_items ~= nil and max_list_items > 0 and redis.call( 'EXISTS', DATA_KEY ) == 1 then
#         local list_items        = redis.call( 'HLEN', DATA_KEY )
#         local older_allowed     = tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) )
#         local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )
# 
#         while list_items >= max_list_items do
#             local removed_data_time, removed_data_id
#             list_items = list_items - 1
# 
#             if list_items == 0 then
#                 removed_data_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
#                 redis.call( 'ZREM', QUEUE_KEY, list_id )
#                 redis.call( 'DEL', DATA_KEY )
#                 redis.call( 'HINCRBY', STATUS_KEY, 'lists', -1 )
#             else
#                 removed_data_id, removed_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
#                 removed_data_id     = tonumber( removed_data_id )
#                 removed_data_time   = tonumber( removed_data_time )
#                 redis.call( 'ZREM', TIME_KEY, removed_data_id )
#                 redis.call( 'HDEL', DATA_KEY, removed_data_id )
# 
#                 local lowest_data_id, lowest_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
#                 redis.call( 'ZADD', QUEUE_KEY, lowest_data_time, lowest_data_id )
# 
#                 if redis.call( 'HLEN', DATA_KEY ) == 1 then
#                     redis.call( 'DEL', TIME_KEY )
#                 end
#             end
# 
#             redis.call( 'HINCRBY', STATUS_KEY, 'items', -1 )
# 
#             if older_allowed == 0 and ( last_removed_time == 0 or removed_data_time < last_removed_time ) then
#                 redis.call( 'HSET', STATUS_KEY, 'last_removed_time', removed_data_time )
#                 last_removed_time = removed_data_time
#             end
#         end
#     end
# end
# 
# reduce_list_items( list_id )
# 
# 
# -- verification of the existence of old data with new data identifier
# if redis.call( 'HEXISTS', DATA_KEY, data_id ) == 1 then
#     return { -1008, 0, 0, 0 }
# end
# 
# -- Validating the time of new data, if required
# local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )
# 
# if tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) ) == 0 then
#     if redis.call( 'EXISTS', QUEUE_KEY ) == 1 then
#         if data_time < last_removed_time then
#             return { -1009, 0, 0, 0 }
#         end
#     end
# end
# 
# -- deleting obsolete data, if it is necessary
# local data_len = #data
# _setup( 7, 'insert', data_len ) -- 7 -> is the index of ARGV[7]
# cleaning( list_id, data_id, false )
# 
# -- add data to the list
# -- Remember that the list and the collection can be automatically deleted after the "crowding out" old data
# 
# -- the existing data
# local items = redis.call( 'HLEN', DATA_KEY )
# local existing_id, existing_time
# if items == 1 then
#     existing_id   = unpack( redis.call( 'HGETALL', DATA_KEY ) )
#     existing_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
# end
# 
# -- actually add data to the list
# call_with_error_control( list_id, data_id, 'HSET', DATA_KEY, data_id, data )
# data = nil  -- free memory
# table.insert( ROLLBACK, 1, { 'HDEL', DATA_KEY, data_id } )
# 
# if redis.call( 'HLEN', DATA_KEY ) == 1 then  -- list recreated after cleaning
#     redis.call( 'HINCRBY', STATUS_KEY, 'lists', 1 )
#     table.insert( ROLLBACK, 1, { 'HINCRBY', STATUS_KEY, 'lists', -1 } )
#     call_with_error_control( list_id, data_id, 'ZADD', QUEUE_KEY, data_time, list_id )
# else
#     if items == 1 then
#         call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, existing_time, existing_id )
#         table.insert( ROLLBACK, 1, { 'ZREM', TIME_KEY, existing_id } )
#     end
#     call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, data_time, data_id )
#     local oldest_item_time = redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' )[2]
#     redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, list_id )
# end
# 
# -- reflect the addition of new data
# redis.call( 'HINCRBY', STATUS_KEY, 'items', 1 )
# if data_time < last_removed_time then
#     redis.call( 'HSET', STATUS_KEY, 'last_removed_time', 0 )
# end
# 
# renew_last_cleanup_values()
# -- redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', LAST_CLEANUP_BYTES )
# INSERTS_SINCE_CLEANING = INSERTS_SINCE_CLEANING + 1
# redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
# return { -1000, LAST_CLEANUP_ITEMS, REDIS_USED_MEMORY, TOTAL_BYTES_DELETED }
# 
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#   at t/00_CappedCollection/21_rollback.t line 209.

#   Failed test 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#   

[Output truncated because it exceeded 1000K]

    max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce880f40), Try::Tiny::Catch=REF(0x55d5ce87e5e8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9138 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce7e0ca0), Try::Tiny::Catch=REF(0x55d5ce881720)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9140 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce885098), Try::Tiny::Catch=REF(0x55d5ce884e58)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9142 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8879b8), Try::Tiny::Catch=REF(0x55d5ce887298)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9144 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce88a4e8), Try::Tiny::Catch=REF(0x55d5ce88a2a8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9146 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce7f2b20), Try::Tiny::Catch=REF(0x55d5ce8906a8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9148 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8939a8), Try::Tiny::Catch=REF(0x55d5ce893498)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9150 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8960a8), Try::Tiny::Catch=REF(0x55d5ce895d78)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9152 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce89ab08), Try::Tiny::Catch=REF(0x55d5ce896900)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9154 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce89b630), Try::Tiny::Catch=REF(0x55d5ce89b300)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9156 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce89de60), Try::Tiny::Catch=REF(0x55d5ce89d500)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9158 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8a51a0), Try::Tiny::Catch=REF(0x55d5ce8a4c30)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9160 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8a7910), Try::Tiny::Catch=REF(0x55d5ce8a55a8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9162 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8ab0a0), Try::Tiny::Catch=REF(0x55d5ce8a7f58)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9164 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8ad2f0), Try::Tiny::Catch=REF(0x55d5ce8abad8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9166 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8b04b0), Try::Tiny::Catch=REF(0x55d5ce8adbf0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9168 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8b1218), Try::Tiny::Catch=REF(0x55d5ce8b0c48)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9170 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8b4088), Try::Tiny::Catch=REF(0x55d5ce8b3a10)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9172 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8baae8), Try::Tiny::Catch=REF(0x55d5ce8ba3c8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9174 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8be1c8), Try::Tiny::Catch=REF(0x55d5ce8bb190)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9176 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8c0a38), Try::Tiny::Catch=REF(0x55d5ce8be810)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9178 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8c3488), Try::Tiny::Catch=REF(0x55d5ce8c1290)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9180 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8c68b8), Try::Tiny::Catch=REF(0x55d5ce8c3d88)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9182 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8c7620), Try::Tiny::Catch=REF(0x55d5ce8c71a0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9184 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8cabc0), Try::Tiny::Catch=REF(0x55d5ce8ca548)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9186 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8d1420), Try::Tiny::Catch=REF(0x55d5ce8cafc8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9188 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8d4440), Try::Tiny::Catch=REF(0x55d5ce8d3e70)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9190 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8d5d60), Try::Tiny::Catch=REF(0x55d5ce8d4848)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9192 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8d6ac8), Try::Tiny::Catch=REF(0x55d5ce8d6888)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9194 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8dbd98), Try::Tiny::Catch=REF(0x55d5ce83b748)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9196 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8dee18), Try::Tiny::Catch=REF(0x55d5ce8debd8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9198 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8e2148), Try::Tiny::Catch=REF(0x55d5ce8e1f08)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9200 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8e7428), Try::Tiny::Catch=REF(0x55d5ce840080)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9202 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8ea668), Try::Tiny::Catch=REF(0x55d5ce843a78)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9204 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8ed928), Try::Tiny::Catch=REF(0x55d5ce8eae60)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9206 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8ee690), Try::Tiny::Catch=REF(0x55d5ce8ee300)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9208 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8f1050), Try::Tiny::Catch=REF(0x55d5ce8f0bd0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9210 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8f3600), Try::Tiny::Catch=REF(0x55d5ce8f30f0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9212 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8f82f0), Try::Tiny::Catch=REF(0x55d5ce8f7e70)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9214 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8ff080), Try::Tiny::Catch=REF(0x55d5ce8fed50)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9216 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9018b0), Try::Tiny::Catch=REF(0x55d5ce8ffab8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9218 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce904110), Try::Tiny::Catch=REF(0x55d5ce9022e8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9220 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce904e78), Try::Tiny::Catch=REF(0x55d5ce9048a8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9222 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce767638), Try::Tiny::Catch=REF(0x55d5ce7671b8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9224 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce76a1e8), Try::Tiny::Catch=REF(0x55d5ce769eb8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9226 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce76ea38), Try::Tiny::Catch=REF(0x55d5ce869d58)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9228 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce7747b8), Try::Tiny::Catch=REF(0x55d5ce774578)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9230 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce776ff8), Try::Tiny::Catch=REF(0x55d5ce7752e0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9232 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce779fe8), Try::Tiny::Catch=REF(0x55d5ce777a30)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9234 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce77ab10), Try::Tiny::Catch=REF(0x55d5ce77a8d0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9236 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce77dd40), Try::Tiny::Catch=REF(0x55d5ce87af00)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9238 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce7821b0), Try::Tiny::Catch=REF(0x55d5ce877a40)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9240 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce785600), Try::Tiny::Catch=REF(0x55d5ce87aae0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9242 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce92aa20), Try::Tiny::Catch=REF(0x55d5ce785ee8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9244 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce92f6e0), Try::Tiny::Catch=REF(0x55d5ce92b188)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9246 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce930448), Try::Tiny::Catch=REF(0x55d5ce74cf48)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9248 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9335e8), Try::Tiny::Catch=REF(0x55d5ce890a20)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9250 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce937278), Try::Tiny::Catch=REF(0x55d5ce893510)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9252 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce938ca8), Try::Tiny::Catch=REF(0x55d5ce895d60)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9254 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce93c818), Try::Tiny::Catch=REF(0x55d5ce75b880)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9256 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce942338), Try::Tiny::Catch=REF(0x55d5ce93d1c0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9258 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce945738), Try::Tiny::Catch=REF(0x55d5ce942ce0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9260 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce946260), Try::Tiny::Catch=REF(0x55d5ce89dc98)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9262 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce94ad40), Try::Tiny::Catch=REF(0x55d5ce94ac68)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9264 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce94d930), Try::Tiny::Catch=REF(0x55d5ce8ab2f8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9266 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce950790), Try::Tiny::Catch=REF(0x55d5ce8ad458)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9268 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce953f70), Try::Tiny::Catch=REF(0x55d5ce953c28)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9270 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce95a3c0), Try::Tiny::Catch=REF(0x55d5ce8b02e8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9272 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8b0df8), Try::Tiny::Catch=REF(0x55d5ce95ab28)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9274 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8ba650), Try::Tiny::Catch=REF(0x55d5ce95d3c8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9276 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce95f9c8), Try::Tiny::Catch=REF(0x55d5ce95f3c8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9278 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9621c8), Try::Tiny::Catch=REF(0x55d5ce8c0ae0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9280 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce966448), Try::Tiny::Catch=REF(0x55d5ce962930)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9282 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce96b2d8), Try::Tiny::Catch=REF(0x55d5ce966bb0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9284 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8c68a0), Try::Tiny::Catch=REF(0x55d5ce96be30)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9286 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce970930), Try::Tiny::Catch=REF(0x55d5ce970720)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9288 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8d1438), Try::Tiny::Catch=REF(0x55d5ce973910)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9290 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce82d780), Try::Tiny::Catch=REF(0x55d5ce976b80)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9292 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce97a3e0), Try::Tiny::Catch=REF(0x55d5ce979de0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9294 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8db360), Try::Tiny::Catch=REF(0x55d5ce97ab48)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9296 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8d69d8), Try::Tiny::Catch=REF(0x55d5ce97e538)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9298 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8de980), Try::Tiny::Catch=REF(0x55d5ce982a88)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9300 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8e1e60), Try::Tiny::Catch=REF(0x55d5ce9846c8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9302 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8e74d0), Try::Tiny::Catch=REF(0x55d5ce989bd8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9304 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8e7de8), Try::Tiny::Catch=REF(0x55d5ce98c998)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9306 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8ea608), Try::Tiny::Catch=REF(0x55d5ce98d700)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9308 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8f0360), Try::Tiny::Catch=REF(0x55d5ce993bc8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9310 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce996608), Try::Tiny::Catch=REF(0x55d5ce994840)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9312 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8f37f8), Try::Tiny::Catch=REF(0x55d5ce997040)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9314 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8f7cd8), Try::Tiny::Catch=REF(0x55d5ce99baa0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9316 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8f3780), Try::Tiny::Catch=REF(0x55d5ce9a1b60)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9318 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce901958), Try::Tiny::Catch=REF(0x55d5ce9a3460)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9320 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8f3978), Try::Tiny::Catch=REF(0x55d5ce9a60b0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9322 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9aad90), Try::Tiny::Catch=REF(0x55d5ce9a6ff8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9324 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9adb30), Try::Tiny::Catch=REF(0x55d5ce9ab3d8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9326 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9ae898), Try::Tiny::Catch=REF(0x55d5ce9ae568)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9328 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9b2128), Try::Tiny::Catch=REF(0x55d5ce9b1c18)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9330 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9b5e28), Try::Tiny::Catch=REF(0x55d5ce9b57e0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9332 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9bb368), Try::Tiny::Catch=REF(0x55d5ce9baee8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9334 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9bcdc8), Try::Tiny::Catch=REF(0x55d5ce9bca38)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9336 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9c1e18), Try::Tiny::Catch=REF(0x55d5ce9bd8f0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9338 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9c2940), Try::Tiny::Catch=REF(0x55d5ce9c2220)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9340 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9c6190), Try::Tiny::Catch=REF(0x55d5ce9c5bc0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9342 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9c81f0), Try::Tiny::Catch=REF(0x55d5ce9c7fb0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9344 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9cd5b0), Try::Tiny::Catch=REF(0x55d5ce9cd028)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9346 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9d0480), Try::Tiny::Catch=REF(0x55d5ce9d00f0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9348 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9d4660), Try::Tiny::Catch=REF(0x55d5ce9d0eb8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9350 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9d83e0), Try::Tiny::Catch=REF(0x55d5ce9d4ac8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9352 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9d8f08), Try::Tiny::Catch=REF(0x55d5ce9d8bd8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9354 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9db1d8), Try::Tiny::Catch=REF(0x55d5ce9daea8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9356 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9dea18), Try::Tiny::Catch=REF(0x55d5ce9de4a8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9358 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9e3fe8), Try::Tiny::Catch=REF(0x55d5ce9e3da8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9360 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9e6798), Try::Tiny::Catch=REF(0x55d5ce9e6138)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9362 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9ea538), Try::Tiny::Catch=REF(0x55d5ce9e6f90)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9364 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9eb060), Try::Tiny::Catch=REF(0x55d5ce9eae20)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9366 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9eef90), Try::Tiny::Catch=REF(0x55d5ce9ee870)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9368 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9f2700), Try::Tiny::Catch=REF(0x55d5ce9f1fe0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9370 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9f5800), Try::Tiny::Catch=REF(0x55d5ce9f5380)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9372 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9fab10), Try::Tiny::Catch=REF(0x55d5ce9f5bf0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9374 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9fe720), Try::Tiny::Catch=REF(0x55d5ce9fb368)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9376 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea017b0), Try::Tiny::Catch=REF(0x55d5ce9ff008)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9378 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea047d0), Try::Tiny::Catch=REF(0x55d5ce8b3818)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9380 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea05538), Try::Tiny::Catch=REF(0x55d5ce8bac50)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9382 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea090c8), Try::Tiny::Catch=REF(0x55d5ce962030)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9384 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea0bff8), Try::Tiny::Catch=REF(0x55d5ce962750)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9386 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea11058), Try::Tiny::Catch=REF(0x55d5cea10bd8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9388 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea13fe8), Try::Tiny::Catch=REF(0x55d5cea11940)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9390 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea14b10), Try::Tiny::Catch=REF(0x55d5cea14588)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9392 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea185f0), Try::Tiny::Catch=REF(0x55d5cea18020)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9394 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea1c0b0), Try::Tiny::Catch=REF(0x55d5ce976ec8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9396 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea1ebf0), Try::Tiny::Catch=REF(0x55d5cea1e9b0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9398 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea22510), Try::Tiny::Catch=REF(0x55d5cea221e0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9400 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea267e0), Try::Tiny::Catch=REF(0x55d5ce8d5e80)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9402 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea2ab80), Try::Tiny::Catch=REF(0x55d5ce982998)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9404 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea2e5b0), Try::Tiny::Catch=REF(0x55d5cea2b4c8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9406 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea2f318), Try::Tiny::Catch=REF(0x55d5cea2ee98)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9408 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea328b8), Try::Tiny::Catch=REF(0x55d5ce982b18)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9410 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea35438), Try::Tiny::Catch=REF(0x55d5ce98cad0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9412 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea37a58), Try::Tiny::Catch=REF(0x55d5cea37818)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9414 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea3ddf8), Try::Tiny::Catch=REF(0x55d5cea38490)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9416 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea40f48), Try::Tiny::Catch=REF(0x55d5cea3e920)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9418 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea41a70), Try::Tiny::Catch=REF(0x55d5ce8f0de0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9420 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea46620), Try::Tiny::Catch=REF(0x55d5ce9a2028)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9422 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea48b20), Try::Tiny::Catch=REF(0x55d5ce9a36b8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9424 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea4b070), Try::Tiny::Catch=REF(0x55d5ce9a66c8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9426 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea4ed80), Try::Tiny::Catch=REF(0x55d5cea4ba18)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9428 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea54a10), Try::Tiny::Catch=REF(0x55d5ce9ab6d8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9430 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea55778), Try::Tiny::Catch=REF(0x55d5ce9ae400)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9432 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea57d08), Try::Tiny::Catch=REF(0x55d5cea57948)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9434 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea474e8), Try::Tiny::Catch=REF(0x55d5cea47128)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9436 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea5f0c8), Try::Tiny::Catch=REF(0x55d5ce76eae0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9438 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea624f8), Try::Tiny::Catch=REF(0x55d5ce9bb8f0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9440 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea64f08), Try::Tiny::Catch=REF(0x55d5ce9bcb28)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9442 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea6a878), Try::Tiny::Catch=REF(0x55d5cea65928)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9444 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea6b3a0), Try::Tiny::Catch=REF(0x55d5ce9c5848)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9446 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea6e5b0), Try::Tiny::Catch=REF(0x55d5ce9c5368)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9448 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea72000), Try::Tiny::Catch=REF(0x55d5ce9c5bc0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9450 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea75dc0), Try::Tiny::Catch=REF(0x55d5ce9d05b8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9452 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9d0cd8), Try::Tiny::Catch=REF(0x55d5cea76528)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9454 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea7c020), Try::Tiny::Catch=REF(0x55d5cea7be10)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9456 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea81090), Try::Tiny::Catch=REF(0x55d5cea7cb78)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9458 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea81df8), Try::Tiny::Catch=REF(0x55d5ce9d86b0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9460 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9de520), Try::Tiny::Catch=REF(0x55d5ce938708)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9462 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9dea48), Try::Tiny::Catch=REF(0x55d5cea88460)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9464 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9e4228), Try::Tiny::Catch=REF(0x55d5cea8b1e8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9466 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9ea4c0), Try::Tiny::Catch=REF(0x55d5cea8def8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9468 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9e6cd8), Try::Tiny::Catch=REF(0x55d5cea91bc8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9470 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea92a50), Try::Tiny::Catch=REF(0x55d5cea92930)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9472 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea991c0), Try::Tiny::Catch=REF(0x55d5cea990a0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9474 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9f5668), Try::Tiny::Catch=REF(0x55d5cea9c1b8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9476 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce8ab118), Try::Tiny::Catch=REF(0x55d5cea9ebd0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9478 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9fabd0), Try::Tiny::Catch=REF(0x55d5ceaa1810)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9480 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea01b40), Try::Tiny::Catch=REF(0x55d5ceaa4a40)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9482 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9ff068), Try::Tiny::Catch=REF(0x55d5ceaa5898)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9484 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce95d800), Try::Tiny::Catch=REF(0x55d5ce908528)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9486 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea05178), Try::Tiny::Catch=REF(0x55d5ce90cc98)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9488 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce9112a8), Try::Tiny::Catch=REF(0x55d5ce910b88)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9490 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce914678), Try::Tiny::Catch=REF(0x55d5ce914258)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9492 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea08af8), Try::Tiny::Catch=REF(0x55d5ce914cc0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9494 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea14738), Try::Tiny::Catch=REF(0x55d5ce91bc88)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9496 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce91e0d8), Try::Tiny::Catch=REF(0x55d5ce91c4f8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9498 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ce91ee40), Try::Tiny::Catch=REF(0x55d5ce91ec00)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9500 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea1c128), Try::Tiny::Catch=REF(0x55d5ce924010)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9502 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea22528), Try::Tiny::Catch=REF(0x55d5ceacba30)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9504 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ceace390), Try::Tiny::Catch=REF(0x55d5ceace060)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9506 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cea26f78), Try::Tiny::Catch=REF(0x55d5ceace9d8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9508 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cead3200), Try::Tiny::Catch=REF(0x55d5cead19b8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9510 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cead3f68), Try::Tiny::Catch=REF(0x55d5cead3b48)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9512 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5cead7038), Try::Tiny::Catch=REF(0x55d5cead66d8)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9514 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ceadda88), Try::Tiny::Catch=REF(0x55d5ceadd848)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9516 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ceadfcc8), Try::Tiny::Catch=REF(0x55d5ceadfa88)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9518 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ceae3f38), Try::Tiny::Catch=REF(0x55d5ceae0310)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9520 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ceae5ba8), Try::Tiny::Catch=REF(0x55d5ceae5728)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9522 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ceae9ac8), Try::Tiny::Catch=REF(0x55d5ceae6298)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9524 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ceaee378), Try::Tiny::Catch=REF(0x55d5ceaea5f0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9526 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ceaeeea0), Try::Tiny::Catch=REF(0x55d5ceaee768)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9528 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ceaf4440), Try::Tiny::Catch=REF(0x55d5ceaf3ed0)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# ----------
#     Previous test 9530 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.
# 
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
# 
# local coll_name     = ARGV[2]
# 
# -- key data storage structures
# local NAMESPACE  = 'C'
# local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
# 
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
#     return { -1006, false, false, false, false, false, false, false, false }
# end
# 
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
#         'lists',
#         'items',
#         'older_allowed',
#         'cleanup_bytes',
#         'cleanup_items',
#         'max_list_items',
#         'memory_reserve',
#         'data_version',
#         'last_removed_time'
#     ) )
# 
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
#     -1000,
#     lists,
#     items,
#     older_allowed,
#     cleanup_bytes,
#     cleanup_items,
#     max_list_items,
#     memory_reserve,
#     data_version,
#     last_removed_time,
#     oldest_item_time
# }
#   at lib/Redis/CappedCollection.pm line 3800.
# '
#     Exiting subroutine via last at t/00_CappedCollection/21_rollback.t line 210.
#  at t/00_CappedCollection/21_rollback.t line 210.
# 	main::catch {...} ("[EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb"...) called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Try/Tiny.pm line 123
# 	Try::Tiny::try(CODE(0x55d5ceaf6d30), Try::Tiny::Catch=REF(0x55d5ceaf4848)) called at t/00_CappedCollection/21_rollback.t line 211
# 
# Looks like you failed 4765 tests of 9533.
t/00_CappedCollection/21_rollback.t .................... 
Dubious, test returned 254 (wstat 65024, 0xfe00)
Failed 4765/9533 subtests 

#   Failed test 'no warnings'
#   at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/5.39.3/Test/Builder.pm line 193.
# There were 1 warning(s)
#     Previous test 0 ''
#     Attempt to call undefined import method with arguments ("1.976") via package "Redis" (Perhaps you forgot to load the package?) at lib/Redis/CappedCollection.pm line 78.
#  at lib/Redis/CappedCollection.pm line 78.
# 	Redis::CappedCollection::BEGIN() called at lib/Redis/CappedCollection.pm line 78
# 	eval {...} called at lib/Redis/CappedCollection.pm line 78
# 	require Redis/CappedCollection.pm called at t/00_CappedCollection/22_alarm.t line 36
# 	main::BEGIN() called at t/00_CappedCollection/22_alarm.t line 36
# 	eval {...} called at t/00_CappedCollection/22_alarm.t line 36
# 
# Looks like you failed 1 test of 2.
	(in cleanup) Can't call method "current_test" on an undefined value at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Test/NoWarnings/Warning.pm line 55 during global destruction.
t/00_CappedCollection/22_alarm.t ....................... 
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/2 subtests 

#   Failed test 'no warnings'
#   at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/5.39.3/Test/Builder.pm line 193.
# There were 1 warning(s)
#     Previous test 0 ''
#     Attempt to call undefined import method with arguments ("1.976") via package "Redis" (Perhaps you forgot to load the package?) at lib/Redis/CappedCollection.pm line 78.
#  at lib/Redis/CappedCollection.pm line 78.
# 	Redis::CappedCollection::BEGIN() called at lib/Redis/CappedCollection.pm line 78
# 	eval {...} called at lib/Redis/CappedCollection.pm line 78
# 	require Redis/CappedCollection.pm called at t/00_CappedCollection/23_cleaning_bench.t line 43
# 	main::BEGIN() called at t/00_CappedCollection/23_cleaning_bench.t line 43
# 	eval {...} called at t/00_CappedCollection/23_cleaning_bench.t line 43
# 
# Looks like you failed 1 test of 1.
t/00_CappedCollection/23_cleaning_bench.t .............. 
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/1 subtests 
[EVAL] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.

Lua script 'insert':
-- adding data to a list of collections
collectgarbage( 'stop' )

local coll_name             = ARGV[2]
local list_id               = ARGV[3]
local data_id               = ARGV[4]
local data                  = ARGV[5]
local data_time             = tonumber( ARGV[6] )

-- key data storage structures
local NAMESPACE  = 'C'
local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
local STATUS_KEY = NAMESPACE..':S:'..coll_name
local DATA_KEYS  = NAMESPACE..':D:'..coll_name
local TIME_KEYS  = NAMESPACE..':T:'..coll_name
local DATA_KEY   = DATA_KEYS..':'..list_id
local TIME_KEY   = TIME_KEYS..':'..list_id
local REDIS_USED_MEMORY                     = 0
local REDIS_MAXMEMORY                       = 0
local ROLLBACK                              = {}
local TOTAL_BYTES_DELETED                   = 0
local LAST_CLEANUP_BYTES_MUST_BE_DELETED    = 0
local LAST_CLEANUP_ITEMS                    = 0
local LAST_OPERATION                        = ''
local INSERTS_SINCE_CLEANING                = 0
local UPDATES_SINCE_CLEANING                = 0

local _DEBUG, _DEBUG_ID, _FUNC_NAME

local table_merge = function ( t1, t2 )
    for key, val in pairs( t2 ) do
        t1[ key ] = val
    end
end

local _debug_log = function ( values )
    table_merge( values, {
        _DEBUG_ID                   = _DEBUG_ID,
        _FUNC_NAME                  = _FUNC_NAME,
        REDIS_USED_MEMORY           = REDIS_USED_MEMORY,
        list_id                     = list_id,
        data_id                     = data_id,
        data_len                    = #data,
        ROLLBACK                    = ROLLBACK
    } )

    redis.log( redis.LOG_NOTICE, _FUNC_NAME..': '..cjson.encode( values ) )
end

local _setup = function ( argv_idx, func_name, extra_data_len )
    LAST_OPERATION = func_name

    REDIS_MAXMEMORY = tonumber( redis.call( 'CONFIG', 'GET', 'maxmemory' )[2] )
    local memory_reserve_coefficient = 1 + tonumber( redis.call( 'HGET', STATUS_KEY, 'memory_reserve' ) )

    local redis_used_memory = string.match(
        redis.call( 'INFO', 'memory' ),
        'used_memory:(%d+)'
    )
    REDIS_USED_MEMORY = tonumber( redis_used_memory )
    LAST_CLEANUP_BYTES_MUST_BE_DELETED = REDIS_USED_MEMORY + extra_data_len - math.floor( REDIS_MAXMEMORY / memory_reserve_coefficient )
    if LAST_CLEANUP_BYTES_MUST_BE_DELETED < 0 or REDIS_MAXMEMORY == 0 then
        LAST_CLEANUP_BYTES_MUST_BE_DELETED = 0
    end

    INSERTS_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'inserts_since_cleaning' ) )
    if INSERTS_SINCE_CLEANING == nil then
        INSERTS_SINCE_CLEANING = 0
    end
    UPDATES_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'updates_since_cleaning' ) )
    if UPDATES_SINCE_CLEANING == nil then
        UPDATES_SINCE_CLEANING = 0
    end

    _FUNC_NAME  = func_name
    _DEBUG_ID   = tonumber( ARGV[ argv_idx ] )
    if _DEBUG_ID ~= 0 then
        _DEBUG = true
        _debug_log( {
            _STEP                   = '_setup',
            maxmemory               = REDIS_MAXMEMORY,
            redis_used_memory       = REDIS_USED_MEMORY,
            bytes_must_be_deleted   = LAST_CLEANUP_BYTES_MUST_BE_DELETED
        } )
    else
        _DEBUG = false
    end
end

local renew_last_cleanup_values = function ()
    if LAST_CLEANUP_ITEMS > 0 then
        local last_cleanup_bytes_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_bytes' ) )
        local last_cleanup_items_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_items' ) )
        if #last_cleanup_bytes_values >= 10 then
            table.remove ( last_cleanup_bytes_values, 1 )
            table.remove ( last_cleanup_items_values, 1 )
        end
        table.insert( last_cleanup_bytes_values, TOTAL_BYTES_DELETED )
        table.insert( last_cleanup_items_values, LAST_CLEANUP_ITEMS )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', cjson.encode( last_cleanup_bytes_values ) )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_items', cjson.encode( last_cleanup_items_values ) )
    end
end

local cleaning_error = function ( error_msg )
    if _DEBUG then
        _debug_log( {
            _STEP       = 'cleaning_error',
            error_msg   = error_msg
        } )
    end

    for _, rollback_command in ipairs( ROLLBACK ) do
        redis.call( unpack( rollback_command ) )
    end
    -- Level 2 points the error to where the function that called error was called
    renew_last_cleanup_values()
    error( error_msg, 2 )
end

-- deleting old data to make room for new data
local cleaning = function ( list_id, data_id, is_cleaning_needed )
    local coll_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'items' ) )

    if coll_items == 0 then
        return
    end

    local cleanup_bytes = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_bytes' ) )
    local cleanup_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_items' ) )

    if not ( is_cleaning_needed or LAST_CLEANUP_BYTES_MUST_BE_DELETED > 0 ) then
        return
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Before cleanings',
            coll_items      = coll_items,
            cleanup_items   = cleanup_items,
            cleanup_bytes   = cleanup_bytes,
        } )
    end

    local items_deleted = 0
    local bytes_deleted = 0
    local lists_deleted = 0

    repeat
        if redis.call( 'EXISTS', QUEUE_KEY ) == 0 then
            -- Level 2 points the error to where the function that called error was called
            renew_last_cleanup_values()
            error( 'Queue key does not exist', 2 )
        end

        -- continue to work with the to_delete (requiring removal) data and for them using the prefix 'to_delete_'
        local to_delete_list_id, last_removed_time = unpack( redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' ) )
        last_removed_time = tonumber( last_removed_time )
        -- key data structures
        local to_delete_data_key = DATA_KEYS..':'..to_delete_list_id
        local to_delete_time_key = TIME_KEYS..':'..to_delete_list_id

        -- looking for the oldest data
        local to_delete_data_id
        local to_delete_data
        local items = redis.call( 'HLEN', to_delete_data_key )
-- #FIXME: to_delete_data -> to_delete_data_len
-- HSTRLEN key field
-- Available since 3.2.0.
        if items == 1 then
            to_delete_data_id, to_delete_data = unpack( redis.call( 'HGETALL', to_delete_data_key ) )
        else
            to_delete_data_id = unpack( redis.call( 'ZRANGE', to_delete_time_key, 0, 0 ) )
            to_delete_data    = redis.call( 'HGET', to_delete_data_key, to_delete_data_id )
        end
        local to_delete_data_len = #to_delete_data
        to_delete_data = nil    -- free memory

        if _DEBUG then
            _debug_log( {
                _STEP               = 'Before real cleaning',
                items               = items,
                to_delete_list_id   = to_delete_list_id,
                to_delete_data_id   = to_delete_data_id,
                to_delete_data_len  = to_delete_data_len
            } )
        end

        if to_delete_list_id == list_id and to_delete_data_id == data_id then
            if items_deleted == 0 then
                -- Its first attempt to clean the conflicting data, for which the primary operation executed.
                -- In this case, we are roll back operations that have been made before, and immediately return an error,
                -- shifting the handling of such errors on the client.
                cleaning_error( "OOM Command not allowed when used memory > 'maxmemory'." )
            end
            break
        end

        if _DEBUG then
            _debug_log( {
                _STEP           = 'Why it is cleared?',
                coll_items      = coll_items,
                cleanup_bytes   = cleanup_bytes,
                cleanup_items   = cleanup_items,
                items_deleted   = items_deleted,
                bytes_deleted   = bytes_deleted,
            } )
        end

        -- actually remove the oldest item
        redis.call( 'HDEL', to_delete_data_key, to_delete_data_id )
        items = items - 1
        coll_items = coll_items - 1

        redis.call( 'HSET', STATUS_KEY, 'last_removed_time', last_removed_time )

        if items > 0 then
            -- If the list has more data
            redis.call( 'ZREM', to_delete_time_key, to_delete_data_id )
            local oldest_item_time = tonumber( redis.call( 'ZRANGE', to_delete_time_key, 0, 0, 'WITHSCORES' )[2] )
            redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, to_delete_list_id )

            if items == 1 then
                redis.call( 'DEL', to_delete_time_key )
            end
        else
            -- If the list does not have data
            -- remove the name of the list from the queue collection
            redis.call( 'ZREM', QUEUE_KEY, to_delete_list_id )
            lists_deleted = lists_deleted + 1
        end

        -- amount of data collection decreased
        items_deleted = items_deleted + 1
        bytes_deleted = bytes_deleted + to_delete_data_len

        if _DEBUG then
            _debug_log( {
                _STEP               = 'After real cleaning',
                to_delete_data_key  = to_delete_data_key,
                to_delete_data_id   = to_delete_data_id,
                items               = items,
                items_deleted       = items_deleted,
                bytes_deleted       = bytes_deleted,
            } )
        end

    until
            coll_items <= 0
        or (
                items_deleted >= cleanup_items
            and bytes_deleted >= cleanup_bytes
        )

    if items_deleted > 0 then
        -- reduce the number of items in the collection
        redis.call( 'HINCRBY', STATUS_KEY, 'items', -items_deleted )
    end
    if lists_deleted > 0 then
        -- reduce the number of lists stored in a collection
        redis.call( 'HINCRBY',  STATUS_KEY, 'lists', -lists_deleted )
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Cleaning finished',
            items_deleted   = items_deleted,
            bytes_deleted   = bytes_deleted,
            lists_deleted   = lists_deleted,
            cleanup_bytes   = cleanup_bytes,
            cleanup_items   = cleanup_items,
            coll_items      = coll_items,
        } )
    end

    if bytes_deleted > 0 then
        if TOTAL_BYTES_DELETED == 0 then    -- first cleaning
            INSERTS_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
            UPDATES_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'updates_since_cleaning', UPDATES_SINCE_CLEANING )
        end

        TOTAL_BYTES_DELETED = TOTAL_BYTES_DELETED + bytes_deleted
        LAST_CLEANUP_ITEMS = LAST_CLEANUP_ITEMS + items_deleted

        -- information values
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_maxmemory', REDIS_MAXMEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_used_memory', REDIS_USED_MEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_bytes_must_be_deleted', LAST_CLEANUP_BYTES_MUST_BE_DELETED )
    end
end

local call_with_error_control = function ( list_id, data_id, ... )
    local retries = 2
    local ret
    local error_msg = '<Empty error message>'
    repeat
        ret = redis.pcall( ... )
        if type( ret ) == 'table' and ret.err ~= nil then
            error_msg   = "OOM Command not allowed when used memory > 'maxmemory'. - " .. ret.err .. " (call = " .. cjson.encode( { ... } ) .. ")"
            if _DEBUG then
                _debug_log( {
                    _STEP       = 'call_with_error_control',
                    error_msg   = error_msg,
                    retries     = retries
                } )
            end

            cleaning( list_id, data_id, true )
        else
            break
        end
        retries = retries - 1
    until retries == 0

    if retries == 0 then
        -- Operation returned an error related to insufficient memory.
        -- Start cleaning process and then re-try operation.
        -- Repeat the cycle of operation + memory cleaning a couple of times and return an error / fail,
        -- if it still did not work.
        cleaning_error( error_msg )
    end

    return ret
end


-- determine whether there is a list of data and a collection
if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
    return { -1006, 0, 0, 0 }
end

local reduce_list_items = function ( list_id )
    local max_list_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'max_list_items' ) )
    if max_list_items ~= nil and max_list_items > 0 and redis.call( 'EXISTS', DATA_KEY ) == 1 then
        local list_items        = redis.call( 'HLEN', DATA_KEY )
        local older_allowed     = tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) )
        local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

        while list_items >= max_list_items do
            local removed_data_time, removed_data_id
            list_items = list_items - 1

            if list_items == 0 then
                removed_data_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
                redis.call( 'ZREM', QUEUE_KEY, list_id )
                redis.call( 'DEL', DATA_KEY )
                redis.call( 'HINCRBY', STATUS_KEY, 'lists', -1 )
            else
                removed_data_id, removed_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                removed_data_id     = tonumber( removed_data_id )
                removed_data_time   = tonumber( removed_data_time )
                redis.call( 'ZREM', TIME_KEY, removed_data_id )
                redis.call( 'HDEL', DATA_KEY, removed_data_id )

                local lowest_data_id, lowest_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                redis.call( 'ZADD', QUEUE_KEY, lowest_data_time, lowest_data_id )

                if redis.call( 'HLEN', DATA_KEY ) == 1 then
                    redis.call( 'DEL', TIME_KEY )
                end
            end

            redis.call( 'HINCRBY', STATUS_KEY, 'items', -1 )

            if older_allowed == 0 and ( last_removed_time == 0 or removed_data_time < last_removed_time ) then
                redis.call( 'HSET', STATUS_KEY, 'last_removed_time', removed_data_time )
                last_removed_time = removed_data_time
            end
        end
    end
end

reduce_list_items( list_id )


-- verification of the existence of old data with new data identifier
if redis.call( 'HEXISTS', DATA_KEY, data_id ) == 1 then
    return { -1008, 0, 0, 0 }
end

-- Validating the time of new data, if required
local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

if tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) ) == 0 then
    if redis.call( 'EXISTS', QUEUE_KEY ) == 1 then
        if data_time < last_removed_time then
            return { -1009, 0, 0, 0 }
        end
    end
end

-- deleting obsolete data, if it is necessary
local data_len = #data
_setup( 7, 'insert', data_len ) -- 7 -> is the index of ARGV[7]
cleaning( list_id, data_id, false )

-- add data to the list
-- Remember that the list and the collection can be automatically deleted after the "crowding out" old data

-- the existing data
local items = redis.call( 'HLEN', DATA_KEY )
local existing_id, existing_time
if items == 1 then
    existing_id   = unpack( redis.call( 'HGETALL', DATA_KEY ) )
    existing_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
end

-- actually add data to the list
call_with_error_control( list_id, data_id, 'HSET', DATA_KEY, data_id, data )
data = nil  -- free memory
table.insert( ROLLBACK, 1, { 'HDEL', DATA_KEY, data_id } )

if redis.call( 'HLEN', DATA_KEY ) == 1 then  -- list recreated after cleaning
    redis.call( 'HINCRBY', STATUS_KEY, 'lists', 1 )
    table.insert( ROLLBACK, 1, { 'HINCRBY', STATUS_KEY, 'lists', -1 } )
    call_with_error_control( list_id, data_id, 'ZADD', QUEUE_KEY, data_time, list_id )
else
    if items == 1 then
        call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, existing_time, existing_id )
        table.insert( ROLLBACK, 1, { 'ZREM', TIME_KEY, existing_id } )
    end
    call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, data_time, data_id )
    local oldest_item_time = redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' )[2]
    redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, list_id )
end

-- reflect the addition of new data
redis.call( 'HINCRBY', STATUS_KEY, 'items', 1 )
if data_time < last_removed_time then
    redis.call( 'HSET', STATUS_KEY, 'last_removed_time', 0 )
end

renew_last_cleanup_values()
-- redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', LAST_CLEANUP_BYTES )
INSERTS_SINCE_CLEANING = INSERTS_SINCE_CLEANING + 1
redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
return { -1000, LAST_CLEANUP_ITEMS, REDIS_USED_MEMORY, TOTAL_BYTES_DELETED }

  at lib/Redis/CappedCollection.pm line 3800.

#   Failed test 'no warnings'
#   at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/5.39.3/Test/Builder.pm line 193.
# There were 1 warning(s)
#     Previous test 0 ''
#     Attempt to call undefined import method with arguments ("1.976") via package "Redis" (Perhaps you forgot to load the package?) at lib/Redis/CappedCollection.pm line 78.
#  at lib/Redis/CappedCollection.pm line 78.
# 	Redis::CappedCollection::BEGIN() called at lib/Redis/CappedCollection.pm line 78
# 	eval {...} called at lib/Redis/CappedCollection.pm line 78
# 	require Redis/CappedCollection.pm called at t/00_CappedCollection/24_timeout.t line 42
# 	main::BEGIN() called at t/00_CappedCollection/24_timeout.t line 42
# 	eval {...} called at t/00_CappedCollection/24_timeout.t line 42
# 
# Looks like your test exited with -1 just after 6.
	(in cleanup) Can't call method "current_test" on an undefined value at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/Test/NoWarnings/Warning.pm line 55 during global destruction.
t/00_CappedCollection/24_timeout.t ..................... 
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 1/6 subtests 
[EVAL] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts,  at lib/Redis/CappedCollection.pm line 3792.

Lua script 'insert':
-- adding data to a list of collections
collectgarbage( 'stop' )

local coll_name             = ARGV[2]
local list_id               = ARGV[3]
local data_id               = ARGV[4]
local data                  = ARGV[5]
local data_time             = tonumber( ARGV[6] )

-- key data storage structures
local NAMESPACE  = 'C'
local QUEUE_KEY  = NAMESPACE..':Q:'..coll_name
local STATUS_KEY = NAMESPACE..':S:'..coll_name
local DATA_KEYS  = NAMESPACE..':D:'..coll_name
local TIME_KEYS  = NAMESPACE..':T:'..coll_name
local DATA_KEY   = DATA_KEYS..':'..list_id
local TIME_KEY   = TIME_KEYS..':'..list_id
local REDIS_USED_MEMORY                     = 0
local REDIS_MAXMEMORY                       = 0
local ROLLBACK                              = {}
local TOTAL_BYTES_DELETED                   = 0
local LAST_CLEANUP_BYTES_MUST_BE_DELETED    = 0
local LAST_CLEANUP_ITEMS                    = 0
local LAST_OPERATION                        = ''
local INSERTS_SINCE_CLEANING                = 0
local UPDATES_SINCE_CLEANING                = 0

local _DEBUG, _DEBUG_ID, _FUNC_NAME

local table_merge = function ( t1, t2 )
    for key, val in pairs( t2 ) do
        t1[ key ] = val
    end
end

local _debug_log = function ( values )
    table_merge( values, {
        _DEBUG_ID                   = _DEBUG_ID,
        _FUNC_NAME                  = _FUNC_NAME,
        REDIS_USED_MEMORY           = REDIS_USED_MEMORY,
        list_id                     = list_id,
        data_id                     = data_id,
        data_len                    = #data,
        ROLLBACK                    = ROLLBACK
    } )

    redis.log( redis.LOG_NOTICE, _FUNC_NAME..': '..cjson.encode( values ) )
end

local _setup = function ( argv_idx, func_name, extra_data_len )
    LAST_OPERATION = func_name

    REDIS_MAXMEMORY = tonumber( redis.call( 'CONFIG', 'GET', 'maxmemory' )[2] )
    local memory_reserve_coefficient = 1 + tonumber( redis.call( 'HGET', STATUS_KEY, 'memory_reserve' ) )

    local redis_used_memory = string.match(
        redis.call( 'INFO', 'memory' ),
        'used_memory:(%d+)'
    )
    REDIS_USED_MEMORY = tonumber( redis_used_memory )
    LAST_CLEANUP_BYTES_MUST_BE_DELETED = REDIS_USED_MEMORY + extra_data_len - math.floor( REDIS_MAXMEMORY / memory_reserve_coefficient )
    if LAST_CLEANUP_BYTES_MUST_BE_DELETED < 0 or REDIS_MAXMEMORY == 0 then
        LAST_CLEANUP_BYTES_MUST_BE_DELETED = 0
    end

    INSERTS_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'inserts_since_cleaning' ) )
    if INSERTS_SINCE_CLEANING == nil then
        INSERTS_SINCE_CLEANING = 0
    end
    UPDATES_SINCE_CLEANING = tonumber( redis.call( 'HGET', STATUS_KEY, 'updates_since_cleaning' ) )
    if UPDATES_SINCE_CLEANING == nil then
        UPDATES_SINCE_CLEANING = 0
    end

    _FUNC_NAME  = func_name
    _DEBUG_ID   = tonumber( ARGV[ argv_idx ] )
    if _DEBUG_ID ~= 0 then
        _DEBUG = true
        _debug_log( {
            _STEP                   = '_setup',
            maxmemory               = REDIS_MAXMEMORY,
            redis_used_memory       = REDIS_USED_MEMORY,
            bytes_must_be_deleted   = LAST_CLEANUP_BYTES_MUST_BE_DELETED
        } )
    else
        _DEBUG = false
    end
end

local renew_last_cleanup_values = function ()
    if LAST_CLEANUP_ITEMS > 0 then
        local last_cleanup_bytes_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_bytes' ) )
        local last_cleanup_items_values = cjson.decode( redis.call( 'HGET', STATUS_KEY, 'last_cleanup_items' ) )
        if #last_cleanup_bytes_values >= 10 then
            table.remove ( last_cleanup_bytes_values, 1 )
            table.remove ( last_cleanup_items_values, 1 )
        end
        table.insert( last_cleanup_bytes_values, TOTAL_BYTES_DELETED )
        table.insert( last_cleanup_items_values, LAST_CLEANUP_ITEMS )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', cjson.encode( last_cleanup_bytes_values ) )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_items', cjson.encode( last_cleanup_items_values ) )
    end
end

local cleaning_error = function ( error_msg )
    if _DEBUG then
        _debug_log( {
            _STEP       = 'cleaning_error',
            error_msg   = error_msg
        } )
    end

    for _, rollback_command in ipairs( ROLLBACK ) do
        redis.call( unpack( rollback_command ) )
    end
    -- Level 2 points the error to where the function that called error was called
    renew_last_cleanup_values()
    error( error_msg, 2 )
end

-- deleting old data to make room for new data
local cleaning = function ( list_id, data_id, is_cleaning_needed )
    local coll_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'items' ) )

    if coll_items == 0 then
        return
    end

    local cleanup_bytes = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_bytes' ) )
    local cleanup_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'cleanup_items' ) )

    if not ( is_cleaning_needed or LAST_CLEANUP_BYTES_MUST_BE_DELETED > 0 ) then
        return
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Before cleanings',
            coll_items      = coll_items,
            cleanup_items   = cleanup_items,
            cleanup_bytes   = cleanup_bytes,
        } )
    end

    local items_deleted = 0
    local bytes_deleted = 0
    local lists_deleted = 0

    repeat
        if redis.call( 'EXISTS', QUEUE_KEY ) == 0 then
            -- Level 2 points the error to where the function that called error was called
            renew_last_cleanup_values()
            error( 'Queue key does not exist', 2 )
        end

        -- continue to work with the to_delete (requiring removal) data and for them using the prefix 'to_delete_'
        local to_delete_list_id, last_removed_time = unpack( redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' ) )
        last_removed_time = tonumber( last_removed_time )
        -- key data structures
        local to_delete_data_key = DATA_KEYS..':'..to_delete_list_id
        local to_delete_time_key = TIME_KEYS..':'..to_delete_list_id

        -- looking for the oldest data
        local to_delete_data_id
        local to_delete_data
        local items = redis.call( 'HLEN', to_delete_data_key )
-- #FIXME: to_delete_data -> to_delete_data_len
-- HSTRLEN key field
-- Available since 3.2.0.
        if items == 1 then
            to_delete_data_id, to_delete_data = unpack( redis.call( 'HGETALL', to_delete_data_key ) )
        else
            to_delete_data_id = unpack( redis.call( 'ZRANGE', to_delete_time_key, 0, 0 ) )
            to_delete_data    = redis.call( 'HGET', to_delete_data_key, to_delete_data_id )
        end
        local to_delete_data_len = #to_delete_data
        to_delete_data = nil    -- free memory

        if _DEBUG then
            _debug_log( {
                _STEP               = 'Before real cleaning',
                items               = items,
                to_delete_list_id   = to_delete_list_id,
                to_delete_data_id   = to_delete_data_id,
                to_delete_data_len  = to_delete_data_len
            } )
        end

        if to_delete_list_id == list_id and to_delete_data_id == data_id then
            if items_deleted == 0 then
                -- Its first attempt to clean the conflicting data, for which the primary operation executed.
                -- In this case, we are roll back operations that have been made before, and immediately return an error,
                -- shifting the handling of such errors on the client.
                cleaning_error( "OOM Command not allowed when used memory > 'maxmemory'." )
            end
            break
        end

        if _DEBUG then
            _debug_log( {
                _STEP           = 'Why it is cleared?',
                coll_items      = coll_items,
                cleanup_bytes   = cleanup_bytes,
                cleanup_items   = cleanup_items,
                items_deleted   = items_deleted,
                bytes_deleted   = bytes_deleted,
            } )
        end

        -- actually remove the oldest item
        redis.call( 'HDEL', to_delete_data_key, to_delete_data_id )
        items = items - 1
        coll_items = coll_items - 1

        redis.call( 'HSET', STATUS_KEY, 'last_removed_time', last_removed_time )

        if items > 0 then
            -- If the list has more data
            redis.call( 'ZREM', to_delete_time_key, to_delete_data_id )
            local oldest_item_time = tonumber( redis.call( 'ZRANGE', to_delete_time_key, 0, 0, 'WITHSCORES' )[2] )
            redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, to_delete_list_id )

            if items == 1 then
                redis.call( 'DEL', to_delete_time_key )
            end
        else
            -- If the list does not have data
            -- remove the name of the list from the queue collection
            redis.call( 'ZREM', QUEUE_KEY, to_delete_list_id )
            lists_deleted = lists_deleted + 1
        end

        -- amount of data collection decreased
        items_deleted = items_deleted + 1
        bytes_deleted = bytes_deleted + to_delete_data_len

        if _DEBUG then
            _debug_log( {
                _STEP               = 'After real cleaning',
                to_delete_data_key  = to_delete_data_key,
                to_delete_data_id   = to_delete_data_id,
                items               = items,
                items_deleted       = items_deleted,
                bytes_deleted       = bytes_deleted,
            } )
        end

    until
            coll_items <= 0
        or (
                items_deleted >= cleanup_items
            and bytes_deleted >= cleanup_bytes
        )

    if items_deleted > 0 then
        -- reduce the number of items in the collection
        redis.call( 'HINCRBY', STATUS_KEY, 'items', -items_deleted )
    end
    if lists_deleted > 0 then
        -- reduce the number of lists stored in a collection
        redis.call( 'HINCRBY',  STATUS_KEY, 'lists', -lists_deleted )
    end

    if _DEBUG then
        _debug_log( {
            _STEP           = 'Cleaning finished',
            items_deleted   = items_deleted,
            bytes_deleted   = bytes_deleted,
            lists_deleted   = lists_deleted,
            cleanup_bytes   = cleanup_bytes,
            cleanup_items   = cleanup_items,
            coll_items      = coll_items,
        } )
    end

    if bytes_deleted > 0 then
        if TOTAL_BYTES_DELETED == 0 then    -- first cleaning
            INSERTS_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
            UPDATES_SINCE_CLEANING = 0
            redis.call( 'HSET', STATUS_KEY, 'updates_since_cleaning', UPDATES_SINCE_CLEANING )
        end

        TOTAL_BYTES_DELETED = TOTAL_BYTES_DELETED + bytes_deleted
        LAST_CLEANUP_ITEMS = LAST_CLEANUP_ITEMS + items_deleted

        -- information values
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_maxmemory', REDIS_MAXMEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_cleanup_used_memory', REDIS_USED_MEMORY )
        redis.call( 'HSET', STATUS_KEY, 'last_bytes_must_be_deleted', LAST_CLEANUP_BYTES_MUST_BE_DELETED )
    end
end

local call_with_error_control = function ( list_id, data_id, ... )
    local retries = 2
    local ret
    local error_msg = '<Empty error message>'
    repeat
        ret = redis.pcall( ... )
        if type( ret ) == 'table' and ret.err ~= nil then
            error_msg   = "OOM Command not allowed when used memory > 'maxmemory'. - " .. ret.err .. " (call = " .. cjson.encode( { ... } ) .. ")"
            if _DEBUG then
                _debug_log( {
                    _STEP       = 'call_with_error_control',
                    error_msg   = error_msg,
                    retries     = retries
                } )
            end

            cleaning( list_id, data_id, true )
        else
            break
        end
        retries = retries - 1
    until retries == 0

    if retries == 0 then
        -- Operation returned an error related to insufficient memory.
        -- Start cleaning process and then re-try operation.
        -- Repeat the cycle of operation + memory cleaning a couple of times and return an error / fail,
        -- if it still did not work.
        cleaning_error( error_msg )
    end

    return ret
end


-- determine whether there is a list of data and a collection
if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
    return { -1006, 0, 0, 0 }
end

local reduce_list_items = function ( list_id )
    local max_list_items = tonumber( redis.call( 'HGET', STATUS_KEY, 'max_list_items' ) )
    if max_list_items ~= nil and max_list_items > 0 and redis.call( 'EXISTS', DATA_KEY ) == 1 then
        local list_items        = redis.call( 'HLEN', DATA_KEY )
        local older_allowed     = tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) )
        local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

        while list_items >= max_list_items do
            local removed_data_time, removed_data_id
            list_items = list_items - 1

            if list_items == 0 then
                removed_data_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
                redis.call( 'ZREM', QUEUE_KEY, list_id )
                redis.call( 'DEL', DATA_KEY )
                redis.call( 'HINCRBY', STATUS_KEY, 'lists', -1 )
            else
                removed_data_id, removed_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                removed_data_id     = tonumber( removed_data_id )
                removed_data_time   = tonumber( removed_data_time )
                redis.call( 'ZREM', TIME_KEY, removed_data_id )
                redis.call( 'HDEL', DATA_KEY, removed_data_id )

                local lowest_data_id, lowest_data_time = unpack( redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' ) )
                redis.call( 'ZADD', QUEUE_KEY, lowest_data_time, lowest_data_id )

                if redis.call( 'HLEN', DATA_KEY ) == 1 then
                    redis.call( 'DEL', TIME_KEY )
                end
            end

            redis.call( 'HINCRBY', STATUS_KEY, 'items', -1 )

            if older_allowed == 0 and ( last_removed_time == 0 or removed_data_time < last_removed_time ) then
                redis.call( 'HSET', STATUS_KEY, 'last_removed_time', removed_data_time )
                last_removed_time = removed_data_time
            end
        end
    end
end

reduce_list_items( list_id )


-- verification of the existence of old data with new data identifier
if redis.call( 'HEXISTS', DATA_KEY, data_id ) == 1 then
    return { -1008, 0, 0, 0 }
end

-- Validating the time of new data, if required
local last_removed_time = tonumber( redis.call( 'HGET', STATUS_KEY, 'last_removed_time' ) )

if tonumber( redis.call( 'HGET', STATUS_KEY, 'older_allowed' ) ) == 0 then
    if redis.call( 'EXISTS', QUEUE_KEY ) == 1 then
        if data_time < last_removed_time then
            return { -1009, 0, 0, 0 }
        end
    end
end

-- deleting obsolete data, if it is necessary
local data_len = #data
_setup( 7, 'insert', data_len ) -- 7 -> is the index of ARGV[7]
cleaning( list_id, data_id, false )

-- add data to the list
-- Remember that the list and the collection can be automatically deleted after the "crowding out" old data

-- the existing data
local items = redis.call( 'HLEN', DATA_KEY )
local existing_id, existing_time
if items == 1 then
    existing_id   = unpack( redis.call( 'HGETALL', DATA_KEY ) )
    existing_time = tonumber( redis.call( 'ZSCORE', QUEUE_KEY, list_id ) )
end

-- actually add data to the list
call_with_error_control( list_id, data_id, 'HSET', DATA_KEY, data_id, data )
data = nil  -- free memory
table.insert( ROLLBACK, 1, { 'HDEL', DATA_KEY, data_id } )

if redis.call( 'HLEN', DATA_KEY ) == 1 then  -- list recreated after cleaning
    redis.call( 'HINCRBY', STATUS_KEY, 'lists', 1 )
    table.insert( ROLLBACK, 1, { 'HINCRBY', STATUS_KEY, 'lists', -1 } )
    call_with_error_control( list_id, data_id, 'ZADD', QUEUE_KEY, data_time, list_id )
else
    if items == 1 then
        call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, existing_time, existing_id )
        table.insert( ROLLBACK, 1, { 'ZREM', TIME_KEY, existing_id } )
    end
    call_with_error_control( list_id, data_id, 'ZADD', TIME_KEY, data_time, data_id )
    local oldest_item_time = redis.call( 'ZRANGE', TIME_KEY, 0, 0, 'WITHSCORES' )[2]
    redis.call( 'ZADD', QUEUE_KEY, oldest_item_time, list_id )
end

-- reflect the addition of new data
redis.call( 'HINCRBY', STATUS_KEY, 'items', 1 )
if data_time < last_removed_time then
    redis.call( 'HSET', STATUS_KEY, 'last_removed_time', 0 )
end

renew_last_cleanup_values()
-- redis.call( 'HSET', STATUS_KEY, 'last_cleanup_bytes', LAST_CLEANUP_BYTES )
INSERTS_SINCE_CLEANING = INSERTS_SINCE_CLEANING + 1
redis.call( 'HSET', STATUS_KEY, 'inserts_since_cleaning', INSERTS_SINCE_CLEANING )
return { -1000, LAST_CLEANUP_ITEMS, REDIS_USED_MEMORY, TOTAL_BYTES_DELETED }

  at lib/Redis/CappedCollection.pm line 3800.

#   Failed test 'no warnings'
#   at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/5.39.3/Test/Builder.pm line 193.
# There were 1 warning(s)
#     Previous test 0 ''
#     Attempt to call undefined import method with arguments ("1.976") via package "Redis" (Perhaps you forgot to load the package?) at lib/Redis/CappedCollection.pm line 78.
#  at lib/Redis/CappedCollection.pm line 78.
# 	Redis::CappedCollection::BEGIN() called at lib/Redis/CappedCollection.pm line 78
# 	eval {...} called at lib/Redis/CappedCollection.pm line 78
# 	require Redis/CappedCollection.pm called at t/00_CappedCollection/25_cleaning_correctness.t line 44
# 	main::BEGIN() called at t/00_CappedCollection/25_cleaning_correctness.t line 44
# 	eval {...} called at t/00_CappedCollection/25_cleaning_correctness.t line 44
# 
# Looks like your test exited with -1 just after 5.
t/00_CappedCollection/25_cleaning_correctness.t ........ 
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 1/5 subtests 

#   Failed test 'no warnings'
#   at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/5.39.3/Test/Builder.pm line 193.
# There were 1 warning(s)
#     Previous test 0 ''
#     Attempt to call undefined import method with arguments ("1.976") via package "Redis" (Perhaps you forgot to load the package?) at lib/Redis/CappedCollection.pm line 78.
#  at lib/Redis/CappedCollection.pm line 78.
# 	Redis::CappedCollection::BEGIN() called at lib/Redis/CappedCollection.pm line 78
# 	eval {...} called at lib/Redis/CappedCollection.pm line 78
# 	require Redis/CappedCollection.pm called at t/tlib/Redis/CappedCollection/Test/Utils.pm line 25
# 	Redis::CappedCollection::Test::Utils::BEGIN() called at t/tlib/Redis/CappedCollection/Test/Utils.pm line 25
# 	eval {...} called at t/tlib/Redis/CappedCollection/Test/Utils.pm line 25
# 	require Redis/CappedCollection/Test/Utils.pm called at t/00_CappedCollection/26_script_variable_protection.t line 31
# 	main::BEGIN() called at t/00_CappedCollection/26_script_variable_protection.t line 31
# 	eval {...} called at t/00_CappedCollection/26_script_variable_protection.t line 31
# 
# Looks like you failed 1 test of 42.
t/00_CappedCollection/26_script_variable_protection.t .. 
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/42 subtests 
Attempt to call undefined import method with arguments ("1.976") via package "Redis" (Perhaps you forgot to load the package?) at lib/Redis/CappedCollection.pm line 78.
t/00_CappedCollection/27_fork.t ........................ ok
Attempt to call undefined import method with arguments ("1.976") via package "Redis" (Perhaps you forgot to load the package?) at lib/Redis/CappedCollection.pm line 78.
t/00_CappedCollection/28_data_dependency.t ............. ok

#   Failed test 'no warnings'
#   at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/5.39.3/Test/Builder.pm line 193.
# There were 1 warning(s)
#     Previous test 0 ''
#     Attempt to call undefined import method with arguments ("1.976") via package "Redis" (Perhaps you forgot to load the package?) at lib/Redis/CappedCollection.pm line 78.
#  at lib/Redis/CappedCollection.pm line 78.
# 	Redis::CappedCollection::BEGIN() called at lib/Redis/CappedCollection.pm line 78
# 	eval {...} called at lib/Redis/CappedCollection.pm line 78
# 	require Redis/CappedCollection.pm called at t/00_compile.t line 17
# 	main::BEGIN() called at t/00_compile.t line 17
# 	eval {...} called at t/00_compile.t line 17
# 	eval 'package main;
# BEGIN { ${^WARNING_BITS} = $args[-1] if defined $args[-1] }
# #line 17 t/00_compile.t
# use Redis::CappedCollection @{$args[0]};
# 1;
# ' called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/5.39.3/Test/More.pm line 1056
# 	Test::More::_eval("package main;\x{a}BEGIN { \${^WARNING_BITS} = \$args[-1] if defined"..., ARRAY(0x5589e3aca598), "UUUUUUUUUUUUUUUUUUUUU") called at /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/5.39.3/Test/More.pm line 1031
# 	Test::More::use_ok("Redis::CappedCollection", "\$DATA_VERSION", "\$DEFAULT_CONNECTION_TIMEOUT", "\$DEFAULT_OPERATION_TIMEOUT", "\$DEFAULT_SERVER", "\$DEFAULT_PORT", "\$NAMESPACE", "\$MIN_MEMORY_RESERVE", ...) called at t/00_compile.t line 17
# 	main::BEGIN() called at t/00_compile.t line 42
# 	eval {...} called at t/00_compile.t line 42
# 
# Looks like you failed 1 test of 21.
t/00_compile.t ......................................... 
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/21 subtests 

Test Summary Report
-------------------
t/00_CappedCollection/00_compile.t                   (Wstat: 256 (exited 1) Tests: 34 Failed: 1)
  Failed test:  34
  Non-zero exit status: 1
t/00_CappedCollection/01_new.t                       (Wstat: 256 (exited 1) Tests: 2 Failed: 1)
  Failed test:  2
  Non-zero exit status: 1
t/00_CappedCollection/02_insert.t                    (Wstat: 65280 (exited 255) Tests: 8 Failed: 1)
  Failed test:  8
  Non-zero exit status: 255
t/00_CappedCollection/03_update.t                    (Wstat: 65280 (exited 255) Tests: 8 Failed: 1)
  Failed test:  8
  Non-zero exit status: 255
t/00_CappedCollection/04_receive.t                   (Wstat: 65280 (exited 255) Tests: 7 Failed: 1)
  Failed test:  7
  Non-zero exit status: 255
t/00_CappedCollection/05_collection_info.t           (Wstat: 65280 (exited 255) Tests: 36 Failed: 1)
  Failed test:  36
  Non-zero exit status: 255
t/00_CappedCollection/06_pop_oldest.t                (Wstat: 65280 (exited 255) Tests: 8 Failed: 1)
  Failed test:  8
  Non-zero exit status: 255
t/00_CappedCollection/07_exists.t                    (Wstat: 65280 (exited 255) Tests: 23 Failed: 1)
  Failed test:  23
  Non-zero exit status: 255
t/00_CappedCollection/08_lists.t                     (Wstat: 65280 (exited 255) Tests: 8 Failed: 1)
  Failed test:  8
  Non-zero exit status: 255
t/00_CappedCollection/09_drop_collection.t           (Wstat: 65280 (exited 255) Tests: 8 Failed: 1)
  Failed test:  8
  Non-zero exit status: 255
t/00_CappedCollection/10_quit.t                      (Wstat: 65280 (exited 255) Tests: 8 Failed: 1)
  Failed test:  8
  Non-zero exit status: 255
t/00_CappedCollection/11_max_datasize.t              (Wstat: 65280 (exited 255) Tests: 21 Failed: 1)
  Failed test:  21
  Non-zero exit status: 255
t/00_CappedCollection/12_last_errorcode.t            (Wstat: 65280 (exited 255) Tests: 11 Failed: 1)
  Failed test:  11
  Non-zero exit status: 255
t/00_CappedCollection/13_name.t                      (Wstat: 65280 (exited 255) Tests: 14 Failed: 1)
  Failed test:  14
  Non-zero exit status: 255
t/00_CappedCollection/14_max_list_items.t            (Wstat: 65280 (exited 255) Tests: 12 Failed: 1)
  Failed test:  12
  Non-zero exit status: 255
t/00_CappedCollection/15_cleanup_bytes.t             (Wstat: 65280 (exited 255) Tests: 14 Failed: 1)
  Failed test:  14
  Non-zero exit status: 255
t/00_CappedCollection/17_cleanup_items.t             (Wstat: 65280 (exited 255) Tests: 26 Failed: 1)
  Failed test:  26
  Non-zero exit status: 255
t/00_CappedCollection/18_info.t                      (Wstat: 65280 (exited 255) Tests: 9 Failed: 1)
  Failed test:  9
  Non-zero exit status: 255
t/00_CappedCollection/19_drop.t                      (Wstat: 65280 (exited 255) Tests: 6 Failed: 1)
  Failed test:  6
  Non-zero exit status: 255
t/00_CappedCollection/20_cleaning.t                  (Wstat: 65280 (exited 255) Tests: 7 Failed: 1)
  Failed test:  7
  Non-zero exit status: 255
t/00_CappedCollection/21_rollback.t                  (Wstat: 65024 (exited 254) Tests: 9533 Failed: 4765)
  Failed tests:  4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24
                26, 28, 30, 32, 34, 36, 38, 40, 42, 44
                46, 48, 50, 52, 54, 56, 58, 60, 62, 64
                66, 68, 70, 72, 74, 76, 78, 80, 82, 84
                86, 88, 90, 92, 94, 96, 98, 100, 102, 104
                106, 108, 110, 112, 114, 116, 118, 120
                122, 124, 126, 128, 130, 132, 134, 136
                138, 140, 142, 144, 146, 148, 150, 152
                154, 156, 158, 160, 162, 164, 166, 168
                170, 172, 174, 176, 178, 180, 182, 184
                186, 188, 190, 192, 194, 196, 198, 200
                202, 204, 206, 208, 210, 212, 214, 216
                218, 220, 222, 224, 226, 228, 230, 232
                234, 236, 238, 240, 242, 244, 246, 248
                250, 252, 254, 256, 258, 260, 262, 264
                266, 268, 270, 272, 274, 276, 278, 280
                282, 284, 286, 288, 290, 292, 294, 296
                298, 300, 302, 304, 306, 308, 310, 312
                314, 316, 318, 320, 322, 324, 326, 328
                330, 332, 334, 336, 338, 340, 342, 344
                346, 348, 350, 352, 354, 356, 358, 360
                362, 364, 366, 368, 370, 372, 374, 376
                378, 380, 382, 384, 386, 388, 390, 392
                394, 396, 398, 400, 402, 404, 406, 408
                410, 412, 414, 416, 418, 420, 422, 424
                426, 428, 430, 432, 434, 436, 438, 440
                442, 444, 446, 448, 450, 452, 454, 456
                458, 460, 462, 464, 466, 468, 470, 472
                474, 476, 478, 480, 482, 484, 486, 488
                490, 492, 494, 496, 498, 500, 502, 504
                506, 508, 510, 512, 514, 516, 518, 520
                522, 524, 526, 528, 530, 532, 534, 536
                538, 540, 542, 544, 546, 548, 550, 552
                554, 556, 558, 560, 562, 564, 566, 568
                570, 572, 574, 576, 578, 580, 582, 584
                586, 588, 590, 592, 594, 596, 598, 600
                602, 604, 606, 608, 610, 612, 614, 616
                618, 620, 622, 624, 626, 628, 630, 632
                634, 636, 638, 640, 642, 644, 646, 648
                650, 652, 654, 656, 658, 660, 662, 664
                666, 668, 670, 672, 674, 676, 678, 680
                682, 684, 686, 688, 690, 692, 694, 696
                698, 700, 702, 704, 706, 708, 710, 712
                714, 716, 718, 720, 722, 724, 726, 728
                730, 732, 734, 736, 738, 740, 742, 744
                746, 748, 750, 752, 754, 756, 758, 760
                762, 764, 766, 768, 770, 772, 774, 776
                778, 780, 782, 784, 786, 788, 790, 792
                794, 796, 798, 800, 802, 804, 806, 808
                810, 812, 814, 816, 818, 820, 822, 824
                826, 828, 830, 832, 834, 836, 838, 840
                842, 844, 846, 848, 850, 852, 854, 856
                858, 860, 862, 864, 866, 868, 870, 872
                874, 876, 878, 880, 882, 884, 886, 888
                890, 892, 894, 896, 898, 900, 902, 904
                906, 908, 910, 912, 914, 916, 918, 920
                922, 924, 926, 928, 930, 932, 934, 936
                938, 940, 942, 944, 946, 948, 950, 952
                954, 956, 958, 960, 962, 964, 966, 968
                970, 972, 974, 976, 978, 980, 982, 984
                986, 988, 990, 992, 994, 996, 998, 1000
                1002, 1004, 1006, 1008, 1010, 1012, 1014
                1016, 1018, 1020, 1022, 1024, 1026, 1028
                1030, 1032, 1034, 1036, 1038, 1040, 1042
                1044, 1046, 1048, 1050, 1052, 1054, 1056
                1058, 1060, 1062, 1064, 1066, 1068, 1070
                1072, 1074, 1076, 1078, 1080, 1082, 1084
                1086, 1088, 1090, 1092, 1094, 1096, 1098
                1100, 1102, 1104, 1106, 1108, 1110, 1112
                1114, 1116, 1118, 1120, 1122, 1124, 1126
                1128, 1130, 1132, 1134, 1136, 1138, 1140
                1142, 1144, 1146, 1148, 1150, 1152, 1154
                1156, 1158, 1160, 1162, 1164, 1166, 1168
                1170, 1172, 1174, 1176, 1178, 1180, 1182
                1184, 1186, 1188, 1190, 1192, 1194, 1196
                1198, 1200, 1202, 1204, 1206, 1208, 1210
                1212, 1214, 1216, 1218, 1220, 1222, 1224
                1226, 1228, 1230, 1232, 1234, 1236, 1238
                1240, 1242, 1244, 1246, 1248, 1250, 1252
                1254, 1256, 1258, 1260, 1262, 1264, 1266
                1268, 1270, 1272, 1274, 1276, 1278, 1280
                1282, 1284, 1286, 1288, 1290, 1292, 1294
                1296, 1298, 1300, 1302, 1304, 1306, 1308
                1310, 1312, 1314, 1316, 1318, 1320, 1322
                1324, 1326, 1328, 1330, 1332, 1334, 1336
                1338, 1340, 1342, 1344, 1346, 1348, 1350
                1352, 1354, 1356, 1358, 1360, 1362, 1364
                1366, 1368, 1370, 1372, 1374, 1376, 1378
                1380, 1382, 1384, 1386, 1388, 1390, 1392
                1394, 1396, 1398, 1400, 1402, 1404, 1406
                1408, 1410, 1412, 1414, 1416, 1418, 1420
                1422, 1424, 1426, 1428, 1430, 1432, 1434
                1436, 1438, 1440, 1442, 1444, 1446, 1448
                1450, 1452, 1454, 1456, 1458, 1460, 1462
                1464, 1466, 1468, 1470, 1472, 1474, 1476
                1478, 1480, 1482, 1484, 1486, 1488, 1490
                1492, 1494, 1496, 1498, 1500, 1502, 1504
                1506, 1508, 1510, 1512, 1514, 1516, 1518
                1520, 1522, 1524, 1526, 1528, 1530, 1532
                1534, 1536, 1538, 1540, 1542, 1544, 1546
                1548, 1550, 1552, 1554, 1556, 1558, 1560
                1562, 1564, 1566, 1568, 1570, 1572, 1574
                1576, 1578, 1580, 1582, 1584, 1586, 1588
                1590, 1592, 1594, 1596, 1598, 1600, 1602
                1604, 1606, 1608, 1610, 1612, 1614, 1616
                1618, 1620, 1622, 1624, 1626, 1628, 1630
                1632, 1634, 1636, 1638, 1640, 1642, 1644
                1646, 1648, 1650, 1652, 1654, 1656, 1658
                1660, 1662, 1664, 1666, 1668, 1670, 1672
                1674, 1676, 1678, 1680, 1682, 1684, 1686
                1688, 1690, 1692, 1694, 1696, 1698, 1700
                1702, 1704, 1706, 1708, 1710, 1712, 1714
                1716, 1718, 1720, 1722, 1724, 1726, 1728
                1730, 1732, 1734, 1736, 1738, 1740, 1742
                1744, 1746, 1748, 1750, 1752, 1754, 1756
                1758, 1760, 1762, 1764, 1766, 1768, 1770
                1772, 1774, 1776, 1778, 1780, 1782, 1784
                1786, 1788, 1790, 1792, 1794, 1796, 1798
                1800, 1802, 1804, 1806, 1808, 1810, 1812
                1814, 1816, 1818, 1820, 1822, 1824, 1826
                1828, 1830, 1832, 1834, 1836, 1838, 1840
                1842, 1844, 1846, 1848, 1850, 1852, 1854
                1856, 1858, 1860, 1862, 1864, 1866, 1868
                1870, 1872, 1874, 1876, 1878, 1880, 1882
                1884, 1886, 1888, 1890, 1892, 1894, 1896
                1898, 1900, 1902, 1904, 1906, 1908, 1910
                1912, 1914, 1916, 1918, 1920, 1922, 1924
                1926, 1928, 1930, 1932, 1934, 1936, 1938
                1940, 1942, 1944, 1946, 1948, 1950, 1952
                1954, 1956, 1958, 1960, 1962, 1964, 1966
                1968, 1970, 1972, 1974, 1976, 1978, 1980
                1982, 1984, 1986, 1988, 1990, 1992, 1994
                1996, 1998, 2000, 2002, 2004, 2006, 2008
                2010, 2012, 2014, 2016, 2018, 2020, 2022
                2024, 2026, 2028, 2030, 2032, 2034, 2036
                2038, 2040, 2042, 2044, 2046, 2048, 2050
                2052, 2054, 2056, 2058, 2060, 2062, 2064
                2066, 2068, 2070, 2072, 2074, 2076, 2078
                2080, 2082, 2084, 2086, 2088, 2090, 2092
                2094, 2096, 2098, 2100, 2102, 2104, 2106
                2108, 2110, 2112, 2114, 2116, 2118, 2120
                2122, 2124, 2126, 2128, 2130, 2132, 2134
                2136, 2138, 2140, 2142, 2144, 2146, 2148
                2150, 2152, 2154, 2156, 2158, 2160, 2162
                2164, 2166, 2168, 2170, 2172, 2174, 2176
                2178, 2180, 2182, 2184, 2186, 2188, 2190
                2192, 2194, 2196, 2198, 2200, 2202, 2204
                2206, 2208, 2210, 2212, 2214, 2216, 2218
                2220, 2222, 2224, 2226, 2228, 2230, 2232
                2234, 2236, 2238, 2240, 2242, 2244, 2246
                2248, 2250, 2252, 2254, 2256, 2258, 2260
                2262, 2264, 2266, 2268, 2270, 2272, 2274
                2276, 2278, 2280, 2282, 2284, 2286, 2288
                2290, 2292, 2294, 2296, 2298, 2300, 2302
                2304, 2306, 2308, 2310, 2312, 2314, 2316
                2318, 2320, 2322, 2324, 2326, 2328, 2330
                2332, 2334, 2336, 2338, 2340, 2342, 2344
                2346, 2348, 2350, 2352, 2354, 2356, 2358
                2360, 2362, 2364, 2366, 2368, 2370, 2372
                2374, 2376, 2378, 2380, 2382, 2384, 2386
                2388, 2390, 2392, 2394, 2396, 2398, 2400
                2402, 2404, 2406, 2408, 2410, 2412, 2414
                2416, 2418, 2420, 2422, 2424, 2426, 2428
                2430, 2432, 2434, 2436, 2438, 2440, 2442
                2444, 2446, 2448, 2450, 2452, 2454, 2456
                2458, 2460, 2462, 2464, 2466, 2468, 2470
                2472, 2474, 2476, 2478, 2480, 2482, 2484
                2486, 2488, 2490, 2492, 2494, 2496, 2498
                2500, 2502, 2504, 2506, 2508, 2510, 2512
                2514, 2516, 2518, 2520, 2522, 2524, 2526
                2528, 2530, 2532, 2534, 2536, 2538, 2540
                2542, 2544, 2546, 2548, 2550, 2552, 2554
                2556, 2558, 2560, 2562, 2564, 2566, 2568
                2570, 2572, 2574, 2576, 2578, 2580, 2582
                2584, 2586, 2588, 2590, 2592, 2594, 2596
                2598, 2600, 2602, 2604, 2606, 2608, 2610
                2612, 2614, 2616, 2618, 2620, 2622, 2624
                2626, 2628, 2630, 2632, 2634, 2636, 2638
                2640, 2642, 2644, 2646, 2648, 2650, 2652
                2654, 2656, 2658, 2660, 2662, 2664, 2666
                2668, 2670, 2672, 2674, 2676, 2678, 2680
                2682, 2684, 2686, 2688, 2690, 2692, 2694
                2696, 2698, 2700, 2702, 2704, 2706, 2708
                2710, 2712, 2714, 2716, 2718, 2720, 2722
                2724, 2726, 2728, 2730, 2732, 2734, 2736
                2738, 2740, 2742, 2744, 2746, 2748, 2750
                2752, 2754, 2756, 2758, 2760, 2762, 2764
                2766, 2768, 2770, 2772, 2774, 2776, 2778
                2780, 2782, 2784, 2786, 2788, 2790, 2792
                2794, 2796, 2798, 2800, 2802, 2804, 2806
                2808, 2810, 2812, 2814, 2816, 2818, 2820
                2822, 2824, 2826, 2828, 2830, 2832, 2834
                2836, 2838, 2840, 2842, 2844, 2846, 2848
                2850, 2852, 2854, 2856, 2858, 2860, 2862
                2864, 2866, 2868, 2870, 2872, 2874, 2876
                2878, 2880, 2882, 2884, 2886, 2888, 2890
                2892, 2894, 2896, 2898, 2900, 2902, 2904
                2906, 2908, 2910, 2912, 2914, 2916, 2918
                2920, 2922, 2924, 2926, 2928, 2930, 2932
                2934, 2936, 2938, 2940, 2942, 2944, 2946
                2948, 2950, 2952, 2954, 2956, 2958, 2960
                2962, 2964, 2966, 2968, 2970, 2972, 2974
                2976, 2978, 2980, 2982, 2984, 2986, 2988
                2990, 2992, 2994, 2996, 2998, 3000, 3002
                3004, 3006, 3008, 3010, 3012, 3014, 3016
                3018, 3020, 3022, 3024, 3026, 3028, 3030
                3032, 3034, 3036, 3038, 3040, 3042, 3044
                3046, 3048, 3050, 3052, 3054, 3056, 3058
                3060, 3062, 3064, 3066, 3068, 3070, 3072
                3074, 3076, 3078, 3080, 3082, 3084, 3086
                3088, 3090, 3092, 3094, 3096, 3098, 3100
                3102, 3104, 3106, 3108, 3110, 3112, 3114
                3116, 3118, 3120, 3122, 3124, 3126, 3128
                3130, 3132, 3134, 3136, 3138, 3140, 3142
                3144, 3146, 3148, 3150, 3152, 3154, 3156
                3158, 3160, 3162, 3164, 3166, 3168, 3170
                3172, 3174, 3176, 3178, 3180, 3182, 3184
                3186, 3188, 3190, 3192, 3194, 3196, 3198
                3200, 3202, 3204, 3206, 3208, 3210, 3212
                3214, 3216, 3218, 3220, 3222, 3224, 3226
                3228, 3230, 3232, 3234, 3236, 3238, 3240
                3242, 3244, 3246, 3248, 3250, 3252, 3254
                3256, 3258, 3260, 3262, 3264, 3266, 3268
                3270, 3272, 3274, 3276, 3278, 3280, 3282
                3284, 3286, 3288, 3290, 3292, 3294, 3296
                3298, 3300, 3302, 3304, 3306, 3308, 3310
                3312, 3314, 3316, 3318, 3320, 3322, 3324
                3326, 3328, 3330, 3332, 3334, 3336, 3338
                3340, 3342, 3344, 3346, 3348, 3350, 3352
                3354, 3356, 3358, 3360, 3362, 3364, 3366
                3368, 3370, 3372, 3374, 3376, 3378, 3380
                3382, 3384, 3386, 3388, 3390, 3392, 3394
                3396, 3398, 3400, 3402, 3404, 3406, 3408
                3410, 3412, 3414, 3416, 3418, 3420, 3422
                3424, 3426, 3428, 3430, 3432, 3434, 3436
                3438, 3440, 3442, 3444, 3446, 3448, 3450
                3452, 3454, 3456, 3458, 3460, 3462, 3464
                3466, 3468, 3470, 3472, 3474, 3476, 3478
                3480, 3482, 3484, 3486, 3488, 3490, 3492
                3494, 3496, 3498, 3500, 3502, 3504, 3506
                3508, 3510, 3512, 3514, 3516, 3518, 3520
                3522, 3524, 3526, 3528, 3530, 3532, 3534
                3536, 3538, 3540, 3542, 3544, 3546, 3548
                3550, 3552, 3554, 3556, 3558, 3560, 3562
                3564, 3566, 3568, 3570, 3572, 3574, 3576
                3578, 3580, 3582, 3584, 3586, 3588, 3590
                3592, 3594, 3596, 3598, 3600, 3602, 3604
                3606, 3608, 3610, 3612, 3614, 3616, 3618
                3620, 3622, 3624, 3626, 3628, 3630, 3632
                3634, 3636, 3638, 3640, 3642, 3644, 3646
                3648, 3650, 3652, 3654, 3656, 3658, 3660
                3662, 3664, 3666, 3668, 3670, 3672, 3674
                3676, 3678, 3680, 3682, 3684, 3686, 3688
                3690, 3692, 3694, 3696, 3698, 3700, 3702
                3704, 3706, 3708, 3710, 3712, 3714, 3716
                3718, 3720, 3722, 3724, 3726, 3728, 3730
                3732, 3734, 3736, 3738, 3740, 3742, 3744
                3746, 3748, 3750, 3752, 3754, 3756, 3758
                3760, 3762, 3764, 3766, 3768, 3770, 3772
                3774, 3776, 3778, 3780, 3782, 3784, 3786
                3788, 3790, 3792, 3794, 3796, 3798, 3800
                3802, 3804, 3806, 3808, 3810, 3812, 3814
                3816, 3818, 3820, 3822, 3824, 3826, 3828
                3830, 3832, 3834, 3836, 3838, 3840, 3842
                3844, 3846, 3848, 3850, 3852, 3854, 3856
                3858, 3860, 3862, 3864, 3866, 3868, 3870
                3872, 3874, 3876, 3878, 3880, 3882, 3884
                3886, 3888, 3890, 3892, 3894, 3896, 3898
                3900, 3902, 3904, 3906, 3908, 3910, 3912
                3914, 3916, 3918, 3920, 3922, 3924, 3926
                3928, 3930, 3932, 3934, 3936, 3938, 3940
                3942, 3944, 3946, 3948, 3950, 3952, 3954
                3956, 3958, 3960, 3962, 3964, 3966, 3968
                3970, 3972, 3974, 3976, 3978, 3980, 3982
                3984, 3986, 3988, 3990, 3992, 3994, 3996
                3998, 4000, 4002, 4004, 4006, 4008, 4010
                4012, 4014, 4016, 4018, 4020, 4022, 4024
                4026, 4028, 4030, 4032, 4034, 4036, 4038
                4040, 4042, 4044, 4046, 4048, 4050, 4052
                4054, 4056, 4058, 4060, 4062, 4064, 4066
                4068, 4070, 4072, 4074, 4076, 4078, 4080
                4082, 4084, 4086, 4088, 4090, 4092, 4094
                4096, 4098, 4100, 4102, 4104, 4106, 4108
                4110, 4112, 4114, 4116, 4118, 4120, 4122
                4124, 4126, 4128, 4130, 4132, 4134, 4136
                4138, 4140, 4142, 4144, 4146, 4148, 4150
                4152, 4154, 4156, 4158, 4160, 4162, 4164
                4166, 4168, 4170, 4172, 4174, 4176, 4178
                4180, 4182, 4184, 4186, 4188, 4190, 4192
                4194, 4196, 4198, 4200, 4202, 4204, 4206
                4208, 4210, 4212, 4214, 4216, 4218, 4220
                4222, 4224, 4226, 4228, 4230, 4232, 4234
                4236, 4238, 4240, 4242, 4244, 4246, 4248
                4250, 4252, 4254, 4256, 4258, 4260, 4262
                4264, 4266, 4268, 4270, 4272, 4274, 4276
                4278, 4280, 4282, 4284, 4286, 4288, 4290
                4292, 4294, 4296, 4298, 4300, 4302, 4304
                4306, 4308, 4310, 4312, 4314, 4316, 4318
                4320, 4322, 4324, 4326, 4328, 4330, 4332
                4334, 4336, 4338, 4340, 4342, 4344, 4346
                4348, 4350, 4352, 4354, 4356, 4358, 4360
                4362, 4364, 4366, 4368, 4370, 4372, 4374
                4376, 4378, 4380, 4382, 4384, 4386, 4388
                4390, 4392, 4394, 4396, 4398, 4400, 4402
                4404, 4406, 4408, 4410, 4412, 4414, 4416
                4418, 4420, 4422, 4424, 4426, 4428, 4430
                4432, 4434, 4436, 4438, 4440, 4442, 4444
                4446, 4448, 4450, 4452, 4454, 4456, 4458
                4460, 4462, 4464, 4466, 4468, 4470, 4472
                4474, 4476, 4478, 4480, 4482, 4484, 4486
                4488, 4490, 4492, 4494, 4496, 4498, 4500
                4502, 4504, 4506, 4508, 4510, 4512, 4514
                4516, 4518, 4520, 4522, 4524, 4526, 4528
                4530, 4532, 4534, 4536, 4538, 4540, 4542
                4544, 4546, 4548, 4550, 4552, 4554, 4556
                4558, 4560, 4562, 4564, 4566, 4568, 4570
                4572, 4574, 4576, 4578, 4580, 4582, 4584
                4586, 4588, 4590, 4592, 4594, 4596, 4598
                4600, 4602, 4604, 4606, 4608, 4610, 4612
                4614, 4616, 4618, 4620, 4622, 4624, 4626
                4628, 4630, 4632, 4634, 4636, 4638, 4640
                4642, 4644, 4646, 4648, 4650, 4652, 4654
                4656, 4658, 4660, 4662, 4664, 4666, 4668
                4670, 4672, 4674, 4676, 4678, 4680, 4682
                4684, 4686, 4688, 4690, 4692, 4694, 4696
                4698, 4700, 4702, 4704, 4706, 4708, 4710
                4712, 4714, 4716, 4718, 4720, 4722, 4724
                4726, 4728, 4730, 4732, 4734, 4736, 4738
                4740, 4742, 4744, 4746, 4748, 4750, 4752
                4754, 4756, 4758, 4760, 4762, 4764, 4766
                4768, 4770, 4772, 4774, 4776, 4778, 4780
                4782, 4784, 4786, 4788, 4790, 4792, 4794
                4796, 4798, 4800, 4802, 4804, 4806, 4808
                4810, 4812, 4814, 4816, 4818, 4820, 4822
                4824, 4826, 4828, 4830, 4832, 4834, 4836
                4838, 4840, 4842, 4844, 4846, 4848, 4850
                4852, 4854, 4856, 4858, 4860, 4862, 4864
                4866, 4868, 4870, 4872, 4874, 4876, 4878
                4880, 4882, 4884, 4886, 4888, 4890, 4892
                4894, 4896, 4898, 4900, 4902, 4904, 4906
                4908, 4910, 4912, 4914, 4916, 4918, 4920
                4922, 4924, 4926, 4928, 4930, 4932, 4934
                4936, 4938, 4940, 4942, 4944, 4946, 4948
                4950, 4952, 4954, 4956, 4958, 4960, 4962
                4964, 4966, 4968, 4970, 4972, 4974, 4976
                4978, 4980, 4982, 4984, 4986, 4988, 4990
                4992, 4994, 4996, 4998, 5000, 5002, 5004
                5006, 5008, 5010, 5012, 5014, 5016, 5018
                5020, 5022, 5024, 5026, 5028, 5030, 5032
                5034, 5036, 5038, 5040, 5042, 5044, 5046
                5048, 5050, 5052, 5054, 5056, 5058, 5060
                5062, 5064, 5066, 5068, 5070, 5072, 5074
                5076, 5078, 5080, 5082, 5084, 5086, 5088
                5090, 5092, 5094, 5096, 5098, 5100, 5102
                5104, 5106, 5108, 5110, 5112, 5114, 5116
                5118, 5120, 5122, 5124, 5126, 5128, 5130
                5132, 5134, 5136, 5138, 5140, 5142, 5144
                5146, 5148, 5150, 5152, 5154, 5156, 5158
                5160, 5162, 5164, 5166, 5168, 5170, 5172
                5174, 5176, 5178, 5180, 5182, 5184, 5186
                5188, 5190, 5192, 5194, 5196, 5198, 5200
                5202, 5204, 5206, 5208, 5210, 5212, 5214
                5216, 5218, 5220, 5222, 5224, 5226, 5228
                5230, 5232, 5234, 5236, 5238, 5240, 5242
                5244, 5246, 5248, 5250, 5252, 5254, 5256
                5258, 5260, 5262, 5264, 5266, 5268, 5270
                5272, 5274, 5276, 5278, 5280, 5282, 5284
                5286, 5288, 5290, 5292, 5294, 5296, 5298
                5300, 5302, 5304, 5306, 5308, 5310, 5312
                5314, 5316, 5318, 5320, 5322, 5324, 5326
                5328, 5330, 5332, 5334, 5336, 5338, 5340
                5342, 5344, 5346, 5348, 5350, 5352, 5354
                5356, 5358, 5360, 5362, 5364, 5366, 5368
                5370, 5372, 5374, 5376, 5378, 5380, 5382
                5384, 5386, 5388, 5390, 5392, 5394, 5396
                5398, 5400, 5402, 5404, 5406, 5408, 5410
                5412, 5414, 5416, 5418, 5420, 5422, 5424
                5426, 5428, 5430, 5432, 5434, 5436, 5438
                5440, 5442, 5444, 5446, 5448, 5450, 5452
                5454, 5456, 5458, 5460, 5462, 5464, 5466
                5468, 5470, 5472, 5474, 5476, 5478, 5480
                5482, 5484, 5486, 5488, 5490, 5492, 5494
                5496, 5498, 5500, 5502, 5504, 5506, 5508
                5510, 5512, 5514, 5516, 5518, 5520, 5522
                5524, 5526, 5528, 5530, 5532, 5534, 5536
                5538, 5540, 5542, 5544, 5546, 5548, 5550
                5552, 5554, 5556, 5558, 5560, 5562, 5564
                5566, 5568, 5570, 5572, 5574, 5576, 5578
                5580, 5582, 5584, 5586, 5588, 5590, 5592
                5594, 5596, 5598, 5600, 5602, 5604, 5606
                5608, 5610, 5612, 5614, 5616, 5618, 5620
                5622, 5624, 5626, 5628, 5630, 5632, 5634
                5636, 5638, 5640, 5642, 5644, 5646, 5648
                5650, 5652, 5654, 5656, 5658, 5660, 5662
                5664, 5666, 5668, 5670, 5672, 5674, 5676
                5678, 5680, 5682, 5684, 5686, 5688, 5690
                5692, 5694, 5696, 5698, 5700, 5702, 5704
                5706, 5708, 5710, 5712, 5714, 5716, 5718
                5720, 5722, 5724, 5726, 5728, 5730, 5732
                5734, 5736, 5738, 5740, 5742, 5744, 5746
                5748, 5750, 5752, 5754, 5756, 5758, 5760
                5762, 5764, 5766, 5768, 5770, 5772, 5774
                5776, 5778, 5780, 5782, 5784, 5786, 5788
                5790, 5792, 5794, 5796, 5798, 5800, 5802
                5804, 5806, 5808, 5810, 5812, 5814, 5816
                5818, 5820, 5822, 5824, 5826, 5828, 5830
                5832, 5834, 5836, 5838, 5840, 5842, 5844
                5846, 5848, 5850, 5852, 5854, 5856, 5858
                5860, 5862, 5864, 5866, 5868, 5870, 5872
                5874, 5876, 5878, 5880, 5882, 5884, 5886
                5888, 5890, 5892, 5894, 5896, 5898, 5900
                5902, 5904, 5906, 5908, 5910, 5912, 5914
                5916, 5918, 5920, 5922, 5924, 5926, 5928
                5930, 5932, 5934, 5936, 5938, 5940, 5942
                5944, 5946, 5948, 5950, 5952, 5954, 5956
                5958, 5960, 5962, 5964, 5966, 5968, 5970
                5972, 5974, 5976, 5978, 5980, 5982, 5984
                5986, 5988, 5990, 5992, 5994, 5996, 5998
                6000, 6002, 6004, 6006, 6008, 6010, 6012
                6014, 6016, 6018, 6020, 6022, 6024, 6026
                6028, 6030, 6032, 6034, 6036, 6038, 6040
                6042, 6044, 6046, 6048, 6050, 6052, 6054
                6056, 6058, 6060, 6062, 6064, 6066, 6068
                6070, 6072, 6074, 6076, 6078, 6080, 6082
                6084, 6086, 6088, 6090, 6092, 6094, 6096
                6098, 6100, 6102, 6104, 6106, 6108, 6110
                6112, 6114, 6116, 6118, 6120, 6122, 6124
                6126, 6128, 6130, 6132, 6134, 6136, 6138
                6140, 6142, 6144, 6146, 6148, 6150, 6152
                6154, 6156, 6158, 6160, 6162, 6164, 6166
                6168, 6170, 6172, 6174, 6176, 6178, 6180
                6182, 6184, 6186, 6188, 6190, 6192, 6194
                6196, 6198, 6200, 6202, 6204, 6206, 6208
                6210, 6212, 6214, 6216, 6218, 6220, 6222
                6224, 6226, 6228, 6230, 6232, 6234, 6236
                6238, 6240, 6242, 6244, 6246, 6248, 6250
                6252, 6254, 6256, 6258, 6260, 6262, 6264
                6266, 6268, 6270, 6272, 6274, 6276, 6278
                6280, 6282, 6284, 6286, 6288, 6290, 6292
                6294, 6296, 6298, 6300, 6302, 6304, 6306
                6308, 6310, 6312, 6314, 6316, 6318, 6320
                6322, 6324, 6326, 6328, 6330, 6332, 6334
                6336, 6338, 6340, 6342, 6344, 6346, 6348
                6350, 6352, 6354, 6356, 6358, 6360, 6362
                6364, 6366, 6368, 6370, 6372, 6374, 6376
                6378, 6380, 6382, 6384, 6386, 6388, 6390
                6392, 6394, 6396, 6398, 6400, 6402, 6404
                6406, 6408, 6410, 6412, 6414, 6416, 6418
                6420, 6422, 6424, 6426, 6428, 6430, 6432
                6434, 6436, 6438, 6440, 6442, 6444, 6446
                6448, 6450, 6452, 6454, 6456, 6458, 6460
                6462, 6464, 6466, 6468, 6470, 6472, 6474
                6476, 6478, 6480, 6482, 6484, 6486, 6488
                6490, 6492, 6494, 6496, 6498, 6500, 6502
                6504, 6506, 6508, 6510, 6512, 6514, 6516
                6518, 6520, 6522, 6524, 6526, 6528, 6530
                6532, 6534, 6536, 6538, 6540, 6542, 6544
                6546, 6548, 6550, 6552, 6554, 6556, 6558
                6560, 6562, 6564, 6566, 6568, 6570, 6572
                6574, 6576, 6578, 6580, 6582, 6584, 6586
                6588, 6590, 6592, 6594, 6596, 6598, 6600
                6602, 6604, 6606, 6608, 6610, 6612, 6614
                6616, 6618, 6620, 6622, 6624, 6626, 6628
                6630, 6632, 6634, 6636, 6638, 6640, 6642
                6644, 6646, 6648, 6650, 6652, 6654, 6656
                6658, 6660, 6662, 6664, 6666, 6668, 6670
                6672, 6674, 6676, 6678, 6680, 6682, 6684
                6686, 6688, 6690, 6692, 6694, 6696, 6698
                6700, 6702, 6704, 6706, 6708, 6710, 6712
                6714, 6716, 6718, 6720, 6722, 6724, 6726
                6728, 6730, 6732, 6734, 6736, 6738, 6740
                6742, 6744, 6746, 6748, 6750, 6752, 6754
                6756, 6758, 6760, 6762, 6764, 6766, 6768
                6770, 6772, 6774, 6776, 6778, 6780, 6782
                6784, 6786, 6788, 6790, 6792, 6794, 6796
                6798, 6800, 6802, 6804, 6806, 6808, 6810
                6812, 6814, 6816, 6818, 6820, 6822, 6824
                6826, 6828, 6830, 6832, 6834, 6836, 6838
                6840, 6842, 6844, 6846, 6848, 6850, 6852
                6854, 6856, 6858, 6860, 6862, 6864, 6866
                6868, 6870, 6872, 6874, 6876, 6878, 6880
                6882, 6884, 6886, 6888, 6890, 6892, 6894
                6896, 6898, 6900, 6902, 6904, 6906, 6908
                6910, 6912, 6914, 6916, 6918, 6920, 6922
                6924, 6926, 6928, 6930, 6932, 6934, 6936
                6938, 6940, 6942, 6944, 6946, 6948, 6950
                6952, 6954, 6956, 6958, 6960, 6962, 6964
                6966, 6968, 6970, 6972, 6974, 6976, 6978
                6980, 6982, 6984, 6986, 6988, 6990, 6992
                6994, 6996, 6998, 7000, 7002, 7004, 7006
                7008, 7010, 7012, 7014, 7016, 7018, 7020
                7022, 7024, 7026, 7028, 7030, 7032, 7034
                7036, 7038, 7040, 7042, 7044, 7046, 7048
                7050, 7052, 7054, 7056, 7058, 7060, 7062
                7064, 7066, 7068, 7070, 7072, 7074, 7076
                7078, 7080, 7082, 7084, 7086, 7088, 7090
                7092, 7094, 7096, 7098, 7100, 7102, 7104
                7106, 7108, 7110, 7112, 7114, 7116, 7118
                7120, 7122, 7124, 7126, 7128, 7130, 7132
                7134, 7136, 7138, 7140, 7142, 7144, 7146
                7148, 7150, 7152, 7154, 7156, 7158, 7160
                7162, 7164, 7166, 7168, 7170, 7172, 7174
                7176, 7178, 7180, 7182, 7184, 7186, 7188
                7190, 7192, 7194, 7196, 7198, 7200, 7202
                7204, 7206, 7208, 7210, 7212, 7214, 7216
                7218, 7220, 7222, 7224, 7226, 7228, 7230
                7232, 7234, 7236, 7238, 7240, 7242, 7244
                7246, 7248, 7250, 7252, 7254, 7256, 7258
                7260, 7262, 7264, 7266, 7268, 7270, 7272
                7274, 7276, 7278, 7280, 7282, 7284, 7286
                7288, 7290, 7292, 7294, 7296, 7298, 7300
                7302, 7304, 7306, 7308, 7310, 7312, 7314
                7316, 7318, 7320, 7322, 7324, 7326, 7328
                7330, 7332, 7334, 7336, 7338, 7340, 7342
                7344, 7346, 7348, 7350, 7352, 7354, 7356
                7358, 7360, 7362, 7364, 7366, 7368, 7370
                7372, 7374, 7376, 7378, 7380, 7382, 7384
                7386, 7388, 7390, 7392, 7394, 7396, 7398
                7400, 7402, 7404, 7406, 7408, 7410, 7412
                7414, 7416, 7418, 7420, 7422, 7424, 7426
                7428, 7430, 7432, 7434, 7436, 7438, 7440
                7442, 7444, 7446, 7448, 7450, 7452, 7454
                7456, 7458, 7460, 7462, 7464, 7466, 7468
                7470, 7472, 7474, 7476, 7478, 7480, 7482
                7484, 7486, 7488, 7490, 7492, 7494, 7496
                7498, 7500, 7502, 7504, 7506, 7508, 7510
                7512, 7514, 7516, 7518, 7520, 7522, 7524
                7526, 7528, 7530, 7532, 7534, 7536, 7538
                7540, 7542, 7544, 7546, 7548, 7550, 7552
                7554, 7556, 7558, 7560, 7562, 7564, 7566
                7568, 7570, 7572, 7574, 7576, 7578, 7580
                7582, 7584, 7586, 7588, 7590, 7592, 7594
                7596, 7598, 7600, 7602, 7604, 7606, 7608
                7610, 7612, 7614, 7616, 7618, 7620, 7622
                7624, 7626, 7628, 7630, 7632, 7634, 7636
                7638, 7640, 7642, 7644, 7646, 7648, 7650
                7652, 7654, 7656, 7658, 7660, 7662, 7664
                7666, 7668, 7670, 7672, 7674, 7676, 7678
                7680, 7682, 7684, 7686, 7688, 7690, 7692
                7694, 7696, 7698, 7700, 7702, 7704, 7706
                7708, 7710, 7712, 7714, 7716, 7718, 7720
                7722, 7724, 7726, 7728, 7730, 7732, 7734
                7736, 7738, 7740, 7742, 7744, 7746, 7748
                7750, 7752, 7754, 7756, 7758, 7760, 7762
                7764, 7766, 7768, 7770, 7772, 7774, 7776
                7778, 7780, 7782, 7784, 7786, 7788, 7790
                7792, 7794, 7796, 7798, 7800, 7802, 7804
                7806, 7808, 7810, 7812, 7814, 7816, 7818
                7820, 7822, 7824, 7826, 7828, 7830, 7832
                7834, 7836, 7838, 7840, 7842, 7844, 7846
                7848, 7850, 7852, 7854, 7856, 7858, 7860
                7862, 7864, 7866, 7868, 7870, 7872, 7874
                7876, 7878, 7880, 7882, 7884, 7886, 7888
                7890, 7892, 7894, 7896, 7898, 7900, 7902
                7904, 7906, 7908, 7910, 7912, 7914, 7916
                7918, 7920, 7922, 7924, 7926, 7928, 7930
                7932, 7934, 7936, 7938, 7940, 7942, 7944
                7946, 7948, 7950, 7952, 7954, 7956, 7958
                7960, 7962, 7964, 7966, 7968, 7970, 7972
                7974, 7976, 7978, 7980, 7982, 7984, 7986
                7988, 7990, 7992, 7994, 7996, 7998, 8000
                8002, 8004, 8006, 8008, 8010, 8012, 8014
                8016, 8018, 8020, 8022, 8024, 8026, 8028
                8030, 8032, 8034, 8036, 8038, 8040, 8042
                8044, 8046, 8048, 8050, 8052, 8054, 8056
                8058, 8060, 8062, 8064, 8066, 8068, 8070
                8072, 8074, 8076, 8078, 8080, 8082, 8084
                8086, 8088, 8090, 8092, 8094, 8096, 8098
                8100, 8102, 8104, 8106, 8108, 8110, 8112
                8114, 8116, 8118, 8120, 8122, 8124, 8126
                8128, 8130, 8132, 8134, 8136, 8138, 8140
                8142, 8144, 8146, 8148, 8150, 8152, 8154
                8156, 8158, 8160, 8162, 8164, 8166, 8168
                8170, 8172, 8174, 8176, 8178, 8180, 8182
                8184, 8186, 8188, 8190, 8192, 8194, 8196
                8198, 8200, 8202, 8204, 8206, 8208, 8210
                8212, 8214, 8216, 8218, 8220, 8222, 8224
                8226, 8228, 8230, 8232, 8234, 8236, 8238
                8240, 8242, 8244, 8246, 8248, 8250, 8252
                8254, 8256, 8258, 8260, 8262, 8264, 8266
                8268, 8270, 8272, 8274, 8276, 8278, 8280
                8282, 8284, 8286, 8288, 8290, 8292, 8294
                8296, 8298, 8300, 8302, 8304, 8306, 8308
                8310, 8312, 8314, 8316, 8318, 8320, 8322
                8324, 8326, 8328, 8330, 8332, 8334, 8336
                8338, 8340, 8342, 8344, 8346, 8348, 8350
                8352, 8354, 8356, 8358, 8360, 8362, 8364
                8366, 8368, 8370, 8372, 8374, 8376, 8378
                8380, 8382, 8384, 8386, 8388, 8390, 8392
                8394, 8396, 8398, 8400, 8402, 8404, 8406
                8408, 8410, 8412, 8414, 8416, 8418, 8420
                8422, 8424, 8426, 8428, 8430, 8432, 8434
                8436, 8438, 8440, 8442, 8444, 8446, 8448
                8450, 8452, 8454, 8456, 8458, 8460, 8462
                8464, 8466, 8468, 8470, 8472, 8474, 8476
                8478, 8480, 8482, 8484, 8486, 8488, 8490
                8492, 8494, 8496, 8498, 8500, 8502, 8504
                8506, 8508, 8510, 8512, 8514, 8516, 8518
                8520, 8522, 8524, 8526, 8528, 8530, 8532
                8534, 8536, 8538, 8540, 8542, 8544, 8546
                8548, 8550, 8552, 8554, 8556, 8558, 8560
                8562, 8564, 8566, 8568, 8570, 8572, 8574
                8576, 8578, 8580, 8582, 8584, 8586, 8588
                8590, 8592, 8594, 8596, 8598, 8600, 8602
                8604, 8606, 8608, 8610, 8612, 8614, 8616
                8618, 8620, 8622, 8624, 8626, 8628, 8630
                8632, 8634, 8636, 8638, 8640, 8642, 8644
                8646, 8648, 8650, 8652, 8654, 8656, 8658
                8660, 8662, 8664, 8666, 8668, 8670, 8672
                8674, 8676, 8678, 8680, 8682, 8684, 8686
                8688, 8690, 8692, 8694, 8696, 8698, 8700
                8702, 8704, 8706, 8708, 8710, 8712, 8714
                8716, 8718, 8720, 8722, 8724, 8726, 8728
                8730, 8732, 8734, 8736, 8738, 8740, 8742
                8744, 8746, 8748, 8750, 8752, 8754, 8756
                8758, 8760, 8762, 8764, 8766, 8768, 8770
                8772, 8774, 8776, 8778, 8780, 8782, 8784
                8786, 8788, 8790, 8792, 8794, 8796, 8798
                8800, 8802, 8804, 8806, 8808, 8810, 8812
                8814, 8816, 8818, 8820, 8822, 8824, 8826
                8828, 8830, 8832, 8834, 8836, 8838, 8840
                8842, 8844, 8846, 8848, 8850, 8852, 8854
                8856, 8858, 8860, 8862, 8864, 8866, 8868
                8870, 8872, 8874, 8876, 8878, 8880, 8882
                8884, 8886, 8888, 8890, 8892, 8894, 8896
                8898, 8900, 8902, 8904, 8906, 8908, 8910
                8912, 8914, 8916, 8918, 8920, 8922, 8924
                8926, 8928, 8930, 8932, 8934, 8936, 8938
                8940, 8942, 8944, 8946, 8948, 8950, 8952
                8954, 8956, 8958, 8960, 8962, 8964, 8966
                8968, 8970, 8972, 8974, 8976, 8978, 8980
                8982, 8984, 8986, 8988, 8990, 8992, 8994
                8996, 8998, 9000, 9002, 9004, 9006, 9008
                9010, 9012, 9014, 9016, 9018, 9020, 9022
                9024, 9026, 9028, 9030, 9032, 9034, 9036
                9038, 9040, 9042, 9044, 9046, 9048, 9050
                9052, 9054, 9056, 9058, 9060, 9062, 9064
                9066, 9068, 9070, 9072, 9074, 9076, 9078
                9080, 9082, 9084, 9086, 9088, 9090, 9092
                9094, 9096, 9098, 9100, 9102, 9104, 9106
                9108, 9110, 9112, 9114, 9116, 9118, 9120
                9122, 9124, 9126, 9128, 9130, 9132, 9134
                9136, 9138, 9140, 9142, 9144, 9146, 9148
                9150, 9152, 9154, 9156, 9158, 9160, 9162
                9164, 9166, 9168, 9170, 9172, 9174, 9176
                9178, 9180, 9182, 9184, 9186, 9188, 9190
                9192, 9194, 9196, 9198, 9200, 9202, 9204
                9206, 9208, 9210, 9212, 9214, 9216, 9218
                9220, 9222, 9224, 9226, 9228, 9230, 9232
                9234, 9236, 9238, 9240, 9242, 9244, 9246
                9248, 9250, 9252, 9254, 9256, 9258, 9260
                9262, 9264, 9266, 9268, 9270, 9272, 9274
                9276, 9278, 9280, 9282, 9284, 9286, 9288
                9290, 9292, 9294, 9296, 9298, 9300, 9302
                9304, 9306, 9308, 9310, 9312, 9314, 9316
                9318, 9320, 9322, 9324, 9326, 9328, 9330
                9332, 9334, 9336, 9338, 9340, 9342, 9344
                9346, 9348, 9350, 9352, 9354, 9356, 9358
                9360, 9362, 9364, 9366, 9368, 9370, 9372
                9374, 9376, 9378, 9380, 9382, 9384, 9386
                9388, 9390, 9392, 9394, 9396, 9398, 9400
                9402, 9404, 9406, 9408, 9410, 9412, 9414
                9416, 9418, 9420, 9422, 9424, 9426, 9428
                9430, 9432, 9434, 9436, 9438, 9440, 9442
                9444, 9446, 9448, 9450, 9452, 9454, 9456
                9458, 9460, 9462, 9464, 9466, 9468, 9470
                9472, 9474, 9476, 9478, 9480, 9482, 9484
                9486, 9488, 9490, 9492, 9494, 9496, 9498
                9500, 9502, 9504, 9506, 9508, 9510, 9512
                9514, 9516, 9518, 9520, 9522, 9524, 9526
                9528, 9530, 9533
  Non-zero exit status: 254
t/00_CappedCollection/22_alarm.t                     (Wstat: 256 (exited 1) Tests: 2 Failed: 1)
  Failed test:  2
  Non-zero exit status: 1
t/00_CappedCollection/23_cleaning_bench.t            (Wstat: 256 (exited 1) Tests: 1 Failed: 1)
  Failed test:  1
  Non-zero exit status: 1
t/00_CappedCollection/24_timeout.t                   (Wstat: 65280 (exited 255) Tests: 6 Failed: 1)
  Failed test:  6
  Non-zero exit status: 255
t/00_CappedCollection/25_cleaning_correctness.t      (Wstat: 65280 (exited 255) Tests: 5 Failed: 1)
  Failed test:  5
  Non-zero exit status: 255
t/00_CappedCollection/26_script_variable_protection.t (Wstat: 256 (exited 1) Tests: 42 Failed: 1)
  Failed test:  42
  Non-zero exit status: 1
t/00_compile.t                                       (Wstat: 256 (exited 1) Tests: 21 Failed: 1)
  Failed test:  21
  Non-zero exit status: 1
Files=29, Tests=9882, 35 wallclock secs ( 6.16 usr  0.94 sys + 21.35 cusr  3.91 csys = 32.36 CPU)
Result: FAIL
Failed 27/29 test programs. 4791/9882 subtests failed.
make: *** [Makefile:918: test_dynamic] Error 1

------------------------------
PREREQUISITES
------------------------------

Prerequisite modules loaded:

requires:

    Module              Need  Have    
    ------------------- ----- --------
    Const::Fast         0.014 0.014   
    Digest::SHA1        2.13  2.13    
    Mouse               0     v2.5.10 
    Params::Util        1.07  1.102   
    perl                5.010 5.039003
    Redis               1.976 2.000   
    Try::Tiny           0.18  0.31    

build_requires:

    Module              Need  Have    
    ------------------- ----- --------
    Data::UUID          1.217 1.226   
    ExtUtils::MakeMaker 0     7.70    
    JSON::XS            3.01  4.03    
    Net::EmptyPort      0     0       
    Sys::SigAction      0.21  0.23    
    Test::Exception     0.31  0.43    
    Test::NoWarnings    1.04  1.06    
    Test::RedisServer   0.04  0.23    

configure_requires:

    Module              Need  Have    
    ------------------- ----- --------
    ExtUtils::MakeMaker 0     7.70    


------------------------------
ENVIRONMENT AND OTHER CONTEXT
------------------------------

Environment variables:

    AUTOMATED_TESTING = 1
    LANG = en_US.UTF-8
    LC_ADDRESS = de_DE.UTF-8
    LC_IDENTIFICATION = de_DE.UTF-8
    LC_MEASUREMENT = de_DE.UTF-8
    LC_MONETARY = de_DE.UTF-8
    LC_NAME = de_DE.UTF-8
    LC_NUMERIC = de_DE.UTF-8
    LC_PAPER = de_DE.UTF-8
    LC_TELEPHONE = de_DE.UTF-8
    LC_TIME = de_DE.UTF-8
    PATH = /home/sand/bin:/usr/local/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/perl/bin:/usr/X11/bin
    PERL = /tmp/basesmoker-reloperl-WrhG/bin/perl
    PERL5LIB = 
    PERL5OPT = 
    PERL5_CPANPLUS_IS_RUNNING = 2805
    PERL5_CPAN_IS_RUNNING = 2805
    PERL_CANARY_STABILITY_NOPROMPT = 1
    PERL_MM_USE_DEFAULT = 1
    PERL_USE_UNSAFE_INC = 1
    SHELL = /usr/bin/zsh
    TERM = screen

Perl special variables (and OS-specific diagnostics, for MSWin32):

    $^X = /tmp/basesmoker-reloperl-WrhG/bin/perl
    $UID/$EUID = 1005 / 1005
    $GID = 1005 1005
    $EGID = 1005 1005

Perl module toolchain versions installed:

    Module              Have    
    ------------------- --------
    CPAN                2.36    
    CPAN::Meta          2.150010
    Cwd                 3.90    
    ExtUtils::CBuilder  0.280240
    ExtUtils::Command   7.70    
    ExtUtils::Install   2.22    
    ExtUtils::MakeMaker 7.70    
    ExtUtils::Manifest  1.75    
    ExtUtils::ParseXS   3.51    
    File::Spec          3.90    
    JSON                4.10    
    JSON::PP            4.16    
    Module::Build       0.4234  
    Module::Signature   0.88    
    Parse::CPAN::Meta   2.150010
    Test2               1.302195
    Test::Harness       3.47    
    Test::More          1.302195
    YAML                1.30    
    YAML::Syck          1.34    
    version             0.9930  


--

Summary of my perl5 (revision 5 version 39 subversion 3) configuration:
  Commit id: c8a2e4d1432cd1244a4e44d6bb71920b692076b7
  Platform:
    osname=linux
    osvers=6.2.0-32-generic
    archname=x86_64-linux
    uname='linux k93jammy 6.2.0-32-generic #32~22.04.1-ubuntu smp preempt_dynamic fri aug 18 10:40:13 utc 2 x86_64 x86_64 x86_64 gnulinux '
    config_args='-Dprefix=/home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567 -Dmyhostname=k93jammy -Dinstallusrbinperl=n -Uversiononly -Dusedevel -des -Ui_db -Dlibswanted=cl pthread socket inet nsl gdbm dbm malloc dl ld sun m crypt sec util c cposix posix ucb BSD gdbm_compat -Uuseithreads -Uuselongdouble -DEBUGGING=-g'
    hint=recommended
    useposix=true
    d_sigaction=define
    useithreads=undef
    usemultiplicity=undef
    use64bitint=define
    use64bitall=define
    uselongdouble=undef
    usemymalloc=n
    default_inc_excludes_dot=define
  Compiler:
    cc='cc'
    ccflags ='-fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
    optimize='-O2 -g'
    cppflags='-fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include'
    ccversion=''
    gccversion='11.4.0'
    gccosandvers=''
    intsize=4
    longsize=8
    ptrsize=8
    doublesize=8
    byteorder=12345678
    doublekind=3
    d_longlong=define
    longlongsize=8
    d_longdbl=define
    longdblsize=16
    longdblkind=3
    ivtype='long'
    ivsize=8
    nvtype='double'
    nvsize=8
    Off_t='off_t'
    lseeksize=8
    alignbytes=8
    prototype=define
  Linker and Libraries:
    ld='cc'
    ldflags =' -fstack-protector-strong -L/usr/local/lib'
    libpth=/usr/local/lib /usr/lib/x86_64-linux-gnu /usr/lib /usr/lib64
    libs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
    perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
    libc=/lib/x86_64-linux-gnu/libc.so.6
    so=so
    useshrplib=false
    libperl=libperl.a
    gnulibc_version='2.35'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs
    dlext=so
    d_dlsymun=undef
    ccdlflags='-Wl,-E'
    cccdlflags='-fPIC'
    lddlflags='-shared -O2 -g -L/usr/local/lib -fstack-protector-strong'


Characteristics of this binary (from libperl): 
  Compile-time options:
    HAS_LONG_DOUBLE
    HAS_STRTOLD
    HAS_TIMES
    PERLIO_LAYERS
    PERL_COPY_ON_WRITE
    PERL_DONT_CREATE_GVSV
    PERL_HASH_FUNC_SIPHASH13
    PERL_HASH_USE_SBOX32
    PERL_MALLOC_WRAP
    PERL_OP_PARENT
    PERL_PRESERVE_IVUV
    PERL_USE_DEVEL
    PERL_USE_SAFE_PUTENV
    USE_64_BIT_ALL
    USE_64_BIT_INT
    USE_LARGE_FILES
    USE_LOCALE
    USE_LOCALE_COLLATE
    USE_LOCALE_CTYPE
    USE_LOCALE_NUMERIC
    USE_LOCALE_TIME
    USE_PERLIO
    USE_PERL_ATOF
  Built under linux
  Compiled at Sep 20 2023 22:59:57
  %ENV:
    PERL="/tmp/basesmoker-reloperl-WrhG/bin/perl"
    PERL5LIB=""
    PERL5OPT=""
    PERL5_CPANPLUS_IS_RUNNING="2805"
    PERL5_CPAN_IS_RUNNING="2805"
    PERL_CANARY_STABILITY_NOPROMPT="1"
    PERL_MM_USE_DEFAULT="1"
    PERL_USE_UNSAFE_INC="1"
  @INC:
    /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3/x86_64-linux
    /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/site_perl/5.39.3
    /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/5.39.3/x86_64-linux
    /home/sand/src/perl/repoperls/installed-perls/host/k93jammy/v5.39.3/6567/lib/5.39.3
    .