Skip to content

macOS a64: cannot guarantee client reachability w/ default 1G vm_size #7296

@ndrewh

Description

@ndrewh

on macOS arm64 w/ default vm_size 1G

bin64/drrun -debug -c api/bin/libbbcount.dylib -- ./main
<Application /Users/andrew/dynamorio-macos/build/main (84912).  Internal Error: DynamoRIO debug check failure: /Users/andrew/dynamorio-macos/core/heap.c:537 heap_allowable_region_start <= must_reach_region_start && "x64 reachability contraints not satisfiable"
(Error occurred @0 frags in tid 84912)
version 11.90.20142, custom build
-client_lib '/Users/andrew/dynamorio-macos/build/api/bin/libbbcount.dylib;0;' -client_lib64 '/Users/andrew/dynamorio-macos/build/api/bin/libbbcount.dylib;0;' -code_api -stack_size 64K -signal_stack_size 32K -max_elide_jmp 0 -max_elide_call 0 -vmm_block_size 16K -initial_heap_unit_size 32K -initial_heap_nonpers_size 16K -

Sometimes, mmap returns a region that is not 32-bit reachable from the main application binary. It does not fail every time, but >30% of the time.

This issue does not occur if you limit the vm_size to 512M.

PR #7171 updates a64 macOS tests to use the 512M limit for now, but we may want to just change the default on a64 macOS for now.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions