Open Bug 1910572 Opened 11 months ago Updated 7 months ago

Having too many blocked requests can lead to issues in test

Categories

(Remote Protocol :: WebDriver BiDi, defect, P3)

defect
Points:
3

Tracking

(Not tracked)

People

(Reporter: jdescottes, Unassigned)

References

Details

(Whiteboard: [webdriver:backlog])

Spotted while investigating Bug 1878934, and fixed for our test suite at Bug 1910555.

When tests create too many intercepted requests without ever releasing them , it can lead to issues.
The one we observed was an error on macos CI debug:

Parent 2793, Main Thread] ###!!! ABORT: failed to re-open freezeable shm: Too many open files: file /builds/worker/checkouts/gecko/ipc/chromium/src/base/shared_memory_posix.cc:345

We should understand in which circumstances those blocked requests usually get cleaned up by the platform (reloading the tab? closing the tab?). It's also possible that we are part of the problem, because we keep references on those blocked on the JS side, in the parent process network module.

Hi!

This is related to the issue I mentioned last week on the necko channel, where we end up with too many open files when stopping too many requests without resuming them.

In the existing tests, we were just reloading the tab between each test. Do you know if on Necko's side it should be enough to "release" the blocked request, and remove the handle on the file? Or is it necessary to close the tab?
As I said in the summary it's also very likely that BiDi is causing the issue here, because we keep a reference on the intercepted channels until they are released.

Severity: -- → S3
Points: --- → 3
Flags: needinfo?(kershaw)
Priority: -- → P3
Whiteboard: [webdriver:backlog]

(In reply to Julian Descottes [:jdescottes] from comment #1)

Hi!

This is related to the issue I mentioned last week on the necko channel, where we end up with too many open files when stopping too many requests without resuming them.

In the existing tests, we were just reloading the tab between each test. Do you know if on Necko's side it should be enough to "release" the blocked request, and remove the handle on the file? Or is it necessary to close the tab?

I assume the channel is kept alive by the document here, so I think we need to close the tab. However, I am not 100% sure since I haven't run this test locally to verify.

Flags: needinfo?(kershaw)
You need to log in before you can comment on or make changes to this bug.