Skip to content

v0.20.1

Latest

Choose a tag to compare

@github-actions github-actions released this 29 Oct 23:34
· 8 commits to main since this release
df5ba04

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 -c writing 4 KiB at a time took 28 s for 25 MB and 163 s for 50 MB, and the guest answered nothing meanwhile (one GET / 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() near LONG_MAX) crashed the guest; as on Linux, the write is now cut short where an offset ends, and fails with ENOSPC for a file no memory holds or EFBIG at the end itself. A write longer than 2 GiB is cut short too, and reports what it wrote.
  • verl-hyperlight: what hluk says 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's stderr.

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