I got the redis server from a snap package:

redis_version:7.0.5
redis_git_sha1:1571907e
redis_git_dirty:0
redis_build_id:360fc1435f116c6e
redis_mode:standalone
os:Linux 5.17.5-300.fc36.x86_64 x86_64

So if i do this:

127.0.0.1:6379> function load replace "#!lua name=TEST\nredis.register_function('TEST123', function(keys, args) return redis.call('set', keys[1], args[1]) end)"
"TEST"
127.0.0.1:6379> fcall TEST123 1 123 234
OK

I get this in the monitor:

1668447662.323014 [0 127.0.0.1:59668] "function" "load" "replace" "#!lua name=TEST\nredis.register_function('TEST123', function(keys, args) return redis.call('set', keys[1], args[1]) end)"
1668447664.170698 [0 lua] "set" "123" "234"

I expected to see the fcall in there.

It seem that the monitoring falls short of one of the main selling points for functions outlined in the documentation:

SHA1 digests are meaningless, making debugging the system extremely hard (e.g., in a MONITOR session).

At least with the old eval scripts I see something in the monitor - hard to use, yes, but there is something!

Comment From: madolson

This looks like an oversight. Scripting commands are special in that they are given to monitoring clients "before" the command is executed, as opposed to after. This means EVAL/EVALSHA were handled specially, and that special handling was not ported to FCALL. With a one line change it seems to be working as expected:

1668484506.350345 [0 127.0.0.1:65395] "fcall" "TEST123" "1" "123" "234"
1668484506.350384 [0 lua] "set" "123" "234"
127.0.0.1:6379> fcall TEST123 1 123 234
OK

Comment From: madolson

@ionelmc We'll release 7.0.6 sometime soon with the fix. Thanks for reporting.

Comment From: ionelmc

Thank you.