my redis version is 5.0.7. when i debug my lua srcipt ./redis-cli --ldb --eval temp/testhmset.lua mymap , key1 value1 key2 value2 key3 value3 and execute unpack(ARGV) only get first args.

[root@ redis-bin]# ./redis-cli --ldb --eval temp/testhmset.lua mymap , key1 value1 key2 value2 key3 value3
Lua debugging session started, please use:
quit    -- End the session.
restart -- Restart the script in debug mode again.
help    -- Show Lua script debugging commands.

* Stopped at 1, stop reason = step over
-> 1   local array = unpack(ARGV)
lua debugger> whole
-> 1   local array = unpack(ARGV)
   2   local key = KEYS[1]
   3   redis.call('hmset',key,array)
   4   return 1
lua debugger> print ARGV
<value> {"key1"; "value1"; "key2"; "value2"; "key3"; "value3"}
lua debugger> e unpack(ARGV)
<retval> "key1"
lua debugger> 

Does it a bug?

Comment From: maketubo

[root@ redis-bin]# ./redis-cli --ldb --eval temp/testhmset.lua mymap , key1 value1 key2 value2 key3 value3
Lua debugging session started, please use:
quit    -- End the session.
restart -- Restart the script in debug mode again.
help    -- Show Lua script debugging commands.

* Stopped at 1, stop reason = step over
-> 1   local array = unpack(ARGV)
lua debugger> restart

Lua debugging session started, please use:
quit    -- End the session.
restart -- Restart the script in debug mode again.
help    -- Show Lua script debugging commands.

* Stopped at 1, stop reason = step over
-> 1   redis.call('hmset',KEYS[1],unpack(ARGV))
lua debugger> whole
-> 1   redis.call('hmset',KEYS[1],unpack(ARGV))
   2   return 1
lua debugger> step
<redis> hmset mymap key1 value1 key2 value2 key3 value3
<reply> "+OK"
* Stopped at 2, stop reason = step over
-> 2   return 1
lua debugger> 

maybe i make a mistake in unpack.