• Andreas Haas's avatar
    [wasm][streaming] Avoid aborting the stream after it finished · 32dd5470
    Andreas Haas authored
    With WebAssembly streaming compilation it is possible that FinishStream
    indirectly calls AbortStream. This had the effect that while
    FinishStream fulfilled the promise, AbortStream disposed the promise
    by removing the compile job from the wasm engine and thereby deallocated
    AsyncCompileJob and all the state that belongs to it. Without that
    state, FinishStream could not finish fulfilling the promise correctly.
    
    With this CL the streaming decoder remembers that the stream has
    already been finished. When the stream has been finished, all calls to
    Abort get ignored.
    
    The regression test for this issue requires the Chrome embedding, see
    https://crrev.com/c/2368359
    
    R=clemensb@chromium.org
    
    Bug: chromium:1117258
    Change-Id: Ifc28a1ee38c228b051c4d7d85b305fe2a721fa1f
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2367858
    Commit-Queue: Andreas Haas <ahaas@chromium.org>
    Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#69549}
    32dd5470
streaming-decoder.cc 25.6 KB