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]

Reply via email to