Skip to content

OOM abort error #42

Description

@RaisinTen

System info

$ uname -a
Darwin Darshans-MacBook-Pro.local 21.6.0 Darwin Kernel Version 21.6.0: Mon Aug 22 20:17:10 PDT 2022; root:xnu-8020.140.49~2/RELEASE_X86_64 x86_64

Versions

Node.js version: v14.18.2
Postject version: v1.0.0-alpha.1

Repro

npm init --yes
echo "Hello, world!" > index.js
npx asar pack . app.asar
cp $(command -v node) .
npx postject ./node NODE_JS_CODE app.asar

app.asar has a size of 4.0K.

Error logs

log.txt

TLDR, bottom section of the log:

...
RuntimeError: Aborted(OOM). Build with -sASSERTIONS for more info.
    at abort (/Users/raisinten/.npm/_npx/6914/lib/node_modules/postject/dist/postject.js:9:7843)
    at abortOnCannotGrowMemory (/Users/raisinten/.npm/_npx/6914/lib/node_modules/postject/dist/postject.js:9:92949)
    at _emscripten_resize_heap (/Users/raisinten/.npm/_npx/6914/lib/node_modules/postject/dist/postject.js:9:93068)
    at <anonymous>:wasm-function[438]:0x1d1fd
    at hb (<anonymous>:wasm-function[193]:0xc3c0)
    at <anonymous>:wasm-function[114]:0x3d87
    at <anonymous>:wasm-function[448]:0x1d9ba
    at <anonymous>:wasm-function[3035]:0x1b9507
    at <anonymous>:wasm-function[2373]:0x138308
    at Object.getExecutableFormat (eval at new_ (/Users/raisinten/.npm/_npx/6914/lib/node_modules/postject/dist/postject.js:9:73645), <anonymous>:8:10)

Additional info

This happens only while trying to embed data into the Node.js binary. This works:

npm init --yes
echo "Hello, world!" > index.js
npx asar pack . app.asar
echo "int main() {}" | gcc -x c -
npx postject ./a.out NODE_JS_CODE app.asar

This fails in https://github.com/postmanlabs/postject/blob/0035c074f43185546dd65a6bffcfe78ccc96382b/src/postject.cpp#L24.

After building with -sASSERTIONS, this is the readable part of the error:

Aborted(Cannot enlarge memory arrays to size 82239488 bytes (OOM). Either (1) compile with -sINITIAL_MEMORY=X with X higher than the current value 16777216, (2) compile with -sALLOW_MEMORY_GROWTH which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -sABORTING_MALLOC=0)
/Users/raisinten/Desktop/temp/project/trash/repro/test/node_modules/postject/dist/postject.js:9
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            

RuntimeError: Aborted(Cannot enlarge memory arrays to size 82239488 bytes (OOM). Either (1) compile with -sINITIAL_MEMORY=X with X higher than the current value 16777216, (2) compile with -sALLOW_MEMORY_GROWTH which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -sABORTING_MALLOC=0)
    at abort (/Users/raisinten/Desktop/temp/project/trash/repro/test/node_modules/postject/dist/postject.js:9:17539)
    at abortOnCannotGrowMemory (/Users/raisinten/Desktop/temp/project/trash/repro/test/node_modules/postject/dist/postject.js:9:111870)
    at _emscripten_resize_heap (/Users/raisinten/Desktop/temp/project/trash/repro/test/node_modules/postject/dist/postject.js:9:112336)
    at <anonymous>:wasm-function[3035]:0x290b1c
    at malloc (<anonymous>:wasm-function[3030]:0x28eb99)
    at <anonymous>:wasm-function[3619]:0x2af135
    at <anonymous>:wasm-function[128]:0x1050c
    at <anonymous>:wasm-function[130]:0x1067f
    at <anonymous>:wasm-function[140]:0x1569f
    at Object.getExecutableFormat (eval at new_ (/Users/raisinten/Desktop/temp/project/trash/repro/test/node_modules/postject/dist/postject.js:9:91135), <anonymous>:8:10)

Activity

  1. RaisinTen commented on Sep 28, 2022

    @RaisinTen
    MemberAuthor

    Fix - #45

  2. self-assigned this
    on Sep 28, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions