• Oran Agra's avatar
    fix dict rehash tests introduced by #12802 broken by #12819 (#13009) · 7c9f41b5
    Oran Agra authored
    tests consistently fail on timeout (sleep that's too short).
    it now takes more time because in #12819 we iterate on all dicts, not
    just non-empty ones.
    it passed the PR's CI because it skips the `slow` tag, which might have
    been misplaced, but now it is probably required.
    with the fix, the tests take quite a lot of time:
    ```
    [ok]: Redis can trigger resizing (1860 ms)
    [ok]: Redis can rewind and trigger smaller slot resizing (744 ms)
    ```
    before #12819:
    ```
    [ok]: Redis can trigger resizing (309 ms)
    [ok]: Redis can rewind and trigger smaller slot resizing (295 ms)
    ```
    
    failure:
    https://github.com/redis/redis/actions/runs/7704158180/job/20995931735
    ```
    *** [err]: expire scan should skip dictionaries with lot's of empty buckets in tests/unit/expire.tcl
    scan didn't handle slot skipping logic.
    *** [err]: Redis can trigger resizing in tests/unit/other.tcl
    Expected '[Dictionary HT]
    Hash table 0 stats (main hash table):
     table size: 128
     number of elements: 5
    [Expires HT]
    Hash table 0 stats (main hash table):
    No stats available for empty dictionaries
    ' to match '*table size: 8*' (context: type eval line 29 cmd {assert_match "*table size: 8*" [r debug HTSTATS 0]} proc ::test) 
    *** [err]: Redis can rewind and trigger smaller slot resizing in tests/unit/other.tcl
    Expected '[Dictionary HT]
    Hash table 0 stats (main hash table):
     table size: 256
     number of elements: 10
    [Expires HT]
    Hash table 0 stats (main hash table):
    No stats available for empty dictionaries
    ' to match '*table size: 16*' (context: type eval line 27 cmd {assert_match "*table size: 16*" [r debug HTSTATS 0]} proc ::test) 
    ```
    7c9f41b5
other.tcl 16.3 KB