E546 Fix MockServer port collision on Windows (#5748) by Mr-KRAMA · Pull Request #5903 · meilisearch/meilisearch · GitHub
[go: up one dir, main page]

Skip to content

Conversation

Mr-KRAMA
Copy link

Issue #5748: Multiple MockServer instances were getting assigned the same port on Windows, causing test failures. The temporary workaround (commit 0a4f2ef) leaked MockServer instances to prevent port recycling, but this caused memory leaks.

Solution
Implemented SafeMockServer wrapper that:

Tracks used ports with thread-safe Mutex<HashSet>

Retries up to 100 times to find unique ports

Automatically cleans up ports on drop (no memory leaks)

Provides transparent interface via Deref trait

Changes
New: crates/meilisearch/tests/common/mock_server.rs - SafeMockServer implementation

Modified: Updated all test files to use SafeMockServer instead of MockServer

vector/openai.rs - All mock creation functions

vector/rest.rs - All mock creation functions

search/multi/proxy.rs - LocalMeili struct

common/mod.rs - Module export and fragment_mock_server

Testing
Drop-in replacement for MockServer

Thread-safe port allocation prevents collisions

Proper cleanup prevents memory leaks

Ready to revert commit 0a4f2ef once confirmed working

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant
0