Skip to content

Flaky test: client-eviction.tcl fails intermittently in TLS mode #3146

Description

@zhijun42

Summary

The test evict clients in right order (large to small) in tests/unit/client-eviction.tcl fails intermittently when running with --tls flag.

Error: CI error link

*** [err]: evict clients in right order (large to small) in tests/unit/client-eviction.tcl
Expected '2' to be equal to '3' (context: type eval line 53 cmd {assert_equal $count $clients_per_size} proc ::test)

Analysis

TLS testing was added to test-ubuntu-latest-cmake-tls job on Jan 23, 2026 (commit be561e2 cc @madolson @zuiderkwast @enjoy-binbin )

The test creates clients with specific buffer sizes and verifies they are evicted in order (largest to smallest) when maxmemory-clients is reduced. The failure indicates one extra client was evicted when it shouldn't have been.

The flakiness likely (I could be wrong) comes from timing and variability:

  • TLS state is dynamic - Session caches, renegotiation buffers, cipher state can vary based on negotiation
  • Memory drift - Measured at line 537, but used later at line 559; TLS state can change in between
  • Control connection varies - control_mem (line 557) is also a TLS connection with variable overhead
  • Jemalloc behavior? Perhaps slight variations in actual memory

Overall, the test assumes memory is stable between measurement and eviction, but TLS makes it more dynamic. When the timing is unlucky and TLS buffers grow slightly after measurement, one extra client gets evicted.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions