Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

make with -j hangs #23255

Closed
devsnek opened this issue Oct 4, 2018 · 19 comments
Closed

make with -j hangs #23255

devsnek opened this issue Oct 4, 2018 · 19 comments
Labels
build Issues and PRs related to build files or the CI. regression Issues related to regressions.

Comments

@devsnek
Copy link
Member

devsnek commented Oct 4, 2018

@thefourtheye
Copy link
Contributor

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

@targos
Copy link
Member

targos commented Oct 4, 2018

I think @refack mentioned #23182 as the fix. Can you try with it?

@thefourtheye
Copy link
Contributor

Actually, reverting 5d8373a makes it work for me.


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

@thefourtheye
Copy link
Contributor

#23182 didn't fix it for me.

@danbev
Copy link
Contributor

danbev commented Oct 4, 2018

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.

@thefourtheye
Copy link
Contributor

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

@cjihrig
Copy link
Contributor

cjihrig commented Oct 4, 2018

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 #23257.

@thefourtheye
Copy link
Contributor

@cjihrig Reopened #23257. Even my rebuild hung.

thefourtheye added a commit to thefourtheye/io.js that referenced this issue Oct 4, 2018
@refack
Copy link
Contributor

refack commented Oct 4, 2018

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?

@devsnek
Copy link
Member Author

devsnek commented Oct 4, 2018

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

@refack
Copy link
Contributor

refack commented Oct 4, 2018

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 #22006, but in order to workaround that issue we now run make -j1 on our macOS CI workers, so I missed this regression.

targos pushed a commit that referenced this issue Oct 5, 2018
This reverts commit 5d8373a.

Fixes: #23255

PR-URL: #23257
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
@targos
Copy link
Member

targos commented Oct 6, 2018

I'm trying to reproduce the issue on macOS after re-applying 5d8373a. @devsnek @thefourtheye @cjihrig what do I need to do?

@thefourtheye
Copy link
Contributor

@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.

@targos
Copy link
Member

targos commented Oct 6, 2018

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

@refack
Copy link
Contributor

refack commented Oct 6, 2018

@targos in case it is not dependant of your make version, maybe try building 92fa0fc (one commit before the revert)

@refack refack self-assigned this Oct 6, 2018
@refack refack added build Issues and PRs related to build files or the CI. regression Issues related to regressions. labels Oct 6, 2018
@targos
Copy link
Member

targos commented Oct 6, 2018

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

@refack
Copy link
Contributor

refack commented Oct 6, 2018

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

Probably that 9800fd7 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.

@targos
Copy link
Member

targos commented Oct 6, 2018

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

@refack
Copy link
Contributor

refack commented Oct 6, 2018

Got a repro with master + 5d8373a

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.

@refack refack removed their assignment Oct 12, 2018
jasnell pushed a commit that referenced this issue Oct 17, 2018
This reverts commit 5d8373a.

Fixes: #23255

PR-URL: #23257
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build Issues and PRs related to build files or the CI. regression Issues related to regressions.
Projects
None yet
6 participants