I’ll be honest (cool) as a Linux Admin ( assistant but it sounds cooler if I drop the ‘assistant’ ) we get a lot of weird complaints and I have a theory as to why . We have people who are new to Linux (Fedora 13 for now) and think they need to revert to being new to using computers simply because its Linux, we also have the other user type where everyone who’s cd’d around their home directory thinks they should tell you, the Linux guy, why gdm won’t start, finally we have the people who actually do know what they’re doing (1 or 2 people out of several hundred Linux users IMO ) and its scary because they try to sneak through small little holes in security so they can use their machine the way they think its correct. So basically what I’m trying to say is that sometimes we need to ( my boss and I ) ponder on what issues to actually explore and which ones to just make fun of ( we don’t have much man power so we really do have to evaluate pretty well what to put at the top of the work stack, we aren’t that heartless ).
After about the 50th email we received about how Firefox takes literally over a minute to start up we decided to drop some of our security projects for a bit and actually take a look. It takes approximately .2 seconds for Google to tell you that NIS, NFS, and Firefox really don’t play well together, as well as OpenOffice which is another complaint we’ve received. The only “solution” we’ve found people say could help was to upgrade all of the NFS server, which isn’t really an option right now since we work at a school and upgrading in the middle of a semester is suicidal, but we also didn’t want to wait until the end of the semester until people actually started yelling about the Firefox issue. We started looking more into the problem and found that it may have to do with the heavy sqlite use in the profile which would be transfered over NFS since its in the home directory’s profile. We tried ls-ing the profile early, to load some of the info into memory cache, cp-ing and deleting out of /tmp, finally we decided there was no real “quick” way of doing this.
We landed on something we’ve deemed to be a hack… because its really not that clean of a solution by any standard. First I wrote a script to patch the current user’s firefox profile on boot that will edit the profiles.ini to direct the profile directory to a local space on the current lab computer ( they can switch lab computers all they want ), then a “lock” is touched when we start rsync-ing the profile to a local directory which is a sticky directory with permissions preserved, once the rsync is complete the lock is removed and a following script utilizes inotify to watch the local directory for changes and will rsync accordingly to the home directory as the Firefox session is running. Finally on logout we plan to have a script that will clean the directory of all Firefox user profiles, in case someone wasn’t logged out correctly so we don’t have lingering profiles.
Okay we don’t actually know yet if this clears up our issue, but its the only way we can decide that will actually help the process at all of starting Firefox. I’ll report back if this helps the situation much and try to host the code somewhere publicly available ( if I’m given permission ) so that anyone in a similar position can use our fancy ( ha ) method for speeding up the Firefox start over NFS.