Fired up KDE the other day....

Story: 4.4.3 Is Upon UsTotal Replies: 37
Author Content
Alcibiades

May 06, 2010
8:32 AM EDT
I fired it up the other day. Kontact was crashing in a new and interesting way on this one machine, Debian Squeeze. Start it up, then invoke mail, then invoke korganizer, and it crashes. Start it up, invoke korganizer, it crashes. Start it up, invoke mail then korganizer from the terminal, it crashes. Start up korganizer from the terminal, then mail from Kontact, its fine. What is going on? Dunno, but if you search on korganizer or kontact crashes, there's no lack of hits.

OK, I thought, lets update to the latest and greatest KDE and see if that helps. It doesn't. The only thing that helps is getting rid of Kontact and running all the components separately, then its fine.

However, in doing this, I got another look at KDE, which is always said to be getting better and better with every release. Its not, its completely unusable. Everything takes endless clicks to start, the panes slide around with no rime or reason. The apps have had to be rewritten for it, and this has led to bugs. My opinion remains the same, when they moved from 3.5 to 4.x, it was just crapping on their users from a great height. Cannot imagine what was going through their minds.
dinotrac

May 06, 2010
8:57 AM EDT
Are you sure it was from a great height?

Heights tend to affect aim, and they seem to have hit the user base square on.
azerthoth

May 06, 2010
3:53 PM EDT
It's interesting as my laptop hasnt been logged out of or rebooted in [uptime= 25 days, 4:50] without a single crash of KDE or any of its apps. Must be a Gentoo thing. I really wish I could duplicate all these crashes and things moving randomly about so I could see what everyone was yapping about. Maybe if tried another distro that expected everyone to accept whatever binary was thrust upon them I would see it.
Bob_Robertson

May 06, 2010
9:58 PM EDT
To quote George C. Scott, "Alcibiades always went for the jugular."

I had decided to go with xfce, since it can quickly be made clean and simple and still has removable media show up as icons on the desktop (which KDE4 does not).

However, the latest xfce has dropped "menu merge" so that the "Debian" menu no longer shows up. The "Debian" menu is everything installed on the machine, while KDE shows KDE specific things, xfce shows xfce specific things, Gnome shows Gnome, etc etc etc. But since any program will run on any DE, the Debian menu allowed access to the "other" applications.

Not any more. For some reason, Lxde won't load so I've been channeled into using KDE4, and while it's marginally easier to use than the first time I tried it, it's still repulsive. I do not like it, Sam I Am. {spit!}
tuxchick

May 06, 2010
10:40 PM EDT
Bob, that is an inspiring tale of Progress and Innovation.
hkwint

May 06, 2010
10:57 PM EDT
To those who have not tried/used Kontact for a while (It's a Kontact problem), let me try to explain what has happened lately. In my own words:

-Some set of developers thought it was (too) hard to maintain and expand KDE using KDE3 frameworks. -Same set thought, the solution was 10+ new frameworks and mentioning the result 'KDE4'. -Some frameworks were ready, some were not, all KDE applications didn't use the new frameworks, but nonetheless KDE 4.0 was released, to make sure enough people would test the new frameworks. -Two of these new frameworks aimed at Personal Information Management ('Outlook'/'Kontact') were / are Akonadi / Nepomuk. These two are famous for causing all troubles.

-Akonadi needs a database. Currently, it's using MySQL, because other databases are not suited.

http://techbase.kde.org/Projects/PIM/Akonadi#Which_DBMS_does...

So desktops users (!) are now running MySQL and InnoDB. However, both MySQL and InnoDB were never intended for non-database savvy 'end' users' such as you, I and probably 98% of the other KDE users out there. MySQL only recently switched to InnoDB however, this might also explain some of the problems, I'm not sure. -There's a well known bug in ~/.local/share/akonadi/mysql.conf (the file recently switched location I believe, first it was somewhere else). That's right, regular desktop users now need to worry about MySQL/InnoDB configuration, just because the people at KDE think you and I need a database in order to keep our addressbook. So, if you fix the file I just mentioned, you might be OK. -However, there's also NEPOMUK. Some semantic desktop project with EU M-$'s in it that they hope to share with Gnome. It's ought to make your desktop smarter and bring 'natural language capabilities' to your desktop. As of 4.3 however, NEPOMUK was'nt required to be part of Akonadi yet, so you could run Akonadi without NEPOMUK, and therefore you could run Akonadi without MySQL. However, since 4.4 NEPOMUK is a required part of Akonadi. Which means, if somebody updates from Kontact 4.3 to 4.4, they might have some new troubles.

For me this update caused problems: InnoDB started complaining some log-files had date-stamps in the future (never mind I'm a desktop user, why should I care?). NEPOMUK wouldn't register at DBUS, however, when I moved two files (from the viewpoint of Kontact: Deleting them) all is fine now.

Az:
Quoting:Must be a Gentoo thing.


Probably you're not running Kontact 4.4. Under Gentoo, Kontact is not part of kde-meta. These problems are in Kontact (kdepim-meta), not necessarily in KDE. I suffer from the same kind of problems (and as you might know, I run Gentoo as well). Not only Gentoo users do, it's not without a reason there's a whole page devoted to Akonadi problems on the KDE-website.

http://userbase.kde.org/Akonadi_4.4/Troubleshooting

If you want to see what everyone is yapping about: -Run and use Kontact 4.3 for a while. Then:

#autounmask kdepim-meta-4.4.2 #emerge kdepim-meta-4.4.2 $kontact

Just because you use Gentoo doesn't mean Kontact is stable for you, otherwise the KDE people would just advise everybody to use Gentoo and all problems would be gone, don't you think?
dinotrac

May 06, 2010
11:03 PM EDT
Hans -

Stop making sense. TOS violation.
tuxchick

May 06, 2010
11:25 PM EDT
Well they've been saying KDE4 is all baked and ready to rock for quite a number of releases now...maybe not raising expectations would be wiser?

I always wanted to be a database admin. But not for my tiny KDE address book.
hkwint

May 07, 2010
1:19 AM EDT
First they promised MySQL as a dependency would go away after they made it work with SQLite, now they found out they can't and make Postgresql their second bet, and then at 4.4 they suddenly add NEPOMUK.

I'm not sure about this, but when I'm baking bread, changing the ingredients of something that's 'already baked' sounds like a bad idea to me.

Dino: I'm really sorry. I was out of internet for some hours (half the country, they had to cut an important line) and then I couldn't sleep, so I had too long to think about that one. Hence the nasty linebreaks caused by copy / pasting from console.
azerthoth

May 07, 2010
2:23 AM EDT
I already have it installed as I use sets rather then metas. However since I also run from the KDE overlay I have moved to 4.4.3 already. I'll give it a looksie.
jezuch

May 07, 2010
2:25 AM EDT
Currently, my only gripe with KDE4 is that it's ssssssslllllllllllloooooooooooowwwwwwwww.

It's really, really, really slow. And I don't think I can blame it on graphics drivers. And every new release gets noticably slower than the previous one.

But, on the other hand, with the latest upgrade I got some new useless animations! Like smooth transitions when the window title changes.

OK, it looks like I'm transitioning to the "KDE4 haters" camp. Sad.
krisum

May 07, 2010
3:15 AM EDT
Quoting: -Akonadi needs a database. Currently, it's using MySQL, because other databases are not suited.

[HYPERLINK@techbase.kde.org]


Really don't understand their reason for dropping sqlite. How can desktop use lead to massively concurrent access to the db? If their application really does access concurrently, create separate dbs for different components. Even things like Trac have been working decently for us with sqlite backend.
Alcibiades

May 07, 2010
5:19 AM EDT
Guys, are you saying that the kontact problems are intrinsic to the individual apps as well? Or do you bypass them when you invoke the apps directly and not through kontact?

The only reason we are using kontact is that I have written some scripts which use the command line interface in konsolekalendar to generate event lists in the form that they want them. There does not seem to be any list view in evolution, the last time I looked. But maybe, if the above is right, we just have to get off kmail and korganizer and on to something else? We could get off kmail, obviously, thunderbird would be a very acceptable alternative, or maybe evolution.
Sander_Marechal

May 07, 2010
5:53 AM EDT
Quoting:Really don't understand their reason for dropping sqlite. How can desktop use lead to massively concurrent access to the db?


Akonadi is used for PIM data. Such data is most often used by applications that run all day long. E-mail, calendar, messenger, etcetera. It's not massive concurrent access. But because these applications run for so long, sooner or later you will get collisions and deadlocks.
Alcibiades

May 07, 2010
8:22 AM EDT
Well, I just went over and took the thing (korganizer) out, and replaced it with Sunbird. Only thing to do really. It was now refusing to start, and the error messages had to do with too many crashes from some component, so it was refusing to restart. Hopeless.

This is the second KDE 4 app that has broken irretrievably. The other one, I downloaded source for an earlier version and compiled from source and they are running the old version perfectly happily. They are still using kmail and kjots, but if we have any problems with them, they are going too.
Bob_Robertson

May 07, 2010
9:10 AM EDT
Al, clearly you are not alone.

There is something very wrong with the PIM database back-end.

From the Debian-KDE mailing list:

>> Can other KDE users please triage these dataloss bugs in Korganizer in KDE >> 4.4: >> >> https://bugs.kde.org/show_bug.cgi?id=172464 >> https://bugs.kde.org/show_bug.cgi?id=226394 >> https://bugs.kde.org/show_bug.cgi?id=228674 >> https://bugs.kde.org/show_bug.cgi?id=236563 >> https://bugs.kde.org/show_bug.cgi?id=236658 >> >> Each one should take less than a minute to triage. >> >> Dataloss is a huge issue and I fear that it is not getting the >> attention that it deserves. Hopefully if some other users confirm the >> issues then the bugs will get priority. Thanks.
Bob_Robertson

May 07, 2010
9:16 AM EDT
> that is an inspiring tale of Progress and Innovation.

Not all "progress" is forward.
dinotrac

May 07, 2010
11:21 AM EDT
Hans -

So long as you're sorry, it's ok.

But no more of that!
Alcibiades

May 07, 2010
2:21 PM EDT
Is the problem perhaps that KDE has moved away from the philosophy of doing one simple thing well? You notice that several apps are now trying to integrate with korganizer. You can see why, there are all kinds of things which if you think about it might be desirable to have generate a todo or a deadline. But if the underlying database gets screwed, the damage is really widespread. Lets hope we can carry on using kmail and kjots by themselves, otherwise its going to be off to thunderbird, and one guesses, gjots. Which last is not a bad package anyway.
krisum

May 07, 2010
5:11 PM EDT
Quoting: E-mail, calendar, messenger, etcetera. It's not massive concurrent access. But because these applications run for so long, sooner or later you will get collisions and deadlocks.
So create separate dbs for email, calendar etc. If there is still concurrent access expected, take a big (interruptible) lock as appropriate which should not be an issue given that a user will normally not go in a click frenzy. I mean if even a plain text mbox file can work for thunderbird, an sqlite DB should be more that enough for kontact.
hkwint

May 07, 2010
7:24 PM EDT
Quoting:Is the problem perhaps that KDE has moved away from the philosophy of doing one simple thing well?


Akonadi is just meant to do one thing and do it well: Handling and storing your contacts.

In the past, different programs did it all their own way. The idea is to 'separate' the part which handles contacts etc., call it Akonadi, and then all KDE-apps use it for their needs to interface with the contacts-database.

Also, I believe Akonadi was designed for 'large enterprises' as well (though I don't know any large enterprises using KDE4?), hence they thought performance could be an issue.
azerthoth

May 07, 2010
8:12 PM EDT
now I remember why I never ran into issues with kontact, like any other aggregated app like that, it's ugly and in trying to do many things it utterly fails at doing any of them well. Mind you I have found exactly zero similar apps in any OS or DE that doesnt meet that exact same description.
Alcibiades

May 07, 2010
9:37 PM EDT
The latest, they are now telling me their address book is not working. I'll probably have to go in tomorrow and move them to icedove/thunderbird over the weekend. There's really no excuse for this. Kmail and the rest of it worked perfectly for years. The only nice thing about this was how easy it was to migrate the korganizer to Sunbird, just point it at the ics file and it was done. It also turns out to print nicely in lists. Not bad at all.
Sander_Marechal

May 08, 2010
4:39 AM EDT
Quoting:So create separate dbs for email, calendar etc.


But if you do that, these applications cannot share contact information anymore. The entire idea behind Akonadi is that all apps can share contact information. Sort of like LDAP on steroids. I like the idea.
krisum

May 08, 2010
12:08 PM EDT
Quoting: But if you do that, these applications cannot share contact information anymore.
Why so? Most of the searches will be key based so, for example, it will be just fine to search the contact db with information from email db. Maybe their design requires elaborate joins, sub-queries etc. spawning these various components, but in my opinion if their design requires an elaborate DBMS just for desktop usage to work satisfactorily then there is something wrong with the design.
Sander_Marechal

May 08, 2010
2:55 PM EDT
Your design is too complex. In your design, if an application wants to find out about contact information then it would need to search the e-mail app's database, the messager app's database, the calendaring app's database, etcetera. And all this would need to be coded in the app, so it cannot search databases from apps that it does not know about.

Akonadi keeps all contact information in one place. A much better design. The only problem is that they used MySQL as the background database. They could have used SQLite even though it cannot work concurrently. Putting a concurrent front API on a non-concurrent backend is a known and solved problem. Disk device access for one.
dinotrac

May 08, 2010
3:06 PM EDT
Sander -

Shame on you for suggesting that the brilliant minds of the KDE team could possibly fail to learn from solutions that have been implemented over and over and over and over and over and over and over and over and over again.

If they failed to implement something along those lines it must be because old solutions have no place in their zippy new world.
krisum

May 08, 2010
3:26 PM EDT
Quoting: Your design is too complex. In your design, if an application wants to find out about contact information then it would need to search the e-mail app's database, the messager app's database, the calendaring app's database, etcetera.
Not really, don't know the requirements so all I have said is to separate out information into separate dbs where possible, if concurrency is really a problem. Of course, use patterns can dictate keeping some related information in one db. The simple logic being that if concurrency is the problem then it will usually be due to different applications accessing the db concurrently and it would be expected that those would access their own tables in the db. So there should be quite a lot of scope of separation in there. If lots of cross-talk is expected for certain tables, then it will make sense to put those into the same db.

Quoting: Akonadi keeps all contact information in one place.
"Place" as in db, or "place" as in table, or "place" as in something else? In any case, it still can; I don't understand what's the problem in there. All that I have said of the design is that separation into different dbs can help with concurrency where not much overlap is expected, and related information can still be in one db. I don't think it makes sense to argue more about that since the use patterns are not very clear.

Quoting: The only problem is that they used MySQL as the background database.
That's the main problem we are discussing, isn't it? As I said, if they *need* something like MySQL to give them acceptable performance for desktop use then something is wrong with their design.

Quoting: Putting a concurrent front API on a non-concurrent backend is a known and solved problem.
Not if they require transactional semantics from backend.
dinotrac

May 08, 2010
3:33 PM EDT
>Not if they require transactional semantics from backend.

Isn't that cute? Note the requirement: "transactional semantics from backend", not "transactional semantics".

So...I suppose that a front-end can't take care of that.

Better call the Rails guys...
hkwint

May 08, 2010
7:09 PM EDT
Quoting:don't know the requirements


Well, I don't know exactly what a concurrent database means - because I don't know **** about databases (except that MySQL always throws errors on my desktop), but I might help you on that. The Wikipedia piece about Akonadi is probably written by someone from KDE, so I think it sums up the requirements quite well:

-Should be extensible, because 'other' desktop projects might use it as well (usable beyond KDE), -concurrent read, write, and query access. Think it has something to do with their requirements it should be suited for the desktop where a single person is using it, or at a company site where 100 people are querying shared information, -unique desktop wide object identification and retrieval - I think that part tells there should be one 'one-fits-all' database were everything is stored.
gus3

May 08, 2010
9:31 PM EDT
Hans:

http://en.wikipedia.org/wiki/ACID
Sander_Marechal

May 09, 2010
6:39 AM EDT
Reading over the list Hans posted, I guess that something like CoughDB (which is ACID compliant) may have been a better choice for Akonadi. Especially since IMHO contact information isn't easy to map to an RDBMS.
tuxchick

May 09, 2010
1:20 PM EDT
I'm no database guru so I could be way off-- isn't LDAP expressly designed for this kind of usage? Not so fast for writes, but very fast for reads, and flexible in ways that RDBMs are not. Because they don't have an inflexible table structure, but can add and remove new fields as you need them. For these reasons big heavy-duty directories and user/asset managers like Fedora Directory Server, which used to be Netscape Directory Server, then iPlanet Directory Server, and then SunONE directory server are LDAP-based.
Sander_Marechal

May 09, 2010
2:19 PM EDT
Makes sense, TC.
hkwint

May 09, 2010
11:29 PM EDT
In fact, it uses 'extended IMAP'. LDAP can't store mails I assume. MySQL is probably chosen as they wish to use it for 'groupware' servers too. If you want 'desktop' and 'groupware server' to use the same framework, you end up with 'groupware server capabilities' on the desktop.

http://conference2006.kde.org/conference/talks/9.php
Alcibiades

May 10, 2010
4:08 AM EDT
Understand there may be arguments for what they do. But the bottom line is, right now we are on Sunbird and not going back, and if Kmail blows up, we'll be off that in a flash too. Whatever the desirability of various features, being able to use the thing is the most important. Without that, you don't have a product, or users.
hkwint

May 10, 2010
8:16 PM EDT
I think my last post touches the core of the problem:

If you make something for the desktop and something else for groupware servers, you might end up with duplicated efforts, if you 'unify' desktop and groupware, you end up with 'groupware' capabilities on a desktop, and the result is the 'dependency' on MySQL.
krisum

May 11, 2010
1:27 AM EDT
Quoting: if you 'unify' desktop and groupware, you end up with 'groupware' capabilities on a desktop, and the result is the 'dependency' on MySQL.
Normally apps should be programmed to use something light like sqlite for light/desktop use and separate DB server like MySQL for heavy/server usage. For instance Trac issue tracking system supports multiple DBs, so SQLite can be used for light usage and Postgres/MySQL for heavy usage -- we have used both as per requirements without issues.

Posting in this forum is limited to members of the group: [ForumMods, SITEADMINS, MEMBERS.]

Becoming a member of LXer is easy and free. Join Us!