Closed Bug 1388584 Opened 8 years ago Closed 8 years ago

Places breaks if there is a single-quote character in the profile path, resulting in Firefox freezing, not responding, and bookmarks being inaccessible

Categories

(Toolkit :: Places, defect)

55 Branch
All
Windows
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla57
Tracking Status
relnote-firefox --- 55+
firefox-esr52 --- unaffected
firefox55 blocking fixed
firefox56 + fixed
firefox57 + fixed

People

(Reporter: AL_Guzzo, Assigned: asuth)

References

(Depends on 1 open bug, )

Details

(Keywords: regression)

Attachments

(3 files)

User Agent: Mozilla/5.0 (Windows NT 10.0; rv:55.0) Gecko/20100101 Firefox/55.0 Build ID: 20170803103124 Steps to reproduce: Occurred immediately after updating to ver. 55. And is constant issue. Actual results: Occurred immediately after updating to ver. 55. And is constant issue. Also found when checking 'About Firefox' asked to restart for the new version. I did this once with no change in performance errors. Now says up to date for version 55 and all problems still exist. Freezing and I have no bookmarks and I cannot restore or import from my other computer or browsers.
[Tracking Requested - why for this release]: this seems to be a severe regression with firefox 55 that should be looked into before updates are unthrottled. i'm confirming this bug on the basis of seeing numerous similar reports on our support channels: https://support.mozilla.org/en-US/questions/firefox?tagged=bug1388584&show=all https://www.camp-firefox.de/forum/viewtopic.php?f=1&t=121260
Status: UNCONFIRMED → NEW
Ever confirmed: true
Keywords: regression
Hi PappyAce, can you tell us more about your configuration - which security software are you using on the affected device? when you type about:crashes into the address bar, are there any recently submitted crash reports in the "submitted" reports section - if so please copy and paste them here into the bug. also go to the firefox menu ≡ > help ? > troubleshooting information, copy the contents of that page and paste them here as well? this might give us a clue what is going on...
Flags: needinfo?(AL_Guzzo)
Not tracking for now as it doesn't actionable. Please resubmit for tracking when we have something more concrete.
Hi Benjamin, given https://bugzilla.mozilla.org/show_bug.cgi?id=193749#c228, I wonder if you might have some insight as to who could look at this issue, thanks.
Flags: needinfo?(benjamin)
Benjamin is on pto currently. We should find someone else.
Andrei, can your team try to replicate the issue, based on the comments in SUMO? That might give us more useful info for developer investigation? Thanks.
Flags: needinfo?(andrei.vaida)
(In reply to Sylvestre Ledru [:sylvestre] from comment #5) > Benjamin is on pto currently. We should find someone else. The other two people recommended to me (standard8, ::mak are on PTO until Aug 20). Gonna leave bsmedbergs ni? since he'll be back sooner. Hopefully SV can provide some more insight as well.
PappyAce, is there anything shown in the "browser console"? (Ctrl+Shift+J)
1388940 is just like this one here is my browser console. Unknown property ‘-moz-outline-style’. Declaration dropped. page.css:1:311202 Unknown property ‘-moz-border-radius’. Declaration dropped. page.css:1:320353 Expected ‘none’, URL, or filter function but found ‘alpha(’. Error in parsing value for ‘filter’. Declaration dropped. page.css:1:321953 Unknown property ‘-moz-border-radius’. Declaration dropped. page.css:1:322947 Unknown property ‘-moz-border-radius’. Declaration dropped. page.css:1:323090 Unknown property ‘-moz-order’. Declaration dropped. page.css:1:326115 Error in parsing value for ‘display’. Declaration dropped. page.css:1:326242 Error in parsing value for ‘display’. Declaration dropped. page.css:1:326260 Unknown property ‘-moz-align-items’. Declaration dropped. page.css:1:326375 Unknown property ‘-moz-flex’. Declaration dropped. page.css:1:326504 Unknown property ‘-moz-align-self’. Declaration dropped. page.css:1:326587 Error in parsing value for ‘display’. Declaration dropped. page.css:1:330079 Error in parsing value for ‘display’. Declaration dropped. page.css:1:330097 Unknown property ‘-moz-align-items’. Declaration dropped. page.css:1:330212 Error in parsing value for ‘display’. Declaration dropped. page.css:1:330905 Error in parsing value for ‘display’. Declaration dropped. page.css:1:330923 Unknown property ‘-moz-justify-content’. Declaration dropped. page.css:1:331040 Error in parsing value for ‘display’. Declaration dropped. page.css:1:331314 Error in parsing value for ‘display’. Declaration dropped. page.css:1:331332 Unknown property ‘-moz-flex’. Declaration dropped. page.css:1:331434 Unknown property ‘-moz-align-items’. Declaration dropped. page.css:1:331671 Unknown property ‘-moz-align-self’. Declaration dropped. page.css:1:331782 Unknown property ‘-moz-flex-shrink’. Declaration dropped. page.css:1:331873 Unknown property ‘-moz-align-self’. Declaration dropped. page.css:1:332065 Unknown property ‘-moz-align-items’. Declaration dropped. page.css:1:335047 Error in parsing value for ‘-webkit-box-ordinal-group’. Declaration dropped. page.css:1:335375 Unknown property ‘-moz-order’. Declaration dropped. page.css:1:335416 Error in parsing value for ‘display’. Declaration dropped. page.css:1:336511 Error in parsing value for ‘display’. Declaration dropped. page.css:1:336529 Unknown property ‘-moz-order’. Declaration dropped. page.css:1:338558 Error in parsing value for ‘display’. Declaration dropped. page.css:1:339625 Error in parsing value for ‘display’. Declaration dropped. page.css:1:339643 Error in parsing value for ‘display’. Declaration dropped. page.css:1:340639 Error in parsing value for ‘display’. Declaration dropped. page.css:1:340657 Unknown property ‘-moz-align-items’. Declaration dropped. page.css:1:340772 Unknown property ‘-moz-justify-content’. Declaration dropped. page.css:1:340904 Unknown property ‘-moz-flex-wrap’. Declaration dropped. page.css:1:342283 Unknown property ‘-moz-flex’. Declaration dropped. page.css:1:342479 Unknown property ‘-moz-flex’. Declaration dropped. page.css:1:342637 Unknown property ‘-moz-order’. Declaration dropped. page.css:1:342733 Unknown property ‘-moz-align-items’. Declaration dropped. page.css:1:343208 Unknown property ‘-moz-align-items’. Declaration dropped. page.css:1:343510 Unknown property ‘-moz-justify-content’. Declaration dropped. page.css:1:343642 Error in parsing value for ‘display’. Declaration dropped. page.css:1:343772 Error in parsing value for ‘display’. Declaration dropped. page.css:1:343790 Unknown property ‘-moz-align-items’. Declaration dropped. page.css:1:343905 Unknown property ‘-moz-order’. Declaration dropped. page.css:1:345140 Unknown property ‘-moz-align-items’. Declaration dropped. page.css:1:346132 Unknown property ‘-moz-align-items’. Declaration dropped. page.css:1:346440 Unknown property ‘-moz-justify-content’. Declaration dropped. page.css:1:346572 Error in parsing value for ‘display’. Declaration dropped. page.css:1:346704 Error in parsing value for ‘display’. Declaration dropped. page.css:1:346722 Unknown property ‘-moz-align-items’. Declaration dropped. page.css:1:346837 Unknown property ‘-moz-align-items’. Declaration dropped. page.css:1:348974 Unknown property ‘-moz-align-items’. Declaration dropped. page.css:1:349291 Unknown property ‘-moz-justify-content’. Declaration dropped. page.css:1:349423 Error in parsing value for ‘display’. Declaration dropped. page.css:1:349558 Error in parsing value for ‘display’. Declaration dropped. page.css:1:349576 Unknown property ‘-moz-align-items’. Declaration dropped. page.css:1:349691 Unknown property ‘-moz-order’. Declaration dropped. page.css:1:351138 Unknown property ‘-moz-flex-shrink’. Declaration dropped. page.css:1:351204 Error in parsing value for ‘display’. Declaration dropped. page.css:1:352267 Error in parsing value for ‘display’. Declaration dropped. page.css:1:352285 Unknown property ‘-moz-align-items’. Declaration dropped. page.css:1:352400 Unknown property ‘-moz-justify-content’. Declaration dropped. page.css:1:352532 Error in parsing value for ‘display’. Declaration dropped. page.css:1:353946 Error in parsing value for ‘display’. Declaration dropped. page.css:1:353964 Unknown property ‘-moz-flex-grow’. Declaration dropped. page.css:1:354717 Unknown property ‘-moz-align-items’. Declaration dropped. page.css:1:355670 Unknown property ‘-moz-justify-content’. Declaration dropped. page.css:1:355793 Unknown property ‘-moz-flex-direction’. Declaration dropped. page.css:1:355939 Unknown property ‘-moz-justify-content’. Declaration dropped. page.css:1:359659 Unknown property ‘-moz-flex-direction’. Declaration dropped. page.css:1:359945 Unknown property ‘-moz-justify-content’. Declaration dropped. page.css:1:361344 Unknown property ‘-moz-flex-direction’. Declaration dropped. page.css:1:361556 Unknown property ‘-moz-justify-content’. Declaration dropped. page.css:1:362022 Unknown property ‘-moz-align-items’. Declaration dropped. page.css:1:362590 Unknown property ‘-moz-flex-direction’. Declaration dropped. page.css:1:362731 Unknown property ‘-moz-justify-content’. Declaration dropped. page.css:1:362883 Unknown property ‘-moz-flex-direction’. Declaration dropped. page.css:1:363059 Error in parsing value for ‘display’. Declaration dropped. page.css:1:363972 Error in parsing value for ‘display’. Declaration dropped. page.css:1:363990 Unknown property ‘-moz-align-items’. Declaration dropped. page.css:1:364105 Unknown property ‘-moz-order’. Declaration dropped. page.css:1:365399 Error in parsing value for ‘display’. Declaration dropped. page.css:1:366448 Error in parsing value for ‘display’. Declaration dropped. page.css:1:366466 Error in parsing value for ‘display’. Declaration dropped. page.css:1:368790 Error in parsing value for ‘display’. Declaration dropped. page.css:1:368808 Unknown property ‘-moz-align-items’. Declaration dropped. page.css:1:369023 Unknown property ‘-moz-flex-direction’. Declaration dropped. page.css:1:369164 Unknown property ‘-moz-justify-content’. Declaration dropped. page.css:1:369325 Error in parsing value for ‘display’. Declaration dropped. page.css:1:370016 Error in parsing value for ‘display’. Declaration dropped. page.css:1:370034 Unknown property ‘-moz-order’. Declaration dropped. page.css:1:370242 Error in parsing value for ‘display’. Declaration dropped. page.css:1:370417 Error in parsing value for ‘display’. Declaration dropped. page.css:1:370435 Unknown property ‘-moz-align-items’. Declaration dropped. page.css:1:370654 Unknown property ‘-moz-flex-direction’. Declaration dropped. page.css:1:370795 Unknown property ‘-moz-justify-content’. Declaration dropped. page.css:1:370956 Error in parsing value for ‘display’. Declaration dropped. page.css:1:371960 Error in parsing value for ‘display’. Declaration dropped. page.css:1:371978 Error in parsing value for ‘display’. Declaration dropped. page.css:1:372199 Error in parsing value for ‘display’. Declaration dropped. page.css:1:372217 Unknown property ‘-moz-align-items’. Declaration dropped. page.css:1:372442 Unknown property ‘-moz-flex-direction’. Declaration dropped. page.css:1:372583 Unknown property ‘-moz-justify-content’. Declaration dropped. page.css:1:372744 Unknown property ‘-moz-order’. Declaration dropped. page.css:1:373664 Error in parsing value for ‘display’. Declaration dropped. page.css:1:374061 Error in parsing value for ‘display’. Declaration dropped. page.css:1:374079 Unknown property ‘-moz-align-items’. Declaration dropped. page.css:1:374194 Unknown property ‘-moz-font-smoothing’. Declaration dropped. page.css:1:384092 Error in parsing value for ‘display’. Declaration dropped. page.css:1:391555 Error in parsing value for ‘display’. Declaration dropped. page.css:1:394354 Error in parsing value for ‘-webkit-box-flex’. Declaration dropped. page.css:1:395964 Error in parsing value for ‘display’. Declaration dropped. page.css:1:399849 Expected end of value but found ‘1’. Error in parsing value for ‘-webkit-box-flex’. Declaration dropped. page.css:1:399893 Unknown property ‘user-select’. Declaration dropped. page.css:1:400429 Unknown pseudo-class or pseudo-element ‘-webkit-full-screen’. Ruleset ignored due to bad selector. page.css:1:400445 Unknown property ‘appearance’. Declaration dropped. page.css:1:402250 Unknown property ‘user-select’. Declaration dropped. page.css:1:402625 Error in parsing value for ‘-webkit-box-flex’. Declaration dropped. page.css:1:403989 Error in parsing value for ‘display’. Declaration dropped. page.css:1:404046 Error in parsing value for ‘-webkit-box-flex’. Declaration dropped. page.css:1:406655 Error in parsing value for ‘-webkit-box-flex’. Declaration dropped. page.css:1:408988 Error in parsing value for ‘-webkit-box-flex’. Declaration dropped. page.css:1:409111 Error in parsing value for ‘display’. Declaration dropped. page.css:1:409168 Error in parsing value for ‘-webkit-box-flex’. Declaration dropped. page.css:1:411375 Error in parsing value for ‘-webkit-box-flex’. Declaration dropped. page.css:1:415104 Unknown property ‘-moz-filter’. Declaration dropped. page.css:1:416076 Error in parsing value for ‘display’. Declaration dropped. page.css:1:417610 Unknown property ‘zoom’. Declaration dropped. page.css:1:418854 Unknown property ‘-moz-filter’. Declaration dropped. page.css:1:423360 Unknown property ‘-moz-font-smoothing’. Declaration dropped. page.css:1:428355 Unknown property ‘zoom’. Declaration dropped. page.css:1:428654 Unknown property ‘-moz-filter’. Declaration dropped. page.css:1:435040 Unknown property ‘-moz-font-smoothing’. Declaration dropped. page.css:1:439414 Unknown property ‘-moz-filter’. Declaration dropped. page.css:1:441420 Unknown property ‘user-select’. Declaration dropped. page.css:1:459901 Error in parsing value for ‘cursor’. Declaration dropped. page.css:1:460193 Unknown property ‘-moz-osx-font-smoothing’. Declaration dropped. page.css:1:461914 Unknown property ‘-moz-osx-font-smoothing’. Declaration dropped. page.css:1:462952 Expected media feature name but found ‘touch-enabled’. www.espn.com:1:8 Expected media feature name but found ‘-webkit-touch-enabled’. www.espn.com:1:24 Expected media feature name but found ‘-o-touch-enabled’. www.espn.com:1:69 Expected media feature name but found ‘-ms-touch-enabled’. www.espn.com:1:88 Expected media feature name but found ‘modernizr’. www.espn.com:1:108 Unexpected end of file while searching for length value for matched media condition. from DOM Expected media feature name but found ‘-webkit-min-device-pixel-ratio’. en-US:22:15034 Expected media feature name but found ‘min-device-pixel-ratio’. en-US:22:15073 Expected media feature name but found ‘-webkit-min-device-pixel-ratio’. en-US:22:16011 Expected media feature name but found ‘min-device-pixel-ratio’. en-US:22:16050 Expected media feature name but found ‘-webkit-min-device-pixel-ratio’. en-US:22:17071 Expected media feature name but found ‘min-device-pixel-ratio’. en-US:22:17110 Expected media feature name but found ‘-webkit-min-device-pixel-ratio’. en-US:22:18559 Expected media feature name but found ‘min-device-pixel-ratio’. en-US:22:18598 Expected media feature name but found ‘-webkit-min-device-pixel-ratio’. en-US:22:19247 Expected media feature name but found ‘min-device-pixel-ratio’. en-US:22:19286 Expected media feature name but found ‘-webkit-min-device-pixel-ratio’. en-US:22:19945 Expected media feature name but found ‘min-device-pixel-ratio’. en-US:22:19984 Expected media feature name but found ‘-webkit-min-device-pixel-ratio’. en-US:22:20635 Expected media feature name but found ‘min-device-pixel-ratio’. en-US:22:20674 Expected media feature name but found ‘-webkit-min-device-pixel-ratio’. en-US:22:22337 Expected media feature name but found ‘min-device-pixel-ratio’. en-US:22:22376 Unknown pseudo-class or pseudo-element ‘-webkit-input-placeholder’. Ruleset ignored due to bad selector. en-US:22:32347 Unknown pseudo-class or pseudo-element ‘-ms-input-placeholder’. Ruleset ignored due to bad selector. en-US:22:32795 Error in parsing value for ‘display’. Declaration dropped. en-US:22:33963 Error in parsing value for ‘display’. Declaration dropped. en-US:22:35433 Unknown pseudo-class or pseudo-element ‘-webkit-input-placeholder’. Ruleset ignored due to bad selector. en-US:22:41769 Unknown pseudo-class or pseudo-element ‘-ms-input-placeholder’. Ruleset ignored due to bad selector. en-US:22:42213 Unknown property ‘appearance’. Declaration dropped. en-US:22:44490 Unknown pseudo-class or pseudo-element ‘-webkit-input-placeholder’. Ruleset ignored due to bad selector. en-US:22:44672 Unknown pseudo-class or pseudo-element ‘-ms-input-placeholder’. Ruleset ignored due to bad selector. en-US:22:45088 Unknown pseudo-class or pseudo-element ‘-webkit-inner-spin-button’. Ruleset ignored due to bad selector. en-US:22:45280 Unknown pseudo-class or pseudo-element ‘-ms-clear’. Ruleset ignored due to bad selector. en-US:22:45716 Unknown property ‘appearance’. Declaration dropped. en-US:22:46130 Unknown pseudo-class or pseudo-element ‘-ms-expand’. Ruleset ignored due to bad selector. en-US:22:46662 Expected media feature name but found ‘-webkit-min-device-pixel-ratio’. en-US:22:48223 Expected media feature name but found ‘min-device-pixel-ratio’. en-US:22:48262 Unknown pseudo-class or pseudo-element ‘selection’. Ruleset ignored due to bad selector. en-US:22:51701 Unknown pseudo-class or pseudo-element ‘-webkit-input-placeholder’. Ruleset ignored due to bad selector. en-US:22:87432 Unknown pseudo-class or pseudo-element ‘-ms-input-placeholder’. Ruleset ignored due to bad selector. en-US:22:87962 Unknown pseudo-class or pseudo-element ‘-webkit-input-placeholder’. Ruleset ignored due to bad selector. en-US:25:6453 Unknown pseudo-class or pseudo-element ‘-ms-input-placeholder’. Ruleset ignored due to bad selector. en-US:25:6643 Unknown pseudo-class or pseudo-element ‘-webkit-input-placeholder’. Ruleset ignored due to bad selector. en-US:25:7455 Unknown pseudo-class or pseudo-element ‘-ms-input-placeholder’. Ruleset ignored due to bad selector. en-US:25:7614 Found invalid value for media feature. en-US:25:8070 Expected media feature name but found ‘-webkit-min-device-pixel-ratio’. from DOM Expected media feature name but found ‘-o-min-device-pixel-ratio’. from DOM Unknown property ‘user-select’. Declaration dropped. index.html Unknown property ‘user-select’. Declaration dropped. index.html Unknown property ‘enable-background’. Declaration dropped. 9f314508-46ca-434c-a95e-fa222597be0a Unknown property ‘enable-background’. Declaration dropped. b1123c64-c161-4dd1-8085-a88a786e0963 Unknown property ‘enable-background’. Declaration dropped. a8bf320b-6575-4a35-ba8d-05a7656022e8 Unknown property ‘enable-background’. Declaration dropped. 8ec830f3-1b2b-4699-ac4f-53f3d8faf40e Unknown property ‘enable-background’. Declaration dropped. 59eb9035-b3ec-4ef4-9244-4e6d1013834f Unknown property ‘enable-background’. Declaration dropped. e116cd0e-3c92-4419-bf16-6ef27c18c5f9 Unknown property ‘-moz-osx-font-smoothing’. Declaration dropped. index.html:2:74 Error in parsing value for ‘vertical-align’. Declaration dropped. index.html Error in parsing value for ‘height’. Declaration dropped. index.html Error in parsing value for ‘width’. Declaration dropped. index.html Unknown pseudo-class or pseudo-element ‘-webkit-media-controls-start-playback-button’. Ruleset ignored due to bad selector. index.html:1:7 Property contained reference to invalid variable. Error in parsing value for ‘color’. Falling back to ‘inherit’. browser.css:251:7560
[Tracking Requested - why for this release]: i was chatting with a user close by who was able to consistently reproduce the error (in a new profile and with portable versions of the browser as well). this was his output in the error console while trying to create a new bookmark: https://pastebin.mozilla.org/9029327 we ran the mozregression tool on the problem and he came up with this regression range: https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=b01f44c896b2472b154a48c68cf343ae2289d6bd&tochange=d80c517658f5048491b7bf27da25246a297ab50b - so bug 977177 seems to be the likely regressor.
Tracking as it seems to be a new regression in 55. Guys, can one you help with that? It is pretty urgent Marco is in pto.
Flags: needinfo?(dolske)
Flags: needinfo?(adw)
Component: Untriaged → Places
Product: Firefox → Toolkit
(In reply to [:philipp] from comment #13) > [Tracking Requested - why for this release]: > i was chatting with a user close by who was able to consistently reproduce > the error (in a new profile and with portable versions of the browser as > well). > this was his output in the error console while trying to create a new > bookmark: https://pastebin.mozilla.org/9029327 > > we ran the mozregression tool on the problem and he came up with this > regression range: > https://hg.mozilla.org/integration/autoland/ > pushloghtml?fromchange=b01f44c896b2472b154a48c68cf343ae2289d6bd&tochange=d80c > 517658f5048491b7bf27da25246a297ab50b - so bug 977177 seems to be the likely > regressor. For mozregression, with a new profile for each run, or persisting the same profile? Otherwise it sounds like you would just be running into bug 1356597, which will cause breakage if you created the profile in 55 and then try to run it on versions that don't have bug 977177. The pastebinned errors indicate the favicons service is not available and/or failed to start. Are there errors immediately on startup that help clarify *why* it's not available / failed to start?
Flags: needinfo?(madperson)
mozregression with a clean profile each run - what we tested was if it's possible to create a new bookmark.
Flags: needinfo?(madperson)
and this was the console output right from starting the browser: https://pastebin.mozilla.org/9029335
Updates on some things we've tried: - it seems pretty clear that the favicon, bookmarks and history - so all places - services are busted for users where this happens. - at least for history, this suggests that Database::Init fails for some reason. It's not clear why. - disabling antivirus doesn't help. - crash report (explicitly crashed with crash-me add-on for the support data) from a user who can reproduce: https://crash-stats.mozilla.com/report/index/e65b6f2b-96ee-405a-a27b-3a19d1170810 - the new favicons db does get created (that is, the file exists on disk) - when downgrading to 54, bookmarks / history are available again in the same profile - user is using an admin windows account where it doesn't work, created a separate "normal" windows user and there the problem didn't reproduce - no PLACES_DATABASE_CORRUPTION_HANDLING_STAGE telemetry data is visible in about:telemetry
(In reply to :Gijs from comment #18) > - at least for history, this suggests that Database::Init fails for some > reason. It's not clear why. Hm. So for reference, here's mozilla-release's Database::Init: https://dxr.mozilla.org/mozilla-release/rev/cace0357d40e875ea45b9ccad99f8785fc2cdb50/toolkit/components/places/Database.cpp#511-647
:philipp, any chance of getting the user who can reproduce this to run with MOZ_LOG=mozStorage:5? This can be used in conjunction with MOZ_LOG_FILE to set a file to log the statements to. The instructions at https://developer.mozilla.org/en-US/docs/Mozilla/Debugging/HTTP_logging#Windows provide an excellent explanation of how to do this, though we don't need/want any of the nsHttp:5 stuff. We really just want MOZ_LOG=mozStorage:5 or MOZ_LOG=timestamp,mozStorage:5. The log would be invaluable. If we're talking about a fresh profile, there shouldn't be any private data *unless the problem is related to automated import of other discovered profiles on the machine* (I feel like we introduced some feature related to that at some point?). If there's any concern about the potential for private data in the log, it's fine to send the log to me at asuth@mozilla.com. Aside: From the triggered crash cited in comment 18, we see "Thread 55, Name: mozStorage #28", 1 of only 2 mozStorage threads (the other is #7), which indicates a high amount of async database connection churn. This may help shed some light on where the failures are actually happening, at least if there's not some JS consumer creating Sqlite.jsm connections with a high level of churn without regard for whether the places family of services is available.
Assignee: nobody → bugmail
Status: NEW → ASSIGNED
Flags: needinfo?(madperson)
reinstalled 54.0.1 all is good again. bookmarks work and so does the history. places database: is now good. > Integrity check + The database is sane > Coherence check + The database is coherent > Orphans expiration + Database cleaned up > Vacuum
Hi everyone, It seems that I can't reproduce this issue by following the steps mentioned in comment 0 and by following the details mentioned by some users on https://support.mozilla.org/en-US/questions/firefox?tagged=bug1388584&show=all. I tried updating several 54.0.1 Firefox builds (both 32bit and 64bit) with different profiles (old ones and new ones) to Firefox 55.0.1 (which is the only 55 build available on "release-localtest" and on "release-cdntest") and Firefox is working as intended (no freezes, history or bookmarks loss were encountered). Please needinfo me if there are any other hints on how to reproduce this issue or if you have any question!
Flags: needinfo?(andrei.vaida)
Attached file log.txt
here's the log requested in comment #23 while opening a new profile and trying to create a bookmark.
Flags: needinfo?(madperson)
(In reply to [:philipp] from comment #27) > Created attachment 8896273 [details] > log.txt > > here's the log requested in comment #23 while opening a new profile and > trying to create a bookmark. Hopefully :asuth can make sense of this. :-)
Flags: needinfo?(bugmail)
I don't have a lot to contribute here technically, but while we wait for Andrew to take a look to the log, I suggest capturing the same log on a working version on the same machine, in case it turns out to be useful for a comparison.
Flags: needinfo?(madperson)
First impression of the log: * There don't seem to be any errors or warnings * Comment 27 says the user tried to create a bookmark, but there's no INSERT logged for that, so it didn't even get that far * This chunk logged over and over again, each time on a new thread, which would seem to confirm there's a problem with the new icon storage: > 2017-08-11 13:33:06.331000 UTC - [Main Thread]: D/mozStorage TRACE_STMT on 000001CEA423BF20: 'PRAGMA wal_autocheckpoint = 62' > 2017-08-11 13:33:06.331000 UTC - [Main Thread]: D/mozStorage TRACE_STMT on 000001CEA423BF20: 'PRAGMA journal_size_limit = 4096000' > 2017-08-11 13:33:06.331000 UTC - [Main Thread]: D/mozStorage TRACE_STMT on 000001CEA423BF20: 'PRAGMA auto_vacuum = INCREMENTAL' > 2017-08-11 13:33:06.331000 UTC - [Main Thread]: D/mozStorage TRACE_STMT on 000001CEA423BF20: 'BEGIN DEFERRED' > 2017-08-11 13:33:06.331000 UTC - [Main Thread]: D/mozStorage TRACE_STMT on 000001CEA423BF20: 'CREATE TABLE moz_icons ( id INTEGER PRIMARY KEY, icon_url TEXT NOT NULL, fixed_icon_url_hash INTEGER NOT NULL, width INTEGER NOT NULL DEFAULT 0, root INTEGER NOT NULL DEFAULT 0, color INTEGER, expire_ms INTEGER NOT NULL DEFAULT 0, data BLOB ) ' > 2017-08-11 13:33:06.332000 UTC - [Main Thread]: D/mozStorage TRACE_TIME on 000001CEA423BF20: 1ms > 2017-08-11 13:33:06.332000 UTC - [Main Thread]: D/mozStorage TRACE_STMT on 000001CEA423BF20: 'CREATE INDEX IF NOT EXISTS moz_icons_iconurlhashindex ON moz_icons (fixed_icon_url_hash)' > 2017-08-11 13:33:06.332000 UTC - [Main Thread]: D/mozStorage TRACE_STMT on 000001CEA423BF20: 'CREATE TABLE moz_pages_w_icons ( id INTEGER PRIMARY KEY, page_url TEXT NOT NULL, page_url_hash INTEGER NOT NULL ) ' > 2017-08-11 13:33:06.332000 UTC - [Main Thread]: D/mozStorage TRACE_STMT on 000001CEA423BF20: 'CREATE INDEX IF NOT EXISTS moz_pages_w_icons_urlhashindex ON moz_pages_w_icons (page_url_hash)' > 2017-08-11 13:33:06.332000 UTC - [Main Thread]: D/mozStorage TRACE_STMT on 000001CEA423BF20: 'CREATE TABLE moz_icons_to_pages ( page_id INTEGER NOT NULL, icon_id INTEGER NOT NULL, PRIMARY KEY (page_id, icon_id), FOREIGN KEY (page_id) REFERENCES moz_pages_w_icons ON DELETE CASCADE, FOREIGN KEY (icon_id) REFERENCES moz_icons ON DELETE CASCADE ) WITHOUT ROWID ' > 2017-08-11 13:33:06.332000 UTC - [Main Thread]: D/mozStorage TRACE_STMT on 000001CEA423BF20: 'COMMIT' > 2017-08-11 13:33:06.336000 UTC - [Main Thread]: D/mozStorage TRACE_TIME on 000001CEA423BF20: 4ms > 2017-08-11 13:33:06.336000 UTC - [Main Thread]: D/mozStorage Closing connection to 'favicons.sqlite'
Flags: needinfo?(adw)
Er, not on a new thread each time, but on the main thread. Right after these chunks there's a "Closing connection to 'places.sqlite'" which is on a new/different thread.
That last COMMIT is from here: https://dxr.mozilla.org/mozilla-release/rev/cace0357d40e875ea45b9ccad99f8785fc2cdb50/toolkit/components/places/Database.cpp#709 And then in the log you can see the connection to favicons.sqlite close right after that, which happens when that function returns, and then after that, the connection to places.sqlite closes.
danny, PappyAce, philipp: Do you see a notification box in the browser window that says (in English), "Browser Startup Error: The bookmarks and history system will not be functional because one of Firefox’s files is in use by another application"?
Flags: needinfo?(b1rdman)
no, this wasn't mentioned in any support thread and error messages are usually the first things users are picking up. a number of them reported getting an "Unable to process the backup file." error when they tried to load an autogenerated bookmark backup.
Flags: needinfo?(madperson)
That points to this EnsureFaviconsDatabaseFile call site then: https://dxr.mozilla.org/mozilla-release/rev/cace0357d40e875ea45b9ccad99f8785fc2cdb50/toolkit/components/places/Database.cpp#907 There's only one other call site, and there, if EnsureFaviconsDatabaseFile fails, the "databased locked" notification is broadcasted, which nsBrowserGlue picks up and in response shows that locked notification box in the UI. (Well, it shows that UI only if it receives the locked notification before the first browser window is shown. I assume that will always happen, but I dunno.) If that's the case, then Places has tried to attach the favicons DB to the main connection but failed, so it removes favicons.sqlite and recreates it, and then that fails too. ... except there are ATTACH statements in that log, so that doesn't seem possible...
(In reply to Drew Willcoxon :adw from comment #37) > ... except there are ATTACH statements in that log, so that doesn't seem > possible... there are *no* ATTACH statements I meant
danny, PappyAce, philipp: What's the full path of your profile folder? The full path, starting with C: or whatever. (To find it: open about:profiles, look under "Profile: <your profile name>", and "Root Directory".)
Flags: needinfo?(madperson)
Depends on: 1389660
Andrew and I think the problem is here: https://dxr.mozilla.org/mozilla-release/rev/cace0357d40e875ea45b9ccad99f8785fc2cdb50/toolkit/components/places/Database.cpp#383 It's a simple string concat that would break if aPath were to contain an apostrophe ('). aPath is the user's profile folder path + "favicons.sqlite", so if the profile folder's name is like "Andrew's computer", boom. I'm also wondering whether at least some of what's happening is that when aPath is converted to UTF-8, it contains an ' byte in one of its code points, and then this concated string is being treated as ASCII at some point. If your OS isn't in English, that might be more likely to happen.
Several users have responded so far at https://support.mozilla.org/en-US/questions/firefox?tagged=bug1388584&show=all (thanks to philipp!), and all but one have apostrophes in their paths, in the Windows user name specifically. I'm hoping the one exception is a mistake! But certainly there could be more than one bug here.
So the summary at this point, to be clear, is that we've found the problem for at least some users. One user's case doesn't fit our hypothesis, but I'm hoping they just provided us with the wrong info. Andrew's working on most of the fix in bug 1389660, and he'll generate some try builds for testing. His fix involves adding some new API, and we'll use that to fix this bug, or at least the part that is the problem we've identified.
Flags: needinfo?(madperson)
Flags: needinfo?(dolske)
Flags: needinfo?(bugmail)
Flags: needinfo?(benjamin)
My fix for bug 1389660 quickly started veering off into "way too complicated for landing on a release branch", so I've shelved it. The fix here, "part 1", very simply changes both ATTACH DATABASE calls to bind the path. No effort is made to address the following existing deficiencies that already exist and are unrelated to the breakage we're correcting: - mozStorage default pragmas are not run against freshly attached databases, so "cache_size" and "synchronous" will have SQLite's global defaults as built into SQLite and/or we configure in at startup. - per-schema pragmas are not propagated across at initializeClone time. I plan to address them in bug 1389660. Practically speaking, the defaults are fine. I've verified the fix locally by creating a profile in the profile manager named "b'ad" (b, apostrope/single quote, a, d) with the default directory which includes the apostrophe. With the fix (part 1) and the improved error logging (part 2), my build works. With just "part 2", the improved debugging, and MOZ_LOG=mozStorage:5, places is broken and I see the following (new) error log line in my mozlog output: [Main Thread]: D/mozStorage SQLite Error 1 executing SQL 'ATTACH DATABASE '/home/visbrero/.mozilla/firefox/sxr0w6d0.b'ad/favicons.sqlite' AS favicons' If all goes well, builds will start to show up at https://archive.mozilla.org/pub/firefox/try-builds/bugmail@asutherland.org-ed7e9fd3389a6ca77e625d8597651a6be5b1f286/ in a few hours.
Comment on attachment 8896545 [details] [diff] [review] Part 1: Bind ATTACH DATABASE path argument Review of attachment 8896545 [details] [diff] [review]: ----------------------------------------------------------------- Really, anyone who wants to a drive-by review should feel free to r+, but since it turns out I'm a Firefox peer and bkelly knows storage stuff and frequently seems to like to do reviews on the weekend...
Attachment #8896545 - Flags: review?(bkelly)
Comment on attachment 8896545 [details] [diff] [review] Part 1: Bind ATTACH DATABASE path argument Review of attachment 8896545 [details] [diff] [review]: ----------------------------------------------------------------- drive-by to help get this out asap
Attachment #8896545 - Flags: review+
Guys, I appreciated the work during the week end! Is the attachment 8896545 [details] [diff] [review] the only thing needed to fix the bug in the release? If yes, could you please fill the uplift request to m-r? thanks
Flags: needinfo?(email)
Flags: needinfo?(bugmail)
Comment on attachment 8896545 [details] [diff] [review] Part 1: Bind ATTACH DATABASE path argument Review of attachment 8896545 [details] [diff] [review]: ----------------------------------------------------------------- Here's another r+. Thanks Andrew! I wonder whether there are known bugs due to the clone ATTACH that we either haven't looked at or didn't understand that this fixes.
Attachment #8896545 - Flags: review?(adw) → review+
Sylvestre, I think you needinfoed the wrong markh.
Flags: needinfo?(email)
(In reply to Sylvestre Ledru [:sylvestre] from comment #49) > Is the attachment 8896545 [details] [diff] [review] the only thing needed to > fix the bug in the release? > If yes, could you please fill the uplift request to m-r? It should fix the problem for many of the users we know about. There's one user for whom, according to the info we have which I'm hoping is wrong, this won't fix the problem. I'll fill out an uplift request now unless someone beats me to it. Regardless of whether the problem we've identified is the only problem for these users, we should uplift Andrew's patch IMO. Although ideally affected users could try his try builds first and confirm that they fix their problem.
Comment on attachment 8896545 [details] [diff] [review] Part 1: Bind ATTACH DATABASE path argument Approval Request Comment [Feature/Bug causing the regression]: Bug 977177, favicon reorganization in the Places database [User impact if declined]: Firefox is pretty broken; see above [Is this code covered by automated tests?]: Places and favicon code in general is covered, but obviously this specific problem was not covered, and it's still not covered with this patch [Has the fix been verified in Nightly?]: No but we're landing this directly on release. Andrew has verified his fix according to comment 46 [Needs manual test from QE? If yes, steps to reproduce]: That would be nice. STR: (a) Create a Windows user name that contains an apostophe/single quote ('), or (b) manually create a Firefox profile directory that contains one and then create a Firefox profile based on that directory. Then start Firefox. Visiting web sites and bookmarking them should work. [List of other uplifts needed for the feature/fix]: None [Is the change risky?]: [Why is the change risky/not risky?]: Not the change itself, but landing directly on release is? [String changes made/needed]: None
Attachment #8896545 - Flags: review?(bkelly) → approval-mozilla-release?
Are there tests/telemetry we can add to catch these issues in the future?
(In reply to Drew Willcoxon :adw from comment #50) > Here's another r+. Thanks Andrew! I wonder whether there are known bugs > due to the clone ATTACH that we either haven't looked at or didn't > understand that this fixes. Bug 1283083, landed in Firefox 50, introduced the initial string-concatenating SQL building logic in mozilla::storage::Connection::initializeClone(). This landing occurred in future support of bug 977177 and had no in-tree consumers until bug 977177, at least based on a brief archaeology skim.
Flags: needinfo?(bugmail)
(In reply to Drew Willcoxon :adw from comment #53) > [Needs manual test from QE? If yes, steps to reproduce]: > That would be nice. STR: (a) Create a Windows user name that contains an > apostophe/single quote ('), or (b) manually create a Firefox profile > directory that contains one and then create a Firefox profile based on that > directory. Then start Firefox. Visiting web sites and bookmarking them > should work. Elaborating because I already wrote this and am slower at filling out approval requests :) 1a) Run with a 55 release build with a profile that contains a single-quote character in the directory name. This can be accomplished by using Profile Manager to create a profile named something like: "o'hai" or using any profile name with a Windows username with a single-quote character inside it. Keep in mind that Windows has path length limitations which will result in QuotaManager and IndexedDB failures if the profile path starts getting too long, so don't try and stress test long names. 1b) Verify Places is very broken. 2) Download cool try builds from https://archive.mozilla.org/pub/firefox/try-builds/bugmail@asutherland.org-ed7e9fd3389a6ca77e625d8597651a6be5b1f286/ or fixed release (candidate?) builds with the fix in them. 3a) Run with the cool try build. 3b) Verify Places is now working.
FWIW I just locally verified both the problem and Andrew's fix in the try build. Details: (1) On Windows 10, I created a user with the name test'account. (2) I logged on as that user, downloaded Firefox 55, installed it, ran it, verified that the browser was slow and bookmarking didn't work. (3) I downloaded the try build zip, unzipped it, and ran it using the same profile I had used for the official 55 release. No problems!
(In reply to Ryan VanderMeulen [:RyanVM] from comment #54) > Are there tests/telemetry we can add to catch these issues in the future? This does suggest new opportunities going forward to run a cross-section of profile-directory-using consumers with profile directory names with various "special" characters in the name. This could possibly just be a series of taskcluster jobs that don't run on every push. Note that it turns out to be a little bit harder to get xpcshell tests to do this because they like to create synthetic directories for their profile, and use Python's tempdir module and/or your create a dir under your objdir for speed. But xpcshell's stock do_get_profile() method can be overridden. So naive taskcluster tasks should only run mochitests... and probably have at least one specialized test that asserts that the special characters are actually in the profile path. (It could conditionalize itself by checking the ENV variable and maybe the taskcluster task name if it can get at that?) In bug 1389660 which will be the "proper" trunk fix where mozStorage provides an explicit API to attach databases, we will absolutely create a synthetic subdirectory or family of them to verify single quotes don't pose a problem.
Comment on attachment 8896545 [details] [diff] [review] Part 1: Bind ATTACH DATABASE path argument Approval Request Comment See comment 53. This should go on beta too. I tested "hg graft"-ing the patch onto beta and it grafted cleanly. This patch is very targeted with no extenuating context outside its hunks, so a clean graft means we're golden. The plan would be: - Land this fix on beta when we land it on release. - When we get the fancier fix on trunk as part of bug 1388584, we can consider whether to uplift that to beta (reverting/clobbering this fix).
Attachment #8896545 - Flags: approval-mozilla-beta?
> Comment on attachment 8896545 [details] [diff] [review] > Part 1: Bind ATTACH DATABASE path argument > > Approval Request Comment > See comment 53. ... > The plan would be: > - Land this fix on beta when we land it on release. > - When we get the fancier fix on trunk as part of bug 1388584, we can > consider whether to uplift that to beta (reverting/clobbering this fix). I meant bug 1389660, not bug 1388584 which is this bug. Also, I'm moving bug 1389660 to be a see-also since we will no longer depend on it. I'm also going to look into landing the immediate fix on trunk, because nightly users deserve places too. But I'll discuss with some humans on IRC about that.
No longer depends on: 1389660
See Also: → 1389660
Comment on attachment 8896545 [details] [diff] [review] Part 1: Bind ATTACH DATABASE path argument ># HG changeset patch ># User Andrew Sutherland <asutherland@asutherland.org> ># Date 1502519589 14400 ># Sat Aug 12 02:33:09 2017 -0400 ># Node ID 908a4bb55a039985473e1565d88abebfe024c44c ># Parent 7241df9e83ed802c70a7cdce3cee5df344279cad >Bug 1388584 - Part 1: Bind ATTACH DATABASE path argument. > >diff --git a/storage/mozStorageConnection.cpp b/storage/mozStorageConnection.cpp >--- a/storage/mozStorageConnection.cpp >+++ b/storage/mozStorageConnection.cpp >@@ -1394,25 +1394,35 @@ Connection::initializeClone(Connection* > while (stmt && NS_SUCCEEDED(stmt->ExecuteStep(&hasResult)) && hasResult) { > nsAutoCString name; > rv = stmt->GetUTF8String(1, name); > if (NS_SUCCEEDED(rv) && !name.Equals(NS_LITERAL_CSTRING("main")) && > !name.Equals(NS_LITERAL_CSTRING("temp"))) { > nsCString path; > rv = stmt->GetUTF8String(2, path); > if (NS_SUCCEEDED(rv) && !path.IsEmpty()) { >- rv = aClone->ExecuteSimpleSQL(NS_LITERAL_CSTRING("ATTACH DATABASE '") + >- path + NS_LITERAL_CSTRING("' AS ") + name); >+ nsCOMPtr<mozIStorageStatement> attachStmt; >+ rv = aClone->CreateStatement( >+ NS_LITERAL_CSTRING("ATTACH DATABASE :path AS ") + name, >+ getter_AddRefs(attachStmt)); >+ MOZ_ASSERT(NS_SUCCEEDED(rv)); >+ rv = attachStmt->BindUTF8StringByName(NS_LITERAL_CSTRING("path"), >+ path); >+ MOZ_ASSERT(NS_SUCCEEDED(rv)); >+ rv = attachStmt->Execute(); > MOZ_ASSERT(NS_SUCCEEDED(rv), "couldn't re-attach database to cloned connection"); > } > } > } > } > > // Copy over pragmas from the original connection. >+ // LIMITATION WARNING! Many of these pragmas are actually scoped to the >+ // schema ("main" and any other attached databases), and this implmentation >+ // fails to propagate them. This is being addressed on trunk. > static const char * pragmas[] = { > "cache_size", > "temp_store", > "foreign_keys", > "journal_size_limit", > "synchronous", > "wal_autocheckpoint", > "busy_timeout" >diff --git a/toolkit/components/places/Database.cpp b/toolkit/components/places/Database.cpp >--- a/toolkit/components/places/Database.cpp >+++ b/toolkit/components/places/Database.cpp >@@ -374,18 +374,24 @@ SetupDurability(nsCOMPtr<mozIStorageConn > } > return NS_OK; > } > > nsresult > AttachDatabase(nsCOMPtr<mozIStorageConnection>& aDBConn, > const nsACString& aPath, > const nsACString& aName) { >- nsresult rv = aDBConn->ExecuteSimpleSQL( >- NS_LITERAL_CSTRING("ATTACH DATABASE '") + aPath + NS_LITERAL_CSTRING("' AS ") + aName); >+ nsCOMPtr<mozIStorageStatement> stmt; >+ nsresult rv = aDBConn->CreateStatement( >+ NS_LITERAL_CSTRING("ATTACH DATABASE :path AS ") + aName, >+ getter_AddRefs(stmt)); >+ NS_ENSURE_SUCCESS(rv, rv); >+ rv = stmt->BindUTF8StringByName(NS_LITERAL_CSTRING("path"), aPath); >+ NS_ENSURE_SUCCESS(rv, rv); >+ rv = stmt->Execute(); > NS_ENSURE_SUCCESS(rv, rv); > > // The journal limit must be set apart for each database. > nsAutoCString journalSizePragma("PRAGMA favicons.journal_size_limit = "); > journalSizePragma.AppendInt(DATABASE_MAX_WAL_BYTES + DATABASE_JOURNAL_OVERHEAD_BYTES); > Unused << aDBConn->ExecuteSimpleSQL(journalSizePragma); > > return NS_OK;
Attachment #8896545 - Flags: approval-mozilla-release?
Attachment #8896545 - Flags: approval-mozilla-release+
Attachment #8896545 - Flags: approval-mozilla-beta?
Attachment #8896545 - Flags: approval-mozilla-beta+
Thanks for the approvals! I've already landed on trunk with a=Arynx from #sheriffs to make sure people were okay with it not having tests yet. However, I see from https://wiki.mozilla.org/Tree_Rules#mozilla-beta that I need to stick around and watch the tree if I land it there, and I need to do real life stuff for ~8 hours, so I am not going to land on beta or release right now. (Also I'm not sure if I should land directly on release myself.) When I return I'll check the state of things.
(In reply to Drew Willcoxon :adw from comment #52) > It should fix the problem for many of the users we know about. There's one > user for whom, according to the info we have which I'm hoping is wrong, this > won't fix the problem. For posterity, this user's profile path did include a single-quote; the user was sanitizing the path for privacy reasons (both wise and commendable) and has since clarified. As such, we believe this fix covers 100% of the known cases of this specific problem.
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla57
Should the 55 get taken out of the bug title here? Thanks.
Summary: New Version 55, constantly freezes, not responding, bookmarks lost, all bookmark commands do not function. → Firefox constantly freezes, not responding, bookmarks lost, all bookmark commands do not function.
Flags: needinfo?(b1rdman)
Flags: needinfo?(AL_Guzzo)
Summary: Firefox constantly freezes, not responding, bookmarks lost, all bookmark commands do not function. → Places breaks if there is a single-quote character in the profile path, resulting in Firefox freezing, not responding, and bookmarks being inaccessible
Added to release notes for 55.0.1 as a known issue.
See Also: → 1389160
Tracked for 56+ as it's a very severe regression (dot release driver in 55)
We tried to reproduce this issue on 55.0.2-build1 as well, by following the steps given in comment 53 using "release-localtest" update channel, but we didn't managed to due so.
Added in the release notes as a fix: Fix a potential issue when the username had some specific characters in the path
Depends on: 1391598
Found another username issue https://support.mozilla.org/en-US/questions/1172169#answer-998685 "So I'm 99% the problem is due to a non-English letter I have in my user name "
(In reply to FredMcD from comment #72) > Found another username issue > https://support.mozilla.org/en-US/questions/1172169#answer-998685 > "So I'm 99% the problem is due to a non-English letter I have in my user > name " It doesn't seem to be related to Places or this specific instance of the more general problem with "exptic" profile locations, so it's probably a good idea to file it apart in a new bug.
(In reply to Marco Bonardo [::mak] from comment #73) > (In reply to FredMcD from comment #72) > > Found another username issue > > https://support.mozilla.org/en-US/questions/1172169#answer-998685 > > "So I'm 99% the problem is due to a non-English letter I have in my user > > name " > > It doesn't seem to be related to Places or this specific instance of the > more general problem with "exptic" profile locations, so it's probably a > good idea to file it apart in a new bug. This issue is already covered by bug 1389160.
See Also: → 1392308
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: