electron concurrency issue and zombie processes
- Dominant language
- JavaScript
- Stars
- 98
- Forks
- 29
- PR merge metrics
- No merged PRs in 30d
Description
Hi
I am trying to troubleshoot an issue: I am running ace-electron in docker and when multiple ace processes are running parallel, it seems they are blocking each other and ACE is failing with various error messages, like:
```
error: Ace processing error: Error: Failed to check Content Document '949.html': did-fail-load: -3 - - acehttps://0.0.0.0/Ops/949.html?AXE_RUNNER=948 - true - 7 - 1
```
I was able to reproduce the issue even without docker. In the process tree I can see this:
```
| | \-+= 99767 kiskele node /Users/kiskele/temp/ace/node_modules/.bin/electron ./packages/ace-axe-runner-electron/lib/cli.js --verbose --out out2 /Users/kiskele/Downloads/test.epub
| | |--- 99771 kiskele /Users/kiskele/temp/ace/node_modules/electron/dist/Electron.app/Contents/Frameworks/Electron Helper (GPU).app/Contents/MacOS/Electron Helper (GPU) --type=gpu-process --user-data-dir=/Users/kiskele/Library/Application Support/Electron --gpu-preferences=UAAAAAAAAAAgAAAEAAAAAAAAAAAAAAAAAABgAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAA --shared-files --field-trial-handle=1718379636,r,6378836638113066318,16088629395246184720,262144 --enable-features=ScreenCaptureKitPickerScreen,ScreenCaptureKitStreamPickerSonoma --disable-features=MacWebContentsOcclusion,SpareRendererForSitePerProcess,TimeoutHangingVideoCaptureStarts --variations-seed-version --seatbelt-client=35
| | \--- 99772 kiskele /Users/kiskele/temp/ace/node_modules/electron/dist/Electron.app/Contents/Frameworks/Electron Helper.app/Contents/MacOS/Electron Helper --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-GB --service-sandbox-type=network --user-data-dir=/Users/kiskele/Library/Application Support/Electron --standard-schemes=acehttps --secure-schemes=acehttps --cors-schemes=acehttps --fetch-schemes=acehttps --streaming-schemes=acehttps --shared-files --field-trial-handle=1718379636,r,6378836638113066318,16088629395246184720,262144 --enable-features=ScreenCaptureKitPickerScreen,ScreenCaptureKitStreamPickerSonoma --disable-features=MacWebContentsOcclusion,SpareRendererForSitePerProcess,TimeoutHangingVideoCaptureStarts --variations-seed-version --seatbelt-client=35
```
and this:
```
| \-+= 99677 kiskele node /Users/kiskele/temp/ace/node_modules/.bin/electron ./packages/ace-axe-runner-electron/lib/cli.js --verbose --out out /Users/kiskele/Downloads/test.epub
| |--- 99681 kiskele /Users/kiskele/temp/ace/node_modules/electron/dist/Electron.app/Contents/Frameworks/Electron Helper (GPU).app/Contents/MacOS/Electron Helper (GPU) --type=gpu-process --user-data-dir=/Users/kiskele/Library/Application Support/Electron --gpu-preferences=UAAAAAAAAAAgAAAEAAAAAAAAAAAAAAAAAABgAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAA --shared-files --field-trial-handle=1718379636,r,9488308668255699911,12629781689342009476,262144 --enable-features=ScreenCaptureKitPickerScreen,ScreenCaptureKitStreamPickerSonoma --disable-features=MacWebContentsOcclusion,SpareRendererForSitePerProcess,TimeoutHangingVideoCaptureStarts --variations-seed-version --seatbelt-client=37
| \--- 99682 kiskele /Users/kiskele/temp/ace/node_modules/electron/dist/Electron.app/Contents/Frameworks/Electron Helper.app/Contents/MacOS/Electron Helper --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-GB --service-sandbox-type=network --user-data-dir=/Users/kiskele/Library/Application Support/Electron --standard-schemes=acehttps --secure-schemes=acehttps --cors-schemes=acehttps --fetch-schemes=acehttps --streaming-schemes=acehttps --shared-files --field-trial-handle=1718379636,r,9488308668255699911,12629781689342009476,262144 --enable-features=ScreenCaptureKitPickerScreen,ScreenCaptureKitStreamPickerSonoma --disable-features=MacWebContentsOcclusion,SpareRendererForSitePerProcess,TimeoutHangingVideoCaptureStarts --variations-seed-version --seatbelt-client=37
```
What I can see as a possible issue, that both electron instances are using the same user-data-dir. Is there any way to enter a diferent user-data-dir from the cli?
Contributor guide
Research direction
Start by reading packages/ace-axe-runner-electron/lib/cli.js and reproduce two parallel ace-electron invocations, with and without Docker. Investigate the shared Electron user-data-dir and the reported process tree, including whether child processes remain after completion. Done means concurrent runs complete independently without load failures or zombie processes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- electron, javascript
- Domain
- cli, desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100