OS-3611: lx brand: 64-bit processes should not use VAs above VA hole


Issue Type:Bug
Priority:4 - Normal
Created at:2014-12-04T16:50:56.000Z
Updated at:2014-12-10T17:13:15.000Z


Created by:Former user
Reported by:Former user
Assigned to:Former user


Fixed: A fix for this issue is checked into the tree and tested.
(Resolution Date: 2014-12-10T17:13:15.000Z)




Running hhvm results in a seg fault; running the hhvm debug packages results in an explicit assertion failure:

$ hhvm --help
hhvm: /tmp/tmp.L3TQGSNX7g/hphp/runtime/base/static-string-table.cpp:46: HPHP::{anonymous}::StrInternKey HPHP::{anonymous}::make_intern_key(const StringSlice*): Assertion `ret < 0 && ret < kAhmMagicThreshold' failed.
Aborted (core dumped)

As it turns out, hhvm relies (implicitly) on the fact that pointers can never be negative on 64-bit -- which is true for Linux but not (by default) for us. To make programs work properly that have implicit dependencies on address space layout, we should match the Linux constraints and use only the region below the amd64 VA hole.


Comment by Former user
Created at 2014-12-10T16:54:46.000Z

illumos-joyent commit 22a76dc (branch master, by Bryan Cantrill)

OS-3611 lx brand: 64-bit processes should not use VAs above VA hole