WeaveITMeta opened a new issue, #3047:
URL: https://github.com/apache/iggy/issues/3047
## Description
iggy-server v0.7.3-edge.1 panics on startup on Windows 11
(x86_64-pc-windows-msvc). Every shard thread panics immediately with:
```
thread 'shard-16' panicked at compio-driver-0.11.4\src\asyncify.rs:114:25:
the thread pool is needed but no worker thread is running
```
All shards (0-16+) hit the same panic, causing the server to exit.
## Environment
- **OS**: Windows 11 Pro 10.0.26200 (x86_64)
- **Rust**: stable (latest)
- **iggy-server**: v0.7.3-edge.1 (`server-0.7.3-edge.1` tag)
- **compio-driver**: 0.11.4
## Steps to Reproduce
1. Build iggy-server on Windows (requires removing
`compile_error!("iggy-server doesn't support windows.")` from
`core/server/src/lib.rs:30`, plus `#[cfg(unix)]` guards on `set_reuse_port`,
`OwnedFd`/`FromRawFd`, and `SocketTransfer` variant)
2. Patch `hwlocality` to use `vendored` feature on Windows (currently only
enabled for musl)
3. Run `iggy-server`
The server initializes config, prints the banner, starts creating shards,
but each shard panics when compio tries to use its async thread pool.
## Patches Applied to Compile
1. **`core/server/src/lib.rs`**: Removed `#[cfg(windows)]
compile_error!(...)`
2. **`core/server/src/tcp/tcp_socket.rs`**: `#[cfg(unix)]` on
`set_reuse_port(true)` (SO_REUSEPORT doesn't exist on Windows)
3. **`core/server/src/shard/handlers.rs`**: `#[cfg(unix)]` on `nix`,
`compio::net::TcpStream`, `std::os::fd` imports and `SocketTransfer` match arm;
`#[cfg(not(unix))]` error fallback
4. **`core/server/src/shard/transmission/message.rs`**: `#[cfg(unix)]` on
`OwnedFd` import and `SocketTransfer` enum variant
5. **`core/server/src/binary/handlers/messages/send_messages_handler.rs`**:
`#[cfg(unix)]` on socket migration block
6. **`core/server/Cargo.toml`**: Changed hwlocality to use `vendored`
feature on `cfg(target_os = "windows")`
## Root Cause
The `compio-driver` crate's `asyncify` module expects worker threads to be
running, but they are not initialized on Windows IOCP. This appears to be in
the compio runtime initialization path — the thread-per-core model's thread
pool setup doesn't complete on Windows before shard code tries to use it.
## Expected Behavior
iggy-server should either:
1. Work on Windows with IOCP backend (compio supports Windows)
2. Or clearly document Windows as unsupported with a path to support
## Context
We're using Iggy as the streaming backbone for
[Eustress](https://github.com/WeaveITMeta/SpatialVortex) — a spatial computing
platform. The `eustress` stream carries scene deltas, agent commands, and
simulation results via binary rkyv-serialized messages. Our ARC-AGI-3 agent
pipeline publishes scene deltas to Iggy topics for real-time visualization in
EustressEngine. Currently blocked on Windows server support.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]