Files
redis/src
Oran Agra 233abbbe03 Cleanup around script_caller, fix tracking of scripts and ACL logging for RM_Call (#11770)
* Make it clear that current_client is the root client that was called by
  external connection
* add executing_client which is the client that runs the current command
  (can be a module or a script)
* Remove script_caller that was used for commands that have CLIENT_SCRIPT
  to get the client that called the script. in most cases, that's the current_client,
  and in others (when being called from a module), it could be an intermediate
  client when we actually want the original one used by the external connection.

bugfixes:
* RM_Call with C flag should log ACL errors with the requested user rather than
  the one used by the original client, this also solves a crash when RM_Call is used
  with C flag from a detached thread safe context.
* addACLLogEntry would have logged info about the script_caller, but in case the
  script was issued by a module command we actually want the current_client. the
  exception is when RM_Call is called from a timer event, in which case we don't
  have a current_client.

behavior changes:
* client side tracking for scripts now tracks the keys that are read by the script
  instead of the keys that are declared by the caller for EVAL

other changes:
* Log both current_client and executing_client in the crash log.
* remove prepareLuaClient and resetLuaClient, being dead code that was forgotten.
* remove scriptTimeSnapshot and snapshot_time and instead add cmd_time_snapshot
  that serves all commands and is reset only when execution nesting starts.
* remove code to propagate CLIENT_FORCE_REPL from the executed command
  to the script caller since scripts aren't propagated anyway these days and anyway
  this flag wouldn't have had an effect since CLIENT_PREVENT_PROP is added by scriptResetRun.
* fix a module GIL violation issue in afterSleep that was introduced in #10300 (unreleased)
2023-02-16 08:07:35 +02:00
..
2012-04-13 17:52:33 -07:00
2022-11-23 17:39:08 +02:00
2022-08-22 15:01:40 +08:00
2022-08-22 15:01:40 +08:00
2023-02-12 09:23:29 +02:00
2023-02-12 09:23:29 +02:00
2023-01-11 09:59:24 +01:00
2020-04-24 17:11:21 -07:00
2023-02-14 09:33:21 +02:00
2023-01-11 09:59:24 +01:00
2022-11-09 19:50:07 +02:00
2022-11-09 19:50:07 +02:00
2022-03-09 13:58:23 +02:00
2020-05-05 23:35:08 -04:00
2022-08-23 12:37:56 +03:00
2022-04-17 15:43:22 +03:00
2023-01-11 09:59:24 +01:00
2014-08-08 10:05:32 +02:00
2022-10-02 13:56:45 +03:00
2023-02-12 09:23:29 +02:00
2023-02-12 09:23:29 +02:00
2023-01-11 09:59:24 +01:00
2022-08-23 12:37:56 +03:00
2023-02-12 09:23:29 +02:00
2023-02-12 09:23:29 +02:00
2021-07-10 10:04:54 -05:00
2014-07-02 16:31:22 +02:00
2022-07-18 10:56:26 +03:00
2023-01-22 16:32:20 +02:00
2023-02-12 09:23:29 +02:00
2023-02-12 09:23:29 +02:00