Summary: | [GTK] Several IndexedDB tests failing | ||
---|---|---|---|
Product: | WebKit | Reporter: | Michael Catanzaro <mcatanzaro> |
Component: | WebKit2 | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED FIXED | ||
Severity: | Normal | CC: | beidson, mcatanzaro |
Priority: | P2 | ||
Version: | Other | ||
Hardware: | PC | ||
OS: | Linux | ||
Bug Depends on: | 149117 | ||
Bug Blocks: |
Description
Michael Catanzaro
2016-01-01 16:17:39 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. (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!) 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 ] 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 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! 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. (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. (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. |