redis/tests/unit
debing.sun ecd5e639ed
CI / test-ubuntu-latest (push) Has been cancelled Details
CI / test-sanitizer-address (push) Has been cancelled Details
CI / build-debian-old (push) Has been cancelled Details
CI / build-macos-latest (push) Has been cancelled Details
CI / build-32bit (push) Has been cancelled Details
CI / build-libc-malloc (push) Has been cancelled Details
CI / build-centos-jemalloc (push) Has been cancelled Details
CI / build-old-chain-jemalloc (push) Has been cancelled Details
Codecov / code-coverage (push) Has been cancelled Details
External Server Tests / test-external-standalone (push) Has been cancelled Details
External Server Tests / test-external-cluster (push) Has been cancelled Details
External Server Tests / test-external-nodebug (push) Has been cancelled Details
Spellcheck / Spellcheck (push) Has been cancelled Details
CLIENT UNBLOCK should't be able to unpause paused clients (#14164)
This PR is based on https://github.com/valkey-io/valkey/pull/2117

When a client is blocked by something like `CLIENT PAUSE`, we should not
allow `CLIENT UNBLOCK timeout` to unblock it, since some blocking types
does not has the timeout callback, it will trigger a panic in the core,
people should use `CLIENT UNPAUSE` to unblock it.

Also using `CLIENT UNBLOCK error` is not right, it will return a
UNBLOCKED error to the command, people don't expect a `SET` command to
get an error.

So in this commit, in these cases, we will return 0 to `CLIENT UNBLOCK`
to indicate the unblock is fail. The reason is that we assume that if a
command doesn't expect to be timedout, it also doesn't expect to be
unblocked by `CLIENT UNBLOCK`.

The old behavior of the following command will trigger panic in timeout
and get UNBLOCKED error in error. Under the new behavior, client unblock
will get the result of 0.
```
client 1> client pause 100000 write
client 2> set x x

client 1> client unblock 2 timeout
or
client 1> client unblock 2 error
```

---------

Signed-off-by: Binbin <binloveplay1314@qq.com>
Co-authored-by: Binbin <binloveplay1314@qq.com>
2025-07-24 15:20:04 +08:00
..
cluster Add CLUSTER SLOT-STATS command (#14039) 2025-07-01 20:26:51 +03:00
moduleapi Create global data before test instead of module load for module defrag test (#13951) 2025-07-22 20:44:12 +08:00
type Only mark the client reprocessing flag when unblocked on keys (#14165) 2025-07-21 20:05:47 +08:00
acl-v2.tcl Fix Read/Write key pattern selector (CVE-2024-51741) 2025-01-13 21:20:19 +02:00
acl.tcl Free current client asynchronously after user permissions changes (#13274) 2024-05-30 22:09:30 +08:00
aofrw.tcl Attempt to solve MacOS CI issues in GH Actions (#12013) 2023-04-12 09:19:21 +03:00
auth.tcl Adding AGPLv3 as a license option to Redis! (#13997) 2025-05-01 14:04:22 +01:00
bitfield.tcl Add BITFIELD_RO basic tests for non-repl use cases (#12187) 2023-05-18 12:16:46 +03:00
bitops.tcl Implement DIFF, DIFF1, ANDOR and ONE for BITOP (#13898) 2025-05-20 10:45:50 +03:00
client-eviction.tcl Add thread sanitizer run to daily CI (#13964) 2025-06-02 10:13:23 +03:00
dump.tcl Fix RESTORE with TTL (#14071) 2025-05-28 08:02:10 +03:00
expire.tcl New config: lazyexpire-nested-arbitrary-keys (#14149) 2025-07-01 15:28:13 +08:00
functions.tcl Trigger Lua GC after script loading (#13407) 2024-07-16 09:28:47 +08:00
geo.tcl adding geo command edge cases tests (#12274) 2023-06-20 12:50:03 +03:00
hyperloglog.tcl Fix out of bounds write in hyperloglog commands (CVE-2025-32023) 2025-07-24 10:06:28 +03:00
info-command.tcl Make INFO command variadic (#6891) 2022-02-08 13:14:42 +02:00
info-keysizes.tcl Fix keysizes - SPOP with count (case 3) and SETRANGE (#14028) 2025-05-19 16:59:21 +03:00
info.tcl Fix peak memory time test (#14201) 2025-07-18 18:24:28 +08:00
introspection-2.tcl RED-129256, Fix TOUCH command from script in no-touch mode (#13512) 2024-09-12 11:33:26 +03:00
introspection.tcl Add config base to vector-sets and hnsw thread config (#14082) 2025-06-16 10:06:43 +08:00
keyspace.tcl Prevent pattern matching abuse (CVE-2024-31228) 2024-10-08 20:55:44 +03:00
latency-monitor.tcl Add printing for LATENCY related tests (#12514) 2023-08-27 11:42:55 +03:00
lazyfree.tcl Fix timing issue in lazyfree test (#13926) 2025-04-13 20:32:16 +08:00
limits.tcl Improve test suite to handle external servers better. (#9033) 2021-06-09 15:13:24 +03:00
maxmemory.tcl Stabilize tests for IO threading (#14138) 2025-06-25 15:36:40 +08:00
memefficiency.tcl Make Active defrag big list test much faster (#14157) 2025-06-30 16:56:17 +03:00
multi.tcl Fix propagation of entries_read by calling streamPropagateGroupID unconditionally (#12898) 2024-02-29 09:48:20 +02:00
networking.tcl Reduce the main thread blocking in clients cron (#13900) 2025-06-30 09:37:17 +08:00
obuf-limits.tcl Reduce the main thread blocking in clients cron (#13900) 2025-06-30 09:37:17 +08:00
oom-score-adj.tcl Check user's oom_score_adj write permission for oom-score-adj test (#13111) 2024-03-05 14:42:28 +02:00
other.tcl Cluster compatibility check (#13846) 2025-03-20 10:35:53 +08:00
pause.tcl CLIENT UNBLOCK should't be able to unpause paused clients (#14164) 2025-07-24 15:20:04 +08:00
printver.tcl Print version info before running the test 2011-05-20 11:44:54 +02:00
protocol.tcl Fix crash due to cron argv release (#13725) 2025-01-08 09:57:23 +08:00
pubsub.tcl Fix KSN for HSETEX command when FXX/FNX is used (#14150) 2025-07-21 13:59:01 +03:00
pubsubshard.tcl Async IO Threads (#13695) 2024-12-23 14:16:40 +08:00
querybuf.tcl Adding AGPLv3 as a license option to Redis! (#13997) 2025-05-01 14:04:22 +01:00
quit.tcl flushSlavesOutputBuffers should not write to replicas scheduled to drop (#12242) 2023-06-12 14:05:34 +03:00
replybufsize.tcl Introduce debug command to disable reply buffer resizing (#10360) 2022-03-01 14:40:29 +02:00
scan.tcl Revert "improve performance for scan command when matching data type (#12395)" 2025-02-05 20:49:42 +02:00
scripting.tcl Ensure empty error tables in scripts don't crash (#14163) 2025-07-07 10:12:51 +08:00
shutdown.tcl Tests: Do not save an RDB by default and add a SIGTERM default AOFRW test (#12064) 2023-04-18 16:14:26 +03:00
slowlog.tcl Exit early if slowlog/acllog max len set to zero (#12965) 2024-01-22 16:01:04 -08:00
sort.tcl Fix get # option in sort command (#13608) 2024-10-22 09:55:00 +08:00
tls.tcl Add support for reading encrypted keyfiles. (#8644) 2021-03-22 13:27:46 +02:00
tracking.tcl Bump codespell from 2.2.4 to 2.2.5 (#12557) 2023-09-08 16:10:17 +03:00
violations.tcl Run large-memory tests as solo. (#10626) 2022-04-24 17:29:35 +03:00
wait.tcl CLIENT UNBLOCK should't be able to unpause paused clients (#14164) 2025-07-24 15:20:04 +08:00