projectdiscovery / projectdiscovery/utils

chrome-headless-shell download can hang forever and block all callers

Open
#778 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
142
Forks
56
Avg merge
2d 10h
Merged PRs (30d)
7

Description

chromeshell.Ensure downloads the pinned browser with http.Get, which has no timeout, while holding a package-level sync.Mutex. If the Chrome for Testing CDN stalls mid-transfer the download never returns, and every other Ensure caller blocks behind the mutex for the life of the process. Callers need a way to bound the wait and cancel the transfer.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at chromeshell.Ensure and inspect its http.Get download and package-level sync.Mutex. Determine how the caller can bound the wait and cancel a stalled transfer without leaving other Ensure callers blocked. Done means a stalled Chrome for Testing CDN request terminates and concurrent callers are no longer blocked indefinitely.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
networking
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.