[GH-ISSUE #1534] Proxyman 4.2.0 indefinitely blocks requests #1526

Open
opened 2026-03-03 19:52:13 +03:00 by kerem · 4 comments
Owner

Originally created by @matthewjamesadam on GitHub (Feb 10, 2023).
Original GitHub issue: https://github.com/ProxymanApp/Proxyman/issues/1534

Originally assigned to: @NghiaTranUIT on GitHub.

Description

Proxyman 4.2.0 indefinitely blocks some subset of requests -- in our case, requests made from node-fetch. The requests being blocked are seemingly random.

Steps to Reproduce

I have put up a repo that demonstrates the issue:

  1. Clone my repo here: https://github.com/matthewjamesadam/ProxymanNodeBugRepro
  2. npm install
  3. npm run start

This is a tiny node app that uses node-fetch to request http://google.com 100 times in a row in parallel. It logs each request and the number of requests remaining. I have set the proxy using HttpsProxyAgent as per this issue: https://github.com/ProxymanApp/Proxyman/issues/236.

When I disable the proxy (by removing the { agent: proxyAgent } property in the fetch request), or when I use Proxyman 4.1.0, the requests run correctly:

matt@Matts-MacBook-Air node-fetch-test % npm run start

> start
> http_proxy=http://127.0.01:9090 esbuild node-fetch-test.ts --bundle --platform=node | node -

Fetching 0
Fetching 1
Fetching 2
Fetching 3
Fetching 4
Fetching 5
Fetching 6
 ...
Fetching 96
Fetching 97
Fetching 98
Fetching 99
Done fetching index 19 -- 99 left
Done fetching index 21 -- 98 left
Done fetching index 42 -- 97 left
Done fetching index 9 -- 96 left
Done fetching index 43 -- 95 left
Done fetching index 57 -- 94 left
Done fetching index 50 -- 93 left
Done fetching index 7 -- 92 left
Done fetching index 0 -- 91 left
 ...
Done fetching index 75 -- 5 left
Done fetching index 34 -- 4 left
Done fetching index 49 -- 3 left
Done fetching index 70 -- 2 left
Done fetching index 91 -- 1 left
Done fetching index 15 -- 0 left
*** All requests completed

However, when using Proxyman 4.2.0, a random number of requests block indefinitely. The fetch call never completes:

 (starts as above...)
Done fetching index 59 -- 15 left
Done fetching index 76 -- 14 left
Done fetching index 93 -- 13 left
Done fetching index 86 -- 12 left
Done fetching index 99 -- 11 left
Done fetching index 89 -- 10 left
Done fetching index 75 -- 9 left
Done fetching index 87 -- 8 left

The number of requests blocked, and which ones block, are seemingly random.

Environment

  • App version: Proxyman 4.2.0
  • macOS version: macOS Monterey 12.5.1
Originally created by @matthewjamesadam on GitHub (Feb 10, 2023). Original GitHub issue: https://github.com/ProxymanApp/Proxyman/issues/1534 Originally assigned to: @NghiaTranUIT on GitHub. ## Description Proxyman 4.2.0 indefinitely blocks some subset of requests -- in our case, requests made from `node-fetch`. The requests being blocked are seemingly random. ## Steps to Reproduce I have put up a repo that demonstrates the issue: 1. Clone my repo here: https://github.com/matthewjamesadam/ProxymanNodeBugRepro 2. `npm install` 3. `npm run start` This is a tiny node app that uses `node-fetch` to request `http://google.com` 100 times in a row in parallel. It logs each request and the number of requests remaining. I have set the proxy using `HttpsProxyAgent` as per this issue: https://github.com/ProxymanApp/Proxyman/issues/236. When I disable the proxy (by removing the `{ agent: proxyAgent }` property in the fetch request), or when I use Proxyman 4.1.0, the requests run correctly: ``` matt@Matts-MacBook-Air node-fetch-test % npm run start > start > http_proxy=http://127.0.01:9090 esbuild node-fetch-test.ts --bundle --platform=node | node - Fetching 0 Fetching 1 Fetching 2 Fetching 3 Fetching 4 Fetching 5 Fetching 6 ... Fetching 96 Fetching 97 Fetching 98 Fetching 99 Done fetching index 19 -- 99 left Done fetching index 21 -- 98 left Done fetching index 42 -- 97 left Done fetching index 9 -- 96 left Done fetching index 43 -- 95 left Done fetching index 57 -- 94 left Done fetching index 50 -- 93 left Done fetching index 7 -- 92 left Done fetching index 0 -- 91 left ... Done fetching index 75 -- 5 left Done fetching index 34 -- 4 left Done fetching index 49 -- 3 left Done fetching index 70 -- 2 left Done fetching index 91 -- 1 left Done fetching index 15 -- 0 left *** All requests completed ``` However, when using Proxyman 4.2.0, a random number of requests block indefinitely. The `fetch` call never completes: ``` (starts as above...) Done fetching index 59 -- 15 left Done fetching index 76 -- 14 left Done fetching index 93 -- 13 left Done fetching index 86 -- 12 left Done fetching index 99 -- 11 left Done fetching index 89 -- 10 left Done fetching index 75 -- 9 left Done fetching index 87 -- 8 left ``` The number of requests blocked, and which ones block, are seemingly random. ## Environment - App version: Proxyman 4.2.0 - macOS version: macOS Monterey 12.5.1
Author
Owner

@NghiaTranUIT commented on GitHub (Feb 10, 2023):

Thanks for the sample code. I'm checking now 👍

<!-- gh-comment-id:1425060964 --> @NghiaTranUIT commented on GitHub (Feb 10, 2023): Thanks for the sample code. I'm checking now 👍
Author
Owner

@NghiaTranUIT commented on GitHub (Feb 10, 2023):

@matthewjamesadam it's fixed on this Beta: https://proxyman.s3.us-east-2.amazonaws.com/beta/Proxyman_4.2.0_Fix_concurrency_bug.dmg

I revert the code which causes this bug and add some tests to make sure it works in the future update 👍

<!-- gh-comment-id:1425144616 --> @NghiaTranUIT commented on GitHub (Feb 10, 2023): @matthewjamesadam it's fixed on this Beta: https://proxyman.s3.us-east-2.amazonaws.com/beta/Proxyman_4.2.0_Fix_concurrency_bug.dmg I revert the code which causes this bug and add some tests to make sure it works in the future update 👍
Author
Owner

@robinsenior commented on GitHub (Feb 10, 2023):

Just a note that 4.2.0 was working fine for me yesterday, but after updating to 4.2.1 this morning I was no longer seeing my simulator's requests in Proxyman. Downgrading to 4.2.0 resolved the issue.

<!-- gh-comment-id:1426086908 --> @robinsenior commented on GitHub (Feb 10, 2023): Just a note that 4.2.0 was working fine for me yesterday, but after updating to 4.2.1 this morning I was no longer seeing my simulator's requests in Proxyman. Downgrading to 4.2.0 resolved the issue.
Author
Owner

@NghiaTranUIT commented on GitHub (Feb 11, 2023):

@robinsenior I'm not sure if it's a bug on 4.2.1 🤔

Can you try again on your build 4.2.1? I've tested and it just works fine.

Screenshot 2023-02-11 at 07 46 26

<!-- gh-comment-id:1426538127 --> @NghiaTranUIT commented on GitHub (Feb 11, 2023): @robinsenior I'm not sure if it's a bug on 4.2.1 🤔 Can you try again on your build 4.2.1? I've tested and it just works fine. ![Screenshot 2023-02-11 at 07 46 26](https://user-images.githubusercontent.com/5878421/218227793-149f3143-df12-483f-8356-701abdc65dc7.jpg)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/Proxyman#1526
No description provided.