Commit bd93af0
Fix race conditions in StateManagerRedis lock detection (#6196)
* Fix race conditions in StateManagerRedis lock detection
Fix other race conditions also present in the tests.
In short: both the framework and tests must deterministically wait for the
Redis pubsub psubscribe call to complete to ensure that events, such as lock
release, are properly recorded.
Co-authored-by: Farhan Ali Raza <farhanalirazaazeemi@gmail.com>
* bounded wait for lock waiter's psubscribe to start
* create _ensure_lock_task_subscribed helper to encapsulate logic
ignore TimeoutError for this call, because we still want to enter the lock
waiter loop, even if there was some redis problem, just the waiter might have
to wait for the full lock expiration (fallback case to previous behavior).
but we should _NEVER_ deadlock the process waiting for the psubscribe event and
we should _NEVER_ exit _wait_for just because the timeout for the previous
expired.
---------
Co-authored-by: Farhan Ali Raza <farhanalirazaazeemi@gmail.com>1 parent 0a5e76e commit bd93af0
File tree
3 files changed
+99
-16
lines changed- reflex/istate/manager
- tests/units
- istate/manager
3 files changed
+99
-16
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
61 | 61 | | |
62 | 62 | | |
63 | 63 | | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
64 | 68 | | |
65 | 69 | | |
66 | 70 | | |
| |||
153 | 157 | | |
154 | 158 | | |
155 | 159 | | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
156 | 164 | | |
157 | 165 | | |
158 | 166 | | |
| |||
802 | 810 | | |
803 | 811 | | |
804 | 812 | | |
805 | | - | |
806 | | - | |
| 813 | + | |
| 814 | + | |
| 815 | + | |
| 816 | + | |
| 817 | + | |
| 818 | + | |
807 | 819 | | |
808 | 820 | | |
809 | 821 | | |
| |||
814 | 826 | | |
815 | 827 | | |
816 | 828 | | |
| 829 | + | |
| 830 | + | |
| 831 | + | |
| 832 | + | |
| 833 | + | |
| 834 | + | |
| 835 | + | |
| 836 | + | |
| 837 | + | |
| 838 | + | |
| 839 | + | |
| 840 | + | |
| 841 | + | |
| 842 | + | |
| 843 | + | |
| 844 | + | |
| 845 | + | |
| 846 | + | |
| 847 | + | |
| 848 | + | |
| 849 | + | |
| 850 | + | |
| 851 | + | |
| 852 | + | |
817 | 853 | | |
818 | 854 | | |
819 | 855 | | |
| |||
970 | 1006 | | |
971 | 1007 | | |
972 | 1008 | | |
973 | | - | |
| 1009 | + | |
| 1010 | + | |
974 | 1011 | | |
975 | 1012 | | |
976 | 1013 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
25 | 33 | | |
26 | 34 | | |
27 | 35 | | |
| |||
65 | 73 | | |
66 | 74 | | |
67 | 75 | | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
68 | 92 | | |
69 | 93 | | |
70 | 94 | | |
| |||
123 | 147 | | |
124 | 148 | | |
125 | 149 | | |
| 150 | + | |
126 | 151 | | |
127 | 152 | | |
128 | 153 | | |
129 | 154 | | |
130 | 155 | | |
131 | 156 | | |
132 | 157 | | |
| 158 | + | |
133 | 159 | | |
134 | 160 | | |
135 | 161 | | |
| |||
143 | 169 | | |
144 | 170 | | |
145 | 171 | | |
| 172 | + | |
| 173 | + | |
146 | 174 | | |
147 | 175 | | |
148 | 176 | | |
| |||
159 | 187 | | |
160 | 188 | | |
161 | 189 | | |
| 190 | + | |
162 | 191 | | |
163 | 192 | | |
164 | 193 | | |
| |||
182 | 211 | | |
183 | 212 | | |
184 | 213 | | |
| 214 | + | |
185 | 215 | | |
186 | 216 | | |
187 | 217 | | |
| |||
203 | 233 | | |
204 | 234 | | |
205 | 235 | | |
| 236 | + | |
206 | 237 | | |
207 | 238 | | |
208 | 239 | | |
| |||
228 | 259 | | |
229 | 260 | | |
230 | 261 | | |
| 262 | + | |
231 | 263 | | |
| 264 | + | |
232 | 265 | | |
233 | 266 | | |
234 | 267 | | |
| |||
562 | 595 | | |
563 | 596 | | |
564 | 597 | | |
565 | | - | |
566 | | - | |
567 | | - | |
568 | | - | |
569 | | - | |
570 | | - | |
571 | | - | |
572 | 598 | | |
573 | 599 | | |
574 | 600 | | |
| |||
627 | 653 | | |
628 | 654 | | |
629 | 655 | | |
| 656 | + | |
630 | 657 | | |
631 | 658 | | |
632 | 659 | | |
| |||
635 | 662 | | |
636 | 663 | | |
637 | 664 | | |
| 665 | + | |
638 | 666 | | |
639 | 667 | | |
640 | 668 | | |
| |||
683 | 711 | | |
684 | 712 | | |
685 | 713 | | |
| 714 | + | |
686 | 715 | | |
687 | 716 | | |
688 | 717 | | |
689 | 718 | | |
690 | 719 | | |
691 | 720 | | |
692 | 721 | | |
| 722 | + | |
693 | 723 | | |
694 | 724 | | |
695 | 725 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
29 | 35 | | |
30 | 36 | | |
31 | 37 | | |
| |||
39 | 45 | | |
40 | 46 | | |
41 | 47 | | |
42 | | - | |
43 | | - | |
| 48 | + | |
44 | 49 | | |
45 | 50 | | |
46 | 51 | | |
| |||
192 | 197 | | |
193 | 198 | | |
194 | 199 | | |
195 | | - | |
196 | | - | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
197 | 204 | | |
198 | 205 | | |
199 | | - | |
200 | | - | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
201 | 210 | | |
202 | 211 | | |
203 | 212 | | |
| |||
243 | 252 | | |
244 | 253 | | |
245 | 254 | | |
| 255 | + | |
246 | 256 | | |
247 | 257 | | |
248 | 258 | | |
| |||
261 | 271 | | |
262 | 272 | | |
263 | 273 | | |
| 274 | + | |
264 | 275 | | |
265 | 276 | | |
266 | 277 | | |
267 | 278 | | |
268 | 279 | | |
| 280 | + | |
269 | 281 | | |
270 | 282 | | |
271 | 283 | | |
| 284 | + | |
272 | 285 | | |
273 | 286 | | |
274 | 287 | | |
275 | 288 | | |
| 289 | + | |
276 | 290 | | |
277 | 291 | | |
278 | 292 | | |
279 | 293 | | |
| 294 | + | |
280 | 295 | | |
281 | 296 | | |
| 297 | + | |
282 | 298 | | |
283 | 299 | | |
284 | 300 | | |
| |||
0 commit comments