This is both a question, a rant, a theory of the problem, and a bunch of suggestions (yes, I AM a programmer).
Yesterday I lost all my tabs (session reco… (read more)
This is both a question, a rant, a theory of the problem, and a bunch of suggestions (yes, I AM a programmer).
Yesterday I lost all my tabs (session recovery not working) again for like the 6th time in the past decade. This is a personal disaster of almost suicidal gravity, which you guys at Mozilla don't seem to appreciate or care. Fortunately for me, perhaps, a day or two before I had managed to transfer my tabs to my laptop, so I should be able to recover them (fingers crossed) by copying the recovery.jasonlz4 file from my laptop back to my desktop. Unfortunately, at least for now, it is not working. I tried several times, copying just restore.jasonlz4, as well as copying the entire sessionrestore-backups folder, and the result is always the same: When I try to start Firefox, it "thinks" for a long time, maybe 30 seconds, and then just opens with one tab, and without a button for [Restore Previous Session]. So, my question is: Where else is it saving (bad) restore info that is defeating the info in the folder I'm copying over?
My system, on both computers, is Lubuntu 22.04, and Firefox version is as per latest snap.
I've seen you guys crying rivers over the fact that people keep abandoning Firefox as their browser. As someone seriously considering joining the crowd, I feel I should at least TRY to communicate with you; TRY to get through your layers of denial. I submit, the problem/question above is THE reason most people leave Firefox. Other people have been trying to tell you. Example:
But you just don't seem to listen.
Every time someone posts with a desperate crisis about the tabs you repeat the same lie, namely that going to the menu and hitting History->RecoverPreviousSession should do the trick ... It does NOT do the trick; it does NOT work. The ONLY thing that has ever worked for me is the business of restoring the file recovery.jasonlz4 ... IF (ASSUMING) I have made a manual backup of it.
My theory of the problem:
What I think causes these PERMANENT losses of tab data is (1) over-zealousness of backup, combined with (2) insufficient history.
Over-zealousness of backup is a problem in any system that needs to make backups of its state. Needing to backup state is as common a prerogative in 8-bit embedded controller programming (my professional field) as it is in computer software (my hobby field), and I've had to deal with it numerous times. One of the most common errors in programming a backup system, to be aware of, is to do "too much of it", or to do it at the wrong times, or to do it unwisely, or carelessly. This is the biggest bug in Firefox, I believe (but nobody is reporting it because they don't see it like a programmer does). FF backs up session way too fast, way too often, and totally carelessly, thus readily overwriting a good backup with any garbage session. A simple comparison of file size should suffice for the backup engine to notice that it is about to overwrite a 200 tab backup file with a 2-tab session, and to realize that this is probably not right, and to ask the user for permission or opinion. Elementary, Watson. The way our tabs are lost, just so you know, is when, for example, we open Firefox, but instead of hitting Restore Previous Session, we change our minds and close it. Then Firefox stupidly saves this unrecovered session over the valuable one. The same happens if Firefox crashes again on opening, and before restoring the previous session. Then, a new, empty session is written to the backup file, overwriting the good one! Another way to make the backup system not so over-zealous would be to NOT make ANY backups during the first 5 minutes of opening Firefox. The moment of opening Firefox is the time when the backup file gets corrupted 99.9% of the time; so just have a policy of under NO circumstance write to the backup file until the session can be considered stable.
Insufficient History is almost defined by your single backup system. Having only one backup state is ridiculous ... to put it in extremely mild words (4-letter words are highly called for here, but would not be enough, anyways). There could be, and should be, at least 4 backups; and maybe 10. It is simply ABSURD to have a single backup, that if anything happens to it, even through software error, the chance to recover anything at all is completely lost.
1) As mentioned above, the backup command generation part of the code needs to grow in wisdom by, for instance, NEVER allowing a write to the backup files before at least 5 minutes, or better yet 15 minutes, of the user having a "normal session" with Firefox. Any attempt to recover session, or sync, should reset the clock of backup file writing prevention.
2) The backup command should check if the session it is about to write is too different from the existing one and ask the user for approval. Alternatively, if asking the user for approval is too complicated, interface-wise, simply do NOT write to the backups when a session with two tabs is about to overwrite a session of two hundred tabs.
3) Refuse to backup more than once per day, unless it is just to add a tab, or something trivial.
4) Each time you backup session data, do so to a new set of files, from the previous backup, in a new folder, named with date and time info; and once saved and validated, delete the oldest folder if the count of backup folders exceeds the maximum number of backups, which should never be less than four. However, when backing up the same day as the previous backup (only done when session differences are trivial), simply over-write the previous backup, so that at the end of the day (literally) there is only one backup for that day, as we wouldn't want all of our backups to span just minutes. Our four backup folders should span at least four days.
5) Rewrite Sync from scratch. This I mentioned nothing about before, but the way Sync works (I think) is a disaster: About an hour ago I did a Sync ... thoughtlessly hit the button, then realized that I did it on my desktop, whose tabs are currently wiped out, and that it could conceivably wipe out my tabs on my laptop as well, if my laptop decides to update itself to the Sync data on your server from my desktop. You guys have created a monster, with Sync, that is about to wipe out everyone, and then it will wipe you (Mozilla) out of existence. Sync is BAD PROGRAMMING of the type that comes from BAD SPECIFICATIONS, of the type that start with a naive interface dream of a great solution without an actual problem. The imaginary problem is that people need to sync devices (equalize them). They do not. Most of the time we need to transfer state from one machine to another; NOT equalize anything. We need a state transfer interface with direction buttons. If I have a machine at the office, and a personal laptop, I may need to transfer a bunch of bookmarks and tabs from my day job machine to my personal laptop, while transferring NOTHING the other way, as I want NOTHING personal ending up on my box at work... EXCEPT, I may want to transfer some login data from my personal laptop to the work box, to be able to check my stocks at work during lunch time; but without any logins being transferred from my work machine to my personal one. You see? And if I have 200 tabs open in my desktop, I may want less than 10 of them on my phone. I can't think of ANY situation where I'd want two machines equalized (sync'd). What you guys have done with Sync is coming up with a naive dream about what we want to do, and then ramming THAT stupid solution down our throats. On top of that, one has to read half the Internet to begin to understand exactly what Sync does. Sync is an undocumented MONSTER whose real operation nobody needs. Just get rid of it, and start fresh.
A bit of psychoanalysis:
Don't have to answer this question; it is for you guys (Mozilla team) to ponder and reflect on. FOSS projects featuring a perpetual problem that the team leaders refuse to understand and do anything about is not new. There was a time when Blender3D had an anti-feature: Hitting the [Q] key caused the program to quit. There were hundreds of complaints about it, but the powers at the top were refusing to listen. Eventually they did add a popup question for Are You Sure?, but this was not enough for most people; it was too disruptive to have this popup come up again and again; what I wanted was the ability to disable the [Q] = Quit shortcut. But years went by and they refused to please the users. One day I reported the problem again, and some people in the forum were telling me to desist, that it would never be listened to, but reported it in such a detailed way that finally I got through to them, and the problem was finally solved.
But why is it that so many FOSS projects feature a persistent problem?
My personal theory is that it is a transactional mind-game, where people feel that if they are working mostly for free, they should be able to at least get away with something to ... make them pay for the fact that they don't donate, or don't donate enough.
I'm not going to write a book on ethics and whatnot, here, but I just want you to introspect and wonder if some such thing is at play here, as I find it too incredible that you guys just don't see the horribleness of the implementation of your session backup algorithm without my outsider help; it would seem as if the inability to see the absurdities is rather intentional, at some level of consciousness. Be it as it may, just consider the fact that I have had enough problems with losing Firefox session restore data over the years that I'm almost desperately looking for an alternative browser to switch to, just hopefully not one of those mainstream ones that steal one's privacy. But I AM desperate to move away from Firefox, otherwise; too tired of living in fear of losing my tabs; I just can't take it anymore. So, you can play your little mind-games all day long, if you want, but at the end of the day, if you make too many of us your users unhappy you'll be left with neither money NOR victory NOR power... Bad Session Restore code and this Sync monster are simply unbearable, and they WILL destroy you; and where will the mind-games go, then?
4th or 5th EDIT:
I have no words to describe the revulsion I feel with the whole Firefox Account interface. I just went in again with the idea of deleting all Sync data, as now I'm paranoid that the moment I connect my laptop to the Internet it is going to automatically Sync itself to my tab-less, destroyed Firefox on my desktop. With Synch being this uncontrollable two-way monstrosity, the safest thing to do is to disable it. Well, first of all, the moment I log into my account to Sync, it expects me to connect another device. It did not occur to your programmers that someone might not have a way to connect two machines at the same time; did it? So I replied Not Now, and it took me to my Firefox Account home-page, where I'm allowed to do everything I don't want, but nothing that I want. Why can't I just delete Sync data? I don't want to use Sync EVER AGAIN, but with Firefox, as always, anything good one wants to do is unsupported, and the only way to delete Sync data, apparently, is to delete my entire Firefox Account. Maybe I'll do just that, and put an end to this eternal pain.