Redis-CappedCollection v1.10 Perl 5 v5.39.10 x86_64-linux
- Status
- Fail
- From
- Andreas J. König (ANDK)
- Dist
-
Redis-CappedCollection v1.10
- Platform
- Perl 5 v5.39.10 x86_64-linux
- Date
- 2024-05-07 01:10:42
- ID
- a03e5c1e-0c0e-11ef-bb0c-a43e693db97c
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.10, 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-wJoB/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/k93focal/v5.39.10/b254/lib/5.39.10/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/k93focal/v5.39.10/b254/lib/5.39.10/Test/More.pm line 1056
# Test::More::_eval("package main;\x{a}BEGIN { \${^WARNING_BITS} = \$args[-1] if defined"..., ARRAY(0x56240ebee1b8), "UUUUUUUUUUUUUUUUUUUU") called at /home/sand/src/perl/repoperls/installed-perls/host/k93focal/v5.39.10/b254/lib/5.39.10/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/k93focal/v5.39.10/b254/lib/5.39.10/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/k93focal/v5.39.10/b254/lib/5.39.10/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/k93focal/v5.39.10/b254/lib/5.39.10/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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/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/k93focal/v5.39.10/b254/lib/5.39.10/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/k93focal/v5.39.10/b254/lib/5.39.10/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/k93focal/v5.39.10/b254/lib/5.39.10/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/k93focal/v5.39.10/b254/lib/5.39.10/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/k93focal/v5.39.10/b254/lib/5.39.10/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/k93focal/v5.39.10/b254/lib/5.39.10/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/k93focal/v5.39.10/b254/lib/5.39.10/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/k93focal/v5.39.10/b254/lib/5.39.10/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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/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/k93focal/v5.39.10/b254/lib/5.39.10/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/k93focal/v5.39.10/b254/lib/5.39.10/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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/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/k93focal/v5.39.10/b254/lib/5.39.10/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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/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/k93focal/v5.39.10/b254/lib/5.39.10/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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/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/k93focal/v5.39.10/b254/lib/5.39.10/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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/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/k93focal/v5.39.10/b254/lib/5.39.10/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/k93focal/v5.39.10/b254/lib/5.39.10/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/k93focal/v5.39.10/b254/lib/5.39.10/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',
[Output truncated because it exceeded 1000K]
ion/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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569726a5588), Try::Tiny::Catch=REF(0x556972726440)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7486 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972726800), Try::Tiny::Catch=REF(0x5569726a3b98)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7488 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697272dc40), Try::Tiny::Catch=REF(0x55697272e330)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7490 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972729d88), Try::Tiny::Catch=REF(0x5569727266b0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7492 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569727331f0), Try::Tiny::Catch=REF(0x55697272ffd8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7494 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569727330e8), Try::Tiny::Catch=REF(0x55697273afd0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7496 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697273d6f0), Try::Tiny::Catch=REF(0x55697273d900)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7498 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972740990), Try::Tiny::Catch=REF(0x5569727bc6c0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7500 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972741278), Try::Tiny::Catch=REF(0x5569727c47a0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7502 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972743c38), Try::Tiny::Catch=REF(0x5569727c7550)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7504 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972746688), Try::Tiny::Catch=REF(0x5569727460a0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7506 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569727ce510), Try::Tiny::Catch=REF(0x5569727ce450)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7508 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569727d1460), Try::Tiny::Catch=REF(0x5569727cac28)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7510 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569727d21c8), Try::Tiny::Catch=REF(0x5569727d2108)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7512 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569727d6878), Try::Tiny::Catch=REF(0x5569727d67b8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7514 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569727db308), Try::Tiny::Catch=REF(0x5569727d6398)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7516 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569727dd928), Try::Tiny::Catch=REF(0x5569727dd868)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7518 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569727e0d18), Try::Tiny::Catch=REF(0x5569727dd448)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7520 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569727e4d88), Try::Tiny::Catch=REF(0x5569727e0838)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7522 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569727e7ff8), Try::Tiny::Catch=REF(0x5569727e15a0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7524 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569727e8d60), Try::Tiny::Catch=REF(0x5569727e8ca0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7526 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569727ec1a0), Try::Tiny::Catch=REF(0x5569727ec0e0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7528 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569727f09c0), Try::Tiny::Catch=REF(0x5569727f0b88)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7530 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569727f3f80), Try::Tiny::Catch=REF(0x5569727f04e0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7532 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569727f7d50), Try::Tiny::Catch=REF(0x5569727f7c90)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7534 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569727fb600), Try::Tiny::Catch=REF(0x5569727fb540)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7536 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569727fc368), Try::Tiny::Catch=REF(0x5569727fc2a8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7538 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569727fe538), Try::Tiny::Catch=REF(0x5569727fbe88)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7540 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972801f88), Try::Tiny::Catch=REF(0x556972802150)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7542 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569728089a8), Try::Tiny::Catch=REF(0x556972801aa8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7544 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697280bbf8), Try::Tiny::Catch=REF(0x55697280bdc0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7546 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697280e218), Try::Tiny::Catch=REF(0x55697280e158)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7548 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972811398), Try::Tiny::Catch=REF(0x5569728112d8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7550 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972812100), Try::Tiny::Catch=REF(0x5569728149e0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7552 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972815580), Try::Tiny::Catch=REF(0x5569728154c0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7554 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972818c40), Try::Tiny::Catch=REF(0x556972818b80)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7556 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697281dd00), Try::Tiny::Catch=REF(0x556972818760)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7558 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972820320), Try::Tiny::Catch=REF(0x5569728204e8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7560 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569728237f0), Try::Tiny::Catch=REF(0x55697281e588)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7562 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972824558), Try::Tiny::Catch=REF(0x556972820ba8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7564 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972828ec8), Try::Tiny::Catch=REF(0x556972829090)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7566 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697282c708), Try::Tiny::Catch=REF(0x5569728289e8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7568 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972830618), Try::Tiny::Catch=REF(0x5569728307e0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7570 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972834098), Try::Tiny::Catch=REF(0x556972833fd8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7572 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972837d08), Try::Tiny::Catch=REF(0x556972837c48)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7574 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697283a8b8), Try::Tiny::Catch=REF(0x55697283a7f8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7576 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697283b620), Try::Tiny::Catch=REF(0x556972838590)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7578 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972840080), Try::Tiny::Catch=REF(0x55697283ffc0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7580 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569728429a0), Try::Tiny::Catch=REF(0x556972842b68)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7582 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972845a00), Try::Tiny::Catch=REF(0x556972845940)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7584 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697284a8f0), Try::Tiny::Catch=REF(0x55697284aab8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7586 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697284ce90), Try::Tiny::Catch=REF(0x55697284cdd0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7588 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697284dbf8), Try::Tiny::Catch=REF(0x5569728521b8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7590 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972852d58), Try::Tiny::Catch=REF(0x556972852f20)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7592 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972855d48), Try::Tiny::Catch=REF(0x556972855c88)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7594 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972858b08), Try::Tiny::Catch=REF(0x556972858a48)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7596 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697285c628), Try::Tiny::Catch=REF(0x556972858628)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7598 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972861888), Try::Tiny::Catch=REF(0x5569728617c8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7600 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972864cb8), Try::Tiny::Catch=REF(0x556972864bf8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7602 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972865a20), Try::Tiny::Catch=REF(0x5569727d1460)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7604 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972868c50), Try::Tiny::Catch=REF(0x5569727dd598)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7606 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697286bce0), Try::Tiny::Catch=REF(0x55697286bc20)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7608 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697286eb80), Try::Tiny::Catch=REF(0x55697286eac0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7610 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972871170), Try::Tiny::Catch=REF(0x5569728710b0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7612 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972877180), Try::Tiny::Catch=REF(0x5569728770c0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7614 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972877ee8), Try::Tiny::Catch=REF(0x5569727f0498)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7616 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697287ce18), Try::Tiny::Catch=REF(0x55697287cfe0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7618 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972880058), Try::Tiny::Catch=REF(0x556972880220)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7620 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972882ef8), Try::Tiny::Catch=REF(0x556972882e38)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7622 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972886728), Try::Tiny::Catch=REF(0x556972886668)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7624 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972888778), Try::Tiny::Catch=REF(0x5569727fe1c0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7626 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697288dc18), Try::Tiny::Catch=REF(0x55697288dde0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7628 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697288e980), Try::Tiny::Catch=REF(0x55697288e8c0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7630 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972891ed0), Try::Tiny::Catch=REF(0x556972892098)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7632 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972895cb0), Try::Tiny::Catch=REF(0x556972895bf0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7634 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972899280), Try::Tiny::Catch=REF(0x5569728991c0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7636 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697289b220), Try::Tiny::Catch=REF(0x55697289b3e8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7638 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697289ed60), Try::Tiny::Catch=REF(0x55697289eca0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7640 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697289fac8), Try::Tiny::Catch=REF(0x5569728a47f8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7642 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569728a5398), Try::Tiny::Catch=REF(0x5569728a52d8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7644 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569728a9c78), Try::Tiny::Catch=REF(0x5569728a5218)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7646 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569728ac868), Try::Tiny::Catch=REF(0x5569728aca30)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7648 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569728b0558), Try::Tiny::Catch=REF(0x556972823fb8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7650 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569728b3118), Try::Tiny::Catch=REF(0x556972828f88)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7652 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569728237f0), Try::Tiny::Catch=REF(0x55697271b820)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7654 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972824558), Try::Tiny::Catch=REF(0x556972833cf0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7656 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972837e10), Try::Tiny::Catch=REF(0x556972834260)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7658 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972837a68), Try::Tiny::Catch=REF(0x5569728c0518)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7660 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697283b788), Try::Tiny::Catch=REF(0x556972838350)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7662 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697283b320), Try::Tiny::Catch=REF(0x5569728c4468)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7664 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697283fed0), Try::Tiny::Catch=REF(0x556972842a78)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7666 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569728459e8), Try::Tiny::Catch=REF(0x5569728c8150)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7668 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697283ffc0), Try::Tiny::Catch=REF(0x5569726c0170)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7670 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697284b1c0), Try::Tiny::Catch=REF(0x55697284a488)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7672 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697284b0e8), Try::Tiny::Catch=REF(0x55697284b3e8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7674 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972852e00), Try::Tiny::Catch=REF(0x556972852fc8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7676 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972852f80), Try::Tiny::Catch=REF(0x556972855cd0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7678 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569727d13a0), Try::Tiny::Catch=REF(0x556972858d90)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7680 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569727d63e0), Try::Tiny::Catch=REF(0x5569728e24e8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7682 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972861af8), Try::Tiny::Catch=REF(0x5569728e3250)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7684 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972864c40), Try::Tiny::Catch=REF(0x5569728e2e30)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7686 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972865a38), Try::Tiny::Catch=REF(0x5569728e8150)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7688 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569728ef600), Try::Tiny::Catch=REF(0x5569728eb970)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7690 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569728f2620), Try::Tiny::Catch=REF(0x5569728f2560)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7692 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569728f59a0), Try::Tiny::Catch=REF(0x5569728f58e0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7694 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569728f8bb0), Try::Tiny::Catch=REF(0x5569728f6648)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7696 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569728f9918), Try::Tiny::Catch=REF(0x5569727ec1b8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7698 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569728fe1a8), Try::Tiny::Catch=REF(0x5569728fe0e8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7700 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569729042a8), Try::Tiny::Catch=REF(0x5569729041e8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7702 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972906b48), Try::Tiny::Catch=REF(0x556972903dc8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7704 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972909f58), Try::Tiny::Catch=REF(0x556972909e98)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7706 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697290bf58), Try::Tiny::Catch=REF(0x55697290be98)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7708 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697290ccc0), Try::Tiny::Catch=REF(0x55697290cc00)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7710 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697290f2e0), Try::Tiny::Catch=REF(0x55697290f220)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7712 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972916990), Try::Tiny::Catch=REF(0x55697290ee00)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7714 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972919580), Try::Tiny::Catch=REF(0x556972919748)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7716 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697291be90), Try::Tiny::Catch=REF(0x55697291bdd0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7718 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697291fee0), Try::Tiny::Catch=REF(0x55697291b9b0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7720 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972922aa0), Try::Tiny::Catch=REF(0x556972920b88)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7722 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972923808), Try::Tiny::Catch=REF(0x556972923748)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7724 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972927898), Try::Tiny::Catch=REF(0x556972923328)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7726 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697292c2d8), Try::Tiny::Catch=REF(0x55697292c218)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7728 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697292f708), Try::Tiny::Catch=REF(0x55697292f8d0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7730 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569729319d8), Try::Tiny::Catch=REF(0x556972931ba0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7732 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972936558), Try::Tiny::Catch=REF(0x556972936498)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7734 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569729372c0), Try::Tiny::Catch=REF(0x556972937200)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7736 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697293a5e0), Try::Tiny::Catch=REF(0x55697293a7a8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7738 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697293da20), Try::Tiny::Catch=REF(0x55697293d960)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7740 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972941630), Try::Tiny::Catch=REF(0x556972941570)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7742 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972945400), Try::Tiny::Catch=REF(0x556972945340)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7744 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697294a280), Try::Tiny::Catch=REF(0x55697294a1c0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7746 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697294c490), Try::Tiny::Catch=REF(0x55697294af28)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7748 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697294d1f8), Try::Tiny::Catch=REF(0x55697294d138)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7750 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697294fab8), Try::Tiny::Catch=REF(0x55697294fc80)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7752 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972953ba8), Try::Tiny::Catch=REF(0x556972953ae8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7754 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697295a748), Try::Tiny::Catch=REF(0x55697295a688)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7756 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697295cc18), Try::Tiny::Catch=REF(0x55697295cde0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7758 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697295f9e8), Try::Tiny::Catch=REF(0x55697295afd0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7760 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972960750), Try::Tiny::Catch=REF(0x55697295d4a0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7762 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972962a10), Try::Tiny::Catch=REF(0x556972960270)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7764 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569729657a0), Try::Tiny::Catch=REF(0x5569729656e0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7766 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972968e80), Try::Tiny::Catch=REF(0x556972968dc0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7768 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972970180), Try::Tiny::Catch=REF(0x556972970348)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7770 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972973a20), Try::Tiny::Catch=REF(0x556972973960)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7772 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972976040), Try::Tiny::Catch=REF(0x5569729746c8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7774 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972976da8), Try::Tiny::Catch=REF(0x556972976ce8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7776 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697297a1a8), Try::Tiny::Catch=REF(0x55697297a370)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7778 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697297df98), Try::Tiny::Catch=REF(0x55697297ded8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7780 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972980148), Try::Tiny::Catch=REF(0x556972980088)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7782 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972985448), Try::Tiny::Catch=REF(0x556972985388)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7784 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569729890b8), Try::Tiny::Catch=REF(0x556972988ff8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7786 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972989e20), Try::Tiny::Catch=REF(0x55697298bf10)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7788 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697298cab0), Try::Tiny::Catch=REF(0x55697298c9f0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7790 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972990e90), Try::Tiny::Catch=REF(0x556972990dd0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7792 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972993160), Try::Tiny::Catch=REF(0x556972993328)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7794 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972995d20), Try::Tiny::Catch=REF(0x55697290c108)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7796 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697299c380), Try::Tiny::Catch=REF(0x55697299c2c0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7798 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569729a09f0), Try::Tiny::Catch=REF(0x55697299d028)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7800 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569729a1758), Try::Tiny::Catch=REF(0x5569729a1698)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7802 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569729a39f8), Try::Tiny::Catch=REF(0x5569729a3938)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7804 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569729a7e48), Try::Tiny::Catch=REF(0x5569729a8010)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7806 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569729aac48), Try::Tiny::Catch=REF(0x55697291be60)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7808 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569729adc98), Try::Tiny::Catch=REF(0x5569729ade60)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7810 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569729b4338), Try::Tiny::Catch=REF(0x5569729b4278)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7812 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569729b50a0), Try::Tiny::Catch=REF(0x5569729b4fe0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7814 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569729b7e50), Try::Tiny::Catch=REF(0x5569729b8018)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7816 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569729b9ea0), Try::Tiny::Catch=REF(0x55697292f840)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7818 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569729bdb30), Try::Tiny::Catch=REF(0x5569729bda70)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7820 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569729bfb80), Try::Tiny::Catch=REF(0x5569729bd9b0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7822 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569729c5c60), Try::Tiny::Catch=REF(0x5569729c5ba0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7824 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569729c8eb0), Try::Tiny::Catch=REF(0x55697293a178)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7826 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569729c9c18), Try::Tiny::Catch=REF(0x5569729ce1e8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7828 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569729ced88), Try::Tiny::Catch=REF(0x5569729c9a98)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7830 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569729d1548), Try::Tiny::Catch=REF(0x5569729cec08)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7832 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972945d00), Try::Tiny::Catch=REF(0x556972949fb0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7834 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697294c4f0), Try::Tiny::Catch=REF(0x55697294ef90)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7836 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697294c520), Try::Tiny::Catch=REF(0x5569729d71f8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7838 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697294f560), Try::Tiny::Catch=REF(0x556972953b90)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7840 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697295a670), Try::Tiny::Catch=REF(0x5569729def98)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7842 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697295ce58), Try::Tiny::Catch=REF(0x556972953ae8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7844 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697295afa0), Try::Tiny::Catch=REF(0x5569729e7f08)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7846 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972960738), Try::Tiny::Catch=REF(0x55697295d710)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7848 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697283b620), Try::Tiny::Catch=REF(0x5569727c6f08)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7850 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972965308), Try::Tiny::Catch=REF(0x5569729edcc0)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7852 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569728dc588), Try::Tiny::Catch=REF(0x556972968f28)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7854 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972858c58), Try::Tiny::Catch=REF(0x5569729f39d8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7856 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569729703a8), Try::Tiny::Catch=REF(0x556972973ca8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7858 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x5569729746b0), Try::Tiny::Catch=REF(0x556972973780)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7860 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972974518), Try::Tiny::Catch=REF(0x5569729744e8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7862 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972979e30), Try::Tiny::Catch=REF(0x556972a01368)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7864 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x55697297dfb0), Try::Tiny::Catch=REF(0x556972a04768)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7866 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972980280), Try::Tiny::Catch=REF(0x556972a08540)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7868 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972a0be50), Try::Tiny::Catch=REF(0x556972a08120)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7870 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972a11060), Try::Tiny::Catch=REF(0x5569728fe250)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7872 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972a15630), Try::Tiny::Catch=REF(0x556972989148)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7874 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972a18a50), Try::Tiny::Catch=REF(0x556972a18990)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7876 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972a1b650), Try::Tiny::Catch=REF(0x556972a1b590)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7878 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972a1f340), Try::Tiny::Catch=REF(0x556972a1f280)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7880 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972a200a8), Try::Tiny::Catch=REF(0x556972a1ffe8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7882 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972a21a28), Try::Tiny::Catch=REF(0x556972a1fbc8)) called at t/00_CappedCollection/21_rollback.t line 211
#
# ----------
# Previous test 7884 'Error adding data: [EVALSHA] ERR Error running script (call to f_5f3b2acfaa7e1eb8a34554200774e9d9db851618): @user_script:53: @user_script: 53: This Redis command is not allowed from scripts , at lib/Redis/CappedCollection.pm line 3792.
#
# Lua script 'insert':
# -- to obtain information on the status of the collection
# collectgarbage( 'stop' )
#
# local coll_name = ARGV[2]
#
# -- key data storage structures
# local NAMESPACE = 'C'
# local QUEUE_KEY = NAMESPACE..':Q:'..coll_name
# local STATUS_KEY = NAMESPACE..':S:'..coll_name
#
# -- determine whether there is a collection
# if redis.call( 'EXISTS', STATUS_KEY ) == 0 then
# return { -1006, false, false, false, false, false, false, false, false }
# end
#
# local oldest_item_time = redis.call( 'ZRANGE', QUEUE_KEY, 0, 0, 'WITHSCORES' )[2]
# local lists, items, older_allowed, cleanup_bytes, cleanup_items, max_list_items, memory_reserve, data_version, last_removed_time = unpack( redis.call( 'HMGET', STATUS_KEY,
# 'lists',
# 'items',
# 'older_allowed',
# 'cleanup_bytes',
# 'cleanup_items',
# 'max_list_items',
# 'memory_reserve',
# 'data_version',
# 'last_removed_time'
# ) )
#
# if type( data_version ) ~= 'string' then data_version = '0' end
# return {
# -1000,
# lists,
# items,
# older_allowed,
# 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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/Try/Tiny.pm line 123
# Try::Tiny::try(CODE(0x556972a27c38), Try::Tiny::Catch=REF(0x556972a27b78)) called at t/00_CappedCollection/21_rollback.t line 211
#
# Looks like you failed 3942 tests of 7887.
t/00_CappedCollection/21_rollback.t ....................
Dubious, test returned 254 (wstat 65024, 0xfe00)
Failed 3942/7887 subtests
# Failed test 'no warnings'
# at /home/sand/src/perl/repoperls/installed-perls/host/k93focal/v5.39.10/b254/lib/5.39.10/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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/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/k93focal/v5.39.10/b254/lib/5.39.10/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/k93focal/v5.39.10/b254/lib/5.39.10/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/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/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/k93focal/v5.39.10/b254/lib/5.39.10/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/k93focal/v5.39.10/b254/lib/5.39.10/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/k93focal/v5.39.10/b254/lib/5.39.10/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/k93focal/v5.39.10/b254/lib/5.39.10/Test/More.pm line 1056
# Test::More::_eval("package main;\x{a}BEGIN { \${^WARNING_BITS} = \$args[-1] if defined"..., ARRAY(0x55885650eed8), "UUUUUUUUUUUUUUUUUUUU") called at /home/sand/src/perl/repoperls/installed-perls/host/k93focal/v5.39.10/b254/lib/5.39.10/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: 7887 Failed: 3942)
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, 7887
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=8236, 36 wallclock secs ( 6.51 usr 0.64 sys + 21.96 cusr 3.90 csys = 33.01 CPU)
Result: FAIL
Failed 27/29 test programs. 3968/8236 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.039010
Redis 1.976 2.000
Try::Tiny 0.18 0.31
build_requires:
Module Need Have
------------------- ----- --------
Data::UUID 1.217 1.227
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
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-wJoB/bin/perl
PERL5LIB = /tmp/loop_over_bdir-2084-yMTbXb/makepp-1.19-0/blib/arch:/tmp/loop_over_bdir-2084-yMTbXb/makepp-1.19-0/blib/lib:/tmp/loop_over_bdir-2084-yMTbXb/Alien-SNMP-MIBDEV-2.020000-0/blib/arch:/tmp/loop_over_bdir-2084-yMTbXb/Alien-SNMP-MIBDEV-2.020000-0/blib/lib:/tmp/loop_over_bdir-2084-yMTbXb/App-nrun-v1.1.2-0/blib/arch:/tmp/loop_over_bdir-2084-yMTbXb/App-nrun-v1.1.2-0/blib/lib:/tmp/loop_over_bdir-2084-yMTbXb/DBIx-Migration-Directories-0.12-0/blib/arch:/tmp/loop_over_bdir-2084-yMTbXb/DBIx-Migration-Directories-0.12-0/blib/lib:/tmp/loop_over_bdir-2084-yMTbXb/Devel-Required-0.16-0/blib/arch:/tmp/loop_over_bdir-2084-yMTbXb/Devel-Required-0.16-0/blib/lib:/tmp/loop_over_bdir-2084-yMTbXb/dta-tokwrap-0.98-0/blib/arch:/tmp/loop_over_bdir-2084-yMTbXb/dta-tokwrap-0.98-0/blib/lib:/tmp/loop_over_bdir-2084-yMTbXb/downsexta-0/blib/arch:/tmp/loop_over_bdir-2084-yMTbXb/downsexta-0/blib/lib:/tmp/loop_over_bdir-2084-yMTbXb/CGI-Application-NetNewsIface-0.0204-0/blib/arch:/tmp/loop_over_bdir-2084-yMTbXb/CGI-Application-NetNewsIface-0.0204-0/blib/lib:/tmp/loop_over_bdir-2084-yMTbXb/EJBCA-CrlPublish-0.60-0/blib/arch:/tmp/loop_over_bdir-2084-yMTbXb/EJBCA-CrlPublish-0.60-0/blib/lib:/tmp/loop_over_bdir-2084-yMTbXb/Dpkg-1.22.6-0/blib/arch:/tmp/loop_over_bdir-2084-yMTbXb/Dpkg-1.22.6-0/blib/lib:/tmp/loop_over_bdir-2084-yMTbXb/MP3-PodcastFetch-1.05-0/blib/arch:/tmp/loop_over_bdir-2084-yMTbXb/MP3-PodcastFetch-1.05-0/blib/lib
PERL5OPT =
PERL5_CPANPLUS_IS_RUNNING = 2092
PERL5_CPAN_IS_RUNNING = 2092
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-wJoB/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.302199
Test::Harness 3.48
Test::More 1.302199
YAML 1.31
YAML::Syck 1.34
version 0.9932
--
Summary of my perl5 (revision 5 version 39 subversion 10) configuration:
Commit id: c46c2bea6f111c45982b89c7e57b56125ff2e10c
Platform:
osname=linux
osvers=5.4.0-176-generic
archname=x86_64-linux
uname='linux k93focal 5.4.0-176-generic #196-ubuntu smp fri mar 22 16:46:39 utc 2024 x86_64 x86_64 x86_64 gnulinux '
config_args='-Dprefix=/home/sand/src/perl/repoperls/installed-perls/host/k93focal/v5.39.10/b254 -Dmyhostname=k93focal -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=both'
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 -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
optimize='-O2 -g'
cppflags='-fwrapv -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include'
ccversion=''
gccversion='9.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=libc-2.31.so
so=so
useshrplib=false
libperl=libperl.a
gnulibc_version='2.31'
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:
DEBUGGING
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 May 3 2024 17:15:00
%ENV:
PERL="/tmp/basesmoker-reloperl-wJoB/bin/perl"
PERL5LIB="/tmp/loop_over_bdir-2084-yMTbXb/makepp-1.19-0/blib/arch:/tmp/loop_over_bdir-2084-yMTbXb/makepp-1.19-0/blib/lib:/tmp/loop_over_bdir-2084-yMTbXb/Alien-SNMP-MIBDEV-2.020000-0/blib/arch:/tmp/loop_over_bdir-2084-yMTbXb/Alien-SNMP-MIBDEV-2.020000-0/blib/lib:/tmp/loop_over_bdir-2084-yMTbXb/App-nrun-v1.1.2-0/blib/arch:/tmp/loop_over_bdir-2084-yMTbXb/App-nrun-v1.1.2-0/blib/lib:/tmp/loop_over_bdir-2084-yMTbXb/DBIx-Migration-Directories-0.12-0/blib/arch:/tmp/loop_over_bdir-2084-yMTbXb/DBIx-Migration-Directories-0.12-0/blib/lib:/tmp/loop_over_bdir-2084-yMTbXb/Devel-Required-0.16-0/blib/arch:/tmp/loop_over_bdir-2084-yMTbXb/Devel-Required-0.16-0/blib/lib:/tmp/loop_over_bdir-2084-yMTbXb/dta-tokwrap-0.98-0/blib/arch:/tmp/loop_over_bdir-2084-yMTbXb/dta-tokwrap-0.98-0/blib/lib:/tmp/loop_over_bdir-2084-yMTbXb/downsexta-0/blib/arch:/tmp/loop_over_bdir-2084-yMTbXb/downsexta-0/blib/lib:/tmp/loop_over_bdir-2084-yMTbXb/CGI-Application-NetNewsIface-0.0204-0/blib/arch:/tmp/loop_over_bdir-2084-yMTbXb/CGI-Application-NetNewsIface-0.0204-0/blib/lib:/tmp/loop_over_bdir-2084-yMTbXb/EJBCA-CrlPublish-0.60-0/blib/arch:/tmp/loop_over_bdir-2084-yMTbXb/EJBCA-CrlPublish-0.60-0/blib/lib:/tmp/loop_over_bdir-2084-yMTbXb/Dpkg-1.22.6-0/blib/arch:/tmp/loop_over_bdir-2084-yMTbXb/Dpkg-1.22.6-0/blib/lib:/tmp/loop_over_bdir-2084-yMTbXb/MP3-PodcastFetch-1.05-0/blib/arch:/tmp/loop_over_bdir-2084-yMTbXb/MP3-PodcastFetch-1.05-0/blib/lib"
PERL5OPT=""
PERL5_CPANPLUS_IS_RUNNING="2092"
PERL5_CPAN_IS_RUNNING="2092"
PERL_CANARY_STABILITY_NOPROMPT="1"
PERL_MM_USE_DEFAULT="1"
PERL_USE_UNSAFE_INC="1"
@INC:
/tmp/loop_over_bdir-2084-yMTbXb/makepp-1.19-0/blib/arch
/tmp/loop_over_bdir-2084-yMTbXb/makepp-1.19-0/blib/lib
/tmp/loop_over_bdir-2084-yMTbXb/Alien-SNMP-MIBDEV-2.020000-0/blib/arch
/tmp/loop_over_bdir-2084-yMTbXb/Alien-SNMP-MIBDEV-2.020000-0/blib/lib
/tmp/loop_over_bdir-2084-yMTbXb/App-nrun-v1.1.2-0/blib/arch
/tmp/loop_over_bdir-2084-yMTbXb/App-nrun-v1.1.2-0/blib/lib
/tmp/loop_over_bdir-2084-yMTbXb/DBIx-Migration-Directories-0.12-0/blib/arch
/tmp/loop_over_bdir-2084-yMTbXb/DBIx-Migration-Directories-0.12-0/blib/lib
/tmp/loop_over_bdir-2084-yMTbXb/Devel-Required-0.16-0/blib/arch
/tmp/loop_over_bdir-2084-yMTbXb/Devel-Required-0.16-0/blib/lib
/tmp/loop_over_bdir-2084-yMTbXb/dta-tokwrap-0.98-0/blib/arch
/tmp/loop_over_bdir-2084-yMTbXb/dta-tokwrap-0.98-0/blib/lib
/tmp/loop_over_bdir-2084-yMTbXb/downsexta-0/blib/arch
/tmp/loop_over_bdir-2084-yMTbXb/downsexta-0/blib/lib
/tmp/loop_over_bdir-2084-yMTbXb/CGI-Application-NetNewsIface-0.0204-0/blib/arch
/tmp/loop_over_bdir-2084-yMTbXb/CGI-Application-NetNewsIface-0.0204-0/blib/lib
/tmp/loop_over_bdir-2084-yMTbXb/EJBCA-CrlPublish-0.60-0/blib/arch
/tmp/loop_over_bdir-2084-yMTbXb/EJBCA-CrlPublish-0.60-0/blib/lib
/tmp/loop_over_bdir-2084-yMTbXb/Dpkg-1.22.6-0/blib/arch
/tmp/loop_over_bdir-2084-yMTbXb/Dpkg-1.22.6-0/blib/lib
/tmp/loop_over_bdir-2084-yMTbXb/MP3-PodcastFetch-1.05-0/blib/arch
/tmp/loop_over_bdir-2084-yMTbXb/MP3-PodcastFetch-1.05-0/blib/lib
/home/sand/src/perl/repoperls/installed-perls/host/k93focal/v5.39.10/b254/lib/site_perl/5.39.10/x86_64-linux
/home/sand/src/perl/repoperls/installed-perls/host/k93focal/v5.39.10/b254/lib/site_perl/5.39.10
/home/sand/src/perl/repoperls/installed-perls/host/k93focal/v5.39.10/b254/lib/5.39.10/x86_64-linux
/home/sand/src/perl/repoperls/installed-perls/host/k93focal/v5.39.10/b254/lib/5.39.10
.