Skip to content

Mmap tests fail with GuestAborted(15, "Exception: PageFault" ) #1249

Closed

Description

@jsturtevant

What happened?

I am seeing some issues with mmap locally and just saw it in CI too:

https://github.com/hyperlight-dev/hyperlight/actions/runs/22244376418/job/64356078579?pr=1231

thread 'sandbox::initialized_multi_use::tests::test_mmap_write_exec' panicked at src/hyperlight_host/src/sandbox/initialized_multi_use.rs:1226:14:

called `Result::unwrap()` on an `Err` value: GuestAborted(15, "Exception: PageFault | Exception vector: 14\nFaulting 
Instruction: 0x100000000\nBytes At Faulting Instruction: [144, 144, 144, 195, 0, 0, 0, 0]\nPage Fault Address: 
0x100000000\nError code: 0x10\nStack Pointer: 0xffffffffffffed10")

Locally I saw on the mmap test:

cargo test --package hyperlight-host --lib -- sandbox::initialized_multi_use::tests::test_mmap --exact --nocapture 

   Compiling hyperlight-host v0.12.0 (/home/jstur/projects/hyperlight-project/hyperlight-810/src/hyperlight_host)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 8.15s
     Running unittests src/lib.rs (target/debug/deps/hyperlight_host-13e5c115e4913fb6)

running 1 test

thread 'sandbox::initialized_multi_use::tests::test_mmap' panicked at src/hyperlight_host/src/sandbox/initialized_multi_use.rs:1188:14:

called `Result::unwrap()` on an `Err` value: GuestAborted(15, "Exception: PageFault | Exception vector: 14\nFaulting
 Instruction: 0x6dfc0\nBytes At Faulting Instruction: [139, 8, 72, 139, 69, 216, 137, 8]\nPage Fault Address: 
0x100000000\nError code: 0x0\nStack Pointer: 0xffffffffffffed10")
stack backtrace:
   0: __rustc::rust_begin_unwind
             at /rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/std/src/panicking.rs:697:5
   1: core::panicking::panic_fmt
             at /rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/core/src/panicking.rs:75:14
   2: core::result::unwrap_failed
             at /rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/core/src/result.rs:1761:5
   3: core::result::Result<T,E>::unwrap
             at /home/jstur/.rustup/toolchains/1.89-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:1167:23
   4: hyperlight_host::sandbox::initialized_multi_use::tests::test_mmap
             at ./src/sandbox/initialized_multi_use.rs:1188:14
   5: hyperlight_host::sandbox::initialized_multi_use::tests::test_mmap::{{closure}}
             at ./src/sandbox/initialized_multi_use.rs:1160:19
   6: core::ops::function::FnOnce::call_once
             at /home/jstur/.rustup/toolchains/1.89-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
   7: core::ops::function::FnOnce::call_once
             at /rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/core/src/ops/function.rs:250:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
test sandbox::initialized_multi_use::tests::test_mmap ... FAILED

What did you expect to happen?

tests to pass

Steps to reproduce the behavior

checkout main and run cargo test --package hyperlight-host --lib -- sandbox::initialized_multi_use::tests::test_mmap --exact --nocapture

I don't know why it passes in CI most of the time

Hyperlight Version

main branch

OS version

Details
On Linux local:
$ cat /etc/os-release
cat /etc/os-release
PRETTY_NAME="Ubuntu 24.04.3 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
VERSION="24.04.3 LTS (Noble Numbat)"
VERSION_CODENAME=noble
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=noble
LOGO=ubuntu-logo

in ci: build-test (mshv3, intel, release) 


$ uname -a
Linux james-2025 6.6.87.2-microsoft-standard-WSL2 #1 SMP PREEMPT_DYNAMIC Thu Jun  5 18:30:46 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

On Windows:
C:\> cmd /c ver
# paste output here

Additional Information

No response

Activity

  1. syntactically commented on Feb 23, 2026

    @syntactically
    Member

    @jsturtevant Can you see if you can reproduce this with 2131016 and d20da41 from #1229 ?

  2. jsturtevant commented on Feb 23, 2026

    @jsturtevant
    ContributorAuthor

    I couldn't use those commits directly (to many changes in between) but I have pulled that branch and the tests now passes locally for me 👍

  3. jsturtevant commented on Feb 23, 2026

    @jsturtevant
    ContributorAuthor

    HEAD (5e239b4)

    ❯ cargo test --package hyperlight-host --lib -- sandbox::initialized_multi_use::tests::test_mmap --nocapture
        Finished `test` profile [unoptimized + debuginfo] target(s) in 0.16s
         Running unittests src/lib.rs (target/debug/deps/hyperlight_host-40f116c95073af41)
    
    running 2 tests
    test sandbox::initialized_multi_use::tests::test_mmap ... ok
    test sandbox::initialized_multi_use::tests::test_mmap_write_exec ... ok
    
  4. syntactically commented on Feb 24, 2026

    @syntactically
    Member

    I think we can close this now that #1229 is merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions