[GH-ISSUE #1553] Application hangs (not responding) when adding filters on macOS 13.1 #1546

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

Originally created by @rubenrdias-twipe on GitHub (Feb 21, 2023).
Original GitHub issue: https://github.com/ProxymanApp/Proxyman/issues/1553

Description

When some logs are available (not many are required, e.g. ~50+), and I try to add a filter (very basic, e.g. All + Contains + "some filter"), the app hangs (not responding) with the macOS default loading cursor for many seconds. I've experienced 20+ seconds of hang time and it varies, usually takes more than 10s to unblock, and this seems dependent on the number of logs available.

Steps to Reproduce

  1. Set "override macOS proxy" to ENABLED (in case it's relevant, I have this turned on)
  2. Clear all filters
  3. Enable SSL proxying for the relevant calls to test (in case it's relevant, I have this turned on)
  4. Trigger the flow you want to debug on a device (on an iOS simulator I'm seeing this every time)
  5. Ensure that a significant amount of API calls are available (e.g. 50+)
  6. Add a simple filter that looks for text (e.g. All + Contains + "some filter")
  7. Proxyman will hang for several seconds while filtering the results

Current Behavior

App hangs (not responding) for several seconds. After the hanging is resolved, changing the filter re-triggers the issue.

Expected Behavior

Filtering does not cause the app to hang (not responding). Maybe 1-2 would be acceptable, but not 20+ seconds.

Environment

  • Device being proxied: iOS Simulator - iPhone 14 Pro (iOS 16.2)
  • Xcode version: 14.2 (14C18)
  • App version: Proxyman 4.3.1 (43010)
  • macOS version: macOS Ventura 13.1 (22C65)
Originally created by @rubenrdias-twipe on GitHub (Feb 21, 2023). Original GitHub issue: https://github.com/ProxymanApp/Proxyman/issues/1553 ## Description When some logs are available (not many are required, e.g. ~50+), and I try to add a filter (very basic, e.g. All + Contains + "some filter"), the app hangs (not responding) with the macOS default loading cursor for many seconds. I've experienced 20+ seconds of hang time and it varies, usually takes more than 10s to unblock, and this seems dependent on the number of logs available. ## Steps to Reproduce 1. Set "override macOS proxy" to ENABLED (in case it's relevant, I have this turned on) 2. Clear all filters 3. Enable SSL proxying for the relevant calls to test (in case it's relevant, I have this turned on) 4. Trigger the flow you want to debug on a device (on an iOS simulator I'm seeing this every time) 5. Ensure that a significant amount of API calls are available (e.g. 50+) 6. Add a simple filter that looks for text (e.g. All + Contains + "some filter") 7. Proxyman will hang for several seconds while filtering the results ## Current Behavior App hangs (not responding) for several seconds. After the hanging is resolved, changing the filter re-triggers the issue. ## Expected Behavior Filtering does not cause the app to hang (not responding). Maybe 1-2 would be acceptable, but not 20+ seconds. ## Environment - Device being proxied: iOS Simulator - iPhone 14 Pro (iOS 16.2) - Xcode version: 14.2 (14C18) - App version: Proxyman 4.3.1 (43010) - macOS version: macOS Ventura 13.1 (22C65)
Author
Owner

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

Hey @rubenrdias-twipe I guess the "All" is the problem since it tries to search on the Header, URL, Query, Status Code, and the Body of the Request/Response.

It can be slow if there is a large JSON Body.

If you know where the data is (maybe it's in the header, URL, or Query), you should narrow the scope down. It might fix the issues.

<!-- gh-comment-id:1438695206 --> @NghiaTranUIT commented on GitHub (Feb 21, 2023): Hey @rubenrdias-twipe I guess the "All" is the problem since it tries to search on the Header, URL, Query, Status Code, and the Body of the Request/Response. It can be slow if there is a large JSON Body. If you know where the data is (maybe it's in the header, URL, or Query), you should narrow the scope down. It might fix the issues.
Author
Owner

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

Meanwhile, I will try to improve the performance of the ALL filter. Maybe move the heavy searching operation off the main thread to avoid the app's unresponsiveness.

<!-- gh-comment-id:1438697175 --> @NghiaTranUIT commented on GitHub (Feb 21, 2023): Meanwhile, I will try to improve the performance of the ALL filter. Maybe move the heavy searching operation off the main thread to avoid the app's unresponsiveness.
Author
Owner

@rubenrdias-twipe commented on GitHub (Feb 21, 2023):

Thanks for the quick feedback! Changing the filters from "All" to e.g. "URL" eliminates the waiting time, and searches are instantaneous. The app is no longer non-responsive!

It would be great indeed to have the "All" filter be more performant, but this already pretty good.

Thanks!

<!-- gh-comment-id:1438751078 --> @rubenrdias-twipe commented on GitHub (Feb 21, 2023): Thanks for the quick feedback! Changing the filters from "All" to e.g. "URL" eliminates the waiting time, and searches are instantaneous. The app is no longer non-responsive! It would be great indeed to have the "All" filter be more performant, but this already pretty good. Thanks!
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#1546
No description provided.