Changeset 228609 in webkit


Ignore:
Timestamp:
Feb 19, 2018 12:07:57 AM (6 years ago)
Author:
commit-queue@webkit.org
Message:

REGRESSION(r219298): RELEASE_ASSERT(!m_owningPointerForClose) fails in WebCore::IDBServer::UniqueIDBDatabase::scheduleShutdownForClose
https://bugs.webkit.org/show_bug.cgi?id=174354
<rdar://problem/33294987>

Patch by Fujii Hironori <Fujii Hironori> on 2018-02-19
Reviewed by Michael Catanzaro.

Source/WebCore:

UniqueIDBDatabase::invokeOperationAndTransactionTimer was called
even after m_owningPointerForClose was set in
UniqueIDBDatabase::didDeleteBackingStore.

No new tests (Covered by existing tests).

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::didDeleteBackingStore):
Do not start deleting the UniqueIDBDatabase. Just call invokeOperationAndTransactionTimer.
(WebCore::IDBServer::UniqueIDBDatabase::invokeOperationAndTransactionTimer):
Assert m_owningPointerForClose is null.

LayoutTests:

  • platform/gtk/TestExpectations:

Unmarked imported/w3c/IndexedDB-private-browsing/idbfactory_open.html.

  • platform/ios-wk2/TestExpectations:

Unmarked imported/w3c/IndexedDB-private-browsing/idbfactory_open12.html.

  • platform/mac/TestExpectations: Ditto.
  • platform/wpe/TestExpectations: Unmarked

imported/w3c/IndexedDB-private-browsing/idbfactory_open.html and
imported/w3c/IndexedDB-private-browsing/idbfactory_open12.html.

Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r228608 r228609  
     12018-02-19  Fujii Hironori  <Hironori.Fujii@sony.com>
     2
     3        REGRESSION(r219298): RELEASE_ASSERT(!m_owningPointerForClose) fails in WebCore::IDBServer::UniqueIDBDatabase::scheduleShutdownForClose
     4        https://bugs.webkit.org/show_bug.cgi?id=174354
     5        <rdar://problem/33294987>
     6
     7        Reviewed by Michael Catanzaro.
     8
     9        * platform/gtk/TestExpectations:
     10        Unmarked imported/w3c/IndexedDB-private-browsing/idbfactory_open.html.
     11        * platform/ios-wk2/TestExpectations:
     12        Unmarked imported/w3c/IndexedDB-private-browsing/idbfactory_open12.html.
     13        * platform/mac/TestExpectations: Ditto.
     14        * platform/wpe/TestExpectations: Unmarked
     15        imported/w3c/IndexedDB-private-browsing/idbfactory_open.html and
     16        imported/w3c/IndexedDB-private-browsing/idbfactory_open12.html.
     17
    1182018-02-18  Philippe Normand  <pnormand@igalia.com>
    219
  • trunk/LayoutTests/platform/gtk/TestExpectations

    r228608 r228609  
    18741874webkit.org/b/174353 media/video-restricted-invisible-autoplay-not-allowed.html [ Crash Pass ]
    18751875
    1876 webkit.org/b/174354 imported/w3c/IndexedDB-private-browsing/idbfactory_open.html [ Crash Pass ]
    1877 
    18781876webkit.org/b/175933 media/audio-controls-timeline-in-media-document.html [ Pass Failure ]
    18791877
  • trunk/LayoutTests/platform/ios-wk2/TestExpectations

    r228541 r228609  
    12871287webkit.org/b/171985 [ Release ] workers/bomb.html [ Pass Timeout ]
    12881288
    1289 webkit.org/b/174949 imported/w3c/IndexedDB-private-browsing/idbfactory_open12.html [ Skip ]
    1290 
    12911289webkit.org/b/175939 [ Debug ] editing/execCommand/forward-delete-read-write-canvas.html [ Skip ]
    12921290
  • trunk/LayoutTests/platform/mac/TestExpectations

    r228526 r228609  
    16631663[ HighSierra+ ] imported/w3c/web-platform-tests/XMLHttpRequest/send-blob-with-no-mime-type.html [ Failure ]
    16641664
    1665 # <rdar://problem/33555052>
    1666 [ HighSierra+ ] imported/w3c/IndexedDB-private-browsing/idbfactory_open12.html [ Skip ]
    1667 
    16681665# <rdar://problem/33731086>
    16691666[ HighSierra+ ] media/modern-media-controls/time-labels-support/elapsed-time.html [ Skip ]
  • trunk/LayoutTests/platform/wpe/TestExpectations

    r228560 r228609  
    417417# Flaky
    418418webkit.org/b/177530 imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-header-allowed.htm [ Pass Failure ]
    419 
    420 webkit.org/b/174354 imported/w3c/IndexedDB-private-browsing/idbfactory_open.html [ Crash Pass ]
    421 webkit.org/b/174354 imported/w3c/IndexedDB-private-browsing/idbfactory_open12.html [ Crash Pass ]
    422419
    423420Bug(WPE) fast/attachment [ Skip ]
  • trunk/Source/WebCore/ChangeLog

    r228607 r228609  
     12018-02-19  Fujii Hironori  <Hironori.Fujii@sony.com>
     2
     3        REGRESSION(r219298): RELEASE_ASSERT(!m_owningPointerForClose) fails in WebCore::IDBServer::UniqueIDBDatabase::scheduleShutdownForClose
     4        https://bugs.webkit.org/show_bug.cgi?id=174354
     5        <rdar://problem/33294987>
     6
     7        Reviewed by Michael Catanzaro.
     8
     9        UniqueIDBDatabase::invokeOperationAndTransactionTimer was called
     10        even after m_owningPointerForClose was set in
     11        UniqueIDBDatabase::didDeleteBackingStore.
     12
     13        No new tests (Covered by existing tests).
     14
     15        * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
     16        (WebCore::IDBServer::UniqueIDBDatabase::didDeleteBackingStore):
     17        Do not start deleting the UniqueIDBDatabase. Just call invokeOperationAndTransactionTimer.
     18        (WebCore::IDBServer::UniqueIDBDatabase::invokeOperationAndTransactionTimer):
     19        Assert m_owningPointerForClose is null.
     20
    1212018-02-18  Yoshiaki Jitsukawa  <Yoshiaki.Jitsukawa@sony.com>
    222
  • trunk/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp

    r228218 r228609  
    333333
    334334    m_deleteBackingStoreInProgress = false;
    335 
    336     if (m_clientClosePendingDatabaseConnections.isEmpty() && m_pendingOpenDBRequests.isEmpty()) {
    337         // This UniqueIDBDatabase is now ready to be deleted.
    338         ASSERT(m_databaseQueue.isEmpty());
    339         ASSERT(m_databaseReplyQueue.isEmpty());
    340         m_databaseQueue.kill();
    341 
    342         RELEASE_ASSERT(!m_owningPointerForClose);
    343         m_owningPointerForClose = m_server.closeAndTakeUniqueIDBDatabase(*this);
    344         ASSERT(m_owningPointerForClose);
    345 
    346         postDatabaseTaskReply(createCrossThreadTask(*this, &UniqueIDBDatabase::didShutdownForClose));
    347         return;
    348     }
    349 
    350335    invokeOperationAndTransactionTimer();
    351336}
     
    15481533    LOG(IndexedDB, "UniqueIDBDatabase::invokeOperationAndTransactionTimer()");
    15491534    ASSERT(!m_hardClosedForUserDelete);
     1535    ASSERT(!m_owningPointerForClose);
    15501536
    15511537    if (!m_operationAndTransactionTimer.isActive())
Note: See TracChangeset for help on using the changeset viewer.