[Webkit-unassigned] [Bug 261624] New: segmentation benchmark in JetStream 2 is not guaranteed to complete

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Sep 15 15:02:20 PDT 2023


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

            Bug ID: 261624
           Summary: segmentation benchmark in JetStream 2 is not
                    guaranteed to complete
           Product: WebKit
           Version: WebKit Nightly Build
          Hardware: Unspecified
                OS: Unspecified
            Status: NEW
          Severity: Minor
          Priority: P2
         Component: Tools / Tests
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: sethbrenith at yahoo.com

In the Microsoft performance lab, we've occasionally observed cases where JetStream 2 didn't complete and was stuck on the "segmentation" benchmark. We've only observed this on 13th gen Intel processors, but it seems to be due to a race condition in the JS code. The console shows two errors:

    Uncaught TypeError: AsyncTaskWorker._queue.pop(...) in segmentation.js:542, is not a fucntion at segmentation.js:542:49
    Uncaught (in promise) Uncaught TypeError: AsyncTaskWorker._queue.pop(...) is not a function in JetStreamDriver.js:208

Here is a snippet of code from near segmentation.js:542:

    setTimeout(function () {
        var worker = AsyncTaskWorker._findAvailableWorker();
        if (worker)
            AsyncTaskWorker._queue.pop()(worker);
    }, 50);

This function attempts to find an available worker and set it to work. However, there is no guarantee that AsyncTaskWorker._queue is nonempty, so it is possible that .pop() returns undefined. This unhandled error would be harmless, except that JetStreamDriver.js attached a global exception handler:

    window.onerror = top.currentReject;

The currentReject function rejects the Promise for the current benchmark, which prevents completion.

-- 
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/20230915/b95cc9a6/attachment.htm>


More information about the webkit-unassigned mailing list