Bug 190178

Summary: Add release assertion to ensure m_owningPointerForClose is null in UniqueIDBDatabase::invokeOperationAndTransactionTimer()
Product: WebKit Reporter: Sihui Liu <sihui_liu>
Component: New BugsAssignee: Sihui Liu <sihui_liu>
Severity: Normal CC: achristensen, alecflett, beidson, cdumez, commit-queue, ews-watchlist, jsbell, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Description Flags
Patch none

Description Sihui Liu 2018-10-01 17:12:38 PDT
As in rdar://problem/44902833, RELEASE_ASSERT(!m_owningPointerForClose) in UniqueIDBDatabase::scheduleShutdownForClose() frequently gets hit, which means m_owningPointerForClose is already acquired for close and we should not reach scheduleShutdownForClose. 
Since scheduleShutdownForClose() is fired on timer, it's hard to tell which function dispatches it a second time from the crash log.

The added release assertions in the invoke function should help reveal the probblematic code path.
Comment 1 Sihui Liu 2018-10-01 17:17:17 PDT
Created attachment 351325 [details]
Comment 2 Chris Dumez 2018-10-02 08:57:44 PDT
Comment on attachment 351325 [details]

View in context: https://bugs.webkit.org/attachment.cgi?id=351325&action=review

> Source/WebCore/ChangeLog:8
> +        This would help debug rdar://problem/44902833.

How? I do not think we report to the user Network process crashes so they are unlikely to file a radar with reproduction case (since they won't know about the crash).
Comment 3 Chris Dumez 2018-10-02 09:18:20 PDT
Comment on attachment 351325 [details]

Never mind. Getting the automated crash reports will suffice.
Comment 4 WebKit Commit Bot 2018-10-02 09:46:13 PDT
Comment on attachment 351325 [details]

Clearing flags on attachment: 351325

Committed r236747: <https://trac.webkit.org/changeset/236747>
Comment 5 WebKit Commit Bot 2018-10-02 09:46:14 PDT
All reviewed patches have been landed.  Closing bug.
Comment 6 Radar WebKit Bug Importer 2018-10-02 09:47:32 PDT