Valkey CI Failure Report

daily.yml · unstable · valkey-io/valkey · last 14 days · generated 2026-05-13 08:36 UTC

Daily CI failure trends for the unstable branch. Tracks which tests fail, how often, and whether they are getting better or worse.

15
runs
13
failed
24
unique failures
Columns are days, rows are unique test failures. Each cell shows how many jobs hit that failure on that day. failed passed no failure. Freq = days failed / total days.
Test14d90d4/294/305/15/25/35/45/55/65/75/85/95/105/115/125/13
Run status
Cluster benchmark: dataset with {tag} validates replacement 33% 6% 11212
CLUSTER MYSHARDID reports same shard id after cluster res... 27% 7% 1111
"wait aof network external:skip" 27% 4% 1111
Migration target is auto-updated after failover in target... 20% 4% 111
Migration source is auto-updated after failover in source... 20% 4% 111
Replica redirects key access in migrating slots 20% 4% 111
Replica of migrating node returns ASK redirect after READ... 20% 4% 111
Replica of migrating node returns TRYAGAIN after READONLY 20% 4% 111
Replica of importing node returns TRYAGAIN after READONLY... 20% 4% 111
New replica inherits migrating slot 20% 4% 111
New replica inherits importing slot 20% 4% 111
Primary reboot in very short time 13% 2% 12
clients state report follows. 7% 25% 3
Verify slaves consistency 7% 2% 2
Active defrag - AOF loading 13% 3% 11
Replica can update the config epoch when trigger the fail... 7% 2% 1
slot-migration-max-failover-repl-bytes -1 disables repl b... 7% 1% 1
Primaries will not time out then they are elected in the ... 7% 12% 1
Active Defrag big zset: standalone random-score 7% 1% 1
Process error: Process completed with exit code 1. 7% 22% 1
Force the use of IO threads and assert active IO thread u... 7% 7% 1
Migrated replica reports zero repl offset and rank, and f... 7% 2% 1
diskless timeout replicas drop during rdb pipe 7% 2% 1
Slot migration remaining_repl_size on the source node 7% 6% 1

Run Details (newest first)

Each row is one daily CI run. Status shows failed/total jobs. Numbered links like [1][2] go to the specific job logs on GitHub. Hover over a commit SHA to see the commit message.

DateStatusCommit#Unique FailuresFailed JobsCommits since prev run
2026-05-13 FAIL (6/51) d4337d6 4
Active defrag - AOF loading [1]
Slot migration remaining_repl_size on the source node [1]
clients state report follows. [1] [2] [3]
diskless timeout replicas drop during rdb pipe [1]
test-centosstream9-tls-module
test-macos-latest
test-ubuntu-32bit
test-ubuntu-tls-io-threads
test-valgrind-no-malloc-usable-size-test
+1 more
fdd9039 Akash Kumar IO-Threads redesign cleanup work (#3544)
d4337d6 Binbin Fix CLUSTERSCAN fingerprint to use configurable_hash_seed (#3679)
2026-05-12 PASS ca9dee3 0
2026-05-11 FAIL (1/51) ca9dee3 1
CLUSTER MYSHARDID reports same shard id after cluster res... [1]
test-valgrind-no-malloc-usable-size-test
ca9dee3 bandalgomsu Add optional REPLACE argument to MOVE (#2993)
2026-05-10 FAIL (2/51) 418c98b 2
"wait aof network external:skip" [1]
Migrated replica reports zero repl offset and rank, and f... [1]
test-fedoralatest-jemalloc
test-ubuntu-tls-io-threads
418c98b Binbin Use wait_for_condition instead of hardcoding in dump.tcl test (#3647)
2026-05-09 FAIL (1/51) 89b7baa 1
CLUSTER MYSHARDID reports same shard id after cluster res... [1]
test-valgrind-no-malloc-usable-size-test
2026-05-08 FAIL (1/51) 89b7baa 1
"wait aof network external:skip" [1]
test-ubuntu-tls-io-threads
96a6bc5 Raghav Muddur Fix the memory leak in valkey-benchmark (#3643)
ccef347 Sarthak Aggarwal Skip deferred_reply test in req/res log validation (#3642)
199d49a Hanxi Zhang Automatically create github issues for test failures from daily CI runs (#3358)
1d7224f Ran Shidlansik Fix UAF in unblockClientOnKey when reprocessed command frees the client (CVE-202
89b7baa Viktor Söderqvist Speed up cluster startup by 10 seconds (#3606)
2026-05-07 FAIL (6/50) 6c9d7fc 12
Active Defrag big zset: standalone random-score [1]
Cluster benchmark: dataset with {tag} validates replacement [1] [2]
Force the use of IO threads and assert active IO thread u... [1]
Migration source is auto-updated after failover in source... [1]
Migration target is auto-updated after failover in target... [1]
New replica inherits importing slot [1]
New replica inherits migrating slot [1]
Process error: Process completed with exit code 1. [1]
Replica of importing node returns TRYAGAIN after READONLY... [1]
Replica of migrating node returns ASK redirect after READ... [1]
Replica of migrating node returns TRYAGAIN after READONLY [1]
Replica redirects key access in migrating slots [1]
reply-schemas-validator
test-almalinux8-jemalloc
test-sanitizer-address (clang)
test-sanitizer-force-defrag
test-ubuntu-tls-no-tls
+1 more
c595926 Quanye Yang valkey-benchmark: centralize RDMA WRITABLE kick via createFileEvent (#3492)
96763ad eifrah-aws Fix Deferred Reply Placeholders in Active Deferred Buffers (#3578)
9669b26 chzhoo Reduce latency spikes during rehashing via incremental page release (#3481)
2f16107 Viktor Söderqvist Add null check in updateSSLPendingFlag (#3641)
75fee11 Quanye Yang Fixes server crash when RDMA benchmark clients disconnect (#3448)
6c9d7fc Raghav Muddur CLUSTERSCAN range bounded scanning across contiguous slots (#3391)
2026-05-06 FAIL (3/50) fea0b40 2
Active defrag - AOF loading [1]
Primary reboot in very short time [1] [2]
test-sanitizer-address (gcc)
test-ubuntu-32bit
test-ubuntu-jemalloc-fortify
c7c92db Ran Shidlansik Delay full sync during yielding Lua scripts to prevent use-after-free (CVE-2026-
fea0b40 Ran Shidlansik Fix invalid memory access in RESTORE with malformed zipmap (CVE-2026-25243) (#36
2026-05-05 FAIL (2/50) 797c626 2
"wait aof network external:skip" [1]
Cluster benchmark: dataset with {tag} validates replacement [1]
test-sanitizer-force-defrag
test-ubuntu-tls-io-threads
797c626 sananes Fix SIGSEGV in VM_GetLRU/SetLRU/GetLFU/SetLFU on NULL key (#3610)
2026-05-04 FAIL (4/50) 8891441 3
CLUSTER MYSHARDID reports same shard id after cluster res... [1]
Cluster benchmark: dataset with {tag} validates replacement [1] [2]
Primary reboot in very short time [1]
test-fedoralatest-jemalloc
test-sanitizer-address (clang)
test-sanitizer-address (gcc)
test-valgrind-test
8891441 Brad Bebee Fix checkPrefixCollisionsOrReply returning non-zero on self-overlap (#3583)
2026-05-03 FAIL (3/50) f2f4e5d 10
"wait aof network external:skip" [1]
Cluster benchmark: dataset with {tag} validates replacement [1]
Migration source is auto-updated after failover in source... [1]
Migration target is auto-updated after failover in target... [1]
New replica inherits importing slot [1]
New replica inherits migrating slot [1]
Replica of importing node returns TRYAGAIN after READONLY... [1]
Replica of migrating node returns ASK redirect after READ... [1]
Replica of migrating node returns TRYAGAIN after READONLY [1]
Replica redirects key access in migrating slots [1]
test-sanitizer-force-defrag
test-ubuntu-tls-io-threads
test-valgrind-no-malloc-usable-size-test
2026-05-02 PASS f2f4e5d 0
54bdf57 Saurabh K Handle NULL pointer in streamTrim listpack delta calculation (#3591)
46d37e4 FAN PEI Fix off-by-one boundary in lpEncodeBacklen() for 3 values (#3601)
cea9354 Rain Valentine Big Endian: add daily workflow UT job and fix UTs (#3330)
f2f4e5d Sarthak Aggarwal Run ASan Tests on run-extra-tests label (#3512)
2026-05-01 FAIL (2/49) cba0510 2
CLUSTER MYSHARDID reports same shard id after cluster res... [1]
Primaries will not time out then they are elected in the ... [1]
test-ubuntu-jemalloc
test-valgrind-test
5b7ac66 Ping Xie Fix verify-provenance action pin (#3594)
7e2a2f7 abmathur-ie fix(cluster): Remove per-call srand in clusterManagerNodePrimaryRandom (#3586)
81639e3 Jacob Murphy fix: validate key count before allocating result in keyspec (#3598)
72fc5b1 Jeff Duffy Fix compilation error: replace deprecated je_calloc with zcalloc_num (#3592)
cba0510 chenshi Fix: prevent NULL dereference crash in connectSlotExportJob when target node dis
2026-04-30 FAIL (4/49) 98724dd 11
Cluster benchmark: dataset with {tag} validates replacement [1]
Migration source is auto-updated after failover in source... [1]
Migration target is auto-updated after failover in target... [1]
New replica inherits importing slot [1]
New replica inherits migrating slot [1]
Replica can update the config epoch when trigger the fail... [1]
Replica of importing node returns TRYAGAIN after READONLY... [1]
Replica of migrating node returns ASK redirect after READ... [1]
Replica of migrating node returns TRYAGAIN after READONLY [1]
Replica redirects key access in migrating slots [1]
slot-migration-max-failover-repl-bytes -1 disables repl b... [1]
test-fedoralatest-tls-module
test-sanitizer-force-defrag
test-ubuntu-jemalloc-fortify
test-valgrind-no-malloc-usable-size-test
bef46da Binbin Skip cluster resharding test under valgrind (#3574)
16ed690 Jim Brunner fix LTO compilation warning in eval (#3584)
39036c7 VoletiRam Add structured datasets loading capability in valkey benchmark (#2823)
ad404cd Jim Brunner fix compile warning in util.c (#3585)
7817ca8 bandalgomsu Fix GEOSEARCH BYPOLYGON leak on invalid COUNT (#3568)
678a06d abmathur-ie Set errno on EOF in syncRead and propagate it in logs (#3580)
98724dd Ping Xie Update provenance action to refine layer2 exemption policies (#3593)
2026-04-29 FAIL (2/49) 8091c6c 1
Verify slaves consistency [1] [2]
test-valgrind-no-malloc-usable-size-test
test-valgrind-test
Raw JSON data
{
  "dates": [
    "2026-04-29",
    "2026-04-30",
    "2026-05-01",
    "2026-05-02",
    "2026-05-03",
    "2026-05-04",
    "2026-05-05",
    "2026-05-06",
    "2026-05-07",
    "2026-05-08",
    "2026-05-09",
    "2026-05-10",
    "2026-05-11",
    "2026-05-12",
    "2026-05-13"
  ],
  "runs": [
    {
      "run_id": 25084868965,
      "date": "2026-04-29",
      "status": "failure",
      "commit_sha": "8091c6c10a3bd80fcb639a036dde882580f61fcb",
      "total_jobs": 49,
      "failed_jobs": 2,
      "failed_job_names": [
        "test-valgrind-no-malloc-usable-size-test",
        "test-valgrind-test"
      ],
      "unique_failures": 1,
      "failure_names": [
        "Verify slaves consistency in tests/unit/cluster/resharding.tcl"
      ],
      "failure_jobs": {
        "Verify slaves consistency in tests/unit/cluster/resharding.tcl": [
          73498047227,
          73498047265
        ]
      },
      "commit_message": "Remove redundant count division in genericHgetallCommand (#3573)\n\nThe argument `count /= 2` modifies `count` as a side effect, and the\nfollowing `count /= 2` divides it again unnecessarily.\nSince `count` is not used after this point, fix it by using `count / 2`\nwithout the side effect and remove the redundant second assignment.\n\nSigned-off-by: djk1027 <djk9510271@gmail.com>"
    },
    {
      "run_id": 25141089135,
      "date": "2026-04-30",
      "status": "failure",
      "commit_sha": "98724dda089a279cc503974658a96d5a24ad4df0",
      "total_jobs": 49,
      "failed_jobs": 4,
      "failed_job_names": [
        "test-fedoralatest-tls-module",
        "test-sanitizer-force-defrag",
        "test-ubuntu-jemalloc-fortify",
        "test-valgrind-no-malloc-usable-size-test"
      ],
      "unique_failures": 11,
      "failure_names": [
        "Cluster benchmark: dataset with {tag} validates replacement in tests/integration/valkey-benchmark.tcl",
        "Migration source is auto-updated after failover in source shard in tests/unit/cluster/slot-migration.tcl",
        "Migration target is auto-updated after failover in target shard in tests/unit/cluster/slot-migration.tcl",
        "New replica inherits importing slot in tests/unit/cluster/slot-migration.tcl",
        "New replica inherits migrating slot in tests/unit/cluster/slot-migration.tcl",
        "Replica can update the config epoch when trigger the failover - automatic in tests/unit/cluster/failover2.tcl",
        "Replica of importing node returns TRYAGAIN after READONLY and ASKING in tests/unit/cluster/slot-migration.tcl",
        "Replica of migrating node returns ASK redirect after READONLY in tests/unit/cluster/slot-migration.tcl",
        "Replica of migrating node returns TRYAGAIN after READONLY in tests/unit/cluster/slot-migration.tcl",
        "Replica redirects key access in migrating slots in tests/unit/cluster/slot-migration.tcl",
        "slot-migration-max-failover-repl-bytes -1 disables repl bytes limit in tests/unit/cluster/cluster-migrateslots.tcl"
      ],
      "failure_jobs": {
        "Replica can update the config epoch when trigger the failover - automatic in tests/unit/cluster/failover2.tcl": [
          73690738840
        ],
        "Migration target is auto-updated after failover in target shard in tests/unit/cluster/slot-migration.tcl": [
          73690738983
        ],
        "Migration source is auto-updated after failover in source shard in tests/unit/cluster/slot-migration.tcl": [
          73690738983
        ],
        "Replica redirects key access in migrating slots in tests/unit/cluster/slot-migration.tcl": [
          73690738983
        ],
        "Replica of migrating node returns ASK redirect after READONLY in tests/unit/cluster/slot-migration.tcl": [
          73690738983
        ],
        "Replica of migrating node returns TRYAGAIN after READONLY in tests/unit/cluster/slot-migration.tcl": [
          73690738983
        ],
        "Replica of importing node returns TRYAGAIN after READONLY and ASKING in tests/unit/cluster/slot-migration.tcl": [
          73690738983
        ],
        "New replica inherits migrating slot in tests/unit/cluster/slot-migration.tcl": [
          73690738983
        ],
        "New replica inherits importing slot in tests/unit/cluster/slot-migration.tcl": [
          73690738983
        ],
        "Cluster benchmark: dataset with {tag} validates replacement in tests/integration/valkey-benchmark.tcl": [
          73690739045
        ],
        "slot-migration-max-failover-repl-bytes -1 disables repl bytes limit in tests/unit/cluster/cluster-migrateslots.tcl": [
          73690739050
        ]
      },
      "commits_since_prev": [
        {
          "sha": "bef46dacc1a4ffbd1c983d75b1a5eee00982fd6c",
          "message": "Skip cluster resharding test under valgrind (#3574)",
          "author": "Binbin",
          "date": "2026-04-29T02:27:04Z"
        },
        {
          "sha": "16ed690fec06ddfb32f3da863e1201cc5cc9c9d6",
          "message": "fix LTO compilation warning in eval (#3584)",
          "author": "Jim Brunner",
          "date": "2026-04-29T06:13:56Z"
        },
        {
          "sha": "39036c7c06f4ac1942aa7a36058cc79e555c9fde",
          "message": "Add structured datasets loading capability in valkey benchmark (#2823)",
          "author": "VoletiRam",
          "date": "2026-04-29T16:18:37Z"
        },
        {
          "sha": "ad404cd266e15add51007e38e75c0648a021198d",
          "message": "fix compile warning in util.c (#3585)",
          "author": "Jim Brunner",
          "date": "2026-04-29T16:31:04Z"
        },
        {
          "sha": "7817ca8a736e70ed1205839d3a701342d348eac9",
          "message": "Fix GEOSEARCH BYPOLYGON leak on invalid COUNT (#3568)",
          "author": "bandalgomsu",
          "date": "2026-04-29T17:39:12Z"
        },
        {
          "sha": "678a06d21638e5a48e382a0a2193f32e870568d2",
          "message": "Set errno on EOF in syncRead and propagate it in logs (#3580)",
          "author": "abmathur-ie",
          "date": "2026-04-29T21:13:40Z"
        },
        {
          "sha": "98724dda089a279cc503974658a96d5a24ad4df0",
          "message": "Update provenance action to refine layer2 exemption policies (#3593)",
          "author": "Ping Xie",
          "date": "2026-04-30T00:06:57Z"
        }
      ],
      "commit_message": "Update provenance action to refine layer2 exemption policies (#3593)"
    },
    {
      "run_id": 25196363348,
      "date": "2026-05-01",
      "status": "failure",
      "commit_sha": "cba05103de24cd5d49f2f4d80e337646c2c941b4",
      "total_jobs": 49,
      "failed_jobs": 2,
      "failed_job_names": [
        "test-ubuntu-jemalloc",
        "test-valgrind-test"
      ],
      "unique_failures": 2,
      "failure_names": [
        "CLUSTER MYSHARDID reports same shard id after cluster restart in tests/unit/cluster/cluster-shards.tcl",
        "Primaries will not time out then they are elected in the same epoch in tests/unit/cluster/failover2.tcl"
      ],
      "failure_jobs": {
        "Primaries will not time out then they are elected in the same epoch in tests/unit/cluster/failover2.tcl": [
          73877768434
        ],
        "CLUSTER MYSHARDID reports same shard id after cluster restart in tests/unit/cluster/cluster-shards.tcl": [
          73877768653
        ]
      },
      "commits_since_prev": [
        {
          "sha": "5b7ac669182b5ea6b7ce0110e4fa541d93cd84ca",
          "message": "Fix verify-provenance action pin (#3594)",
          "author": "Ping Xie",
          "date": "2026-04-30T04:30:40Z"
        },
        {
          "sha": "7e2a2f7c4a394cf27ebaa3dc7106a8337a8ddf72",
          "message": "fix(cluster): Remove per-call srand in clusterManagerNodePrimaryRandom (#3586)",
          "author": "abmathur-ie",
          "date": "2026-04-30T15:33:34Z"
        },
        {
          "sha": "81639e3975af905159d1b6b77b9257ef354df0cf",
          "message": "fix: validate key count before allocating result in keyspec (#3598)",
          "author": "Jacob Murphy",
          "date": "2026-04-30T18:21:43Z"
        },
        {
          "sha": "72fc5b14b1f7bf7bd0ca2546bd6e636af151454f",
          "message": "Fix compilation error: replace deprecated je_calloc with zcalloc_num (#3592)",
          "author": "Jeff Duffy",
          "date": "2026-04-30T19:59:19Z"
        },
        {
          "sha": "cba05103de24cd5d49f2f4d80e337646c2c941b4",
          "message": "Fix: prevent NULL dereference crash in connectSlotExportJob when target node disappears (#3596)",
          "author": "chenshi",
          "date": "2026-04-30T23:25:58Z"
        }
      ],
      "commit_message": "Fix: prevent NULL dereference crash in connectSlotExportJob when target node disappears (#3596)\n\n### Summary\n\nThis PR fixes a NULL pointer dereference (SIGSEGV) in\n`connectSlotExportJob()`\n(`src/cluster_migrateslots.c`) that can crash a Valkey cluster node,\ncausing a\ndenial-of-service condition.\n\n### Root Cause\n\nWhen `CLUSTER MIGRATESLOTS` is issued, a migration job is created with\nstate\n`SLOT_EXPORT_CONNECTING`. On the next `clusterCron()` tick,\n`proceedWithSlotMigration()` calls `connectSlotExportJob()`, which looks\nup the\ntarget node via `clusterLookupNode()`.\n\n`clusterLookupNode()` can legitimately return `NULL` \u2014 for example, if\nthe\ntarget node is removed from the cluster (e.g. via `CLUSTER FORGET`)\nbetween the\ntime the migration job is created and the time the cron fires. This is a\nrealistic race condition in any cluster topology change scenario.\n\nThe return value was **never checked**, so the subsequent call to\n`getNodeDefaultReplicationPort(n)` immediately dereferences the NULL\npointer,\ncrashing the process:\n\n```c\n// Before fix \u2014 vulnerable\nclusterNode *n = clusterLookupNode(job->target_node_name, CLUSTER_NAMELEN);\nint port = getNodeDefaultReplicationPort(n);  // SIGSEGV if n == NULL\nserverLog(..., n->ip, port);                  // second dereference\n\nSigned-off-by: chenshi5012 <chenshi5012@163.com>"
    },
    {
      "run_id": 25239096883,
      "date": "2026-05-02",
      "status": "success",
      "commit_sha": "f2f4e5dbfccdcefbc7d961bb28a1aef44068d3a6",
      "total_jobs": 0,
      "failed_jobs": 0,
      "failed_job_names": [],
      "unique_failures": 0,
      "failure_names": [],
      "failure_jobs": {},
      "commits_since_prev": [
        {
          "sha": "54bdf5737b3a4d9109d0b7ec6ad37e9adb52cb5a",
          "message": "Handle NULL pointer in streamTrim listpack delta calculation (#3591)",
          "author": "Saurabh K",
          "date": "2026-05-01T04:05:01Z"
        },
        {
          "sha": "46d37e4d5ee2dfdab263453c90fb64958f92d5de",
          "message": "Fix off-by-one boundary in lpEncodeBacklen() for 3 values (#3601)",
          "author": "FAN PEI",
          "date": "2026-05-01T04:06:38Z"
        },
        {
          "sha": "cea9354b56128f4353ef4865e9005c78f5cf8fed",
          "message": "Big Endian: add daily workflow UT job and fix UTs (#3330)",
          "author": "Rain Valentine",
          "date": "2026-05-01T04:09:23Z"
        },
        {
          "sha": "f2f4e5dbfccdcefbc7d961bb28a1aef44068d3a6",
          "message": "Run ASan Tests on run-extra-tests label (#3512)",
          "author": "Sarthak Aggarwal",
          "date": "2026-05-01T04:10:29Z"
        }
      ],
      "commit_message": "Run ASan Tests on run-extra-tests label (#3512)\n\nIt's important to enabled ASAN on run-extra-tests label so we can\ncatch some of the bugs in the PRs before they are merged into unstable.\n\nSigned-off-by: Sarthak Aggarwal <sarthagg@amazon.com>"
    },
    {
      "run_id": 25265668035,
      "date": "2026-05-03",
      "status": "failure",
      "commit_sha": "f2f4e5dbfccdcefbc7d961bb28a1aef44068d3a6",
      "total_jobs": 50,
      "failed_jobs": 3,
      "failed_job_names": [
        "test-sanitizer-force-defrag",
        "test-ubuntu-tls-io-threads",
        "test-valgrind-no-malloc-usable-size-test"
      ],
      "unique_failures": 10,
      "failure_names": [
        "\"wait aof network external:skip\" in tests/unit/wait.tcl",
        "Cluster benchmark: dataset with {tag} validates replacement in tests/integration/valkey-benchmark.tcl",
        "Migration source is auto-updated after failover in source shard in tests/unit/cluster/slot-migration.tcl",
        "Migration target is auto-updated after failover in target shard in tests/unit/cluster/slot-migration.tcl",
        "New replica inherits importing slot in tests/unit/cluster/slot-migration.tcl",
        "New replica inherits migrating slot in tests/unit/cluster/slot-migration.tcl",
        "Replica of importing node returns TRYAGAIN after READONLY and ASKING in tests/unit/cluster/slot-migration.tcl",
        "Replica of migrating node returns ASK redirect after READONLY in tests/unit/cluster/slot-migration.tcl",
        "Replica of migrating node returns TRYAGAIN after READONLY in tests/unit/cluster/slot-migration.tcl",
        "Replica redirects key access in migrating slots in tests/unit/cluster/slot-migration.tcl"
      ],
      "failure_jobs": {
        "\"wait aof network external:skip\" in tests/unit/wait.tcl": [
          74079659499
        ],
        "Migration target is auto-updated after failover in target shard in tests/unit/cluster/slot-migration.tcl": [
          74079659565
        ],
        "Migration source is auto-updated after failover in source shard in tests/unit/cluster/slot-migration.tcl": [
          74079659565
        ],
        "Replica redirects key access in migrating slots in tests/unit/cluster/slot-migration.tcl": [
          74079659565
        ],
        "Replica of migrating node returns ASK redirect after READONLY in tests/unit/cluster/slot-migration.tcl": [
          74079659565
        ],
        "Replica of migrating node returns TRYAGAIN after READONLY in tests/unit/cluster/slot-migration.tcl": [
          74079659565
        ],
        "Replica of importing node returns TRYAGAIN after READONLY and ASKING in tests/unit/cluster/slot-migration.tcl": [
          74079659565
        ],
        "New replica inherits migrating slot in tests/unit/cluster/slot-migration.tcl": [
          74079659565
        ],
        "New replica inherits importing slot in tests/unit/cluster/slot-migration.tcl": [
          74079659565
        ],
        "Cluster benchmark: dataset with {tag} validates replacement in tests/integration/valkey-benchmark.tcl": [
          74079659585
        ]
      },
      "commits_since_prev": [],
      "commit_message": "Run ASan Tests on run-extra-tests label (#3512)\n\nIt's important to enabled ASAN on run-extra-tests label so we can\ncatch some of the bugs in the PRs before they are merged into unstable.\n\nSigned-off-by: Sarthak Aggarwal <sarthagg@amazon.com>"
    },
    {
      "run_id": 25295287732,
      "date": "2026-05-04",
      "status": "failure",
      "commit_sha": "8891441ab9fd3a75c3023ab87383793d9c5704fe",
      "total_jobs": 50,
      "failed_jobs": 4,
      "failed_job_names": [
        "test-fedoralatest-jemalloc",
        "test-sanitizer-address (clang)",
        "test-sanitizer-address (gcc)",
        "test-valgrind-test"
      ],
      "unique_failures": 3,
      "failure_names": [
        "CLUSTER MYSHARDID reports same shard id after cluster restart in tests/unit/cluster/cluster-shards.tcl",
        "Cluster benchmark: dataset with {tag} validates replacement in tests/integration/valkey-benchmark.tcl",
        "Primary reboot in very short time"
      ],
      "failure_jobs": {
        "CLUSTER MYSHARDID reports same shard id after cluster restart in tests/unit/cluster/cluster-shards.tcl": [
          74153001827
        ],
        "Cluster benchmark: dataset with {tag} validates replacement in tests/integration/valkey-benchmark.tcl": [
          74153001864,
          74153001875
        ],
        "Primary reboot in very short time": [
          74153001899
        ]
      },
      "commits_since_prev": [
        {
          "sha": "8891441ab9fd3a75c3023ab87383793d9c5704fe",
          "message": "Fix checkPrefixCollisionsOrReply returning non-zero on self-overlap (#3583)",
          "author": "Brad Bebee",
          "date": "2026-05-03T18:44:09Z"
        }
      ],
      "commit_message": "Fix checkPrefixCollisionsOrReply returning non-zero on self-overlap (#3583)"
    },
    {
      "run_id": 25351246599,
      "date": "2026-05-05",
      "status": "failure",
      "commit_sha": "797c62604698408653b2f3653c4b9f861572d1b5",
      "total_jobs": 50,
      "failed_jobs": 2,
      "failed_job_names": [
        "test-sanitizer-force-defrag",
        "test-ubuntu-tls-io-threads"
      ],
      "unique_failures": 2,
      "failure_names": [
        "\"wait aof network external:skip\" in tests/unit/wait.tcl",
        "Cluster benchmark: dataset with {tag} validates replacement in tests/integration/valkey-benchmark.tcl"
      ],
      "failure_jobs": {
        "Cluster benchmark: dataset with {tag} validates replacement in tests/integration/valkey-benchmark.tcl": [
          74331108325
        ],
        "\"wait aof network external:skip\" in tests/unit/wait.tcl": [
          74331108331
        ]
      },
      "commits_since_prev": [
        {
          "sha": "797c62604698408653b2f3653c4b9f861572d1b5",
          "message": "Fix SIGSEGV in VM_GetLRU/SetLRU/GetLFU/SetLFU on NULL key (#3610)",
          "author": "sananes",
          "date": "2026-05-04T20:17:39Z"
        }
      ],
      "commit_message": "Fix SIGSEGV in VM_GetLRU/SetLRU/GetLFU/SetLFU on NULL key (#3610)\n\n## Fix SIGSEGV in VM_GetLRU, VM_SetLRU, VM_GetLFU, VM_SetLFU on NULL key\n\n### Description\n\n`VM_GetLRU`, `VM_SetLRU`, `VM_GetLFU`, and `VM_SetLFU` crash with\nSIGSEGV when passed a NULL `ValkeyModuleKey` pointer. This happens\nbecause all four functions dereference `key->value` without first\nchecking if `key` itself is NULL.\n\nWhen a module opens a nonexistent key in `VALKEYMODULE_READ` mode,\n`VM_OpenKey` returns NULL. If a module passes that NULL pointer into any\nof these functions, the server crashes.\n\n### Reproduction\n\n```\nvalkey-server --loadmodule tests/modules/misc.so\nvalkey-cli test.getlru nonexistent_key\n# Server crashes: SIGSEGV (signal 11)\n```\n\n### Fix\n\n**`src/module.c`** \u2014 Add a `!key` guard before dereferencing\n`key->value` in all four functions:\n\n```c\n// Before:\nif (!key->value) return VALKEYMODULE_ERR;\n\n// After:\nif (!key || !key->value) return VALKEYMODULE_ERR;\n```\n\n**`tests/modules/misc.c`** \u2014 Add early return after\n`open_key_or_reply()` in `test_getlru`, `test_setlru`, `test_getlfu`,\nand `test_setlfu`. The helper already sends the error reply to the\nclient when the key is not found, so the command handler just needs to\nstop processing:\n\n```c\nValkeyModuleKey *key = open_key_or_reply(ctx, argv[1], VALKEYMODULE_READ|VALKEYMODULE_OPEN_KEY_NOTOUCH);\nif (!key) return VALKEYMODULE_OK;\n```\n\n### After fix\n\n```\nvalkey-cli test.getlru nonexistent_key\n(error) key not found\n# Server stays up\n```\n\nSigned-off-by: Yaron Sananes <yaron.sananes@gmail.com>"
    },
    {
      "run_id": 25409921388,
      "date": "2026-05-06",
      "status": "failure",
      "commit_sha": "fea0b4064cf612d1c365b032326832bff0946bd9",
      "total_jobs": 50,
      "failed_jobs": 3,
      "failed_job_names": [
        "test-sanitizer-address (gcc)",
        "test-ubuntu-32bit",
        "test-ubuntu-jemalloc-fortify"
      ],
      "unique_failures": 2,
      "failure_names": [
        "Active defrag - AOF loading in tests/unit/memefficiency.tcl",
        "Primary reboot in very short time"
      ],
      "failure_jobs": {
        "Active defrag - AOF loading in tests/unit/memefficiency.tcl": [
          74529136599
        ],
        "Primary reboot in very short time": [
          74529136611,
          74529136851
        ]
      },
      "commits_since_prev": [
        {
          "sha": "c7c92db43b63be0599a076590f012ed35d279a47",
          "message": "Delay full sync during yielding Lua scripts to prevent use-after-free (CVE-2026-23631) (#3625)",
          "author": "Ran Shidlansik",
          "date": "2026-05-05T22:47:16Z"
        },
        {
          "sha": "fea0b4064cf612d1c365b032326832bff0946bd9",
          "message": "Fix invalid memory access in RESTORE with malformed zipmap (CVE-2026-25243) (#3619)",
          "author": "Ran Shidlansik",
          "date": "2026-05-05T23:48:38Z"
        }
      ],
      "commit_message": "Fix invalid memory access in RESTORE with malformed zipmap (CVE-2026-25243) (#3619)\n\nRoot cause: zipmapValidateIntegrity() and zipmapNext() use different\nmethods to calculate pointer advancement for length-encoded fields.\nValidation reads the actual encoded size via\nzipmapGetEncodedLengthSize() (which returns 5 for the 0xFE prefix), but\nzipmapRawKeyLength() (used by zipmapNext during hash conversion)\nrecalculates via zipmapEncodeLength() which returns 1 for decoded\nlengths < 254. A crafted zipmap with an overlong 5-byte encoding for a\nsmall length passes validation but causes a 4-byte pointer mismatch in\nzipmapNext(), leading to heap buffer over-reads during the\nzipmap-to-listpack conversion.\n\nFix: add sanity checks in zipmapValidateIntegrity() to reject entries\nwhere the decoded length < ZIPMAP_BIGLEN (254) but the encoding uses\nmore than 1 byte. This is applied to both field-name and value lengths.\n\nTest: added a regression test in tests/unit/dump.tcl that crafts a\nRESTORE payload with a 2-entry zipmap where the first field uses an\noverlong 5-byte length encoding for value 3. Post-patch, this is cleanly\nrejected by zipmapValidateIntegrity(). Pre-patch, the misaligned\nzipmapNext() reads garbage (confirmed via server log: \"Hash zipmap with\ndup elements, or big length (0)\") which also produces an error, so the\ntest serves as a defense-in-depth regression anchor rather than a strict\npass/fail differentiator. The actual heap over-read is detectable with\nAddressSanitizer builds.\n\nSigned-off-by: ikolomi <ikolomin@amazon.com>\nCo-authored-by: ikolomi <ikolomin@amazon.com>"
    },
    {
      "run_id": 25468981394,
      "date": "2026-05-07",
      "status": "failure",
      "commit_sha": "6c9d7fc263dd4dfe07460f7ed6de63295890b77a",
      "total_jobs": 50,
      "failed_jobs": 6,
      "failed_job_names": [
        "reply-schemas-validator",
        "test-almalinux8-jemalloc",
        "test-sanitizer-address (clang)",
        "test-sanitizer-force-defrag",
        "test-ubuntu-tls-no-tls",
        "test-valgrind-no-malloc-usable-size-test"
      ],
      "unique_failures": 12,
      "failure_names": [
        "Active Defrag big zset: standalone random-score in tests/unit/memefficiency.tcl",
        "Cluster benchmark: dataset with {tag} validates replacement in tests/integration/valkey-benchmark.tcl",
        "Force the use of IO threads and assert active IO thread usage in tests/unit/io-threads.tcl",
        "Migration source is auto-updated after failover in source shard in tests/unit/cluster/slot-migration.tcl",
        "Migration target is auto-updated after failover in target shard in tests/unit/cluster/slot-migration.tcl",
        "New replica inherits importing slot in tests/unit/cluster/slot-migration.tcl",
        "New replica inherits migrating slot in tests/unit/cluster/slot-migration.tcl",
        "Process error: Process completed with exit code 1.",
        "Replica of importing node returns TRYAGAIN after READONLY and ASKING in tests/unit/cluster/slot-migration.tcl",
        "Replica of migrating node returns ASK redirect after READONLY in tests/unit/cluster/slot-migration.tcl",
        "Replica of migrating node returns TRYAGAIN after READONLY in tests/unit/cluster/slot-migration.tcl",
        "Replica redirects key access in migrating slots in tests/unit/cluster/slot-migration.tcl"
      ],
      "failure_jobs": {
        "Cluster benchmark: dataset with {tag} validates replacement in tests/integration/valkey-benchmark.tcl": [
          74728490667,
          74728490675
        ],
        "Active Defrag big zset: standalone random-score in tests/unit/memefficiency.tcl": [
          74728490698
        ],
        "Migration target is auto-updated after failover in target shard in tests/unit/cluster/slot-migration.tcl": [
          74728490747
        ],
        "Migration source is auto-updated after failover in source shard in tests/unit/cluster/slot-migration.tcl": [
          74728490747
        ],
        "Replica redirects key access in migrating slots in tests/unit/cluster/slot-migration.tcl": [
          74728490747
        ],
        "Replica of migrating node returns ASK redirect after READONLY in tests/unit/cluster/slot-migration.tcl": [
          74728490747
        ],
        "Replica of migrating node returns TRYAGAIN after READONLY in tests/unit/cluster/slot-migration.tcl": [
          74728490747
        ],
        "Replica of importing node returns TRYAGAIN after READONLY and ASKING in tests/unit/cluster/slot-migration.tcl": [
          74728490747
        ],
        "New replica inherits migrating slot in tests/unit/cluster/slot-migration.tcl": [
          74728490747
        ],
        "New replica inherits importing slot in tests/unit/cluster/slot-migration.tcl": [
          74728490747
        ],
        "Process error: Process completed with exit code 1.": [
          74728490767
        ],
        "Force the use of IO threads and assert active IO thread usage in tests/unit/io-threads.tcl": [
          74728490836
        ]
      },
      "commits_since_prev": [
        {
          "sha": "c5959266f1f94dfd976e6af0f4c65d400ef3904d",
          "message": "valkey-benchmark: centralize RDMA WRITABLE kick via createFileEvent (#3492)",
          "author": "Quanye Yang",
          "date": "2026-05-06T11:17:51Z"
        },
        {
          "sha": "96763ade54998de6002b76a6fc574f050cd0490c",
          "message": "Fix Deferred Reply Placeholders in Active Deferred Buffers (#3578)",
          "author": "eifrah-aws",
          "date": "2026-05-06T13:35:09Z"
        },
        {
          "sha": "9669b26706a0a3992e027460da2b544defdeb2ac",
          "message": "Reduce latency spikes during rehashing via incremental page release (#3481)",
          "author": "chzhoo",
          "date": "2026-05-06T16:24:07Z"
        },
        {
          "sha": "2f161077123e8c2aa6e1b9301eb3d3e62be45711",
          "message": "Add null check in updateSSLPendingFlag (#3641)",
          "author": "Viktor S\u00f6derqvist",
          "date": "2026-05-06T17:06:40Z"
        },
        {
          "sha": "75fee11c6c00b2bd1a0b0c9a0c4bc0f50bb27949",
          "message": "Fixes server crash when RDMA benchmark clients disconnect (#3448)",
          "author": "Quanye Yang",
          "date": "2026-05-06T19:39:56Z"
        },
        {
          "sha": "6c9d7fc263dd4dfe07460f7ed6de63295890b77a",
          "message": "CLUSTERSCAN range bounded scanning across contiguous slots (#3391)",
          "author": "Raghav Muddur",
          "date": "2026-05-06T19:48:26Z"
        }
      ],
      "commit_message": "CLUSTERSCAN range bounded scanning across contiguous slots (#3391)\n\nInstead of scanning one slot at a time `CLUSTERSCAN` now scans the\nentire contiguous range of slots owned by the current node.\n\nImplementation details\n\n* Re-sharding safe as the hash slot is updated based on the local cursor\n  position.\n* Fingerprint remains stable across the entire contiguous slot range\n  instead of being reset per slot.\n* Parsing/validation of parameters for the SCAN commands is refactored\n  and moved to a separate function.\n\n```\n   > CLUSTERSCAN 0\n   \"0-{06S}-0\"                      # start at slot 0\n\n   > CLUSTERSCAN 0-{06S}-0\n   \"aBcDeF-{06S}-48\"                # scanning slot 0...\n\n   > CLUSTERSCAN aBcDeF-{06S}-48\n   \"aBcDeF-{1Y7}-16\"                 # slot 0 done, continues to slot 6 (same node hence FP is unchanged)\n\n   > CLUSTERSCAN aBcDeF-{1Y7}-16\n   \"aBcDeF-{0or}-32\"                # slot 6 done, continues to slot 100  (same node hence FP is unchanged)\n   ...\n   > CLUSTERSCAN aBcDeF-{...}-64\n   \"0-{8YG}-0\"                      # Current continuous slot boundary reached hence cross-node transition \n```\n\nFollow-up of #2934\n\n---------\n\nSigned-off-by: nmvk <r@nmvk.com>\nSigned-off-by: Viktor S\u00f6derqvist <viktor.soderqvist@est.tech>\nCo-authored-by: Viktor S\u00f6derqvist <viktor.soderqvist@est.tech>"
    },
    {
      "run_id": 25529728855,
      "date": "2026-05-08",
      "status": "failure",
      "commit_sha": "89b7baa598b177286572e0784a4391810910f3d2",
      "total_jobs": 51,
      "failed_jobs": 1,
      "failed_job_names": [
        "test-ubuntu-tls-io-threads"
      ],
      "unique_failures": 1,
      "failure_names": [
        "\"wait aof network external:skip\" in tests/unit/wait.tcl"
      ],
      "failure_jobs": {
        "\"wait aof network external:skip\" in tests/unit/wait.tcl": [
          74933168007
        ]
      },
      "commits_since_prev": [
        {
          "sha": "96a6bc5d2749a2722a91ecff8c094c23a58e9a7a",
          "message": "Fix the memory leak in valkey-benchmark (#3643)",
          "author": "Raghav Muddur",
          "date": "2026-05-07T03:22:10Z"
        },
        {
          "sha": "ccef34792266961ec63393a8bc09c1552bc83e95",
          "message": "Skip deferred_reply test in req/res log validation (#3642)",
          "author": "Sarthak Aggarwal",
          "date": "2026-05-07T03:34:19Z"
        },
        {
          "sha": "199d49a4326c5722f1c9c0bbb1860bcb64d9b323",
          "message": "Automatically create github issues for test failures from daily CI runs (#3358)",
          "author": "Hanxi Zhang",
          "date": "2026-05-07T04:40:56Z"
        },
        {
          "sha": "1d7224f3894c8e6db39a9e86c040270b3122c064",
          "message": "Fix UAF in unblockClientOnKey when reprocessed command frees the client (CVE-2026-23479) (#3613)",
          "author": "Ran Shidlansik",
          "date": "2026-05-07T05:08:09Z"
        },
        {
          "sha": "89b7baa598b177286572e0784a4391810910f3d2",
          "message": "Speed up cluster startup by 10 seconds (#3606)",
          "author": "Viktor S\u00f6derqvist",
          "date": "2026-05-07T09:58:54Z"
        }
      ],
      "commit_message": "Speed up cluster startup by 10 seconds (#3606)\n\nReplicas with replication offset 0 are flagged as \"loading\" in CLUSTER\nSHARDS and are hidden in CLUSTER SLOTS. These commands assume that the\nreplicas have not yet synched from their primary, but the replication\noffset is zero also when the primary hasn't had any commands written to\nthe replication stream yet.\n\nThe replication offset becomes non-zero when the primary sends a PING\non the replication stream, which it does every 10 seconds by default.\nThis eventually marks the replicas \"online\" in CLUSTER SHARDS / CLUSTER\nSLOTS.\n\nThis change sends a PING on the replication stream when the first\nreplica connects, to trigger a non-zero replication offset and make the\nreplicas show up as \"online\" immediately.\n\nThe test framework's \"start_cluster\" waits for the all nodes to be\nmarked \"online\" before running test cases. Production deployment tools\nmay have similar checks. With this change, starting a cluster gets up to\n10 seconds faster.\n\nSome tests with large clusters need these extra 10 seconds for the\ncluster to stabilize, so test framework's wait_for_cluster_propagation\nis allowed 10 extra seconds (60 instead of 50).\n\n**Additional test framework change:** Catch assertions and print the\nduration of setting up the cluster in start_cluster.\n\nThis change catches asserts and timeouts in wait_for_condition during\nstart_cluster's setup phase, prints the error and skips the test cases\nwithin the cluster_cluster body, instead of crashing the whole test\nframework with a Tcl exception and stack trace. This is implemented\nas a test fixture with a setup and teardown code, which is a new\nconstruct added to the test framework.\n\n---------\n\nSigned-off-by: Viktor S\u00f6derqvist <viktor.soderqvist@est.tech>\nCo-authored-by: Binbin <binloveplay1314@qq.com>"
    },
    {
      "run_id": 25586352529,
      "date": "2026-05-09",
      "status": "failure",
      "commit_sha": "89b7baa598b177286572e0784a4391810910f3d2",
      "total_jobs": 51,
      "failed_jobs": 1,
      "failed_job_names": [
        "test-valgrind-no-malloc-usable-size-test"
      ],
      "unique_failures": 1,
      "failure_names": [
        "CLUSTER MYSHARDID reports same shard id after cluster restart in tests/unit/cluster/cluster-shards.tcl"
      ],
      "failure_jobs": {
        "CLUSTER MYSHARDID reports same shard id after cluster restart in tests/unit/cluster/cluster-shards.tcl": [
          75115573069
        ]
      },
      "commits_since_prev": [],
      "commit_message": "Speed up cluster startup by 10 seconds (#3606)\n\nReplicas with replication offset 0 are flagged as \"loading\" in CLUSTER\nSHARDS and are hidden in CLUSTER SLOTS. These commands assume that the\nreplicas have not yet synched from their primary, but the replication\noffset is zero also when the primary hasn't had any commands written to\nthe replication stream yet.\n\nThe replication offset becomes non-zero when the primary sends a PING\non the replication stream, which it does every 10 seconds by default.\nThis eventually marks the replicas \"online\" in CLUSTER SHARDS / CLUSTER\nSLOTS.\n\nThis change sends a PING on the replication stream when the first\nreplica connects, to trigger a non-zero replication offset and make the\nreplicas show up as \"online\" immediately.\n\nThe test framework's \"start_cluster\" waits for the all nodes to be\nmarked \"online\" before running test cases. Production deployment tools\nmay have similar checks. With this change, starting a cluster gets up to\n10 seconds faster.\n\nSome tests with large clusters need these extra 10 seconds for the\ncluster to stabilize, so test framework's wait_for_cluster_propagation\nis allowed 10 extra seconds (60 instead of 50).\n\n**Additional test framework change:** Catch assertions and print the\nduration of setting up the cluster in start_cluster.\n\nThis change catches asserts and timeouts in wait_for_condition during\nstart_cluster's setup phase, prints the error and skips the test cases\nwithin the cluster_cluster body, instead of crashing the whole test\nframework with a Tcl exception and stack trace. This is implemented\nas a test fixture with a setup and teardown code, which is a new\nconstruct added to the test framework.\n\n---------\n\nSigned-off-by: Viktor S\u00f6derqvist <viktor.soderqvist@est.tech>\nCo-authored-by: Binbin <binloveplay1314@qq.com>"
    },
    {
      "run_id": 25615607434,
      "date": "2026-05-10",
      "status": "failure",
      "commit_sha": "418c98bd25f37259f304956142b46c42d386d188",
      "total_jobs": 51,
      "failed_jobs": 2,
      "failed_job_names": [
        "test-fedoralatest-jemalloc",
        "test-ubuntu-tls-io-threads"
      ],
      "unique_failures": 2,
      "failure_names": [
        "\"wait aof network external:skip\" in tests/unit/wait.tcl",
        "Migrated replica reports zero repl offset and rank, and fails to win election - sigstop in tests/unit/cluster/replica-migration.tcl"
      ],
      "failure_jobs": {
        "\"wait aof network external:skip\" in tests/unit/wait.tcl": [
          75192966355
        ],
        "Migrated replica reports zero repl offset and rank, and fails to win election - sigstop in tests/unit/cluster/replica-migration.tcl": [
          75192966431
        ]
      },
      "commits_since_prev": [
        {
          "sha": "418c98bd25f37259f304956142b46c42d386d188",
          "message": "Use wait_for_condition instead of hardcoding in dump.tcl test (#3647)",
          "author": "Binbin",
          "date": "2026-05-09T06:11:16Z"
        }
      ],
      "commit_message": "Use wait_for_condition instead of hardcoding in dump.tcl test (#3647)\n\nThis after causes the test to take 15 seconds, but it might only\nrequire just over 10 seconds since the MIGRATE_SOCKET_CACHE_TTL\nis 10 seconds.\n```\n/* Cleanup expired MIGRATE cached sockets. */\nrun_with_period(1000) {\n    migrateCloseTimedoutSockets();\n}\n```\n\nSigned-off-by: Binbin <binloveplay1314@qq.com>"
    },
    {
      "run_id": 25644172552,
      "date": "2026-05-11",
      "status": "failure",
      "commit_sha": "ca9dee353d2f0c1f48f4471fd191d5583043407d",
      "total_jobs": 51,
      "failed_jobs": 1,
      "failed_job_names": [
        "test-valgrind-no-malloc-usable-size-test"
      ],
      "unique_failures": 1,
      "failure_names": [
        "CLUSTER MYSHARDID reports same shard id after cluster restart in tests/unit/cluster/cluster-shards.tcl"
      ],
      "failure_jobs": {
        "CLUSTER MYSHARDID reports same shard id after cluster restart in tests/unit/cluster/cluster-shards.tcl": [
          75269780103
        ]
      },
      "commits_since_prev": [
        {
          "sha": "ca9dee353d2f0c1f48f4471fd191d5583043407d",
          "message": "Add optional REPLACE argument to MOVE (#2993)",
          "author": "bandalgomsu",
          "date": "2026-05-10T11:05:12Z"
        }
      ],
      "commit_message": "Add optional REPLACE argument to MOVE (#2993)\n\nAdd `REPLACE` option to `MOVE` to overwrite an existing key in the\ndestination DB. \ud83d\ude04\n\nIssue : #2278\n\nSigned-off-by: Su Ko <rhtn1128@gmail.com>"
    },
    {
      "run_id": 25705676686,
      "date": "2026-05-12",
      "status": "success",
      "commit_sha": "ca9dee353d2f0c1f48f4471fd191d5583043407d",
      "total_jobs": 0,
      "failed_jobs": 0,
      "failed_job_names": [],
      "unique_failures": 0,
      "failure_names": [],
      "failure_jobs": {},
      "commits_since_prev": [],
      "commit_message": "Add optional REPLACE argument to MOVE (#2993)\n\nAdd `REPLACE` option to `MOVE` to overwrite an existing key in the\ndestination DB. \ud83d\ude04\n\nIssue : #2278\n\nSigned-off-by: Su Ko <rhtn1128@gmail.com>"
    },
    {
      "run_id": 25770644837,
      "date": "2026-05-13",
      "status": "failure",
      "commit_sha": "d4337d66625a276fdbeb1d03a350b3f0a49e3387",
      "total_jobs": 51,
      "failed_jobs": 6,
      "failed_job_names": [
        "test-centosstream9-tls-module",
        "test-macos-latest",
        "test-ubuntu-32bit",
        "test-ubuntu-tls-io-threads",
        "test-valgrind-no-malloc-usable-size-test",
        "test-valgrind-test"
      ],
      "unique_failures": 4,
      "failure_names": [
        "Active defrag - AOF loading in tests/unit/memefficiency.tcl",
        "Slot migration remaining_repl_size on the source node in tests/unit/cluster/cluster-migrateslots.tcl",
        "clients state report follows.",
        "diskless timeout replicas drop during rdb pipe in tests/integration/replication.tcl"
      ],
      "failure_jobs": {
        "Active defrag - AOF loading in tests/unit/memefficiency.tcl": [
          75692829689
        ],
        "diskless timeout replicas drop during rdb pipe in tests/integration/replication.tcl": [
          75692829739
        ],
        "clients state report follows.": [
          75692829784,
          75692829818,
          75692829822
        ],
        "Slot migration remaining_repl_size on the source node in tests/unit/cluster/cluster-migrateslots.tcl": [
          75692829871
        ]
      },
      "commits_since_prev": [
        {
          "sha": "fdd90393073881cefb26520c7826ca8991ad9269",
          "message": "IO-Threads redesign cleanup work (#3544)",
          "author": "Akash Kumar",
          "date": "2026-05-12T05:17:28Z"
        },
        {
          "sha": "d4337d66625a276fdbeb1d03a350b3f0a49e3387",
          "message": "Fix CLUSTERSCAN fingerprint to use configurable_hash_seed (#3679)",
          "author": "Binbin",
          "date": "2026-05-12T17:31:37Z"
        }
      ],
      "commit_message": "Fix CLUSTERSCAN fingerprint to use configurable_hash_seed (#3679)\n\nThis bug was introduced in #3366.\n\nBefore PR #3366, hash-seed config was applied directly via\nhashtableSetHashFunctionSeed(), so clusterscanFingerprint() correctly\nused hash_function_seed to derive the fingerprint.\n```c\nif (server.hash_seed != NULL) {\n    memset(hashseed, 0, sizeof(hashseed));\n    getHashSeedFromString(hashseed, sizeof(hashseed), server.hash_seed);\n    hashtableSetHashFunctionSeed(hashseed);\n}\n```\n\nPR #3366 introduced a separate configurable_hash_seed for data\nhashtables and kept hash_function_seed as a random per-process value.\n```c\n/* Set the configured hash seed used by data hashtables (keys, sets, zsets,\n * hashes) or use the random seed if not configured. */\nif (server.hash_seed) {\n    uint8_t seed[16] = {0};\n    getHashSeedFromString(seed, sizeof(seed), server.hash_seed);\n    setConfigurableHashSeed(seed);\n} else {\n    setConfigurableHashSeed(hashtableGetHashFunctionSeed());\n}\n```\n\nHowever, clusterscanFingerprint() was not updated accordingly \u2014 it\nstill reads hash_function_seed, which is now random on every node.\nThis makes fingerprints differ across nodes even when they share the\nsame hash-seed config, causing cursors to restart on failover.\n\nCLUSTERSCAN was introduced in #2934.\n\nSigned-off-by: Binbin <binloveplay1314@qq.com>"
    }
  ],
  "tests": {
    "Cluster benchmark: dataset with {tag} validates replacement in tests/integration/valkey-benchmark.tcl": {
      "total": 7,
      "days_failed": 5,
      "score_90d": 5.5,
      "timeline": {
        "2026-04-29": null,
        "2026-04-30": {
          "count": 1,
          "errors": [
            "Benchmark failed: Loading dataset from ./tests/tmp/cluster_ds.csv.6968.119...\n\nLoaded 2 documents                    \n\n="
          ],
          "jobs": [
            "test-sanitizer-force-defrag"
          ]
        },
        "2026-05-01": null,
        "2026-05-02": null,
        "2026-05-03": {
          "count": 1,
          "errors": [
            "Benchmark failed: Loading dataset from ./tests/tmp/cluster_ds.csv.7004.272...\n\nLoaded 2 documents                    \n\n="
          ],
          "jobs": [
            "test-sanitizer-force-defrag"
          ]
        },
        "2026-05-04": {
          "count": 2,
          "errors": [
            "Benchmark failed: Loading dataset from ./tests/tmp/cluster_ds.csv.6374.197...\n\nLoaded 2 documents                    \n\n=",
            "Benchmark failed: Loading dataset from ./tests/tmp/cluster_ds.csv.7035.291...\n\nLoaded 2 documents                    \n\n="
          ],
          "jobs": [
            "test-sanitizer-address (clang)",
            "test-sanitizer-address (gcc)"
          ]
        },
        "2026-05-05": {
          "count": 1,
          "errors": [
            "Benchmark failed: Loading dataset from ./tests/tmp/cluster_ds.csv.7007.265...\n\nLoaded 2 documents                    \n\n="
          ],
          "jobs": [
            "test-sanitizer-force-defrag"
          ]
        },
        "2026-05-06": null,
        "2026-05-07": {
          "count": 2,
          "errors": [
            "Benchmark failed: Loading dataset from ./tests/tmp/cluster_ds.csv.6416.108...\n\nLoaded 2 documents                    \n\n=",
            "Benchmark failed: Loading dataset from ./tests/tmp/cluster_ds.csv.7022.248...\n\nLoaded 2 documents                    \n\n="
          ],
          "jobs": [
            "test-sanitizer-address (clang)",
            "test-sanitizer-force-defrag"
          ]
        },
        "2026-05-08": null,
        "2026-05-09": null,
        "2026-05-10": null,
        "2026-05-11": null,
        "2026-05-12": null,
        "2026-05-13": null
      }
    },
    "CLUSTER MYSHARDID reports same shard id after cluster restart in tests/unit/cluster/cluster-shards.tcl": {
      "total": 4,
      "days_failed": 4,
      "score_90d": 6.6,
      "timeline": {
        "2026-04-29": null,
        "2026-04-30": null,
        "2026-05-01": {
          "count": 1,
          "errors": [
            "Expected '65384633c06298b9eed09fd25b0102a53fc6af00' to be equal to '8e8a2bb211806f45df3594745188e64216976c4a' (context: "
          ],
          "jobs": [
            "test-valgrind-test"
          ]
        },
        "2026-05-02": null,
        "2026-05-03": null,
        "2026-05-04": {
          "count": 1,
          "errors": [
            "Expected '07b108706b181346e9eef68c6a3eebd0102a2a21' to be equal to '170d46e3695fdc0461a403846a33c58cec646a57' (context: "
          ],
          "jobs": [
            "test-valgrind-test"
          ]
        },
        "2026-05-05": null,
        "2026-05-06": null,
        "2026-05-07": null,
        "2026-05-08": null,
        "2026-05-09": {
          "count": 1,
          "errors": [
            "Expected '54c577fc448ed7dc3f4c33c01b97e5ce01d63fbe' to be equal to '28a42e2e3e8186a5db70844d62a7a5e57ebd2588' (context: "
          ],
          "jobs": [
            "test-valgrind-no-malloc-usable-size-test"
          ]
        },
        "2026-05-10": null,
        "2026-05-11": {
          "count": 1,
          "errors": [
            "Expected '46db5c2d84858123aae1a6d9222404287e28be4a' to be equal to '62aef07da75e7300e97868b906d9d90994e38cc5' (context: "
          ],
          "jobs": [
            "test-valgrind-no-malloc-usable-size-test"
          ]
        },
        "2026-05-12": null,
        "2026-05-13": null
      }
    },
    "\"wait aof network external:skip\" in tests/unit/wait.tcl": {
      "total": 4,
      "days_failed": 4,
      "score_90d": 4.4,
      "timeline": {
        "2026-04-29": null,
        "2026-04-30": null,
        "2026-05-01": null,
        "2026-05-02": null,
        "2026-05-03": {
          "count": 1,
          "errors": [
            "Executing test client: I/O error reading reply."
          ],
          "jobs": [
            "test-ubuntu-tls-io-threads"
          ]
        },
        "2026-05-04": null,
        "2026-05-05": {
          "count": 1,
          "errors": [
            "Executing test client: I/O error reading reply."
          ],
          "jobs": [
            "test-ubuntu-tls-io-threads"
          ]
        },
        "2026-05-06": null,
        "2026-05-07": null,
        "2026-05-08": {
          "count": 1,
          "errors": [
            "Executing test client: I/O error reading reply."
          ],
          "jobs": [
            "test-ubuntu-tls-io-threads"
          ]
        },
        "2026-05-09": null,
        "2026-05-10": {
          "count": 1,
          "errors": [
            "Executing test client: I/O error reading reply."
          ],
          "jobs": [
            "test-ubuntu-tls-io-threads"
          ]
        },
        "2026-05-11": null,
        "2026-05-12": null,
        "2026-05-13": null
      }
    },
    "Migration target is auto-updated after failover in target shard in tests/unit/cluster/slot-migration.tcl": {
      "total": 3,
      "days_failed": 3,
      "score_90d": 4.4,
      "timeline": {
        "2026-04-29": null,
        "2026-04-30": {
          "count": 1,
          "errors": [
            "incorrect slot state on R 0: expected [609->-8f92dccfaae34e0d452dbf98e920d08ee97e7ff1]; got [609->-8a0246b2ef56715f519eb"
          ],
          "jobs": [
            "test-valgrind-no-malloc-usable-size-test"
          ]
        },
        "2026-05-01": null,
        "2026-05-02": null,
        "2026-05-03": {
          "count": 1,
          "errors": [
            "incorrect slot state on R 0: expected [609->-c681bccf6aa98d0de1f040a154f8548a340fcaef]; got [609->-3d4691119c7607e2c93c1"
          ],
          "jobs": [
            "test-valgrind-no-malloc-usable-size-test"
          ]
        },
        "2026-05-04": null,
        "2026-05-05": null,
        "2026-05-06": null,
        "2026-05-07": {
          "count": 1,
          "errors": [
            "incorrect slot state on R 0: expected [609->-a5538dc7ee3135c46f0f8f12cef038e61e0c5589]; got [609->-44b910bd717759fcd24e8"
          ],
          "jobs": [
            "test-valgrind-no-malloc-usable-size-test"
          ]
        },
        "2026-05-08": null,
        "2026-05-09": null,
        "2026-05-10": null,
        "2026-05-11": null,
        "2026-05-12": null,
        "2026-05-13": null
      }
    },
    "Migration source is auto-updated after failover in source shard in tests/unit/cluster/slot-migration.tcl": {
      "total": 3,
      "days_failed": 3,
      "score_90d": 4.4,
      "timeline": {
        "2026-04-29": null,
        "2026-04-30": {
          "count": 1,
          "errors": [
            "incorrect slot state on R 0: expected [609->-8f92dccfaae34e0d452dbf98e920d08ee97e7ff1]; got [609->-8a0246b2ef56715f519eb"
          ],
          "jobs": [
            "test-valgrind-no-malloc-usable-size-test"
          ]
        },
        "2026-05-01": null,
        "2026-05-02": null,
        "2026-05-03": {
          "count": 1,
          "errors": [
            "incorrect slot state on R 0: expected [609->-c681bccf6aa98d0de1f040a154f8548a340fcaef]; got [609->-3d4691119c7607e2c93c1"
          ],
          "jobs": [
            "test-valgrind-no-malloc-usable-size-test"
          ]
        },
        "2026-05-04": null,
        "2026-05-05": null,
        "2026-05-06": null,
        "2026-05-07": {
          "count": 1,
          "errors": [
            "incorrect slot state on R 0: expected [609->-a5538dc7ee3135c46f0f8f12cef038e61e0c5589]; got [609->-44b910bd717759fcd24e8"
          ],
          "jobs": [
            "test-valgrind-no-malloc-usable-size-test"
          ]
        },
        "2026-05-08": null,
        "2026-05-09": null,
        "2026-05-10": null,
        "2026-05-11": null,
        "2026-05-12": null,
        "2026-05-13": null
      }
    },
    "Replica redirects key access in migrating slots in tests/unit/cluster/slot-migration.tcl": {
      "total": 3,
      "days_failed": 3,
      "score_90d": 4.4,
      "timeline": {
        "2026-04-29": null,
        "2026-04-30": {
          "count": 1,
          "errors": [
            "Expected '[609->-8a0246b2ef56715f519eba4149c2509b44652b8e]' to be equal to '[609->-8f92dccfaae34e0d452dbf98e920d08ee97e7"
          ],
          "jobs": [
            "test-valgrind-no-malloc-usable-size-test"
          ]
        },
        "2026-05-01": null,
        "2026-05-02": null,
        "2026-05-03": {
          "count": 1,
          "errors": [
            "Expected '[609->-3d4691119c7607e2c93c1e49ee64341c56bf6031]' to be equal to '[609->-c681bccf6aa98d0de1f040a154f8548a340fc"
          ],
          "jobs": [
            "test-valgrind-no-malloc-usable-size-test"
          ]
        },
        "2026-05-04": null,
        "2026-05-05": null,
        "2026-05-06": null,
        "2026-05-07": {
          "count": 1,
          "errors": [
            "Expected '[609->-44b910bd717759fcd24e8455ca5a0f7a1756ed06]' to be equal to '[609->-a5538dc7ee3135c46f0f8f12cef038e61e0c5"
          ],
          "jobs": [
            "test-valgrind-no-malloc-usable-size-test"
          ]
        },
        "2026-05-08": null,
        "2026-05-09": null,
        "2026-05-10": null,
        "2026-05-11": null,
        "2026-05-12": null,
        "2026-05-13": null
      }
    },
    "Replica of migrating node returns ASK redirect after READONLY in tests/unit/cluster/slot-migration.tcl": {
      "total": 3,
      "days_failed": 3,
      "score_90d": 4.4,
      "timeline": {
        "2026-04-29": null,
        "2026-04-30": {
          "count": 1,
          "errors": [
            "Expected '[609->-8a0246b2ef56715f519eba4149c2509b44652b8e]' to be equal to '[609->-8f92dccfaae34e0d452dbf98e920d08ee97e7"
          ],
          "jobs": [
            "test-valgrind-no-malloc-usable-size-test"
          ]
        },
        "2026-05-01": null,
        "2026-05-02": null,
        "2026-05-03": {
          "count": 1,
          "errors": [
            "Expected '[609->-3d4691119c7607e2c93c1e49ee64341c56bf6031]' to be equal to '[609->-c681bccf6aa98d0de1f040a154f8548a340fc"
          ],
          "jobs": [
            "test-valgrind-no-malloc-usable-size-test"
          ]
        },
        "2026-05-04": null,
        "2026-05-05": null,
        "2026-05-06": null,
        "2026-05-07": {
          "count": 1,
          "errors": [
            "Expected '[609->-44b910bd717759fcd24e8455ca5a0f7a1756ed06]' to be equal to '[609->-a5538dc7ee3135c46f0f8f12cef038e61e0c5"
          ],
          "jobs": [
            "test-valgrind-no-malloc-usable-size-test"
          ]
        },
        "2026-05-08": null,
        "2026-05-09": null,
        "2026-05-10": null,
        "2026-05-11": null,
        "2026-05-12": null,
        "2026-05-13": null
      }
    },
    "Replica of migrating node returns TRYAGAIN after READONLY in tests/unit/cluster/slot-migration.tcl": {
      "total": 3,
      "days_failed": 3,
      "score_90d": 4.4,
      "timeline": {
        "2026-04-29": null,
        "2026-04-30": {
          "count": 1,
          "errors": [
            "Expected '[609->-8a0246b2ef56715f519eba4149c2509b44652b8e]' to be equal to '[609->-8f92dccfaae34e0d452dbf98e920d08ee97e7"
          ],
          "jobs": [
            "test-valgrind-no-malloc-usable-size-test"
          ]
        },
        "2026-05-01": null,
        "2026-05-02": null,
        "2026-05-03": {
          "count": 1,
          "errors": [
            "Expected '[609->-3d4691119c7607e2c93c1e49ee64341c56bf6031]' to be equal to '[609->-c681bccf6aa98d0de1f040a154f8548a340fc"
          ],
          "jobs": [
            "test-valgrind-no-malloc-usable-size-test"
          ]
        },
        "2026-05-04": null,
        "2026-05-05": null,
        "2026-05-06": null,
        "2026-05-07": {
          "count": 1,
          "errors": [
            "Expected '[609->-44b910bd717759fcd24e8455ca5a0f7a1756ed06]' to be equal to '[609->-a5538dc7ee3135c46f0f8f12cef038e61e0c5"
          ],
          "jobs": [
            "test-valgrind-no-malloc-usable-size-test"
          ]
        },
        "2026-05-08": null,
        "2026-05-09": null,
        "2026-05-10": null,
        "2026-05-11": null,
        "2026-05-12": null,
        "2026-05-13": null
      }
    },
    "Replica of importing node returns TRYAGAIN after READONLY and ASKING in tests/unit/cluster/slot-migration.tcl": {
      "total": 3,
      "days_failed": 3,
      "score_90d": 4.4,
      "timeline": {
        "2026-04-29": null,
        "2026-04-30": {
          "count": 1,
          "errors": [
            "Expected '[609->-8a0246b2ef56715f519eba4149c2509b44652b8e]' to be equal to '[609->-8f92dccfaae34e0d452dbf98e920d08ee97e7"
          ],
          "jobs": [
            "test-valgrind-no-malloc-usable-size-test"
          ]
        },
        "2026-05-01": null,
        "2026-05-02": null,
        "2026-05-03": {
          "count": 1,
          "errors": [
            "Expected '[609->-3d4691119c7607e2c93c1e49ee64341c56bf6031]' to be equal to '[609->-c681bccf6aa98d0de1f040a154f8548a340fc"
          ],
          "jobs": [
            "test-valgrind-no-malloc-usable-size-test"
          ]
        },
        "2026-05-04": null,
        "2026-05-05": null,
        "2026-05-06": null,
        "2026-05-07": {
          "count": 1,
          "errors": [
            "Expected '[609->-44b910bd717759fcd24e8455ca5a0f7a1756ed06]' to be equal to '[609->-a5538dc7ee3135c46f0f8f12cef038e61e0c5"
          ],
          "jobs": [
            "test-valgrind-no-malloc-usable-size-test"
          ]
        },
        "2026-05-08": null,
        "2026-05-09": null,
        "2026-05-10": null,
        "2026-05-11": null,
        "2026-05-12": null,
        "2026-05-13": null
      }
    },
    "New replica inherits migrating slot in tests/unit/cluster/slot-migration.tcl": {
      "total": 3,
      "days_failed": 3,
      "score_90d": 4.4,
      "timeline": {
        "2026-04-29": null,
        "2026-04-30": {
          "count": 1,
          "errors": [
            "Expected '[609->-8a0246b2ef56715f519eba4149c2509b44652b8e]' to be equal to '[609->-8f92dccfaae34e0d452dbf98e920d08ee97e7"
          ],
          "jobs": [
            "test-valgrind-no-malloc-usable-size-test"
          ]
        },
        "2026-05-01": null,
        "2026-05-02": null,
        "2026-05-03": {
          "count": 1,
          "errors": [
            "Expected '[609->-3d4691119c7607e2c93c1e49ee64341c56bf6031]' to be equal to '[609->-c681bccf6aa98d0de1f040a154f8548a340fc"
          ],
          "jobs": [
            "test-valgrind-no-malloc-usable-size-test"
          ]
        },
        "2026-05-04": null,
        "2026-05-05": null,
        "2026-05-06": null,
        "2026-05-07": {
          "count": 1,
          "errors": [
            "Expected '[609->-44b910bd717759fcd24e8455ca5a0f7a1756ed06]' to be equal to '[609->-a5538dc7ee3135c46f0f8f12cef038e61e0c5"
          ],
          "jobs": [
            "test-valgrind-no-malloc-usable-size-test"
          ]
        },
        "2026-05-08": null,
        "2026-05-09": null,
        "2026-05-10": null,
        "2026-05-11": null,
        "2026-05-12": null,
        "2026-05-13": null
      }
    },
    "New replica inherits importing slot in tests/unit/cluster/slot-migration.tcl": {
      "total": 3,
      "days_failed": 3,
      "score_90d": 4.4,
      "timeline": {
        "2026-04-29": null,
        "2026-04-30": {
          "count": 1,
          "errors": [
            "Expected '[609-<-cba81bf0ad366423cf845d44b73a4d8120cfea4f]' to be equal to '[609-<-4bb2a1356d8ab271ce8a46c837e79755ef56d"
          ],
          "jobs": [
            "test-valgrind-no-malloc-usable-size-test"
          ]
        },
        "2026-05-01": null,
        "2026-05-02": null,
        "2026-05-03": {
          "count": 1,
          "errors": [
            "Expected '[609-<-1ccd4157b70595b1f02f7c282dd3d7638ea8a2fe]' to be equal to '[609-<-039d1a421116cd6d0e50e111a31c78f141c28"
          ],
          "jobs": [
            "test-valgrind-no-malloc-usable-size-test"
          ]
        },
        "2026-05-04": null,
        "2026-05-05": null,
        "2026-05-06": null,
        "2026-05-07": {
          "count": 1,
          "errors": [
            "Expected '[609-<-74747c65e551659bc5524b37c3aff295bb5549ec]' to be equal to '[609-<-77c593a92309f7846a95ea5d152010d300491"
          ],
          "jobs": [
            "test-valgrind-no-malloc-usable-size-test"
          ]
        },
        "2026-05-08": null,
        "2026-05-09": null,
        "2026-05-10": null,
        "2026-05-11": null,
        "2026-05-12": null,
        "2026-05-13": null
      }
    },
    "Primary reboot in very short time": {
      "total": 3,
      "days_failed": 2,
      "score_90d": 2.2,
      "timeline": {
        "2026-04-29": null,
        "2026-04-30": null,
        "2026-05-01": null,
        "2026-05-02": null,
        "2026-05-03": null,
        "2026-05-04": {
          "count": 1,
          "errors": [
            "At least one Sentinel did not receive failover info"
          ],
          "jobs": [
            "test-fedoralatest-jemalloc"
          ]
        },
        "2026-05-05": null,
        "2026-05-06": {
          "count": 2,
          "errors": [
            "At least one Sentinel did not receive failover info"
          ],
          "jobs": [
            "test-sanitizer-address (gcc)",
            "test-ubuntu-jemalloc-fortify"
          ]
        },
        "2026-05-07": null,
        "2026-05-08": null,
        "2026-05-09": null,
        "2026-05-10": null,
        "2026-05-11": null,
        "2026-05-12": null,
        "2026-05-13": null
      }
    },
    "clients state report follows.": {
      "total": 3,
      "days_failed": 1,
      "score_90d": 25.3,
      "timeline": {
        "2026-04-29": null,
        "2026-04-30": null,
        "2026-05-01": null,
        "2026-05-02": null,
        "2026-05-03": null,
        "2026-05-04": null,
        "2026-05-05": null,
        "2026-05-06": null,
        "2026-05-07": null,
        "2026-05-08": null,
        "2026-05-09": null,
        "2026-05-10": null,
        "2026-05-11": null,
        "2026-05-12": null,
        "2026-05-13": {
          "count": 3,
          "errors": [
            "TIMEOUT: clients state report follows."
          ],
          "jobs": [
            "test-ubuntu-tls-io-threads",
            "test-valgrind-no-malloc-usable-size-test",
            "test-valgrind-test"
          ]
        }
      }
    },
    "Verify slaves consistency in tests/unit/cluster/resharding.tcl": {
      "total": 2,
      "days_failed": 1,
      "score_90d": 2.2,
      "timeline": {
        "2026-04-29": {
          "count": 2,
          "errors": [
            "Expected 0 >= 5 (context: type eval line 21 cmd {assert {$verified_masters >= 5}} proc ::test)\n\n===== Start of server lo"
          ],
          "jobs": [
            "test-valgrind-no-malloc-usable-size-test",
            "test-valgrind-test"
          ]
        },
        "2026-04-30": null,
        "2026-05-01": null,
        "2026-05-02": null,
        "2026-05-03": null,
        "2026-05-04": null,
        "2026-05-05": null,
        "2026-05-06": null,
        "2026-05-07": null,
        "2026-05-08": null,
        "2026-05-09": null,
        "2026-05-10": null,
        "2026-05-11": null,
        "2026-05-12": null,
        "2026-05-13": null
      }
    },
    "Active defrag - AOF loading in tests/unit/memefficiency.tcl": {
      "total": 2,
      "days_failed": 2,
      "score_90d": 3.3,
      "timeline": {
        "2026-04-29": null,
        "2026-04-30": null,
        "2026-05-01": null,
        "2026-05-02": null,
        "2026-05-03": null,
        "2026-05-04": null,
        "2026-05-05": null,
        "2026-05-06": {
          "count": 1,
          "errors": [
            "Expected [s active_defrag_hits] > 80000 (context: type eval line 28 cmd {assert {[s active_defrag_hits] > 80000}} proc :"
          ],
          "jobs": [
            "test-ubuntu-32bit"
          ]
        },
        "2026-05-07": null,
        "2026-05-08": null,
        "2026-05-09": null,
        "2026-05-10": null,
        "2026-05-11": null,
        "2026-05-12": null,
        "2026-05-13": {
          "count": 1,
          "errors": [
            "Expected [s active_defrag_hits] > 80000 (context: type eval line 28 cmd {assert {[s active_defrag_hits] > 80000}} proc :"
          ],
          "jobs": [
            "test-ubuntu-32bit"
          ]
        }
      }
    },
    "Replica can update the config epoch when trigger the failover - automatic in tests/unit/cluster/failover2.tcl": {
      "total": 1,
      "days_failed": 1,
      "score_90d": 2.2,
      "timeline": {
        "2026-04-29": null,
        "2026-04-30": {
          "count": 1,
          "errors": [
            "log message of '\"*Failover attempt expired*\"' not found in ./tests/tmp/server.12070.101/stdout after line: 0 till line: "
          ],
          "jobs": [
            "test-ubuntu-jemalloc-fortify"
          ]
        },
        "2026-05-01": null,
        "2026-05-02": null,
        "2026-05-03": null,
        "2026-05-04": null,
        "2026-05-05": null,
        "2026-05-06": null,
        "2026-05-07": null,
        "2026-05-08": null,
        "2026-05-09": null,
        "2026-05-10": null,
        "2026-05-11": null,
        "2026-05-12": null,
        "2026-05-13": null
      }
    },
    "slot-migration-max-failover-repl-bytes -1 disables repl bytes limit in tests/unit/cluster/cluster-migrateslots.tcl": {
      "total": 1,
      "days_failed": 1,
      "score_90d": 1.1,
      "timeline": {
        "2026-04-29": null,
        "2026-04-30": {
          "count": 1,
          "errors": [
            "Expected '0' to be more than '25600000' (context: type eval line 24 cmd {assert_morethan $remaining_repl_size [expr 1024"
          ],
          "jobs": [
            "test-fedoralatest-tls-module"
          ]
        },
        "2026-05-01": null,
        "2026-05-02": null,
        "2026-05-03": null,
        "2026-05-04": null,
        "2026-05-05": null,
        "2026-05-06": null,
        "2026-05-07": null,
        "2026-05-08": null,
        "2026-05-09": null,
        "2026-05-10": null,
        "2026-05-11": null,
        "2026-05-12": null,
        "2026-05-13": null
      }
    },
    "Primaries will not time out then they are elected in the same epoch in tests/unit/cluster/failover2.tcl": {
      "total": 1,
      "days_failed": 1,
      "score_90d": 12.1,
      "timeline": {
        "2026-04-29": null,
        "2026-04-30": null,
        "2026-05-01": {
          "count": 1,
          "errors": [
            "expected pattern not found in srv -7 log file: *Failover attempt expired*, but instead got: ### Starting server for test"
          ],
          "jobs": [
            "test-ubuntu-jemalloc"
          ]
        },
        "2026-05-02": null,
        "2026-05-03": null,
        "2026-05-04": null,
        "2026-05-05": null,
        "2026-05-06": null,
        "2026-05-07": null,
        "2026-05-08": null,
        "2026-05-09": null,
        "2026-05-10": null,
        "2026-05-11": null,
        "2026-05-12": null,
        "2026-05-13": null
      }
    },
    "Active Defrag big zset: standalone random-score in tests/unit/memefficiency.tcl": {
      "total": 1,
      "days_failed": 1,
      "score_90d": 1.1,
      "timeline": {
        "2026-04-29": null,
        "2026-04-30": null,
        "2026-05-01": null,
        "2026-05-02": null,
        "2026-05-03": null,
        "2026-05-04": null,
        "2026-05-05": null,
        "2026-05-06": null,
        "2026-05-07": {
          "count": 1,
          "errors": [
            "Expected 11 <= 5 (context: type proc line 18 cmd {assert {$max_latency <= $limit_ms}} proc ::validate_latency level 1)\n#"
          ],
          "jobs": [
            "test-ubuntu-tls-no-tls"
          ]
        },
        "2026-05-08": null,
        "2026-05-09": null,
        "2026-05-10": null,
        "2026-05-11": null,
        "2026-05-12": null,
        "2026-05-13": null
      }
    },
    "Process error: Process completed with exit code 1.": {
      "total": 1,
      "days_failed": 1,
      "score_90d": 22.0,
      "timeline": {
        "2026-04-29": null,
        "2026-04-30": null,
        "2026-05-01": null,
        "2026-05-02": null,
        "2026-05-03": null,
        "2026-05-04": null,
        "2026-05-05": null,
        "2026-05-06": null,
        "2026-05-07": {
          "count": 1,
          "errors": [
            "Process completed with exit code 1."
          ],
          "jobs": [
            "reply-schemas-validator"
          ]
        },
        "2026-05-08": null,
        "2026-05-09": null,
        "2026-05-10": null,
        "2026-05-11": null,
        "2026-05-12": null,
        "2026-05-13": null
      }
    },
    "Force the use of IO threads and assert active IO thread usage in tests/unit/io-threads.tcl": {
      "total": 1,
      "days_failed": 1,
      "score_90d": 6.6,
      "timeline": {
        "2026-04-29": null,
        "2026-04-30": null,
        "2026-05-01": null,
        "2026-05-02": null,
        "2026-05-03": null,
        "2026-05-04": null,
        "2026-05-05": null,
        "2026-05-06": null,
        "2026-05-07": {
          "count": 1,
          "errors": [
            "Expected '0.000000' to be more than '0' (context: type eval line 11 cmd {assert_morethan $used_active_time 0} proc ::tes"
          ],
          "jobs": [
            "test-almalinux8-jemalloc"
          ]
        },
        "2026-05-08": null,
        "2026-05-09": null,
        "2026-05-10": null,
        "2026-05-11": null,
        "2026-05-12": null,
        "2026-05-13": null
      }
    },
    "Migrated replica reports zero repl offset and rank, and fails to win election - sigstop in tests/unit/cluster/replica-migration.tcl": {
      "total": 1,
      "days_failed": 1,
      "score_90d": 2.2,
      "timeline": {
        "2026-04-29": null,
        "2026-04-30": null,
        "2026-05-01": null,
        "2026-05-02": null,
        "2026-05-03": null,
        "2026-05-04": null,
        "2026-05-05": null,
        "2026-05-06": null,
        "2026-05-07": null,
        "2026-05-08": null,
        "2026-05-09": null,
        "2026-05-10": {
          "count": 1,
          "errors": [
            "Failover does not happened\n\n===== Start of server log (pid 25144) =====\n\n### Starting server for test \n25144:M 10 May 20"
          ],
          "jobs": [
            "test-fedoralatest-jemalloc"
          ]
        },
        "2026-05-11": null,
        "2026-05-12": null,
        "2026-05-13": null
      }
    },
    "diskless timeout replicas drop during rdb pipe in tests/integration/replication.tcl": {
      "total": 1,
      "days_failed": 1,
      "score_90d": 2.2,
      "timeline": {
        "2026-04-29": null,
        "2026-04-30": null,
        "2026-05-01": null,
        "2026-05-02": null,
        "2026-05-03": null,
        "2026-05-04": null,
        "2026-05-05": null,
        "2026-05-06": null,
        "2026-05-07": null,
        "2026-05-08": null,
        "2026-05-09": null,
        "2026-05-10": null,
        "2026-05-11": null,
        "2026-05-12": null,
        "2026-05-13": {
          "count": 1,
          "errors": [
            "log message of '\"*Disconnecting timedout replica (full sync)*\"' not found in ./tests/tmp/server.13581.2852/stdout after "
          ],
          "jobs": [
            "test-macos-latest"
          ]
        }
      }
    },
    "Slot migration remaining_repl_size on the source node in tests/unit/cluster/cluster-migrateslots.tcl": {
      "total": 1,
      "days_failed": 1,
      "score_90d": 5.5,
      "timeline": {
        "2026-04-29": null,
        "2026-04-30": null,
        "2026-05-01": null,
        "2026-05-02": null,
        "2026-05-03": null,
        "2026-05-04": null,
        "2026-05-05": null,
        "2026-05-06": null,
        "2026-05-07": null,
        "2026-05-08": null,
        "2026-05-09": null,
        "2026-05-10": null,
        "2026-05-11": null,
        "2026-05-12": null,
        "2026-05-13": {
          "count": 1,
          "errors": [
            "Expected '0' to be more than or equal to '25600000' (context: type eval line 25 cmd {assert_morethan_equal [dict get $ex"
          ],
          "jobs": [
            "test-centosstream9-tls-module"
          ]
        }
      }
    }
  },
  "summary": {
    "days": 14,
    "repo": "valkey-io/valkey",
    "branch": "unstable",
    "workflow": "daily.yml",
    "total_runs": 15,
    "failed_runs": 13,
    "unique_tests_failed": 24
  }
}