Software Woes

Rants, tips and tricks

Sunday, June 18, 2006

Symbian - never again

Do we really need to have our cell phones turned into computers?

Not so long ago, cell phones were are regular "utility" devices. Just like TV, radio, refrigerator or microwave owen. You plug it in, and it works. There are few options that you can understand without even reading the manual. Everything works as expected. Not only that, it is robust, and rarely malfunctions - when it does, you probably need to buy the new one, as old one is..... well, too old.

Back in those days, you had what you need: dialing a number, receive a call, send and receive SMS messages, and have addressbook for people you know (or you believe so). I admit some features in newer phones are really useful: GPRS, different audio themes for different people, etc. But, it's getting to be much more than "few new features".

On the other side, there are computers. They have a lot of features and a lot of ways to brake things. We have viruses, adware, spyware... you name it. Even without those (I'm using Linux, so I should know), there are bugs in regular programs. Any thing that gives you power and control must grow in complexity. Managing complexity is hard. That's one of the reasons the software has so many bugs. The other is that programmers are often pushed to release new versions without enough testing. Most software companies force users to be beta testers. The companies that did testing on they own and release software when it is really ready found their products lose market share to competition that doesn't do that (IBM's OS/2 comes to mind as a great example).

What pulled me into writing this is that I own a Nokia 3660 phone. A very good one. It has all the basic features you can find in Nokia phones, plus GPRS, bluetooth and IR connectivity. On top of all that, is has Symbian operating system. A new promising technology that will turn our cell phones into computers. Why? Because market demands it. In fact, I think that they couldn't grow by selling cell phones as they are. Something was needed to create a hype, so people would buy new cell phone even if their old ones are fully functional.

Symbian seemed like a great thing at first, and I even liked and used some applications a lot. One of those is Agile Messenger, for example (a very good multi-protocol IM client). Well, only at first. After a year, I don't think I was using any Symbian application anymore. I was using it solely as a cell phone. If I needed to browse the Internet, or read e-mail, my notebook was always around, and I just used the GPRS+bluetooth combination to get to the Web.

And recently, the problems started. I always hated that I have to wait 70 seconds for my cell phone to turn on, but I understood the reasons - it had an OS. Lately, it would pop some errors while booting (Application closed - Etel. server). However, everything was functioning properly. Until one day, it wouldn't boot at all. It would get to the main menu - show it for a second and then restarted. I really don't understand why? I had bluetooth turned off all the time. Except sometime while GPRSing to the Internet, but that was months before first signs of trouble begin.

People are the service shop made a full reset, as there was no other way to get it to work again. They said it might have been infected with the virus. I don't need to tell you that I lost the entire address book and some other data as well (not that much important). After all this, I'll probably sell this "smart" phone, and buy a "dumb" one. Perhaps I don't like machines being "smart" and doing stuff on their own. Perhaps, that's what "smart" stands for? The "smart" machine would go it's own way and explore the unknown, without even telling you.

ReiserFS bugs

I past few weeks my colleagues at work and I have been testing resistance of our applications on the power failure. Most times we convince clients to have UPS with every computer which runs database server, but it cannot be done everywhere.

We are using default 3.6 ReiserFS supplied by Slackware 10.2. We powered off the machines by force - pulling out the plug. Some of the apps. did printing on printers, so even if filesystem would loose data, we would have printed log on the printer. The show begins: in about 20 power offs, we had lost parts of some files 3 times. Ok, perhaps that was expected, since filesystem data is kept in cache, and not committed each time write happens. Since we anticipated this, we weren't much upset. The apps. are built in such way to be able to ignore this and keep working.

However, there are bugs in ReiserFS that do some really bad things. On one of the systems, a log file we were examinating (after power off) was missing a part at the end. Instead of not having anything, it had some garbage characters and parts of some other file! I guess we were "lucky" to have a textual file "inserted" so we noticed it. The file was a SiS graphic card include file (.h) which is (I think) part of kernel source, found in completely different part of the hard disk (same filesystem though). It wasn't a whole file, just the part of it, approximately the same size as the missing part of log.

On the other system, we had a problem of some files in user's home directory getting mysteriously corrupt. For example, file /home/omega/.ICEauthority got corrupted in such way that we can't read, write, rename or delete it. We keep getting "permission denied" even when we set 777 permissions to both file and parent directory.

It is pretty absurd that they claim ReiserFS 3.6 stable, when such things can occur. I have seen systems that run Reiser for years, without troubles (notebook I'm writing this on for example), but to be honest, those had one or none forced power offs so far. One more interesting thing is that in all those problems, when we run reiserfsck (with various options), it wouldn't detect the errors. It would just say that everything is ok.

I urge developers and system administrators not to use ReiserFS for important data (like databases for example). If there is any chance of power failures and you don't have UPS, use some other filesystem. Which one? I don't know. I made a list containing ext3, jfs and xfs. We'll try those in the following weeks and see which one shows to be robust enough. Stay tuned...