Repository navigation
Changed
- Snapshots saved by v0.20.0 and earlier releases are refused (the kernel changed); save them again.
Fixed
- A file written in pieces in the guest's in-memory filesystem was copied whole for every piece, as the filesystem grew a file's buffer to exactly the new size each time:
head -cwriting 4 KiB at a time took 28 s for 25 MB and 163 s for 50 MB, and the guest answered nothing meanwhile (oneGET /in 81 answered). The buffer now grows by half at least, so a file is copied a bounded number of times over however it is written: 0.3 s and 0.5 s, with the guest answering throughout. The room past the file's end holds no memory until the file grows into it, and a truncate gives back what it cuts off, so a nearly full filesystem fails no earlier than before. Stock Unikraft on QEMU has the same growth (dd bs=4096: 1.3 s for 10 MB, 13.5 s for 25 MB). - A write to a file in the guest's in-memory filesystem at an offset so far past its end that the offset and the length together outgrew an offset (
pwrite()nearLONG_MAX) crashed the guest; as on Linux, the write is now cut short where an offset ends, and fails withENOSPCfor a file no memory holds orEFBIGat the end itself. A write longer than 2 GiB is cut short too, and reports what it wrote. verl-hyperlight: whathluksays on stderr before the solution runs (a note on the memory limit it runs under, say) is logged by the backend rather than returned as the solution'sstderr.
Pull requests
- CI tiers: path-filtered x86 on every PR, macOS/Windows arm64 on ci/arm64, Linux arm64 nightly by @danbugs in #191
- justfile: a module the conformance skip list names is always skipped by @danbugs in #192
- Reseed userspace RNGs after snapshot restore, plus kernel fixes by @danbugs in #195
- Add a PHP runtime (tier 2) by @danbugs in #197
- Add a PHP RCE containment demo by @danbugs in #199
- Release v0.19.1 by @danbugs in #201
- Clear the arm64 nightly failures from v0.19.1 by @danbugs in #208
- Release a process's memory when it ends, and support mremap() by @danbugs in #209
- integrations/openai-agents: a Hyperlight sandbox provider for the OpenAI Agents SDK by @danbugs in #210
- build(deps): bump rust-toolchain from 1.99.0 to 1.99.1 by @dependabot[bot] in #212
- build(deps): bump the wasmtime group across 1 directory with 2 updates by @dependabot[bot] in #213
- build(deps): bump the images group across 3 directories with 1 update by @dependabot[bot] in #214
- build(deps): bump the actions group across 1 directory with 2 updates by @dependabot[bot] in #216
- build(deps): bump libc from 0.2.190 to 0.2.191 in the cargo group across 1 directory by @dependabot[bot] in #215
- feat(cpio): expose tar converter from library by @jsturtevant in #219
- kernel: give guest memory back, and fail commands instead of the guest when it runs out by @danbugs in #222
- integrations/openai-agents: give micro-VM starts room on the arm64 runner by @danbugs in #223
- Size the guest by the memory limit hluk runs under with --scratch-mb max by @danbugs in #224
- Release v0.20.0 by @danbugs in #225
- kernel: grow a written file by half at least, not to its exact size by @danbugs in #228
- Release v0.20.1 by @danbugs in #232
Full Changelog: verl-hyperlight-v0.1.0...v0.20.1