Node: make with -j hangs

Created on 4 Oct 2018  路  19Comments  路  Source: nodejs/node

build regression

All 19 comments

Preliminary analysis with git bisect says it could be because of 5d8373a498a50b1387464391402ef22636439303. I'll check again.

I think @refack mentioned https://github.com/nodejs/node/pull/23182 as the fix. Can you try with it?

Actually, reverting https://github.com/nodejs/node/commit/5d8373a498a50b1387464391402ef22636439303 makes it work for me.


@targos Sure, I'll apply that and try now.

23182 didn't fix it for me.

I ran into this yesterday but I don't think I've seen it after doing a make clean. Not sure if that is a coincidence or not but could be worth trying.

@danbev I can confirm that make clean fixes this problem for me. I'll close the PR.

I've run into this. make clean fixed the problem the first time I rebuilt it, but subsequent builds hung again. Maybe we should reopen and land https://github.com/nodejs/node/pull/23257.

@cjihrig Reopened #23257. Even my rebuild hung.

Could anyone who can repro this run make with -d and post the (probably huge) output?

P.S. I see @devsnek is using macOS? what other OSes (and make versions) does this repro with?

@refack log is a bit long (1.1GB output) but it appears to be an infinite loop of Pruning file

refack log is a bit long (1.1GB output) but it appears to be an infinite loop of Pruning file

Thanks, I think this will be consistently failing on macOS, so I'll investigate.
Ironically the main reason for the change was to fix https://github.com/nodejs/node/issues/22006, but in order to workaround that issue we now run make -j1 on our macOS CI workers, so I missed this regression.

I'm trying to reproduce the issue on macOS after re-applying https://github.com/nodejs/node/commit/5d8373a498a50b1387464391402ef22636439303. @devsnek @thefourtheye @cjihrig what do I need to do?

@targos Just build node after re-applying the patch. It should hang in a while. If you do make clean, the build will succeed. But if you rebuild, it will hang again.

@thefourtheye What do you mean by "rebuild"? I ran make -j4 multiple times, with or without touching C++ files and it always succeeds.

@targos in case it is not dependant of your make version, maybe try building https://github.com/nodejs/node/commit/92fa0fcdb76e2b6cb0040eede97fe3c167c31897 (one commit before the revert)

@refack I can indeed reproduce at https://github.com/nodejs/node/commit/92fa0fcdb76e2b6cb0040eede97fe3c167c31897. What does it mean?

I can indeed reproduce at 92fa0fc. What does it mean?

Probably that https://github.com/nodejs/node/commit/9800fd7aaa7226fff3f21edd7f77f563b9a69753 did fix this issue. But I would still like to find out exactly why it is stuck at that point, and make sure a GYP patch will not regress in the future.

Output of make -j2 -d in case it can help: https://1drv.ms/u/s!Apzl7XiYC-nJhuFovzwG_GNr9BlCdQ

Got a repro with master + https://github.com/nodejs/node/commit/5d8373a498a50b1387464391402ef22636439303

make -j2 # or whatever you usually use
rm out/Release/obj.target/rename_node_bin_win.stamp
rm out/Release/obj.target/rename_node_bin_win.stamp
rm out/Release/node
make -j2
# stuck

the loop

File `all' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/async_wrap.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/bootstrapper.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/callback_scope.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/cares_wrap.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/connection_wrap.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/connect_wrap.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/debug_utils.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/env.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/exceptions.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/fs_event_wrap.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/handle_wrap.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/heap_utils.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/js_stream.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/module_wrap.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node_api.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node_buffer.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node_config.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node_constants.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node_contextify.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node_domain.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node_encoding.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node_file.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node_http2.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node_http_parser.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node_messaging.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node_options.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node_os.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node_platform.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node_perf.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node_postmortem_metadata.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node_process.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node_serdes.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node_trace_events.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node_types.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node_url.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node_util.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node_v8.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node_stat_watcher.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node_watchdog.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node_worker.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node_zlib.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node_i18n.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/pipe_wrap.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/process_wrap.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/sharedarraybuffer_metadata.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/signal_wrap.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/spawn_sync.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/string_bytes.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/string_decoder.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/stream_base.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/stream_pipe.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/stream_wrap.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/tcp_wrap.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/timers.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/tracing/agent.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/tracing/node_trace_buffer.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/tracing/node_trace_writer.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/tracing/trace_event.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/tracing/traced_value.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/tty_wrap.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/udp_wrap.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/util.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/uv.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node_code_cache_stub.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/inspector_agent.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/inspector_io.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/inspector_js_api.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/inspector_socket.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/inspector_socket_server.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/inspector/main_thread_interface.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/inspector/node_string.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/inspector/tracing_agent.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/inspector/worker_agent.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/inspector/worker_inspector.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node_dtrace.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node_crypto.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node_crypto_bio.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/node_crypto_clienthello.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/src/tls_wrap.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/gen/node_javascript.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/gen/src/node/inspector/protocol/Protocol.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/gen/src/node/inspector/protocol/NodeWorker.o' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/obj.target/node_lib/gen/src/node/inspector/protocol/NodeTracing.o' does not exist.
       File `/Users/iojs/build/workspace/node/out/Release/obj.target/rename_node_bin_win.stamp' does not exist.
         File `/Users/iojs/build/workspace/node/out/Release/node' does not exist.
   File `node_lib' does not exist.
   File `rename_node_bin_win' does not exist.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

mcollina picture mcollina  路  3Comments

ksushilmaurya picture ksushilmaurya  路  3Comments

danialkhansari picture danialkhansari  路  3Comments

dfahlander picture dfahlander  路  3Comments

vsemozhetbyt picture vsemozhetbyt  路  3Comments