Changeset 241986 in webkit


Ignore:
Timestamp:
Feb 22, 2019 9:05:03 PM (5 years ago)
Author:
rniwa@webkit.org
Message:

Crash in SWServerJobQueue::runNextJobSynchronously
https://bugs.webkit.org/show_bug.cgi?id=194974

Reviewed by Geoffrey Garen.

We suspect the crash is happening due to m_jobQueue being empty in runNextJobSynchronously
or there is a timer heap corruption again :(

Exit early when m_jobQueue is empty. Also add a debug assert that this should never happen
but convert an existing release assert to a debug assert since this appears to be hitting
too frequently in wild.

  • workers/service/server/SWServerJobQueue.cpp:

(WebCore::SWServerJobQueue::runNextJobSynchronously):

Location:
trunk/Source/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r241984 r241986  
     12019-02-22  Ryosuke Niwa  <rniwa@webkit.org>
     2
     3        Crash in SWServerJobQueue::runNextJobSynchronously
     4        https://bugs.webkit.org/show_bug.cgi?id=194974
     5
     6        Reviewed by Geoffrey Garen.
     7
     8        We suspect the crash is happening due to m_jobQueue being empty in runNextJobSynchronously
     9        or there is a timer heap corruption again :(
     10
     11        Exit early when m_jobQueue is empty. Also add a debug assert that this should never happen
     12        but convert an existing release assert to a debug assert since this appears to be hitting
     13        too frequently in wild.
     14
     15        * workers/service/server/SWServerJobQueue.cpp:
     16        (WebCore::SWServerJobQueue::runNextJobSynchronously):
     17
    1182019-02-22  Simon Fraser  <simon.fraser@apple.com>
    219
  • trunk/Source/WebCore/workers/service/server/SWServerJobQueue.cpp

    r240727 r241986  
    235235void SWServerJobQueue::runNextJobSynchronously()
    236236{
     237    ASSERT(!m_jobQueue.isEmpty());
     238    if (m_jobQueue.isEmpty())
     239        return;
     240
    237241    auto& job = firstJob();
    238242    switch (job.type) {
     
    248252    }
    249253
    250     RELEASE_ASSERT_NOT_REACHED();
     254    ASSERT_NOT_REACHED();
    251255}
    252256
Note: See TracChangeset for help on using the changeset viewer.