[Bug 261952] coredump building www/node16 if kern.elf64.allow_wx=0

From: <bugzilla-noreply_at_freebsd.org>
Date: Mon, 14 Feb 2022 18:36:50 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=261952

            Bug ID: 261952
           Summary: coredump building www/node16 if kern.elf64.allow_wx=0
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: Individual Port(s)
          Assignee: bhughes@freebsd.org
          Reporter: sean@rogue-research.com
          Assignee: bhughes@freebsd.org
             Flags: maintainer-feedback?(bhughes@freebsd.org)

With kern.elf64.allow_wx=0 building www/node16 on my x86_64 box coredumps. It
works if I allow write+execute though.

See also: https://github.com/nodejs/node/issues/40467

Here's the output:

```
 
LD_LIBRARY_PATH=/wrkdirs/usr/ports/www/node16/work/node-v16.13.0/out/Release/lib.host:/wrkdirs/usr/ports/www/node16/work/node-v16.13.0/out/Release/lib.target:$LD_LIBRARY_PATH;
export LD_LIBRARY_PATH; cd ../tools/v8_gypfiles; mkdir -p
/wrkdirs/usr/ports/www/node16/work/node-v16.13.0/out/Release/obj.target/v8_snapshot/geni;
"/wrkdirs/usr/ports/www/node16/work/node-v16.13.0/out/Release/mksnapshot"
--turbo_instruction_scheduling "--target_os=freebsd" "--target_arch=x64"
--startup_src
"/wrkdirs/usr/ports/www/node16/work/node-v16.13.0/out/Release/obj.target/v8_snapshot/geni/snapshot.cc"
--embedded_variant Default --embedded_src
"/wrkdirs/usr/ports/www/node16/work/node-v16.13.0/out/Release/obj.target/v8_snapshot/geni/embedded.S"
--no-native-code-counters


#
# Fatal error in , line 0
# Check failed: reservation_.SetPermissions(unprotect_start, unprotect_size,
FLAG_write_code_using_rwx ? PageAllocator::kReadWriteExecute :
PageAllocator::kReadWrite).
#
#
#
#FailureMessage Object: 0x7fffff95af20
==== C stack trace ===============================

    0x1178a43 <v8::base::debug::StackTrace::StackTrace()+0x13> at
/wrkdirs/usr/ports/www/node16/work/node-v16.13.0/out/Release/mksnapshot
    0x1177d76 <v8::platform::(anonymous namespace)::PrintStackTrace()+0x26> at
/wrkdirs/usr/ports/www/node16/work/node-v16.13.0/out/Release/mksnapshot
    0x116c579 <V8_Fatal(char const*, ...)+0x139> at
/wrkdirs/usr/ports/www/node16/work/node-v16.13.0/out/Release/mksnapshot
    0xcbb81d <v8::internal::MemoryChunk::SetReadAndWritable()+0x9d> at
/wrkdirs/usr/ports/www/node16/work/node-v16.13.0/out/Release/mksnapshot
    0xc3d516
<v8::internal::Heap::UnprotectAndRegisterMemoryChunk(v8::internal::HeapObject,
v8::internal::UnprotectMemoryOrigin)+0x76> at
/wrkdirs/usr/ports/www/node16/work/node-v16.13.0/out/Release/mksnapshot
    0xc0f4a7 <v8::internal::Heap::AllocateRaw(int,
v8::internal::AllocationType, v8::internal::AllocationOrigin,
v8::internal::AllocationAlignment)+0x3d7> at
/wrkdirs/usr/ports/www/node16/work/node-v16.13.0/out/Release/mksnapshot
    0xc43194 <v8::internal::Heap::AllocateRawWithLightRetrySlowPath(int,
v8::internal::AllocationType, v8::internal::AllocationOrigin,
v8::internal::AllocationAlignment)+0x24> at
/wrkdirs/usr/ports/www/node16/work/node-v16.13.0/out/Release/mksnapshot
    0xc43291 <v8::internal::Heap::AllocateRawWithRetryOrFailSlowPath(int,
v8::internal::AllocationType, v8::internal::AllocationOrigin,
v8::internal::AllocationAlignment)+0x21> at
/wrkdirs/usr/ports/www/node16/work/node-v16.13.0/out/Release/mksnapshot
    0xc0dfc9 <v8::internal::Factory::CodeBuilder::AllocateCode(bool)+0x49> at
/wrkdirs/usr/ports/www/node16/work/node-v16.13.0/out/Release/mksnapshot
    0xc0d7ab <v8::internal::Factory::CodeBuilder::BuildInternal(bool)+0x23b> at
/wrkdirs/usr/ports/www/node16/work/node-v16.13.0/out/Release/mksnapshot
    0xc0e4be <v8::internal::Factory::CodeBuilder::Build()+0xe> at
/wrkdirs/usr/ports/www/node16/work/node-v16.13.0/out/Release/mksnapshot
    0x1478d3d
<v8::internal::SetupIsolateDelegate::PopulateWithPlaceholders(v8::internal::Isolate*)+0x1dd>
at /wrkdirs/usr/ports/www/node16/work/node-v16.13.0/out/Release/mksnapshot
    0x1479135
<v8::internal::SetupIsolateDelegate::SetupBuiltinsInternal(v8::internal::Isolate*)+0x35>
at /wrkdirs/usr/ports/www/node16/work/node-v16.13.0/out/Release/mksnapshot
    0xbdaf6a <v8::internal::Isolate::Init(v8::internal::SnapshotData*,
v8::internal::SnapshotData*, bool)+0x9da> at
/wrkdirs/usr/ports/www/node16/work/node-v16.13.0/out/Release/mksnapshot
    0xbda57f <v8::internal::Isolate::InitWithoutSnapshot()+0xf> at
/wrkdirs/usr/ports/www/node16/work/node-v16.13.0/out/Release/mksnapshot
    0xabd476 <v8::SnapshotCreator::SnapshotCreator(v8::Isolate*, long const*,
v8::StartupData*)+0xa6> at
/wrkdirs/usr/ports/www/node16/work/node-v16.13.0/out/Release/mksnapshot
    0xfde440
<v8::internal::CreateSnapshotDataBlobInternal(v8::SnapshotCreator::FunctionCodeHandling,
char const*, v8::Isolate*)+0x40> at
/wrkdirs/usr/ports/www/node16/work/node-v16.13.0/out/Release/mksnapshot
gmake[2]: *** [tools/v8_gypfiles/v8_snapshot.target.mk:17:
55e82413e48292794813dbce7e3f16f89bec13df.intermediate] Trace/BPT trap (core
dumped)
gmake[2]: *** Deleting file
'55e82413e48292794813dbce7e3f16f89bec13df.intermediate'
rm 7366b23a885e2f1bb33829c97d4e4b37850c727f.intermediate
e4668546dd931d40401bd01b7734fd91640edb89.intermediate
a8710b5b7ebbdd958954c5a6584028b1f8bd4bad.intermediate
gmake[1]: *** [Makefile:110: node] Error 2
gmake[1]: Leaving directory '/wrkdirs/usr/ports/www/node16/work/node-v16.13.0'
*** Error code 1

Stop.
make: stopped in /usr/ports/www/node16
=>> Cleaning up wrkdir
===>  Cleaning for node16-16.13.0
build of www/node16 | node16-16.13.0 ended at Sun Feb 13 20:41:02 EST 2022
build time: 02:18:22
!!! build failure encountered !!!
```

-- 
You are receiving this mail because:
You are the assignee for the bug.