-
Notifications
You must be signed in to change notification settings - Fork 29.8k
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
util.inspect({level: "info"}) exits the debug session #4440
Comments
Can you clarify what you're doing step-by-step? You mention running that script with |
Sorry, that was an copy and paste fault by me. I updated my initial comment where the right |
But the before mentioned script var vm = require('vm');
vm.runInDebugContext('Debug');
console.log("Finished"); exits after |
I'm not able to reproduce that on master:
|
Similarly with your updated code example, I cannot reproduce the problem there either on master:
|
Perhaps there's something that needs to be backported to 5.x yet? |
I debugged the script var vm = require('vm');
vm.runInDebugContext('Debug');
console.log("Finished"); in a new workspace in cloud9 (https://c9.io/) which has node 4.1.1 and Ubuntu 14.04 LTS, on my private Laptop which has node 5.3.0 and Ubuntu 15.10 and on a new VM with a fresh Ubuntu 14.04 LTS and node 4.2.4. In every environment the debugging exits after |
Yes, master represents the next major version. Necessary commits are backported to versioned branches (e.g. v4.x, v5.x, etc.). It shouldn't be OS-related. I don't know offhand what needs to be backported, there's a fair amount of different stuff in master (including a new "major" v8 version). |
On OSX, it's broken for me in Node 5.3.0 but works fine with current master. 5.3.0:
master:
|
Maybe it was fixed by 25776f3? |
25776f3 is almost certainly the fix. (EDIT: And hasn't been released yet.) |
In which release will it be inculded? 5.4.0? When will this release be published? |
@LucasMoody It should be in the next release which will either be 5.3.1 or 5.4.0 depending on what else is in the release. For the stable release line (currently 5.x), the goal is to have a release every 1-2 weeks. The release team seems to be meeting that goal. There's probably not much activity this week, though, as it's a major holiday in much of the world. So add one more week maybe. So, the unofficial upshot from my non-release-team-member analysis would be: A release with the fix should be out by January 15, and probably sooner. |
I'm going to close this as it appears to be fixed in master. As @Trott mentioned, a new release should be out soon - almost certainly before January 15. |
Hey, after I cloned the Master branch and installed node, I debugged the following var util = require('util');
util.inspect({level: "info"});
1 + 1;
2 + 2;
console.log("Finished"); After setting a breakpoint in line 4 with |
Re-opening as requested. If someone else feels like this ought to remain closed and a new issue opened instead, feel free to close and comment to that effect. It does seem like this is a new issue that was masked by the first issue. |
I see this issue happening while using 5.3.0 with this node module: https://github.com/Azure/azure-storage-node While checking for a container on Azure, the module will call:
Which results in a crash at the same location that @LucasMoody mentioned. It will eventually get down to:
And crash here:
If it helps with debugging this problem, the logger that azure sets up in that module is done like this:
Their logger can be seen here: |
This does seem to still exist on Node 5.4.0. I am seeing exactly what @atom0s is seeing. |
I don't know that anyone is actively working on this issue. (If someone is, hey, speak up here, will ya?) I'm not sure who the key contacts would be for the debugger, but judging from the commit logs, I'd guess @indutny. Not sure if he has sufficient spare time and inclination to dive into this issue, but if not, maybe he can at least point someone in the right general direction. If you're feeling like you might want to take a shot at solving the problem yourself, then (absent suggestions from other people who are more informed than I am) I'd start by looking at these files in the source code repo:
Hopefully @mscdex or someone else will have something more helpful to offer, but for the moment, that's what I've got. |
I have no idea either offhand what the change was. You could |
i'm experiencing this issue when debugging my expressjs application via node-debug (node 5.4.1) express logs a value, the formatter tries to inspect the value via inspectPromise, which calls ensureDebugIsInitialized and my debugging session is gone any workarounds? |
I also experienced this problem on Windows 10. Downgrading to Node 4.2.4 (and then installing the latest NPM to avoid MAX_PATH issues) worked around the issue for me. |
I bet this is the same problem we are seeing in #4815 |
From what I've been able to investigate @thealphanerd ... I tend to agree. |
Similar behavior described by @imaustink with Webstorm under OS X with 4.2.6. Node 4.2.2 is working OK. |
There is a fix in, hoping to have it released for ya'll soon after the next security release |
Thanks @thealphanerd! In the mean time, for folks stumbling upon this, I can confirm that downgrading to 4.2.4 resolves this for folks seeing issues in their Sails apps (thanks @chirag200666 and @LongSteve!) |
The fix is now in master, you should expect this to see it in a release in the next 2 - 3 weeks on v4 and v5. |
Thanks for your efforts @thealphanerd it is greatly appreciated. |
Currently a debug context is created for various calls to util. If the node debugger is being run the main context is the debug context. In this case node_contextify was freeing the debug context and causing everything to explode. This change moves around the logic and no longer frees the context. There is a concern about the dangling pointer The regression test was adapted from code submitted by @3y3 in #4815 Fixes: #4440 Fixes: #4815 Fixes: #4597 Fixes: #4952 PR-URL: #4815 Reviewed-By: Fedor Indutny <[email protected]> Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: Rich Trott <[email protected]>
Currently a debug context is created for various calls to util. If the node debugger is being run the main context is the debug context. In this case node_contextify was freeing the debug context and causing everything to explode. This change moves around the logic and no longer frees the context. There is a concern about the dangling pointer The regression test was adapted from code submitted by @3y3 in #4815 Fixes: #4440 Fixes: #4815 Fixes: #4597 Fixes: #4952 PR-URL: #4815 Reviewed-By: Fedor Indutny <[email protected]> Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: Rich Trott <[email protected]>
The fix is now released in v5.6.0. Expect LTS next week |
Still broken in 4.3.0
The trace (or info levels etc) is dumped, but the debug session is exited afterwards. |
The comment just above yours mentioned already that it will be fixed at a later time for LTS. |
Yes, v4.3.0 was a security fix that only included the fixes for the
|
Currently a debug context is created for various calls to util. If the node debugger is being run the main context is the debug context. In this case node_contextify was freeing the debug context and causing everything to explode. This change moves around the logic and no longer frees the context. There is a concern about the dangling pointer The regression test was adapted from code submitted by @3y3 in #4815 Fixes: #4440 Fixes: #4815 Fixes: #4597 Fixes: #4952 PR-URL: #4815 Reviewed-By: Fedor Indutny <[email protected]> Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: Rich Trott <[email protected]>
Currently a debug context is created for various calls to util. If the node debugger is being run the main context is the debug context. In this case node_contextify was freeing the debug context and causing everything to explode. This change moves around the logic and no longer frees the context. There is a concern about the dangling pointer The regression test was adapted from code submitted by @3y3 in nodejs#4815 Fixes: nodejs#4440 Fixes: nodejs#4815 Fixes: nodejs#4597 Fixes: nodejs#4952 PR-URL: nodejs#4815 Reviewed-By: Fedor Indutny <[email protected]> Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: Rich Trott <[email protected]>
Currently a debug context is created for various calls to util. If the node debugger is being run the main context is the debug context. In this case node_contextify was freeing the debug context and causing everything to explode. This change moves around the logic and no longer frees the context. There is a concern about the dangling pointer The regression test was adapted from code submitted by @3y3 in nodejs#4815 Fixes: nodejs#4440 Fixes: nodejs#4815 Fixes: nodejs#4597 Fixes: nodejs#4952 PR-URL: nodejs#4815 Reviewed-By: Fedor Indutny <[email protected]> Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: Rich Trott <[email protected]>
Currently a debug context is created for various calls to util. If the node debugger is being run the main context is the debug context. In this case node_contextify was freeing the debug context and causing everything to explode. This change moves around the logic and no longer frees the context. There is a concern about the dangling pointer The regression test was adapted from code submitted by @3y3 in nodejs#4815 Fixes: nodejs#4440 Fixes: nodejs#4815 Fixes: nodejs#4597 Fixes: nodejs#4952 PR-URL: nodejs#4815 Reviewed-By: Fedor Indutny <[email protected]> Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: Rich Trott <[email protected]>
This isn't TOP priority? #4382 |
As mentioned above 4.3.1 has been released with the fix for this bug! |
Currently a debug context is created for various calls to util. If the node debugger is being run the main context is the debug context. In this case node_contextify was freeing the debug context and causing everything to explode. This change moves around the logic and no longer frees the context. There is a concern about the dangling pointer The regression test was adapted from code submitted by @3y3 in nodejs#4815 Fixes: nodejs#4440 Fixes: nodejs#4815 Fixes: nodejs#4597 Fixes: nodejs#4952 PR-URL: nodejs#4815 Reviewed-By: Fedor Indutny <[email protected]> Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: Rich Trott <[email protected]>
When debugging in node.js 5.3.0 the script
bug.js
with
node debug bug.js
, the debugging session exits. I tried the same in node.js 4.2.4 and it doesn't. When debugging the difference inlib/util.js
, line 324 in 5.3.0 looks like this:and line 319 in 4.2.4 looks like:
As value is not an instance of Promise,
inspectPromise(value)
is called in 5.3.0. TheninspectPromise
callsensureDebugIsInitialized()
which on the other hand callsrequire('vm').runInDebugContext('Debug')
. This causes the debugging session to exit. The issue was tested in Ubuntu 14.04 LTS.The text was updated successfully, but these errors were encountered: