Bug 266181 - kmymoney crashes after aborting removal of aqbanking stale lock file
Summary: kmymoney crashes after aborting removal of aqbanking stale lock file
Status: RESOLVED UPSTREAM
Alias: None
Product: kmymoney
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: KMyMoney Devel Mailing List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-02-13 08:38 UTC by MK
Modified: 2011-05-12 16:45 UTC (History)
0 users

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 MK 2011-02-13 08:38:56 UTC
Application: kmymoney (4.5.90-svn1217990)
KDE Platform Version: 4.5.3 (KDE 4.5.3)
Qt Version: 4.7.0
Operating System: Linux 2.6.32-28-generic x86_64
Distribution: Ubuntu 10.04.1 LTS

-- Information about the crash:
- What I was doing when the application crashed:

I started kmymoney and its aqbanking-plugin tried to get "exclusive lock" on aqbankings config files. Failed because of a lock file which was left behind in ~/.aqbanking/settings/users/. I clicked "Wait". Progress dialogue reappeared. I clicked "Abort"-> "Close". Crash occurs.

The crash can be reproduced every time.

-- Backtrace:
Application: KMyMoney (kmymoney), signal: Aborted
[Current thread is 1 (Thread 0x7f38f8366760 (LWP 1927))]

Thread 3 (Thread 0x7f38df2eb700 (LWP 1928)):
#0  __libc_enable_asynccancel () at ../nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S:66
#1  0x00007f38f2c5ef78 in *__GI___poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=<value optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:85
#2  0x00007f38eddab4a9 in g_main_context_poll (context=0x2fedfb0, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>)
    at /build/buildd/glib2.0-2.24.1/glib/gmain.c:2904
#3  g_main_context_iterate (context=0x2fedfb0, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at /build/buildd/glib2.0-2.24.1/glib/gmain.c:2586
#4  0x00007f38eddab8fc in IA__g_main_context_iteration (context=0x2fedfb0, may_block=1) at /build/buildd/glib2.0-2.24.1/glib/gmain.c:2654
#5  0x00007f38f3acc1d6 in QEventDispatcherGlib::processEvents (this=0x2fed7a0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:417
#6  0x00007f38f3a9edd2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#7  0x00007f38f3a9f1bc in QEventLoop::exec (this=0x7f38df2eadb0, flags=) at kernel/qeventloop.cpp:201
#8  0x00007f38f39aa36d in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:490
#9  0x00007f38f3a7eb48 in QInotifyFileSystemWatcherEngine::run (this=0x2fecbd0) at io/qfilesystemwatcher_inotify.cpp:248
#10 0x00007f38f39ad2ee in QThreadPrivate::start (arg=0x2fecbd0) at thread/qthread_unix.cpp:266
#11 0x00007f38f58ef9ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#12 0x00007f38f2c6b70d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#13 0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f38dc81a700 (LWP 1930)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:211
#1  0x00007f38f39ade12 in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x3b46c70, time=30000) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x3b46c70, time=30000) at thread/qwaitcondition_unix.cpp:160
#3  0x00007f38f39a2e22 in QThreadPoolThread::run (this=0x386add0) at concurrent/qthreadpool.cpp:140
#4  0x00007f38f39ad2ee in QThreadPrivate::start (arg=0x386add0) at thread/qthread_unix.cpp:266
#5  0x00007f38f58ef9ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#6  0x00007f38f2c6b70d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f38f8366760 (LWP 1927)):
[KCrash Handler]
#6  0x00007f38f2bb8a75 in *__GI_raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#7  0x00007f38f2bbc5c0 in *__GI_abort () at abort.c:92
#8  0x00007f38f2bb1941 in *__GI___assert_fail (assertion=0x7f38dc8d0d32 "0", file=<value optimized out>, line=184, function=0x7f38dc8d1cee "AH_User_Extend") at assert.c:81
#9  0x00007f38dc862389 in AH_User_Extend (u=0x3bde0f0, pro=0x3983d90, em=AB_ProviderExtendMode_Extend, db=0x3b91e70) at user.c:184
#10 0x00007f38dc89ce97 in AH_Provider_ExtendUser (pro=0x3983d90, u=0x3bde0f0, em=AB_ProviderExtendMode_Extend, db=0x3b91e70) at provider.c:956
#11 0x00007f38de1152c7 in AB_Provider_ExtendUser (pro=0x3983d90, u=0x3bde0f0, em=AB_ProviderExtendMode_Extend, db=0x3b91e70) at provider.c:416
#12 0x00007f38de102cfd in AB_Banking_LoadAllUsers (ab=0x3981680) at banking_cfg.c:540
#13 0x00007f38de1037de in AB_Banking_LoadConfig (ab=0x3981680) at banking_cfg.c:718
#14 0x00007f38de0f74e5 in AB_Banking_OnlineInit (ab=0x3981680) at banking_init.c:412
#15 0x00007f38de8c9af2 in AB_Banking::onlineInit (this=0x397f800) at /usr/local/src/kmymoney/kmymoney/plugins/kbanking/banking.cpp:63
#16 0x00007f38de8c120c in KMyMoneyBanking::init (this=0x397f800) at /usr/local/src/kmymoney/kmymoney/plugins/kbanking/mymoneybanking.cpp:652
#17 0x00007f38de8bd8ba in KBankingPlugin (this=0x3980a90, parent=0x29efbb0) at /usr/local/src/kmymoney/kmymoney/plugins/kbanking/mymoneybanking.cpp:159
#18 0x00007f38de8c972d in KDEPrivate::ConcreteFactory<KBankingPlugin, QObject>::create (parent=0x29efbb0, args=...) at /usr/include/kgenericfactory.tcc:173
#19 0x00007f38de8c96aa in KDEPrivate::ConcreteFactory<KBankingPlugin, QObject>::create (parentWidget=0x0, parent=0x29efbb0, className=0x7f38f7cc4ce0 "KMyMoneyPlugin::Plugin", args=...)
    at /usr/include/kgenericfactory.tcc:136
#20 0x00007f38de8c9641 in KGenericFactory<KBankingPlugin, QObject>::createObject (this=0x3948b50, parent=0x29efbb0, className=0x7f38f7cc4ce0 "KMyMoneyPlugin::Plugin", args=...)
    at /usr/include/KDE/../kgenericfactory.h:164
#21 0x00007f38f3ffef34 in KPluginFactory::create (this=0x3948b50, iface=0x7f38f7cc4ce0 "KMyMoneyPlugin::Plugin", parentWidget=<value optimized out>, parent=0x29efbb0, args=..., keyword=...)
    at ../../kdecore/util/kpluginfactory.cpp:176
#22 0x00007f38f7cc3c6a in KPluginFactory::create<KMyMoneyPlugin::Plugin> (this=0x3948b50, parentWidget=0x0, parent=0x29efbb0, keyword=..., args=...) at /usr/include/kpluginfactory.h:515
#23 0x00007f38f7cc3450 in KService::createInstance<KMyMoneyPlugin::Plugin> (this=0x38fa3a0, parentWidget=0x0, parent=0x29efbb0, args=..., error=0x7ffff6b52450) at /usr/include/kservice.h:532
#24 0x00007f38f7cc2d91 in KService::createInstance<KMyMoneyPlugin::Plugin> (this=0x38fa3a0, parent=0x29efbb0, args=..., error=0x7ffff6b52450) at /usr/include/kservice.h:509
#25 0x00007f38f7cc1fac in KMyMoneyPlugin::PluginLoader::loadPlugin (this=0x38f2c00, info=0x38f9ed0) at /usr/local/src/kmymoney/kmymoney/plugins/pluginloader.cpp:106
#26 0x00007f38f7cc1eb5 in KMyMoneyPlugin::PluginLoader::loadPlugins (this=0x38f2c00) at /usr/local/src/kmymoney/kmymoney/plugins/pluginloader.cpp:94
#27 0x00000000004a0c0d in KMyMoneyApp::loadPlugins (this=0x29efbb0) at /usr/local/src/kmymoney/kmymoney/kmymoney.cpp:6657
#28 0x0000000000460e54 in KMyMoneyApp (this=0x29efbb0, parent=0x0, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at /usr/local/src/kmymoney/kmymoney/kmymoney.cpp:384
#29 0x000000000045d8e4 in main (argc=1, argv=0x7ffff6b531b8) at /usr/local/src/kmymoney/kmymoney/main.cpp:153

Reported using DrKonqi
Comment 1 martin 2011-02-13 14:00:38 UTC
Hi,

On Sonntag 13 Februar 2011, MK wrote:
[...]
> #9  0x00007f38dc862389 in AH_User_Extend (u=0x3bde0f0, pro=0x3983d90,
> em=AB_ProviderExtendMode_Extend, db=0x3b91e70) at user.c:184
[...]

Fixed in current SVN of AqBanking. 

The problem with hitting "abort" in this situation is that the AqBanking 
settings database might become inconsistent in this case (e.g. some account 
settings might have been been written already but the corresponding user 
settings have not due to the abort).

However, if you are sure that your instance of KMyMoney is the only 
application accessing the settings database at that time you can safely allow 
for the forced removal of the file lock.


Regards
Martin
Comment 2 Cristian Oneț 2011-05-12 16:45:53 UTC
Closed by upstream.