[webkit-reviews] review granted: [Bug 215239] Always suspend IDB work when network process is prepared to suspend : [Attachment 406119] Patch
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Fri Aug 7 12:56:14 PDT 2020
Geoffrey Garen <ggaren at apple.com> has granted Sihui Liu <sihui_liu at apple.com>'s
request for review:
Bug 215239: Always suspend IDB work when network process is prepared to suspend
https://bugs.webkit.org/show_bug.cgi?id=215239
Attachment 406119: Patch
https://bugs.webkit.org/attachment.cgi?id=406119&action=review
--- Comment #3 from Geoffrey Garen <ggaren at apple.com> ---
Comment on attachment 406119
--> https://bugs.webkit.org/attachment.cgi?id=406119
Patch
View in context: https://bugs.webkit.org/attachment.cgi?id=406119&action=review
r=me
It's a little unfortunate that all transactions started before suspension will
be aborted, in contrast to transactions started after suspension, which will
just be paused and delayed. Is there a way to delay in progress transactions
instead of aborting them? I guess not, since an in progress transaction holds a
database file lock? Would it be crazy to abort a transaction without signaling
an error and then put it back in the queue to try again when we resume?
> Source/WebKit/ChangeLog:9
> + We do not suspend IDB work in network process when there is ongoing
transaction because network process is
network process => the network process
ongoing transaction => an ongoing transaction
network process => the network process
> Source/WebKit/ChangeLog:10
> + going to ask UI process to hold process assertion for it. However,
it is possible that the request from network
UI process => the UI process
process assertion => a process assertion
network => the network
> Source/WebKit/ChangeLog:11
> + process does not reach UI process before UI process thinks think it
is Okay to put network process to suspend.
UI process => the UI process
UI process => the UI process
thinks think -> thinks
Okay => okay
put network process to suspend => suspend the network process
I believe it's runningboard, and not the UI process, that ultimately suspends
the network process. So, I think this comment should talk about runningboard.
Or maybe you could talk about the UI process dropping its foreground assertion
on the network process? Is that what ultimately triggers runningboard to
suspend the network process?
> Source/WebKit/ChangeLog:12
> + In this case, IDB in network process can continue its transaction,
holding file locks, and network process will
network process => the network process
network process => the network process
> Source/WebKit/ChangeLog:13
> + be killed when it becomes suspened. Network process crash can cause
worse result than aborting ongoing
Network process crash => A network process crash
worse result => a worse result
> Source/WebKit/ChangeLog:15
> + let's just suspend IDB work when network process receives
prepareToSuspend.
network process => the network process
More information about the webkit-reviews
mailing list