-
Notifications
You must be signed in to change notification settings - Fork 15.3k
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
Async/Await crash: assertion env->async_hooks_init_function().IsEmpty() failed #10905
Comments
Are you able to provide a repro? It would really help us track this down! |
and somewhere in electron.js (the startup file, for instance in the electron-quick-start): const Server = require('awv3-node/server') That's enough to shoot it down. No code is actually executed, it just fetches the class which happens to have some async/await stuff in it. |
I have the same symptoms. 1.7.8 - No problems. 1.8.1 beta - same error E:\GitHub_B2LiNK\Development-Binary-Windows\Binary\Electron\electron.exe: c:\projects\electron\vendor\node\src\async-wrap.cc:399: Assertion `env->async_hooks_init_function().IsEmpty()' failed. require( "exceljs" ) -> error It happens on Windows, Mac, and Linux. |
Any workarounds or useful leads discovered yet? Same issue here, with or without babel in the stack. |
It happens on Windows 7 too. |
Same error on 1.8.2 beta.3 |
I'm getting this in Mailspring when running anything newer than 1.7.8. Unfortunately I'm really not sure how to track it down because the stack trace doesn't reference any specific JS code or file. |
Ok folks - I've made some headway here. Using an empty Electron project, I'm able to reproduce this by requiring
The file crashing the app is Rather than figure out what in this (actually very small) package has broken, I think the goal should be to remove it and whatever dependencies are doing such sketch stuff in the first place. In the case of
Stepping through the execution of https://github.com/isaacs/natives/blob/master/index.js, (I just edited the source on disk and added a |
update |
@bengotow Thanks for investigating! I wasn't aware of "natives", but we do use fs-extra, which loads graceful-fs. So looks like they have removed it. |
We're having the same issue with 1.8.2. Linux, debian.
|
This issue deserves a red "crash" label. |
Any progress on this? I am having the same issue. I use leveldown - requiring a native module rebuild - and I'm in a bit of a catch-22. Node.js 7.10.1 uses NODE_MODULE_VERSION 51 and the next one up, Node.js 8.0.0 uses NODE_MODULE_VERSION 57. Electron version 1.7.x uses 54 but 1.8.x breaks the app. |
running into the same issue on 1.8.x on macOS 10.12, node v8.9.4. |
On windows. EDIT: Roll back to 1.7.12 and seems ok. |
I am also seeing this issue on the latest electron using electron mocha. I have a repo that reproduces it (run |
node 8.2.1 electron 1.8.3 // Setup the callbacks that node::AsyncWrap will call when there are hooks to
// process. They use the same functions as the JS embedder API. These callbacks
// are setup immediately to prevent async_wrap.setupHooks() from being hijacked
// and the cost of doing so is negligible.
async_wrap.setupHooks({ init: emitInitNative,
before: emitBeforeNative,
after: emitAfterNative,
destroy: emitDestroyNative }); async_wrap.setupHooks is a native function it seems and I cannot step into it. and right after I press f11 on this line of code the electron app crashes and I get "DevTools was disconnected from the page." for me I got this error requiring gulp but following through the tree of dependencies I narroed it down to fs module so I replaced the require('gulp') with a require('fs') to test it and indeed require('fs') is enough to break the app in the same line of code. So in short 'fs' is the culprit it seems from what I gather any help is greatly appriciated |
Getting a very similar error here on Mac OS high sierra just from importing the unzip package into my project. electron v1.8.2
|
The same problem, both Windows and Mac OS. |
VS Code is hitting the same problem for users that have the live share extension installed (https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare). My understanding is that some old dependency can trigger this but to be honest a native crash should never occur from a JS execution so I think this must be fixed in node.js or electron to prevent from happening? |
Steps to reproduce:
{
"name": "name",
"description": "description",
"authors": "author",
"version": "1.0.0",
"main": "pathToMain",
"dependencies": {
"fstream": "0.1.31"
}
}
var fstream = require("fstream");
console.log(fstream); From the command line: Output:
I cannot reproduce this with node.js 8.9.3 so I think this is something Electron has to fix. |
As @MarshallOfSound found out, this actually can reproduce also in node.js by code such as:
So now I am actually less sure about wether this should be fixed in Electron or if this should be forwarded to node.js team :-/ |
As a point of clarification, in our experience the root cause of this issue is something that was depending on the natives package. This package is deprecated and contains warnings of its use. Right from the
So. Doesn't seem to be electron's issue. Heck, this isn't even a node issue. Packages depending on the Note: |
I am thinking this should be fixed in node.js. No normal JS code execution should trigger a native crash that cannot be handled. For that reason there are runtime exceptions in JS that can be used. |
As a workaround (thanks to @Tyriar) we will probably ship with this code to prevent access to the (function () {
const Module = require('module');
const originalLoad = Module._load;
Module._load = function (request) {
if (request === 'natives') {
throw new Error('bad');
}
return originalLoad.apply(this, arguments);
};
})(); |
I have this error with electron v. 2.0.0-beta.7 and beta.8 - works fine on macos and bad on windows |
Hello, everyone, I have found that the problem was really inside native module. For me, I've changed Unzip2 package with unzipper package and this started to work. Also, I had gulp 3.9.1. I used this in electron@2.0.0-beta.8. It was really hard to find where is the problem, because my app used module that used another module that used this Unzip2. Maybe this will help someone, but a lot of things and work with xls/xlsx files are related to this unzip2 module. In my case I just changed unzip2 with unzipper and this started to work! |
The latter is the same problem described by electron/electron#10905; the solution @kikill95 suggested of replacing `unzip` with `unzipped` worked great.
I have this issue when trying to use https://www.npmjs.com/package/unzip library:
|
Closing as the root of this issue is not clearly with Electron itself. |
Going over 1.7.8 seems to break Electron for one of our projects. It's hard to track down what's going on but here's the output:
It happens when we require a file that has async/await calls in it, but nothing's yet executed. But the moment we go back to 1.7.8 it starts working again.
The text was updated successfully, but these errors were encountered: