Closed Bug 2013394 Opened 8 months ago Closed 8 months ago

Decompression errors with Google search results after shopify/chatgpt fixes

Categories

(Core :: Networking: Cache, defect, P2)

defect

Tracking

()

RESOLVED FIXED
149 Branch
Tracking Status
firefox149 --- fixed

People

(Reporter: jesup, Assigned: jesup)

References

(Blocks 1 open bug)

Details

(Whiteboard: [necko-triaged])

Attachments

(1 file)

Enabling Compression dictionaries after landing the patches to deal with the shopify/chatgpt causes occasional decompression failures, which are resolved on reload

Possible cause:
Race Condition: The decompressor was being created before checking if the dictionary was ready, causing it to be instantiated without the dictionary attached.

In ContinueProcessNormal2()
The Bug Flow:

  1. PrepareToConnect() starts dictionary Prefetch() (async)
  2. Response arrives with Content-Encoding: dcb
  3. ContinueProcessNormal2() called
  4. BUG: DoInstallCacheListener() creates decompressor
    - Calls mDictionary->GetDictionary().Length() → 0 (still loading)
    - Decompressor created without dictionary!
  5. Dictionary check happens too late (after decompressor created)
  6. Data arrives → decompression fails
  7. Retry works (dictionary finished loading by then)

It's hard to verify this, ask it's a rare-ish intermittent, but this fits. We meed to avoid calling DoInstallCacheListener until any dictionary we're using has been loaded.

Blocks: 2013420
Severity: -- → S3
Priority: -- → P2
Whiteboard: [necko-triaged]
Pushed by rjesup@mozilla.com: https://github.com/mozilla-firefox/firefox/commit/8785b5471ab1 https://hg.mozilla.org/integration/autoland/rev/44aed0138931 Suspend a channel before installing listeners if we're waiting on prefetch of a dictionary r=necko-reviewers,valentin
Pushed by rjesup@mozilla.com: https://github.com/mozilla-firefox/firefox/commit/75d7bae6f467 https://hg.mozilla.org/integration/autoland/rev/f6cce9ed5843 Suspend a channel before installing listeners if we're waiting on prefetch of a dictionary r=necko-reviewers,valentin
Status: NEW → RESOLVED
Closed: 8 months ago
Resolution: --- → FIXED
Target Milestone: --- → 149 Branch
QA Whiteboard: [qa-triage-done-c150/b149]
You need to log in before you can comment on or make changes to this bug.