Title: [255329] trunk
Revision
255329
Author
[email protected]
Date
2020-01-28 17:39:47 -0800 (Tue, 28 Jan 2020)

Log Message

REGRESSION (r252064): [ Mac iOS ] storage/websql/statement-error-callback.html is timing out flakily
https://bugs.webkit.org/show_bug.cgi?id=206291
<rdar://problem/58606666>

Reviewed by Maciej Stachowiak.

Source/WebCore:

I found that extending the lifetime of the SQLTransaction by capturing protectedThis in the event loop
task was the source of the flaky timeouts & crashes. Queueing this event loop task in
notifyDatabaseThreadIsShuttingDown() is actually not necessary because calling callErrorCallbackDueToInterruption()
directly would schedule the event loop task for us. Also, in callErrorCallbackDueToInterruption(),
the event loop task only keeps the error callback alive, not just the SQLTransaction object.

No new tests, unskipped existing test.

* Modules/webdatabase/SQLTransaction.cpp:
(WebCore::SQLTransaction::notifyDatabaseThreadIsShuttingDown):

LayoutTests:

Unskip test that is no longer flaky.

* platform/ios/TestExpectations:
* platform/mac/TestExpectations:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (255328 => 255329)


--- trunk/LayoutTests/ChangeLog	2020-01-29 00:55:22 UTC (rev 255328)
+++ trunk/LayoutTests/ChangeLog	2020-01-29 01:39:47 UTC (rev 255329)
@@ -1,3 +1,16 @@
+2020-01-28  Chris Dumez  <[email protected]>
+
+        REGRESSION (r252064): [ Mac iOS ] storage/websql/statement-error-callback.html is timing out flakily
+        https://bugs.webkit.org/show_bug.cgi?id=206291
+        <rdar://problem/58606666>
+
+        Reviewed by Maciej Stachowiak.
+
+        Unskip test that is no longer flaky.
+
+        * platform/ios/TestExpectations:
+        * platform/mac/TestExpectations:
+
 2020-01-28  Jacob Uphoff  <[email protected]>
 
         Discovered some expected timeouts on the test history, changing expectations to expect the timeouts to pass.

Modified: trunk/LayoutTests/platform/ios/TestExpectations (255328 => 255329)


--- trunk/LayoutTests/platform/ios/TestExpectations	2020-01-29 00:55:22 UTC (rev 255328)
+++ trunk/LayoutTests/platform/ios/TestExpectations	2020-01-29 01:39:47 UTC (rev 255329)
@@ -3459,8 +3459,6 @@
 
 webkit.org/b/200043 fast/text/international/system-language/navigator-language [ Pass Failure ]
 
-webkit.org/b/206291 storage/websql/statement-error-callback.html [ Pass Timeout ]
-
 webkit.org/b/203222 svg/wicd/rightsizing-grid.xhtml [ Pass Failure ]
 
 webkit.org/b/206864 http/tests/workers/service/basic-timeout.https.html [ Pass Failure ]
@@ -3474,4 +3472,4 @@
 webkit.org/b/206897 [ Debug ] imported/w3c/web-platform-tests/css/css-backgrounds/background-size/vector/tall--auto-32px--nonpercent-width-omitted-height-viewbox.html [ Skip ]
 webkit.org/b/206897 [ Debug ] imported/w3c/web-platform-tests/css/css-backgrounds/background-size/vector/tall--auto-32px--nonpercent-width-percent-height.html [ Skip ]
 webkit.org/b/206897 [ Debug ] imported/w3c/web-platform-tests/css/css-backgrounds/background-size/vector/tall--auto-32px--nonpercent-width-percent-height-viewbox.html [ Skip ]
-webkit.org/b/206897 [ Debug ] imported/w3c/web-platform-tests/css/css-backgrounds/background-size/vector/tall--auto-32px--nonpercent-width-omitted-height.html [ Skip ]
\ No newline at end of file
+webkit.org/b/206897 [ Debug ] imported/w3c/web-platform-tests/css/css-backgrounds/background-size/vector/tall--auto-32px--nonpercent-width-omitted-height.html [ Skip ]

Modified: trunk/LayoutTests/platform/mac/TestExpectations (255328 => 255329)


--- trunk/LayoutTests/platform/mac/TestExpectations	2020-01-29 00:55:22 UTC (rev 255328)
+++ trunk/LayoutTests/platform/mac/TestExpectations	2020-01-29 01:39:47 UTC (rev 255329)
@@ -1934,8 +1934,6 @@
 webkit.org/b/77568 [ Sierra HighSierra Mojave ] fast/text/locale-shaping.html [ ImageOnlyFailure ]
 webkit.org/b/77568 [ Sierra HighSierra Mojave ] fast/text/locale-shaping-complex.html [ ImageOnlyFailure ]
 
-webkit.org/b/206291 storage/websql/statement-error-callback.html [ Pass Timeout ]
-
 webkit.org/b/203222 svg/wicd/rightsizing-grid.xhtml [ Pass Failure ]
 
 webkit.org/b/206682 [ Debug ] animations/play-state-paused.html [ Pass Failure ]

Modified: trunk/Source/WebCore/ChangeLog (255328 => 255329)


--- trunk/Source/WebCore/ChangeLog	2020-01-29 00:55:22 UTC (rev 255328)
+++ trunk/Source/WebCore/ChangeLog	2020-01-29 01:39:47 UTC (rev 255329)
@@ -1,3 +1,22 @@
+2020-01-28  Chris Dumez  <[email protected]>
+
+        REGRESSION (r252064): [ Mac iOS ] storage/websql/statement-error-callback.html is timing out flakily
+        https://bugs.webkit.org/show_bug.cgi?id=206291
+        <rdar://problem/58606666>
+
+        Reviewed by Maciej Stachowiak.
+
+        I found that extending the lifetime of the SQLTransaction by capturing protectedThis in the event loop
+        task was the source of the flaky timeouts & crashes. Queueing this event loop task in
+        notifyDatabaseThreadIsShuttingDown() is actually not necessary because calling callErrorCallbackDueToInterruption()
+        directly would schedule the event loop task for us. Also, in callErrorCallbackDueToInterruption(),
+        the event loop task only keeps the error callback alive, not just the SQLTransaction object.
+
+        No new tests, unskipped existing test.
+
+        * Modules/webdatabase/SQLTransaction.cpp:
+        (WebCore::SQLTransaction::notifyDatabaseThreadIsShuttingDown):
+
 2020-01-28  Tim Horton  <[email protected]>
 
         macCatalyst: Triple clicking to select a sentence results in an empty selection

Modified: trunk/Source/WebCore/Modules/webdatabase/SQLTransaction.cpp (255328 => 255329)


--- trunk/Source/WebCore/Modules/webdatabase/SQLTransaction.cpp	2020-01-29 00:55:22 UTC (rev 255328)
+++ trunk/Source/WebCore/Modules/webdatabase/SQLTransaction.cpp	2020-01-29 01:39:47 UTC (rev 255329)
@@ -128,9 +128,7 @@
 void SQLTransaction::notifyDatabaseThreadIsShuttingDown()
 {
     callOnMainThread([this, protectedThis = makeRef(*this)]() mutable {
-        m_database->document().eventLoop().queueTask(TaskSource::Networking, [this, protectedThis = protectedThis.copyRef()]() mutable {
-            callErrorCallbackDueToInterruption();
-        });
+        callErrorCallbackDueToInterruption();
     });
 
     m_backend.notifyDatabaseThreadIsShuttingDown();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to