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

FIX: Fulfill promise in removeFolderAsync() - solves EPERM crash while deleting temp folder #7396

Closed
wants to merge 3 commits into from

Conversation

bdumitru
Copy link

@bdumitru bdumitru commented Jul 2, 2021

Fix for: #6946, #298 etc. (MAJOR PRIORITY)

Problem description:
WINDOWS ONLY!
Any process involving this library would completely crash ungracefully if browser.close() is unable to delete the /temp/ folder, because the promise never gets fulfilled or rejected.
Problem tends to happen on slower computers/VMs or environments with limited access to appdata/local folder.
Issue can be hard to reproduce in a lot of cases.

Solution:
fulfill() in catch for removeFolderAsync(this._tempDirectory)
Alternative solutions:

  • SIMPLE, but not ideal: throw(error) instead, remove console.error(error).
  • HARDER, ideal: add WORKING runtime arguments to disable Crashpad-Metrics.

Fix for: puppeteer#6946, puppeteer#298 etc. (MAJOR PRIORITY)

Problem description:
WINDOWS ONLY!
Any process involving this library would completely crash ungracefully if browser.close() is unable to delete the /temp/ folder, because the promise never gets fulfilled or rejected.
Problem tends to happen on slower computers/VMs or environments with limited access to appdata/local folder.
Issue can be hard to reproduce in a lot of cases.

Solution:
fulfill() in catch for removeFolderAsync(this._tempDirectory)
Alternative solutions:
- SIMPLE, but not ideal: throw(error) instead, remove console.error(error).
- HARDER, ideal: add WORKING runtime arguments to disable Crashpad-Metrics.
@google-cla
Copy link

google-cla bot commented Jul 2, 2021

Thanks for your pull request. It looks like this may be your first contribution to a Google open source project (if not, look below for help). Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

📝 Please visit https://cla.developers.google.com/ to sign.

Once you've signed (or fixed any issues), please reply here with @googlebot I signed it! and we'll verify it.


What to do if you already signed the CLA

Individual signers
Corporate signers

ℹ️ Googlers: Go here for more info.

@google-cla google-cla bot added the cla: no label Jul 2, 2021
@bdumitru
Copy link
Author

bdumitru commented Jul 2, 2021

@googlebot I signed it!

@google-cla google-cla bot added cla: yes and removed cla: no labels Jul 2, 2021
@bdumitru bdumitru changed the title Fulfill promise on EPERM while deleting temp folder FIX: Fulfill promise in removeFolderAsync() - solves EPERM crash while deleting temp folder Jul 2, 2021
@jschfflr
Copy link
Contributor

It looks like this has already been addressed in #7338

@jschfflr jschfflr closed this Sep 11, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants