[Webkit-unassigned] [Bug 206284] New: Old visited pages with wasm content are not cleared from memory when visiting a new wasm page, resulting in OOMs

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Jan 15 03:20:33 PST 2020


https://bugs.webkit.org/show_bug.cgi?id=206284

            Bug ID: 206284
           Summary: Old visited pages with wasm content are not cleared
                    from memory when visiting a new wasm page, resulting
                    in OOMs
           Product: WebKit
           Version: WebKit Nightly Build
          Hardware: iPhone / iPad
                OS: iOS 13
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: WebAssembly
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: jujjyl at gmail.com

It looks like Safari's page history navigation stack retains old WebAssembly compiled pages in memory, and is unable to release them on demand on memory pressure when visiting a new page with wasm content, but instead Safari OOMs due to running out of executable memory to compile WebAssembly. (this is only a hypothesis, alternative is that the old Wasm compiled pages genuinely memory leak Wasm code memory?)

STR:

1. Visit https://connect.unity.com/p/kart-mobile-1-0-6?loadingMobile=1
2. Click on Play.
3. Click OK when seeing the dialog that mobile is not yet supported in Unity.
4. When seeing the [Name Your Game] dialog, reload the page and go to step 2.

After some 2-3 reloads, the page is unable to load, but fails in WebAssembly compilation stage with error message

[Error] failed to asynchronously prepare wasm: Error: Out of executable memory in function at index 13067
    o (commons.631d1802c56e56ea3106.bundle.js:1:368842)
    printErr (UnityLoader.js:4:11151)
    (anonymous function) (blob:https://connect.unity3dusercontent.com/698c33ac-6d65-4875-89b4-ec8bdfddc8b4:8:31284)
    promiseReactionJob

It has observed that smaller WebAssembly modules enable more refreshes until hitting this OOM. E.g. this page https://connect.unity.com/p/kart-template-oz?loadingMobile=1 contains the same content as in the STR link URL in step 1, but optimized for size rather than speed, and that OOMs as well, but needs more page refreshes for it to happen.

Tested to reproduce on iPhone 11 Pro Max on iOS 13.3.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20200115/7937eb62/attachment.htm>


More information about the webkit-unassigned mailing list