Bug 212890 - Crash when opening composer with dictionary language set to nb
Summary: Crash when opening composer with dictionary language set to nb
Status: RESOLVED NOT A BUG
Alias: None
Product: kdelibs
Classification: Frameworks and Libraries
Component: kspell (show other bugs)
Version: 4.3
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Zack Rusin
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-11-03 11:27 UTC by Kjetil Kjernsmo
Modified: 2009-11-07 00:10 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Kjetil Kjernsmo 2009-11-03 11:27:23 UTC
Version:           1.12.2 (using KDE 4.3.2)
OS:                Linux
Installed from:    Ubuntu Packages

I just upgraded from Ubuntu 9.04 to 9.10, and I have a 100% reproduceable crash. It appears to be caused by problems with the dictionary. 

The crash happens immediately when hitting reply on any message.

I had the following incomplete trace:

Application: Kontact (kontact), signal: Aborted
[KCrash Handler]
#6  0x0016e422 in __kernel_vsyscall ()
#7  0x0066e4d1 in raise () from /lib/tls/i686/cmov/libc.so.6
#8  0x00671932 in abort () from /lib/tls/i686/cmov/libc.so.6
#9  0x0022b4df in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/libstdc++.so.6
#10 0x00229415 in ?? () from /usr/lib/libstdc++.so.6
#11 0x00229452 in std::terminate() () from /usr/lib/libstdc++.so.6
#12 0x00229591 in __cxa_throw () from /usr/lib/libstdc++.so.6
#13 0x001c354f in std::__throw_length_error(char const*) () from /usr/lib/libstdc++.so.6
#14 0x00207985 in std::string::assign(char const*, unsigned int) () from /usr/lib/libstdc++.so.6
#15 0x0335c36d in ISpellChecker::setDictionaryEncoding(char const*, char const*) () from /usr/lib/enchant/libenchant_ispell.so
#16 0x0335cd5b in ISpellChecker::loadDictionaryForLanguage(char const*) () from /usr/lib/enchant/libenchant_ispell.so
#17 0x0335cd9c in ISpellChecker::requestDictionary(char const*) () from /usr/lib/enchant/libenchant_ispell.so
#18 0x0335cf88 in ?? () from /usr/lib/enchant/libenchant_ispell.so
#19 0x04d1444d in ?? () from /usr/lib/libenchant.so.1
#20 0x04d1468d in enchant_broker_request_dict () from /usr/lib/libenchant.so.1
#21 0x02f4da81 in ?? () from /usr/lib/kde4/kspell_enchant.so
#22 0x008f5f68 in Sonnet::Loader::createSpeller(QString const&, QString const&) const () from /usr/lib/libkdecore.so.5
#23 0x008fac4d in Sonnet::Speller::Speller(QString const&) () from /usr/lib/libkdecore.so.5
#24 0x004edf08 in Sonnet::DictionaryComboBox::reloadCombo() () from /usr/lib/libkdeui.so.5
#25 0x004ee4ca in Sonnet::DictionaryComboBox::DictionaryComboBox(QWidget*) () from /usr/lib/libkdeui.so.5
#26 0xb46d8425 in ?? () from /usr/lib/libkmailprivate.so.4
#27 0xb46dac2b in ?? () from /usr/lib/libkmailprivate.so.4
#28 0xb48d3540 in KMReplyToCommand::execute() () from /usr/lib/libkmailprivate.so.4
#29 0xb48cbba2 in KMCommand::slotPostTransfer(KMCommand::Result) () from /usr/lib/libkmailprivate.so.4
#30 0xb48d615f in KMCommand::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libkmailprivate.so.4
#31 0xb48d67e2 in KMReplyToCommand::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libkmailprivate.so.4
#32 0x0447f263 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQtCore.so.4
#33 0x0447fec2 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#34 0xb48c7bd3 in KMCommand::messagesTransfered(KMCommand::Result) () from /usr/lib/libkmailprivate.so.4
#35 0xb48e5156 in KMCommand::transferSelectedMsgs() () from /usr/lib/libkmailprivate.so.4
#36 0xb48e53a2 in KMCommand::slotStart() () from /usr/lib/libkmailprivate.so.4
#37 0xb48d613b in KMCommand::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libkmailprivate.so.4
#38 0xb48d67e2 in KMReplyToCommand::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libkmailprivate.so.4
#39 0x0447f263 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQtCore.so.4
#40 0x0447fec2 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#41 0x04484387 in ?? () from /usr/lib/libQtCore.so.4
#42 0x0448449c in ?? () from /usr/lib/libQtCore.so.4
#43 0x044793bf in QObject::event(QEvent*) () from /usr/lib/libQtCore.so.4
#44 0x00e42f54 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#45 0x00e4a67c in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#46 0x00484bfa in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#47 0x044696cb in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#48 0x044967ce in ?? () from /usr/lib/libQtCore.so.4
#49 0x044940e0 in ?? () from /usr/lib/libQtCore.so.4
#50 0x0275fe78 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#51 0x02763720 in ?? () from /lib/libglib-2.0.so.0
#52 0x02763853 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#53 0x0449402c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#54 0x00ee3be5 in ?? () from /usr/lib/libQtGui.so.4
#55 0x04467c79 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#56 0x044680ca in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#57 0x0446a53f in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#58 0x00e42dd7 in QApplication::exec() () from /usr/lib/libQtGui.so.4
#59 0x0804b4e6 in _start ()


This lacks a lot of debugging symbols, but it prompted me to check whether it could be something with the dictionary settings, and found that sonnetrc had something to do with it. 

I had defaultLanguage=nb and when I changed that to defaultLanguage=en, I could open the composer with no problems. If I manually change the dictionary to nb, it crashes in a similar manner.

So, it appears that there is something wrong with using the nb dictionary.

I presume that Ubuntu hasn't done anything strange to my dictionaries, at least inorwegian is still installed. However, I haven't been able to figure out what underlying dictionary sonnet uses, so it may be that I haven't got the correct dictionary installed. Nevertheless kmail shouldn't crash, it should recover gracefully from such a situation.

Please let me know if there is anything more I can do to help reproduce.
Comment 1 Christophe Marin 2009-11-03 18:50:54 UTC
Looks more like a Ispell issue to me. Reassign to kspell.

You would get a better backtrace after installing the debug package for kdelibs.
Comment 2 Christoph Feck 2009-11-04 01:22:10 UTC
Now I remember that Norway had two "languages" (no and nb?), so maybe there is some internal remapping and something fails. I would suggest to try other languages (I understood that english is fine), and if it only happens with "nb", then maybe ask ispell or enchant maintainers what the reason could be.

At least, report this bug to the ispell team, as the crash is deep inside ispell.
Comment 3 Christoph Feck 2009-11-04 01:23:39 UTC
Sorry, I mean report that to the enchant team, it is the ISpell "plugin" for enchant that crashes. You can find them at http://www.abisource.com/projects/enchant/
Comment 4 Kjetil Kjernsmo 2009-11-04 11:35:11 UTC
Thanks a lot for the quick response. It seems there is a very similar issue with Evolution in the recent Ubuntu release, and there is a bug report for it:
https://bugs.launchpad.net/ubuntu/+source/enchant/+bug/463920
I have some problems getting the package with debugging symbols for enchant installed, but I'll try to get a report prepared for Ubuntu and for the developers. 

Indeed, we are in a somewhat messy situation here with two different but similar written languages, nb and nn, and they are also denoted no. I tried to set the default to no, but it didn't help. Anyway, I'll mention it in my report.
Comment 5 Kjetil Kjernsmo 2009-11-04 12:27:47 UTC
OK, on closer inspection, it appears to be unrelated to the Evolution bug. I have created a new Launchpad bug:
https://bugs.launchpad.net/ubuntu/+source/enchant/+bug/474062
and sent the Enchant developer an email about it.
Comment 6 Kjetil Kjernsmo 2009-11-07 00:10:11 UTC
You were right, this was a bug in enchant, and the developer has fixed it now. I have built a package for myself and kmail works reliably again. 

So, closing as invalid.