aboutsummaryrefslogtreecommitdiff
path: root/examples/redis-unstable/tests/unit/shutdown.tcl
diff options
context:
space:
mode:
authorMitja Felicijan <mitja.felicijan@gmail.com>2026-01-21 22:52:54 +0100
committerMitja Felicijan <mitja.felicijan@gmail.com>2026-01-21 22:52:54 +0100
commitdcacc00e3750300617ba6e16eb346713f91a783a (patch)
tree38e2d4fb5ed9d119711d4295c6eda4b014af73fd /examples/redis-unstable/tests/unit/shutdown.tcl
parent58dac10aeb8f5a041c46bddbeaf4c7966a99b998 (diff)
downloadcrep-dcacc00e3750300617ba6e16eb346713f91a783a.tar.gz
Remove testing data
Diffstat (limited to 'examples/redis-unstable/tests/unit/shutdown.tcl')
-rw-r--r--examples/redis-unstable/tests/unit/shutdown.tcl133
1 files changed, 0 insertions, 133 deletions
diff --git a/examples/redis-unstable/tests/unit/shutdown.tcl b/examples/redis-unstable/tests/unit/shutdown.tcl
deleted file mode 100644
index 7504851..0000000
--- a/examples/redis-unstable/tests/unit/shutdown.tcl
+++ /dev/null
@@ -1,133 +0,0 @@
1start_server {tags {"shutdown external:skip"}} {
2 test {Temp rdb will be deleted if we use bg_unlink when shutdown} {
3 for {set i 0} {$i < 20} {incr i} {
4 r set $i $i
5 }
6 r config set rdb-key-save-delay 10000000
7
8 # Child is dumping rdb
9 r bgsave
10 wait_for_condition 1000 10 {
11 [s rdb_bgsave_in_progress] eq 1
12 } else {
13 fail "bgsave did not start in time"
14 }
15 after 100 ;# give the child a bit of time for the file to be created
16
17 set dir [lindex [r config get dir] 1]
18 set child_pid [get_child_pid 0]
19 set temp_rdb [file join [lindex [r config get dir] 1] temp-${child_pid}.rdb]
20 # Temp rdb must be existed
21 assert {[file exists $temp_rdb]}
22
23 catch {r shutdown nosave}
24 # Make sure the server was killed
25 catch {set rd [redis_deferring_client]} e
26 assert_match {*connection refused*} $e
27
28 # Temp rdb file must be deleted
29 assert {![file exists $temp_rdb]}
30 }
31}
32
33start_server {tags {"shutdown external:skip"} overrides {save {900 1}}} {
34 test {SHUTDOWN ABORT can cancel SIGTERM} {
35 r debug pause-cron 1
36 set pid [s process_id]
37 exec kill -SIGTERM $pid
38 after 10; # Give signal handler some time to run
39 r shutdown abort
40 verify_log_message 0 "*Shutdown manually aborted*" 0
41 r debug pause-cron 0
42 r ping
43 } {PONG}
44
45 test {Temp rdb will be deleted in signal handle} {
46 for {set i 0} {$i < 20} {incr i} {
47 r set $i $i
48 }
49 # It will cost 2s (20 * 100ms) to dump rdb
50 r config set rdb-key-save-delay 100000
51
52 set pid [s process_id]
53 set temp_rdb [file join [lindex [r config get dir] 1] temp-${pid}.rdb]
54
55 # trigger a shutdown which will save an rdb
56 exec kill -SIGINT $pid
57 # Wait for creation of temp rdb
58 wait_for_condition 50 10 {
59 [file exists $temp_rdb]
60 } else {
61 fail "Can't trigger rdb save on shutdown"
62 }
63
64 # Insist on immediate shutdown, temp rdb file must be deleted
65 exec kill -SIGINT $pid
66 # wait for the rdb file to be deleted
67 wait_for_condition 50 10 {
68 ![file exists $temp_rdb]
69 } else {
70 fail "Can't trigger rdb save on shutdown"
71 }
72 }
73}
74
75start_server {tags {"shutdown external:skip"} overrides {save {900 1}}} {
76 set pid [s process_id]
77 set dump_rdb [file join [lindex [r config get dir] 1] dump.rdb]
78
79 test {RDB save will be failed in shutdown} {
80 for {set i 0} {$i < 20} {incr i} {
81 r set $i $i
82 }
83
84 # create a folder called 'dump.rdb' to trigger temp-rdb rename failure
85 # and it will cause rdb save to fail eventually.
86 if {[file exists $dump_rdb]} {
87 exec rm -f $dump_rdb
88 }
89 exec mkdir -p $dump_rdb
90 }
91 test {SHUTDOWN will abort if rdb save failed on signal} {
92 # trigger a shutdown which will save an rdb
93 exec kill -SIGINT $pid
94 wait_for_log_messages 0 {"*Error trying to save the DB, can't exit*"} 0 100 10
95 }
96 test {SHUTDOWN will abort if rdb save failed on shutdown command} {
97 catch {[r shutdown]} err
98 assert_match {*Errors trying to SHUTDOWN*} $err
99 # make sure the server is still alive
100 assert_equal [r ping] {PONG}
101 }
102 test {SHUTDOWN can proceed if shutdown command was with nosave} {
103 catch {[r shutdown nosave]}
104 wait_for_log_messages 0 {"*ready to exit, bye bye*"} 0 100 10
105 }
106 test {Clean up rdb same named folder} {
107 exec rm -r $dump_rdb
108 }
109}
110
111
112start_server {tags {"shutdown external:skip"} overrides {appendonly no}} {
113 test {SHUTDOWN SIGTERM will abort if there's an initial AOFRW - default} {
114 r config set shutdown-on-sigterm default
115 r config set rdb-key-save-delay 10000000
116 for {set i 0} {$i < 10} {incr i} {
117 r set $i $i
118 }
119
120 r config set appendonly yes
121 wait_for_condition 1000 10 {
122 [s aof_rewrite_in_progress] eq 1
123 } else {
124 fail "aof rewrite did not start in time"
125 }
126
127 set pid [s process_id]
128 exec kill -SIGTERM $pid
129 wait_for_log_messages 0 {"*Writing initial AOF, can't exit*"} 0 1000 10
130
131 r config set shutdown-on-sigterm force
132 }
133}