Bug 121022 - [Qt] Perf tests: Icon database already has a path... error.
Summary: [Qt] Perf tests: Icon database already has a path... error.
Alias: None
Product: WebKit
Classification: Unclassified
Component: Tools / Tests (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
: 119837 (view as bug list)
Depends on:
Blocks: 111435
  Show dependency treegraph
Reported: 2013-09-09 01:05 PDT by Gábor Ábrahám
Modified: 2014-02-03 03:27 PST (History)
5 users (show)

See Also:


Note You need to log in before you can comment on or make changes to this bug.
Description Gábor Ábrahám 2013-09-09 01:05:51 PDT
While I try to run perf tests with debug build on Qt I got this message:

abrhm@abrhm-H61M-S2V-B3:~/webkit/WK$ Tools/Scripts/run-perf-tests --output-json-path perf-test-results.json --no-show-results --reset-results --platform qt-5.0-wk2 --debug --webkit-test-runner
Running 115 tests
Running Animation/balls.html (1 of 115)
error: Animation/balls.html
ERROR: Unabled to create LocalStorage database path 
/home/abrhm/webkit/WK/Source/WebKit2/UIProcess/Storage/LocalStorageDatabaseTracker.cpp(149) : WTF::String WebKit::LocalStorageDatabaseTracker::databasePath(const WTF::String&) const
ERROR: Icon database already has a path and is already open. We don't currently support changing its path and reopening.
/home/abrhm/webkit/WK/Source/WebKit2/UIProcess/WebIconDatabase.cpp(69) : void WebKit::WebIconDatabase::setDatabasePath(const WTF::String&)
Finished: 46.360048 s

The icon database setpath were called second time in QtWebIconDatabaseClient.cpp:57
The WTR set it first, but if we don't call WTR we still need it.
I could solve this problem with checking whether the DUMPRENDERTREE_TEMP enviromental variable set, but it is not a very reliable idea I think.

I try to find some function which check the path is set already, without any success.
Is there any other way that we can check whether the path already set?
Comment 1 Csaba Osztrogonác 2013-09-09 02:23:48 PDT
EFL and GTK check if the database is open or not before setting it.
- EFL: Source/WebKit2/UIProcess/API/efl/ewk_context.cpp - setFaviconDatabaseDirectoryPath()
- GTK: Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp - webkit_web_context_set_favicon_database_directory()

Additionally cc-ing Simon and Jocelyn, they added the second call for
WKContextSetIconDatabasePath() in https://trac.webkit.org/changeset/145517
Comment 2 Csaba Osztrogonác 2013-09-09 02:25:19 PDT
*** Bug 119837 has been marked as a duplicate of this bug. ***
Comment 3 Jocelyn Turcotte 2013-09-09 02:50:26 PDT
The icon database code in WebKit2 is limited in this area, and I can't think of a simple way to solve this properly.
Silently discarding the setDatabasePath call is quite ugly if the two paths are different, in this case it would mean that the DUMPRENDERTREE_TEMP temporaryFolder would be the one discarded.

Does it work fine in release? Is there any need to run WTR in debug with DUMPRENDERTREE_TEMP?
Another option might be to hijack the home directory through fancy environment variables, where all databases end up, instead of relying on DUMPRENDERTREE_TEMP.
Comment 4 Jocelyn Turcotte 2014-02-03 03:27:05 PST
=== Bulk closing of Qt bugs ===

If you believe that this bug report is still relevant for a non-Qt port of webkit.org, please re-open it and remove [Qt] from the summary.

If you believe that this is still an important QtWebKit bug, please fill a new report at https://bugreports.qt-project.org and add a link to this issue. See http://qt-project.org/wiki/ReportingBugsInQt for additional guidelines.