Bug 89610 - crash after click right mouse button failed to register
Summary: crash after click right mouse button failed to register
Status: CLOSED FIXED
Alias: None
Product: kalarm
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: openSUSE Linux
: NOR crash
Target Milestone: ---
Assignee: David Jarvie
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-09-16 10:12 UTC by Juraj Variny
Modified: 2004-11-09 14:32 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments
make install output (24.66 KB, text/plain)
2004-09-23 12:12 UTC, Juraj Variny
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Juraj Variny 2004-09-16 10:12:50 UTC
Version:           1.1.5 (using KDE KDE 3.2.1)
Installed from:    SuSE RPMs
Compiler:          gcc (GCC) 3.3.3 (SuSE Linux)  
OS:                Linux

Right after start, when I try to right-click into alarms list, kalarm crashes. I compiled it from source. It happens whether kalarmd is or isn't running. When I try to do anything else, the popup like "Can't enable alarms:Failed to register with kalarmd daemon" appears.

=============Console output:
main(): initialising
kalarm: DcopHandler::DcopHandler()
kalarm: KAlarmApp::newInstance()
kalarm: KAlarmApp::newInstance(): interactive
kalarm: KAlarmApp::initCheck(): opening active calendar
kalarm: AlarmCalendar::open(file:/home/juro/.kde/share/apps/kalarm/calendar.ics)
kalarm: AlarmCalendar::saveCal("/home/juro/.kde/share/apps/kalarm/calendar.ics", 0)
libkcal: ICalFormat::save(): /home/juro/.kde/share/apps/kalarm/calendar.ics
kalarm: Daemon::reload()
kalarm: AlarmCalendar::load(): file:/home/juro/.kde/share/apps/kalarm/calendar.ics
kalarm: AlarmCalendar::load(): --- Downloaded to /home/juro/.kde/share/apps/kalarm/calendar.ics
libkcal: ICalFormat::load() /home/juro/.kde/share/apps/kalarm/calendar.ics
kalarm: AlarmCalendar::load(): KAlarm version 10105
kalarm: AlarmCalendar::open(file:/home/juro/.kde/share/apps/kalarm/displaying.ics)
kalarm: AlarmCalendar::saveCal("/home/juro/.kde/share/apps/kalarm/displaying.ics", 2)
libkcal: ICalFormat::save(): /home/juro/.kde/share/apps/kalarm/displaying.ics
kalarm: AlarmCalendar::load(): file:/home/juro/.kde/share/apps/kalarm/displaying.ics
kalarm: AlarmCalendar::load(): --- Downloaded to /home/juro/.kde/share/apps/kalarm/displaying.ics
libkcal: ICalFormat::load() /home/juro/.kde/share/apps/kalarm/displaying.ics
kalarm: AlarmCalendar::load(): KAlarm version 10105
kalarm: AlarmCalendar::open(file:/home/juro/.kde/share/apps/kalarm/expired.ics)
kalarm: AlarmCalendar::saveCal("/home/juro/.kde/share/apps/kalarm/expired.ics", 1)
libkcal: ICalFormat::save(): /home/juro/.kde/share/apps/kalarm/expired.ics
kalarm: AlarmCalendar::load(): file:/home/juro/.kde/share/apps/kalarm/expired.ics
kalarm: AlarmCalendar::load(): --- Downloaded to /home/juro/.kde/share/apps/kalarm/expired.ics
libkcal: ICalFormat::load() /home/juro/.kde/share/apps/kalarm/expired.ics
kalarm: AlarmCalendar::load(): KAlarm version 10105
kalarm: StartOfDayTimer::start(50697s)
kalarm: DaemonGuiHandler::DaemonGuiHandler()
kalarm: Daemon::updateRegisteredStatus() -> 1
kalarm: Daemon::start()
kalarm: Daemon::updateRegisteredStatus() -> 1
kalarm: Daemon::start()
kalarm: Daemon::updateRegisteredStatus() -> 1
kalarm: KAlarmMainWindow::KAlarmMainWindow()
kalarm: AlarmEnableAction::setCheckedActual(false)
kalarm: WARNING: KXMLGUIClient::setXMLFile: cannot find .rc file kalarmui.rc
QObject::connect: Cannot connect (null)::aboutToShow() to KAlarmMainWindow::updateActionsMenu()
kalarm: Daemon::updateRegisteredStatus() -> 1
kalarm: Daemon::updateRegisteredStatus() -> 1
kalarm: AlarmEnableAction::setCheckedActual(false)
kalarm: TrayWindow::TrayWindow()
kdecore (KAction): WARNING: KAction::insertKAccel( kaccel = 0x8333768 ): KAccel object already contains an action name "file_quit"
kalarm: AlarmEnableAction::setCheckedActual(false)
kalarm: Daemon::updateRegisteredStatus() -> 1
kalarm: Daemon::updateRegisteredStatus() -> 1
kalarm: AlarmEnableAction::setCheckedActual(false)
kalarm: AlarmEnableAction::setCheckedActual(false)
kalarm: TrayWindow::setEnabledStatus(0)
kdecore (KAction): WARNING: KAction::insertKAccel( kaccel = 0x8333768 ): KAccel object already contains an action name "file_quit"
kalarm: KAlarmMainWindow::slotUpdateTimeTo()
juro@backup:~/soft> kalarm: KAlarmApp::processQueue()
kalarm: AlarmCalendar::purgeIfQueued(7)
kalarm: Daemon::start()
kalarm: Daemon::updateRegisteredStatus() -> 2
kalarm: Daemon::registerWith(): NO_START
kalarm: DaemonGuiHandler::registerWith()
kalarm: Daemon::updateRegisteredStatus() -> 2
kalarm: KAlarmApp::checkSystemTray(): no change = true
kalarm: DaemonGuiHandler::alarmDaemonUpdate(6)
kalarm: DaemonGuiHandler::alarmDaemonUpdate(ENABLE_CALENDAR)
kalarm: AlarmEnableAction::setCheckedActual(true)
kalarm: AlarmEnableAction::setCheckedActual(true)
kalarm: TrayWindow::setEnabledStatus(1)
kalarm: KAlarmMainWindow::slotMouseClicked(right)
KCrash: Application 'kalarm' crashing...

=========== Trace:
Using host libthread_db library "/lib/tls/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread 1101021952 (LWP 6262)]
0xffffe410 in ?? ()
#0  0xffffe410 in ?? ()
#1  0xbfffdd5c in ?? ()
#2  0x00000000 in ?? ()
#3  0x00000000 in ?? ()
#4  0x4178fe63 in __waitpid_nocancel () from /lib/tls/libpthread.so.0
#5  0x40870862 in KCrash::defaultCrashHandler ()
   from /opt/kde3/lib/libkdecore.so.4
#6  <signal handler called>
#7  0x40d7aa6a in QPopupMenu::popup () from /usr/lib/qt3/lib/libqt-mt.so.3
#8  0x080ad42c in KAlarmMainWindow::slotMouseClicked ()
#9  0x080b31ce in KAlarmMainWindow::qt_invoke ()
#10 0x40c6edaa in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#11 0x40fc23d1 in QListView::mouseButtonClicked ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#12 0x40d56765 in QListView::contentsMouseReleaseEventEx ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#13 0x40d56fa4 in QListView::contentsMouseReleaseEvent ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#14 0x4067cdf3 in KListView::contentsMouseReleaseEvent ()
   from /opt/kde3/lib/libkdeui.so.4
#15 0x40d86c72 in QScrollView::viewportMouseReleaseEvent ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#16 0x40d88057 in QScrollView::eventFilter ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#17 0x40d58098 in QListView::eventFilter () from /usr/lib/qt3/lib/libqt-mt.so.3
#18 0x40c6f6fe in QObject::activate_filters ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#19 0x40c6f7e0 in QObject::event () from /usr/lib/qt3/lib/libqt-mt.so.3
#20 0x40ca42df in QWidget::event () from /usr/lib/qt3/lib/libqt-mt.so.3
#21 0x40c0dddf in QApplication::internalNotify ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#22 0x40c0ffb8 in QApplication::notify () from /usr/lib/qt3/lib/libqt-mt.so.3
#23 0x408b8ca4 in KApplication::notify () from /opt/kde3/lib/libkdecore.so.4
#24 0x40ba9633 in QETWidget::translateMouseEvent ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#25 0x40ba8225 in QApplication::x11ProcessEvent ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#26 0x40bbc875 in QEventLoop::processEvents ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#27 0x40c25811 in QEventLoop::enterLoop () from /usr/lib/qt3/lib/libqt-mt.so.3
#28 0x40c25656 in QEventLoop::exec () from /usr/lib/qt3/lib/libqt-mt.so.3
#29 0x40c0f6cf in QApplication::exec () from /usr/lib/qt3/lib/libqt-mt.so.3
#30 0x0807870d in main ()
Comment 1 David Jarvie 2004-09-19 21:54:23 UTC
Thanks for the useful output which you submitted - this pointed me straight to the problem.

The reason for the crash is that the file kalarmui.rc, which defines KAlarm's menus, is missing. This should have been installed by the RPM into /opt/kde3/share/apps/kalarm (or similar directory). There must either be a fault in the SuSE RPM, or for some reason your installation got messed up.

I have put in a fix in CVS which prevents KAlarm from crashing in these circumstances, and in KDE version 3.4 will output an error message. This fix should appear in KDE 3.3.1 and KDE 3.4.
Comment 2 Juraj Variny 2004-09-20 10:22:08 UTC
Rest of KDE _is_ from SuSE 9.1 RPMS. But I didn't found it there so I compiled it myself. 

Maybe really something is weird with these RPMs, because while kalarmd was installed, kalarm was not and search for it with YaST revealed no results.
Comment 3 David Jarvie 2004-09-20 14:09:32 UTC
Are you saying that you installed kdepim from SuSE RPMs, but that you compiled KAlarm from sources?
Comment 4 Juraj Variny 2004-09-21 14:17:05 UTC
Yes, exactly.
Comment 5 David Jarvie 2004-09-21 14:47:49 UTC
Where did you get the source for KAlarm? Was it the standalone version, or was it from a kdepim package?
Comment 6 Juraj Variny 2004-09-21 15:04:24 UTC
From there: http://www.astrojar.org.uk/linux/download/kalarm-1.1.5.kde3.tar.bz2
Comment 7 David Jarvie 2004-09-22 14:37:00 UTC
Did you install it into your normal KDE directory (which I think is probably /opt/kde3 on SuSE), or did you install it somewhere else? If you could run the install again and capture the terminal output, that would help work out what happened to kalarmui.rc.
Comment 8 Juraj Variny 2004-09-23 12:12:21 UTC
Created attachment 7642 [details]
make install output

Attached is output of make install.
Comment 9 Juraj Variny 2004-09-23 12:14:16 UTC
I ran configure without any options.
Comment 10 David Jarvie 2004-09-25 09:44:28 UTC
I tried building and installing it into /usr/local/kde, and then removing kalarmui.rc from my normal KDE directory to ensure that it would have to use the copy in /usr/local/kde, but it ran without problem. On your system, is the file /usr/local/kde/share/apps/kalarm/kalarmui.rc still there, and is it identical to kalarm-1.1.5/kalarm/kalarmui.rc in the source package?
Comment 11 Juraj Variny 2004-09-27 08:23:38 UTC
The /usr/local/kde/share/apps/kalarm/kalarmui.rc is there and identical with source package. 

The directory /opt/kde3/share/apps/kalarm does not exist (and thus no previous kalarmui.rc).
Comment 12 David Jarvie 2004-10-04 02:33:53 UTC
It appears that you need to modify the environment variable KDEDIRS. It is probably something like
    /etc/opt/kde3:/opt/kde3
currently. Change it to add the additional path /usr/local/kde (which you installed KAlarm into). Do
    export KDEDIRS=$KDEDIRS:/usr/local/kde
in the shell before running KAlarm. Or change your startup files to set it globally.

I will add something to the configure script to warn that this is necessary, to try to avoid others being caught out by this.

Please let me know whether this works for you.
Comment 13 Juraj Variny 2004-10-21 17:13:58 UTC
Yes, it worked. Variable KDEDIRS was not set before at all. 

Now if I can get it to successfully register with kalarmd ... It shows a popup that it can't register with alarm daemon, albeit kalarmd is running. The console output is now:

main(): initialising
kalarm: DcopHandler::DcopHandler()
kalarm: KAlarmApp::newInstance()
kalarm: KAlarmApp::newInstance(): interactive
kalarm: KAlarmApp::initCheck(): opening active calendar
kalarm: AlarmCalendar::open(file:/home/juro/.kde/share/apps/kalarm/calendar.ics)
kalarm: AlarmCalendar::load(): file:/home/juro/.kde/share/apps/kalarm/calendar.ics
kalarm: AlarmCalendar::load(): --- Downloaded to /home/juro/.kde/share/apps/kalarm/calendar.ics
libkcal: ICalFormat::load() /home/juro/.kde/share/apps/kalarm/calendar.ics
kalarm: AlarmCalendar::load(): KAlarm version 10105
kalarm: AlarmCalendar::open(file:/home/juro/.kde/share/apps/kalarm/displaying.ics)
kalarm: AlarmCalendar::load(): file:/home/juro/.kde/share/apps/kalarm/displaying.ics
kalarm: AlarmCalendar::load(): --- Downloaded to /home/juro/.kde/share/apps/kalarm/displaying.ics
libkcal: ICalFormat::load() /home/juro/.kde/share/apps/kalarm/displaying.ics
kalarm: AlarmCalendar::load(): KAlarm version 10105
kalarm: AlarmCalendar::open(file:/home/juro/.kde/share/apps/kalarm/expired.ics)
kalarm: AlarmCalendar::load(): file:/home/juro/.kde/share/apps/kalarm/expired.ics
kalarm: AlarmCalendar::load(): --- Downloaded to /home/juro/.kde/share/apps/kalarm/expired.ics
libkcal: ICalFormat::load() /home/juro/.kde/share/apps/kalarm/expired.ics
kalarm: AlarmCalendar::load(): KAlarm version 10105
kalarm: StartOfDayTimer::start(25313s)
kalarm: DaemonGuiHandler::DaemonGuiHandler()
kalarm: Daemon::updateRegisteredStatus() -> 1
kalarm: Daemon::start()
kalarm: Daemon::updateRegisteredStatus() -> 1
kalarm: Daemon::start()
kalarm: Daemon::updateRegisteredStatus() -> 1
kalarm: KAlarmMainWindow::KAlarmMainWindow()
kalarm: AlarmEnableAction::setCheckedActual(false)
kalarm: Daemon::updateRegisteredStatus() -> 1
kalarm: Daemon::updateRegisteredStatus() -> 1
kalarm: AlarmEnableAction::setCheckedActual(false)
kalarm: TrayWindow::TrayWindow()
kdecore (KAction): WARNING: KAction::insertKAccel( kaccel = 0x833f4d8 ): KAccel object already contains an action name "file_quit"
kalarm: AlarmEnableAction::setCheckedActual(false)
kalarm: Daemon::updateRegisteredStatus() -> 1
kalarm: Daemon::updateRegisteredStatus() -> 1
kalarm: AlarmEnableAction::setCheckedActual(false)
kalarm: AlarmEnableAction::setCheckedActual(false)
kalarm: TrayWindow::setEnabledStatus(0)
kdecore (KAction): WARNING: KAction::insertKAccel( kaccel = 0x833f4d8 ): KAccel object already contains an action name "file_quit"
kalarm: KAlarmMainWindow::slotUpdateTimeTo()
juro@backup:~> kalarm: KAlarmApp::processQueue()
kalarm: AlarmCalendar::purgeIfQueued(7)
kalarm: Daemon::start()
kalarm: Daemon::updateRegisteredStatus() -> 2
kalarm: Daemon::registerWith(): NO_START
kalarm: DaemonGuiHandler::registerWith()
kalarm: Daemon::updateRegisteredStatus() -> 2
kalarm: KAlarmApp::checkSystemTray(): no change = true
kalarm: Daemon::updateRegisteredStatus() -> 2
kalarm: Daemon::start()
kalarm: Daemon::updateRegisteredStatus() -> 2
kalarm: Daemon::registrationResult(false)
kalarm: ERROR: Daemon::registrationResult(false): registerApp dcop call failed
kalarm: Daemon::updateRegisteredStatus() -> 2
kalarm: KAlarmMainWindow::slotMouseClicked(right)
kalarm: Daemon::updateRegisteredStatus() -> 2
kalarm: KAlarmPrefDlg::restore()
kalarm: Daemon::updateRegisteredStatus() -> 2
kalarm: Daemon::updateRegisteredStatus() -> 2
kalarm: KAlarmPrefDlg::slotCancel()
kalarm: KAlarmPrefDlg::restore()
kalarm: KAlarmApp::checkSystemTray(): no change = true
kalarm: Daemon::updateRegisteredStatus() -> 2
kalarm: Daemon::updateRegisteredStatus() -> 2
kalarm: Daemon::updateRegisteredStatus() -> 2
kalarm: Daemon::updateRegisteredStatus() -> 2
kalarm: Daemon::updateRegisteredStatus() -> 2
kalarm: Daemon::updateRegisteredStatus() -> 2
kalarm: Daemon::updateRegisteredStatus() -> 2
kalarm: Daemon::updateRegisteredStatus() -> 2
kalarm: Daemon::updateRegisteredStatus() -> 2
kalarm: Daemon::updateRegisteredStatus() -> 2
kalarm: Daemon::updateRegisteredStatus() -> 2
kalarm: Daemon::updateRegisteredStatus() -> 2
kalarm: Daemon::updateRegisteredStatus() -> 2
kalarm: Daemon::updateRegisteredStatus() -> 2
kalarm: Daemon::updateRegisteredStatus() -> 2
Comment 14 David Jarvie 2004-10-21 18:58:06 UTC
When kalarm registers with kalarmd, kalarmd checks whether it can find the kalarm executable. The problem you are having indicates that it can't find it. Actually, this isn't always a critical fault, so I will be modifying kalarmd to simply output a warning message where appropriate. But the fix is probably to make sure that kalarm's path is included in KDEDIRS when kalarmd is invoked. I'm not sure of the best place to do this - perhaps in startkde.
Comment 15 Juraj Variny 2004-10-22 13:17:41 UTC
After some unsuccessful attempts to set KDEDIRS variable globally, I tried to install kalarm into PREFIX=/opt/kde3, mercilessly overwriting whatever was there before. Now it works fine...

Thanks very much, anyway.