Bug 314243
| Summary: | RELEASE ASSERT: http/tests/security/contentSecurityPolicy/multipart-three-part.py is a flaky crash | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Brent Fulgham <bfulgham> |
| Component: | New Bugs | Assignee: | Chris Dumez <cdumez> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar |
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Brent Fulgham
This issue can be reproduced using command:
run-webkit-tests --no-build --no-retry --no-show-results --exit-after-n-failures=1 --expect-pass --iterations=1000 --force -f --clobber-old-results --release http/tests/security/contentSecurityPolicy/multipart-three-part.py
<rdar://169360779>
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Brent Fulgham
This crash has nothing to do with CSP — it is happening because the multi-part load happens in rapid succession, causing the first completion handler to be dropped when the second arrives. This triggers NSURLSession to fire a release assert that crashes the network process.
if (willWaitForContinueDidReceiveResponse) {
m_responseCompletionHandler = WTF::move(completionHandler);
return;
}
The most conservative (from a loading standpoint) fix is to process the completion handler. I think that PolicyAction::Use is the correct argument (rather than PolicyAction::Ignore) because by the time we get a follow-up response, we have decided to proceed with the load and will need to accept the first (and all subsequent) loads to complete the process.
Brent Fulgham
Pull request: https://github.com/WebKit/WebKit/pull/64404
Chris Dumez
Pull request: https://github.com/WebKit/WebKit/pull/64646
EWS
Committed 313118@main (071edf4eff8a): <https://commits.webkit.org/313118@main>
Reviewed commits have been landed. Closing PR #64646 and removing active labels.