-
-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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
Node.js SIGABRT (abort) due to EBADF from epoll_ctl() call in libuv uv__io_poll() #4684
Comments
afaik there are only two worker threads involved atm, MinifyWorker and maybe handling soffice. Looking at some of the failing backend runs I get the impression that it's not nyc but mocha that's having the problems, because the coredump msg is printed before mocha's test summary. In mocha's changelog: However, we are at an older mocha version (that does not depend on workerpool yet) and we don't use parallel mode, but my best guess would still be to update mocha first. We probably need to take care of mochajs/mocha#4175 and mochajs/mocha#4315 because we use that functionality iirc. |
I haven't seen any aborts lately. Did we fix it? |
I saw one today afiak. |
I saw one today. They're not happening as often I think. |
I finally figured out the problem: The upstream The SIGABRTs started happening after commit edbe6d5 because that is when we started properly closing the database on exit. We can probably work around the bug in ueberDB by sleeping a bit between flushing and closing the database. |
Hah wow good spot :D |
@rhansen does the latest merge close this? |
I want to keep this bug open until the upstream bugfix is published, ueberdb is updated to use it, and Etherpad is updated to use the updated ueberdb. |
Lately I've noticed frequent node (v14.15.4) crashes when running backend tests. The crashes are caused by a call to abort() in libuv due to
errno
ofEBADF
("bad file descriptor") set by a call toepoll_ctl()
inuv__io_poll()
. The crashes always seem to happen after the mocha tests finish running (I think) but before nyc prints out coverage stats. It doesn't always happen, so it's probably a race condition somewhere. I poked at the core file a bit but didn't see a smoking gun. Here's the stack trace:If anyone out there is familiar with libuv and can help us debug, that would be greatly appreciated.
The text was updated successfully, but these errors were encountered: