RESOLVED FIXED Bug 152643
[GTK] Several IndexedDB tests failing
https://bugs.webkit.org/show_bug.cgi?id=152643
Summary [GTK] Several IndexedDB tests failing
Michael Catanzaro
Reported 2016-01-01 16:17:39 PST
The following tests: imported/w3c/indexeddb/idbcursor-advance.htm imported/w3c/indexeddb/idbcursor-continue.htm imported/w3c/indexeddb/idbcursor-direction-index.htm imported/w3c/indexeddb/idbindex_get2.htm imported/w3c/indexeddb/idbindex_getKey2.htm Have been failing on the GTK port since they were added in r189264, but these tests pass on the Mac port. --- /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/imported/w3c/indexeddb/idbcursor-advance-expected.txt +++ /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/imported/w3c/indexeddb/idbcursor-advance-actual.txt @@ -1,8 +1,8 @@ -FAIL IDBCursor.advance() - advances assert_unreached: unexpected error (UnknownError) Reached unreachable code -FAIL IDBCursor.advance() - advances backwards assert_unreached: unexpected error (UnknownError) Reached unreachable code +FAIL IDBCursor.advance() - advances assert_equals: expected 1 but got 4 +FAIL IDBCursor.advance() - advances backwards assert_equals: expected 1 but got 4 FAIL IDBCursor.advance() - skip far forward assert_unreached: unexpected error (UnknownError) Reached unreachable code -PASS IDBCursor.advance() - within range +FAIL IDBCursor.advance() - within range assert_equals: expected 4 but got 1 PASS IDBCursor.advance() - within single key range -PASS IDBCursor.advance() - within single key range, with several results +FAIL IDBCursor.advance() - within single key range, with several results assert_equals: expected 1 but got 4 --- /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/imported/w3c/indexeddb/idbcursor-continue-expected.txt +++ /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/imported/w3c/indexeddb/idbcursor-continue-actual.txt @@ -1,8 +1,8 @@ -PASS IDBCursor.continue() - continues -PASS IDBCursor.continue() - with given key +FAIL IDBCursor.continue() - continues assert_equals: expected 1 but got 4 +FAIL IDBCursor.continue() - with given key assert_equals: expected 1 but got 4 PASS IDBCursor.continue() - skip far forward -PASS IDBCursor.continue() - within range +FAIL IDBCursor.continue() - within range assert_equals: expected 1 but got 4 PASS IDBCursor.continue() - within single key range -PASS IDBCursor.continue() - within single key range, with several results +FAIL IDBCursor.continue() - within single key range, with several results assert_equals: expected 1 but got 4 --- /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/imported/w3c/indexeddb/idbcursor-direction-index-expected.txt +++ /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/imported/w3c/indexeddb/idbcursor-direction-index-actual.txt @@ -1,6 +1,6 @@ -PASS IDBCursor direction - index - next -PASS IDBCursor direction - index - prev -PASS IDBCursor direction - index - nextunique -PASS IDBCursor direction - index - prevunique +FAIL IDBCursor direction - index - next assert_equals: cursor.value expected "Bob:1" but got "Bob:2" +FAIL IDBCursor direction - index - prev assert_equals: cursor.value expected "Bob:2" but got "Bob:1" +FAIL IDBCursor direction - index - nextunique assert_equals: cursor.value expected "Bob:1" but got "Bob:2" +FAIL IDBCursor direction - index - prevunique assert_equals: cursor.value expected "Bob:1" but got "Bob:2" --- /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/imported/w3c/indexeddb/idbindex_get2-expected.txt +++ /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/imported/w3c/indexeddb/idbindex_get2-actual.txt @@ -1,3 +1,3 @@ -PASS IDBIndex.get() - returns the record where the index contains duplicate values +FAIL IDBIndex.get() - returns the record where the index contains duplicate values assert_equals: expected 1 but got 2 --- /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/imported/w3c/indexeddb/idbindex_getKey2-expected.txt +++ /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/imported/w3c/indexeddb/idbindex_getKey2-actual.txt @@ -1,3 +1,3 @@ -PASS IDBIndex.getKey() - returns the record's primary key where the index contains duplicate values +FAIL IDBIndex.getKey() - returns the record's primary key where the index contains duplicate values assert_equals: expected 1 but got 2
Attachments
Brady Eidson
Comment 1 2016-01-01 21:25:42 PST
Unless you have critical need to get them working ASAP, I would hold off worrying about it. The WK1 work on Modern IDB is almost done, and the design is such that the WK2 work should only be a few additional weeks. I strongly suspect these will reliably pass on all ports in 1-2 months.
Michael Catanzaro
Comment 2 2016-01-10 14:38:06 PST
(In reply to comment #1) > Unless you have critical need to get them working ASAP, I would hold off > worrying about it. No critical need, just trying to make sure we have bugs filed for failing tests. (The goal is to get our bots to green!)
Michael Catanzaro
Comment 3 2016-01-30 08:36:02 PST
Some more tests to investigate once ModernIDB is finished.... storage/indexeddb/clone-exception.html has been failing since r194625: https://build.webkit.org/results/GTK%20Linux%2064-bit%20Release%20(Tests)/r195891%20(13442)/storage/indexeddb/clone-exception-diff.txt storage/indexeddb/connection-leak.html has been failing since r195181: https://build.webkit.org/results/GTK%20Linux%2064-bit%20Release%20(Tests)/r195891%20(13442)/storage/indexeddb/connection-leak-diff.txt Looks like the expectation file just needs updated on that one, since the database names are no longer logged. storage/indexeddb/database-wrapper.html is failing since r194781: https://build.webkit.org/results/GTK%20Linux%2064-bit%20Release%20(Tests)/r195891%20(13442)/storage/indexeddb/database-wrapper-diff.txt And storage/indexeddb/keypath-basics.html is failing since r192012-r192023 (probably r192014): https://build.webkit.org/results/GTK%20Linux%2064-bit%20Release%20(Tests)/r195891%20(13442)/storage/indexeddb/keypath-basics-diff.txt I also found a lot of IndexedDB tests that were improperly skipped on the GTK port without any corresponding bug report. I am adding this bug to them in the expectations file (but feel free to split these out into separate bugs, of course). There are rather a lot of these. All of these expectations are GTK-specific, though it seems unlikely that many of these failures are really GTK-specific, and they are skips, which doesn't seem like the right expectation (some are reported to be timeouts and crashes): # Blink tests with unexplained timeouts storage/indexeddb/database-deletepending-flag.html [ Skip ] storage/indexeddb/exceptions.html [ Skip ] storage/indexeddb/intversion-gated-on-delete.html [ Skip ] storage/indexeddb/intversion-long-queue.html [ Skip ] storage/indexeddb/open-ordering.html [ Skip ] storage/indexeddb/transaction-basics.html [ Skip ] storage/indexeddb/transaction-coordination-within-database.html [ Skip ] # Blink tests with non-trivial text failures. storage/indexeddb/createIndex-after-failure.html [ Skip ] storage/indexeddb/create-object-store-options.html [ Skip ] storage/indexeddb/cursor-advance.html [ Skip ] storage/indexeddb/cursor-basics.html [ Skip ] storage/indexeddb/cursor-continue.html [ Skip ] storage/indexeddb/cursor-continue-validity.html [ Skip ] storage/indexeddb/cursor-index-delete.html [ Skip ] storage/indexeddb/cursor-key-order.html [ Skip ] storage/indexeddb/cursor-leak.html [ Skip ] # Missing needed WKTR feature? storage/indexeddb/cursor-overloads.html [ Skip ] storage/indexeddb/cursor-primary-key-order.html [ Skip ] storage/indexeddb/cursor-request-cycle.html [ Skip ] # Missing needed WKTR feature? storage/indexeddb/cursor-update.html [ Skip ] storage/indexeddb/database-close.html [ Skip ] storage/indexeddb/database-closepending-flag.html [ Skip ] storage/indexeddb/database-quota.html [ Skip ] storage/indexeddb/deleteIndex.html [ Skip ] storage/indexeddb/delete-in-upgradeneeded-close-in-open-success.html [ Skip ] storage/indexeddb/delete-in-upgradeneeded-close-in-versionchange.html [ Skip ] storage/indexeddb/deletedatabase-blocked.html [ Skip ] storage/indexeddb/deletedatabase-delayed-by-open-and-versionchange.html [ Skip ] storage/indexeddb/deletedatabase-delayed-by-versionchange.html [ Skip ] storage/indexeddb/deletedatabase-not-blocked.html [ Skip ] storage/indexeddb/deleted-objects.html [ Skip ] storage/indexeddb/duplicates.html [ Skip ] # Difference between null + undefined storage/indexeddb/events.html [ Skip ] storage/indexeddb/factory-cmp.html [ Skip ] storage/indexeddb/factory-deletedatabase.html [ Skip ] storage/indexeddb/get-keyrange.html [ Skip ] storage/indexeddb/index-basics.html [ Skip ] # Difference between null + undefined storage/indexeddb/index-duplicate-keypaths.html [ Skip ] storage/indexeddb/index-multientry.html [ Skip ] storage/indexeddb/index-population.html [ Skip ] storage/indexeddb/index-unique.html [ Skip ] storage/indexeddb/intversion-blocked.html [ Skip ] storage/indexeddb/intversion-close-between-events.html [ Skip ] storage/indexeddb/intversion-open-in-upgradeneeded.html [ Skip ] storage/indexeddb/intversion-open-with-version.html [ Skip ] # INTMAX exposed to script as database version storage/indexeddb/intversion-pending-version-changes-ascending.html [ Skip ] storage/indexeddb/intversion-pending-version-changes-descending.html [ Skip ] storage/indexeddb/intversion-pending-version-changes-same.html [ Skip ] storage/indexeddb/intversion-two-opens-no-versions.html [ Skip ] # INTMAX exposed to script as database version storage/indexeddb/intversion-upgrades.html [ Skip ] storage/indexeddb/key-generator.html [ Skip ] storage/indexeddb/key-type-binary.html [ Skip ] storage/indexeddb/lazy-index-population.html [ Skip ] storage/indexeddb/metadata.html [ Skip ] storage/indexeddb/noblobs.html [ Skip ] # Missing DRT file/blob support storage/indexeddb/objectstore-autoincrement.html [ Skip ] storage/indexeddb/objectstore-basics.html [ Skip ] storage/indexeddb/odd-strings.html [ Skip ] storage/indexeddb/optional-arguments.html [ Skip ] storage/indexeddb/persistence.html [ Skip ] storage/indexeddb/request-leak.html [ Skip ] # Missing WKTR support? GC? storage/indexeddb/setversion-blocked-by-versionchange-close.html [ Skip ] storage/indexeddb/setversion-not-blocked.html [ Skip ] storage/indexeddb/structured-clone.html [ Skip ] # Missing DRT file/blob support storage/indexeddb/transaction-and-objectstore-calls.html [ Skip ] storage/indexeddb/transaction-error.html [ Skip ] storage/indexeddb/transaction-scope-sequencing.html [ Skip ] # Blink tests that crash the WebProcess. storage/indexeddb/cursor-cast.html [ Skip ] # We don't currently support indexeddb in workers storage/indexeddb/basics-workers.html [ Skip ] storage/indexeddb/cursor-advance-workers.html [ Skip ] storage/indexeddb/deletedatabase-delayed-by-open-and-versionchange-workers.html [ Skip ] storage/indexeddb/dont-commit-on-blocked.html [ Skip ] storage/indexeddb/factory-basics-workers.html [ Skip ] storage/indexeddb/index-basics-workers.html [ Skip ] storage/indexeddb/objectstore-basics-workers.html [ Skip ] storage/indexeddb/open-twice-workers.html [ Skip ] storage/indexeddb/pending-activity-workers.html [ Skip ] storage/indexeddb/pending-version-change-on-exit.html [ Skip ] storage/indexeddb/pending-version-change-stuck-works-with-terminate.html [ Skip ] storage/indexeddb/pending-version-change-stuck.html [ Skip ] storage/indexeddb/transaction-complete-workers.html [ Skip ] storage/indexeddb/unprefix-workers.html [ Skip ] http/tests/security/cross-origin-worker-indexeddb-allowed.html [ Skip ] http/tests/security/cross-origin-worker-indexeddb.html [ Skip ]
Michael Catanzaro
Comment 4 2016-02-06 10:01:45 PST
Adding storage/indexeddb/mozilla/cursor-update-updates-indexes.html to this bug. It is flaky; first known failure is r184851 which is the revision right after we enabled IndexedDB. --- /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/storage/indexeddb/mozilla/cursor-update-updates-indexes-expected.txt +++ /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/storage/indexeddb/mozilla/cursor-update-updates-indexes-actual.txt @@ -103,28 +103,7 @@ indexedDB.deleteDatabase(dbname) info = objectStoreInfo[i]; indexedDB.open(dbname) -setupObjectStoreAndCreateIndex(): -db = event.target.result -objectStore = db.createObjectStore(info.name, info.options); -index = objectStore.createIndex('data_index', 'data', { unique: false }); -uniqueIndex = objectStore.createIndex('unique_data_index', 'data', { unique: true }); -request = objectStore.add(info.entry); -trans = db.transaction(info.name, 'readwrite') -trans.oncomplete = test -objectStore = trans.objectStore(info.name) -index = objectStore.index('data_index') -uniqueIndex = objectStore.index('unique_data_index') -request = objectStore.openCursor(); -cursor = request.result; -value = cursor.value; -value.data = secondValue; -request = cursor.update(value); -request = index.get(secondValue); -PASS value.data is event.target.result.data -request = uniqueIndex.get(secondValue); -PASS value.data is event.target.result.data -i++; -db.close() +FAIL Error function called unexpectedly: (UnknownError) undefined PASS successfullyParsed is true TEST COMPLETE
Brady Eidson
Comment 5 2016-02-25 15:16:05 PST
Editing the blocking relationship - Fixing these on GTK doesn't block the Modern IDB bug, but rather the Modern IDB bug blocks exploring these failures. As of a few hours ago, Modern IDB is enabled by default in WK2 and Legacy IDB no longer exists. It's possible these "just work" now - Somebody should give it a look!
Michael Catanzaro
Comment 6 2016-04-09 10:30:25 PDT
The following tests are now passing: webkit.org/b/152643 imported/w3c/web-platform-tests/IndexedDB/idbcursor-advance.htm [ Failure ] webkit.org/b/152643 imported/w3c/web-platform-tests/IndexedDB/idbcursor-continue.htm [ Failure ] webkit.org/b/152643 imported/w3c/web-platform-tests/IndexedDB/idbcursor-direction-index.htm [ Failure ] webkit.org/b/152643 imported/w3c/web-platform-tests/IndexedDB/idbindex_get2.htm [ Failure ] webkit.org/b/152643 imported/w3c/web-platform-tests/IndexedDB/idbindex_getKey2.htm [ Failure ] webkit.org/b/152643 storage/indexeddb/clone-exception.html [ Failure ] webkit.org/b/152643 storage/indexeddb/database-wrapper.html [ Failure ] webkit.org/b/152643 storage/indexeddb/keypath-basics.html [ Failure ] webkit.org/b/152643 storage/indexeddb/mozilla/cursor-update-updates-indexes.html [ Failure Pass ] This test is the only one that is currently failing: webkit.org/b/152643 storage/indexeddb/connection-leak.html [ Failure ] The output is: doFirstOpen(): request = indexedDB.open(dbname, 1) sawUpgradeNeeded1 = false onUpgradeNeeded1(): sawUpgradeNeeded1 = true onOpenSuccess1(): PASS sawUpgradeNeeded1 is true db = request.result db.close() doSecondOpen(): request = indexedDB.open(dbname, 1) onOpenSuccess2(): db = request.result db = null request = null Run GC outside of request's callback via setTimeout() window.gc() doThirdOpen(): request = indexedDB.open(dbname, 2) sawUpgradeNeeded3 = false FAIL onblocked called unexpectedly. oldVersion = 1, newVersion = 2 PASS successfullyParsed is true TEST COMPLETE I am also unskipping the huge list of skipped IndexedDB tests, so we can see which ones are fixed and which are still broken. Updated expectations in r199270.
Brady Eidson
Comment 7 2016-04-09 10:46:38 PDT
(In reply to comment #6) > The following tests are now passing: >... > This test is the only one that is currently failing: > > webkit.org/b/152643 storage/indexeddb/connection-leak.html [ Failure ] This one relies on some GC internals thing that V8 had when Google was in the project. IIRC, it's skipped on all the mac platforms, too.
Michael Catanzaro
Comment 8 2016-04-09 11:07:25 PDT
(In reply to comment #7) > This one relies on some GC internals thing that V8 had when Google was in > the project. > > IIRC, it's skipped on all the mac platforms, too. Great, it is indeed. I removed the GTK expectation in r199271. Now, all the tests reported as failing in this bug have been fixed. I see a couple new failures after unskipping that huge amount of IndexedDB tests, but let's use a new bug to track them: bug #156438.
Note You need to log in before you can comment on or make changes to this bug.