Repository navigation
v0.6.0
Release v0.6.0
馃殌 New Features
- Per-VM Execution Queues: Each VM executes tasks serially through its own queue of 64 pending tasks, allowing different VMs to run concurrently. Apply, checkpoint, restore and initialization share the instance's serialized execution lifecycle.
- Queue Admission Check: Messages are rejected with
err_process_busywhen the target VM has at least 48 pending tasks. This is an early admission check, not a capacity reservation; concurrent requests and the Node input backlog can still exceed the threshold. - Optional VM Checkpoints: Shutdown and single-VM stop skip VM checkpoints by default. Use
hymx stop --checkpoint,CloseWithCheckpoint(),StopWithCheckpoint(pid)orPOST /admin/vms/stopWithCheckpointwhen a checkpoint is required. - Redis Outbox Queues: Outbox queues are persisted in Redis independently of VM checkpoints.
馃悰 Bug Fixes
- Drain accepted VM tasks and wait for local result/outbox persistence before closing the node's backing services.
- Stop all VM instances before waiting in KillAll, coordinate queue submissions with shutdown, and remove instances even if their underlying Close returns an error.
- Copy mutable checkpoint state to avoid sharing it with later VM execution.
馃敡 Improvements
- Shorten global VMM lock usage so one VM's execution or checkpoint does not hold the lock needed by other VMs.
- Remove unused Node registry wait state and expand lifecycle, queue admission, shutdown and isolated Redis integration coverage.
馃攧 Upgrade Notes
- Drain pending messages before upgrading from v0.5.0. Old in-memory outbox queues and outbox data in legacy VM checkpoints are not automatically imported into Redis; legacy checkpoint outbox fields are ignored.
- Restarting retains messages already written to Redis but does not automatically resend them. Call SDK
TrySend(pid, target)/POST /trysend, or submit a new message to the same queue, to resume delivery. Redis durability depends on its persistence and eviction configuration. - Skipping VM checkpoints can increase recovery time and requires database history to remain available. Payment state persistence is unchanged.
hymx stop --checkpointuses SIGUSR1 and must only target a daemon running this version. The stop command confirms signal delivery, not shutdown or checkpoint completion.- This release provides Linux and macOS binaries for amd64 and arm64. Windows binaries are not included.
- Graceful shutdown drains accepted tasks and local outputs; it does not guarantee remote outbox delivery or forcibly interrupt a VM that never returns.
馃摎 Documentation
- Updated README shutdown/recovery instructions and admin API documentation.
- Added an isolated local network verification script for checkpoint and recovery behavior.
Full Changelog: v0.5.0...v0.6.0