Closed Bug 551976 Opened 16 years ago Closed 15 years ago

fdatasync() on sqlite, etc. data files can be called with a pointer/keyboard grab

Categories

(Core :: Widget: Gtk, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 566746

People

(Reporter: notting, Unassigned)

Details

User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2) Gecko/20100122 Fedora/3.6.1-1.fc13 Firefox/3.6 Build Identifier: I have my /home directory on a somewhat slow flash drive. This leads to various stalls when fdatasync() is called from sqlite. These are moderately annoying, but I do understand the basics behind them, and can switch to another app while firefox catches up. However, in some cases, such as when typing a form field (and presumably using the form data sqlite database), this fdatasync() code path is called with server grab, so I can't switch apps, or do anything else. This is *very* annoying. Is there some way to synchronize this so that the server grab never is held across I/O operations? Reproducible: Sometimes Steps to Reproduce: 1. Make sure your profile is on something slow, where synchronous I/O is noticeable 2. Start typing into a form field (such as username/password) 3. No step 3, really Actual Results: firefox hangs on I/O inside of a server grab, effectively hanging the entire desktop for multiple seconds. Expected Results: firefox hangs on I/O, but the desktop remains responsive.
What do you mean by "server grab"?
On X, when popping up a menu or combobox dropdown we need to direct all mouse input to the application. Unfortunately, unlike other plaforms, X does not automatically stop doing when the user lets go of the mouse button or whatever. So if the application is hung, your entire desktop is effectively unusable. X is crap, but the real bug here is multi-second stalls on I/O, IMHO.
(In reply to comment #2) > X is crap, but the real bug here is multi-second stalls on I/O, IMHO. I agree, they suck, but we are getting rid of a hole bunch of call sites where that can happen soon! (https://wiki.mozilla.org/Firefox/Goals/2010Q1/IO_Reduction)
Summary: fdatasync() on sqlite, etc. data files can be called with a server grab → fdatasync() on sqlite, etc. data files can be called with a pointer/keyboard grab
(In reply to comment #1) > What do you mean by "server grab"? still would love an answer here...
No answer, but if the issue is what I think it is, should be fixed by bug 566746
Status: UNCONFIRMED → RESOLVED
Closed: 15 years ago
Resolution: --- → DUPLICATE
I'd actually be a bit surprised if this is bug 566746. Form history doesn't write to the DB until you submit a form, so I wouldn't expect there to be any fdatasync() calls while typing. It obviously does read from the DB to populate the form fill suggestions dropdown, but it doesn't sound like that's what's going on here. Might be interesting to disable form history and see if the problem still happens (and, if so, some more detail on what file IO is being done could help narrow down what's happening).
You need to log in before you can comment on or make changes to this bug.