Skip to content
This repository has been archived by the owner on Feb 12, 2024. It is now read-only.

ipfs 0.40.0 installed with nodes-mobile-react-native failed in launch build - MacOS #2746

Closed
emclab opened this issue Feb 5, 2020 · 3 comments

Comments

@emclab
Copy link

emclab commented Feb 5, 2020

  • Version:pifs 0.40.0
  • Platform: macOS Catalina, Xcode 11.3/Xcode command line 11.3
  • Subsystem: nodes-mobile-react-native 0.50.0, node's 10.13.0, React Native 0.61.5

Type:

Severity:

launch build failed with gc-stats.

Description:

  1. nix react-native run-iso

Steps to reproduce the error:

npx react-native run-ios failed with build.

Here is the error:

gc-stats@1.4.0 install /Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats
node-pre-gyp install --fallback-to-build

node-pre-gyp info it worked if it ends with ok
node-pre-gyp verb cli [ '/usr/local/bin/node',
node-pre-gyp verb cli '/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/node_modules/.bin/node-pre-gyp',
node-pre-gyp verb cli 'install',
node-pre-gyp verb cli '--fallback-to-build' ]
node-pre-gyp info using node-pre-gyp@0.13.0
node-pre-gyp info using node@10.13.0 | darwin | x64
node-pre-gyp verb command install []
node-pre-gyp WARN Using request for node-pre-gyp https download
node-pre-gyp info build requesting source compile
node-pre-gyp verb command build [ 'rebuild' ]
gyp info it worked if it ends with ok
gyp verb cli [ '/usr/local/bin/node',
gyp verb cli '/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-gyp/bin/node-gyp.js',
gyp verb cli 'clean' ]
gyp info using node-gyp@0.3.1
gyp info using node@10.13.0 | darwin | x64
gyp verb command clean []
gyp verb clean removing "build" directory
gyp info ok
gyp info it worked if it ends with ok
gyp verb cli [ '/usr/local/bin/node',
gyp verb cli '/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-gyp/bin/node-gyp.js',
gyp verb cli 'configure',
gyp verb cli '--fallback-to-build',
gyp verb cli '--module=/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/build/gcstats/v1.4.0/Release/node_abi-platform-arch/gcstats.node',
gyp verb cli '--module_name=gcstats',
gyp verb cli '--module_path=/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/build/gcstats/v1.4.0/Release/node_abi-platform-arch',
gyp verb cli '--napi_version=3',
gyp verb cli '--node_abi_napi=napi',
gyp verb cli '--napi_build_version=0',
gyp verb cli '--node_napi_label=node-v64',
gyp verb cli '--nodedir=/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-react-native/ios/libnode' ]
gyp info using node-gyp@0.3.1
gyp info using node@10.13.0 | darwin | x64
gyp verb command configure []
gyp verb check python checking for Python executable "python2" in the PATH
gyp verb which succeeded python2 /usr/bin/python2
gyp verb check python version /usr/bin/python2 -c "import sys; print "2.7.16 gyp verb check python version .%s.%s" % sys.version_info[:3];" returned: %j
gyp verb get node dir compiling against specified --nodedir dev files: /Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-react-native/ios/libnode
gyp verb build dir attempting to create "build" dir: /Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/build
gyp verb build dir "build" dir needed to be created? /Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/build
gyp verb build/config.gypi creating config file
gyp verb build/config.gypi writing out config file: /Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/build/config.gypi
gyp verb config.gypi checking for gypi file: /Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/config.gypi
gyp verb common.gypi checking for gypi file: /Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/common.gypi
gyp verb gyp gyp format was not specified; forcing "make"
gyp info spawn /usr/bin/python2
gyp info spawn args [ '/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-gyp/gyp/gyp_main.py',
gyp info spawn args 'binding.gyp',
gyp info spawn args '-f',
gyp info spawn args 'make-ios',
gyp info spawn args '-I',
gyp info spawn args '/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/build/config.gypi',
gyp info spawn args '-I',
gyp info spawn args '/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-gyp/addon.gypi',
gyp info spawn args '-I',
gyp info spawn args '/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-react-native/ios/libnode/include/node/common.gypi',
gyp info spawn args '-Dlibrary=shared_library',
gyp info spawn args '-Dvisibility=default',
gyp info spawn args '-Dnode_root_dir=/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-react-native/ios/libnode',
gyp info spawn args '-Dnode_gyp_dir=/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-gyp',
gyp info spawn args '-Dnode_lib_file=/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-react-native/ios/libnode/$(Configuration)/node.lib',
gyp info spawn args '-Dmodule_root_dir=/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats',
gyp info spawn args '-Dnode_engine=chakracore',
gyp info spawn args '--depth=.',
gyp info spawn args '--no-parallel',
gyp info spawn args '--generator-output',
gyp info spawn args 'build',
gyp info spawn args '-Goutput_dir=.' ]
gyp info ok
gyp info it worked if it ends with ok
gyp verb cli [ '/usr/local/bin/node',
gyp verb cli '/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-gyp/bin/node-gyp.js',
gyp verb cli 'build',
gyp verb cli '--fallback-to-build',
gyp verb cli '--module=/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/build/gcstats/v1.4.0/Release/node_abi-platform-arch/gcstats.node',
gyp verb cli '--module_name=gcstats',
gyp verb cli '--module_path=/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/build/gcstats/v1.4.0/Release/node_abi-platform-arch',
gyp verb cli '--napi_version=3',
gyp verb cli '--node_abi_napi=napi',
gyp verb cli '--napi_build_version=0',
gyp verb cli '--node_napi_label=node-v64' ]
gyp info using node-gyp@0.3.1
gyp info using node@10.13.0 | darwin | x64
gyp verb command build []
gyp verb build type Release
gyp verb architecture x64
gyp verb node dev dir /Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-react-native/ios/libnode
gyp verb which succeeded for make /Applications/Xcode.app/Contents/Developer/usr/bin/make
gyp info spawn make
gyp info spawn args [ 'V=1', 'BUILDTYPE=Release', '-C', 'build' ]
c++ '-DNODE_GYP_MODULE_NAME=gcstats' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-DNODE_ENGINE="chakracore"' '-DNODE_ENGINE_CHAKRACORE' '-D_DARWIN_USE_64_BIT_INODE=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DBUILDING_NODE_EXTENSION' -I/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-react-native/ios/libnode/include/node -I/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-react-native/ios/libnode/src -I/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-react-native/ios/libnode/deps/openssl/config -I/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-react-native/ios/libnode/deps/openssl/openssl/include -I/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-react-native/ios/libnode/deps/uv/include -I/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-react-native/ios/libnode/deps/zlib -I/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-react-native/ios/libnode/deps/chakrashim/include -I../src -I../../nan -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator13.2.sdk -Os -gdwarf-2 -mios-simulator-version-min=9.0 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu++1y -stdlib=libc++ -fno-rtti -fno-exceptions -fno-threadsafe-statics -fno-strict-aliasing -MMD -MF ./Release/.deps/Release/obj.target/gcstats/src/gcstats.o.d.raw -c -o Release/obj.target/gcstats/src/gcstats.o ../src/gcstats.cc
In file included from ../src/gcstats.cc:1:
../../nan/nan.h:141:9: warning: 'TYPE_CHECK' macro redefined [-Wmacro-redefined]
#define TYPE_CHECK(T, S)
^
/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-react-native/ios/libnode/include/node/v8.h:85:9: note: previous definition is here
#define TYPE_CHECK(T, S)
^
../src/gcstats.cc:71:40: error: no member named 'number_of_native_contexts' in 'v8::HeapStatistics'
info->numberOfNativeContexts = stats->number_of_native_contexts();
~~~~~ ^
../src/gcstats.cc:72:42: error: no member named 'number_of_detached_contexts' in 'v8::HeapStatistics'
info->numberOfDetachedContexts = stats->number_of_detached_contexts();
~~~~~ ^
1 warning and 2 errors generated.
make: *** [Release/obj.target/gcstats/src/gcstats.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: make failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-gyp/lib/build.js:248:23)
gyp ERR! stack at ChildProcess.emit (events.js:182:13)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:240:12)
gyp ERR! System Darwin 19.0.0
gyp ERR! command "/usr/local/bin/node" "/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/build/gcstats/v1.4.0/Release/node_abi-platform-arch/gcstats.node" "--module_name=gcstats" "--module_path=/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/build/gcstats/v1.4.0/Release/node_abi-platform-arch" "--napi_version=3" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v64"
gyp ERR! cwd /Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats
gyp ERR! node -v v10.13.0
gyp ERR! node-gyp -v v0.3.1
gyp ERR! not ok
node-pre-gyp ERR! build error
node-pre-gyp ERR! stack Error: Failed to execute '/usr/local/bin/node /Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-gyp/bin/node-gyp.js build --fallback-to-build --module=/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/build/gcstats/v1.4.0/Release/node_abi-platform-arch/gcstats.node --module_name=gcstats --module_path=/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/build/gcstats/v1.4.0/Release/node_abi-platform-arch --napi_version=3 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v64' (1)
node-pre-gyp ERR! stack at ChildProcess. (/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
node-pre-gyp ERR! stack at ChildProcess.emit (events.js:182:13)
node-pre-gyp ERR! stack at maybeClose (internal/child_process.js:962:16)
node-pre-gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:251:5)
node-pre-gyp ERR! System Darwin 19.0.0
node-pre-gyp ERR! command "/usr/local/bin/node" "/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd /Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats
node-pre-gyp ERR! node -v v10.13.0
node-pre-gyp ERR! node-pre-gyp -v v0.13.0
node-pre-gyp ERR! not ok
Failed to execute '/usr/local/bin/node /Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-gyp/bin/node-gyp.js build --fallback-to-build --module=/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/build/gcstats/v1.4.0/Release/node_abi-platform-arch/gcstats.node --module_name=gcstats --module_path=/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/build/gcstats/v1.4.0/Release/node_abi-platform-arch --napi_version=3 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v64' (1)
npm verb lifecycle gc-stats@1.4.0install: unsafe-perm in lifecycle true
npm verb lifecycle gc-stats@1.4.0
install: PATH: /usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats/node_modules/.bin:/Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/.bin:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/local/bin:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/libexec:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/usr/bin:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/usr/local/bin:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/local/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/local/bin:/Users/zhouyiyun/Documents/js/ipat_test/node_modules/.bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
npm verb lifecycle gc-stats@1.4.0install: CWD: /Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project/node_modules/gc-stats
npm info lifecycle gc-stats@1.4.0
install: Failed to exec install script
npm verb stack Error: gc-stats@1.4.0 install: node-pre-gyp install --fallback-to-build
npm verb stack Exit status 1
npm verb stack at EventEmitter. (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:301:16)
npm verb stack at EventEmitter.emit (events.js:182:13)
npm verb stack at ChildProcess. (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
npm verb stack at ChildProcess.emit (events.js:182:13)
npm verb stack at maybeClose (internal/child_process.js:962:16)
npm verb stack at Process.ChildProcess._handle.onexit (internal/child_process.js:251:5)
npm verb pkgid gc-stats@1.4.0
npm verb cwd /Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Products/Debug-iphonesimulator/ipat_test.app/nodejs-project
npm verb Darwin 19.0.0
npm verb argv "/usr/local/bin/node" "/usr/local/bin/npm" "--verbose" "rebuild" "--build-from-source"
npm verb node v10.13.0
npm verb npm v6.4.1
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! gc-stats@1.4.0 install: node-pre-gyp install --fallback-to-build
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the gc-stats@1.4.0 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm verb exit [ 1, true ]
npm timing npm Completed in 97179ms

npm ERR! A complete log of this run can be found in:
npm ERR! /Users/zhouyiyun/.npm/_logs/2020-02-05T01_34_10_279Z-debug.log

** BUILD FAILED **

The following build commands failed:
PhaseScriptExecution [CP-User]\ [NODEJS\ MOBILE]\ Build\ Native\ Modules /Users/zhouyiyun/Documents/js/ipat_test/ios/build/ipat_test/Build/Intermediates.noindex/ipat_test.build/Debug-iphonesimulator/ipat_test.build/Script-77380222FF7E45F7AE8D39BE.sh
(1 failure)

@achingbrain
Copy link
Member

achingbrain commented Feb 5, 2020

I think this is the same problem you have reported here: JaneaSystems/nodejs-mobile#242

The interesting part of the error message is this:

../src/gcstats.cc:71:40: error: no member named 'number_of_native_contexts' in 'v8::HeapStatistics'
info->numberOfNativeContexts = stats->number_of_native_contexts();
~~~~~ ^
../src/gcstats.cc:72:42: error: no member named 'number_of_detached_contexts' in 'v8::HeapStatistics'
info->numberOfDetachedContexts = stats->number_of_detached_contexts();
~~~~~ ^
1 warning and 2 errors generated.
make: *** [Release/obj.target/gcstats/src/gcstats.o] Error 1

So v8::HeapStatistics has no function called number_of_detached_contexts. This sort or error means the native module you are building expects some features to be present in v8 that aren't, usually because the v8 or node version is wrong.

Just before that are these lines:

In file included from ../src/gcstats.cc:1:
../../nan/nan.h:141:9: warning: 'TYPE_CHECK' macro redefined [-Wmacro-redefined]
#define TYPE_CHECK(T, S)
^
/Users/zhouyiyun/Documents/js/ipat_test/node_modules/nodejs-mobile-react-native/ios/libnode/include/node/v8.h:85:9: note: previous definition is here
#define TYPE_CHECK(T, S)
^

So it looks like it's building against v8 headers bundled by the nodejs-mobile-react-native.

The headers bundled with that module claim to be v8@6.8.275.32 but as you can see v8@6.8.275.0 has v8::HeapStatistics.number_of_detached_contexts but it appears to be missing from the headers bundled with nodejs-mobile-react-native .

I'm going to close this because gc-stats is not a dependency of ipfs:

$ npm list gc-stats
npm info it worked if it ends with ok
npm info using npm@6.12.0
npm info using node@v12.13.0
ipfs@0.40.0 /path-to/ipfs/js-ipfs
└── (empty)

JaneaSystems/nodejs-mobile#242 is the right place to resolve this.

@emclab
Copy link
Author

emclab commented Feb 6, 2020

The issue has been posted to nodejs-mobile as well. Thank you for the analysis which is very helpful. Here is the V8.h:

https://github.com/JaneaSystems/nodejs-mobile-react-native/blob/unstable/ios/libnode/include/node/v8.h

@emclab
Copy link
Author

emclab commented Feb 8, 2020

by installing the ipfs globally has made the build error disappeared. But not sure it is the right way to install module for nodejs-mobile-react-native.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants