[Kde-pim] Re: Frequent crashes in EntityTreeModel and other library models

David Jarvie djarvie at kde.org
Mon Nov 22 23:11:51 GMT 2010


On Monday 22 November 2010 14:09:43 Stephen Kelly wrote:
> David Jarvie wrote:
> 
> > On Mon, November 22, 2010 12:37 pm, Stephen Kelly wrote:
> >> Stephen Kelly wrote:
> >>
> >>> David Jarvie wrote:
> >>>
> >>>> When built to use Akonadi, KAlarm very frequently crashes during its
> >>>> startup. Most of the crashes, which are individually non-reproducible,
> >>>> occur during initialisation of the Akonadi models, including
> >>>> EntityTreeModel. The majority of times, no crash dialog is displayed,
> >>>> so
> >>>> I can't investigate those crashes. Some crashes also occur when events
> >>>> are added or removed subsequently.
> >>>>
> >>>> I'm quite concerned that unless things improve a lot, the Akonadi
> >>>> version
> >>>> of KAlarm in 4.6 will be quite unstable. I've fixed various bugs in the
> >>>> KAlarm code itself, but most of the remaining crashes for which I have
> >>>> traces, like the attached one, occur at a low level inside the Akonadi
> >>>> models or kdeui models. As a result, they aren't easy to debug, and
> >>>> suggest that the fault probably lies in the library classes rather than
> >>>> in the application.
> >>>>
> >>>> I'd like to help fix these crashes, if somebody could tell me what else
> >>>> I
> >>>> can do to track them down.
> >>>>
> >>>> I attach a trace from the latest crash in KSelectionProxyModel /
> >>>> EntityTreeModel.
> >>>>
> >>>
> >>> I tried KAlarm today and after adding a single collection and a single
> >>> item I get a crash on start up in the TemplateListModel.
> >>>
> >>> I don't know my way around the code, and there are a lot of singletons,
> >>> which makes it hard to know where the class is actually instantiated for
> >>> the first time. That makes it hard to make a minimal test case.
> >>>
> >>> If you can find a way to make minimal test cases the bugs can be fixed,
> >>> but the current KAlarm code seems very tied together to me at the
> >>> moment.
> >>
> >> Actually the crash I'm getting is a bug in Qt regarding the column
> >> filtering that the TemplateListModel does.
> >>
> >> I have a unit test for it now at least.
> > 
> > Hi Steve,
> > 
> > Thanks for your response. I'll look for a few simple KAlarm configurations
> > to find some which crash frequently, and post them here. Normally I tend
> > to test with only a single enabled active alarm calendar, containing one
> > or two alarms. Usually the alarms are recurring, since these persist after
> > triggering, saving the need to re-create them frequently. That
> > configuration often produces crashes on startup, but I'll look into actual
> > configurations for testing.
> 
> That would help. I've just been creating alarms and collections and template 
> collections (though I couldn't figure out how to put something in there) and 
> archived alarms (though I couldn't figure out how to put something in 
> there).
> 
> I tried inserting and removing them and couldn't make it crash.

Hi Steve,

I attach two example calendars which caused startup crashes. I configured a single Active Alarms calendar as the file /tmp/x.ics. The only other calendar configured was an Archived Alarms calendar, /tmp/arch.ics, which was empty. I've attached the KAlarm config file just in case it matters (although the collection IDs in it would need changing).

Attachment x1.ics: crashed multiple times in succession on startup before finally starting successfully. I started KAlarm after the "daily" alarm was due, but before the "display" alarm was due. On one occasion I ran KAlarm under gdb, but the crash trace was useless. In no case did I get a crash dialog.

Attachment x2.ics: also crashes most times on startup, again without a crash dialog. This is actually the updated x1.ics calendar after the "daily" alarm triggers. Both alarms were due the next day when KAlarm started. Again, running under gdb the crash trace was useless.

If KAlarm is built in debug mode (as I'm sure it will be), you may find the --test-set-time command line option useful to fake the system time. To replicate what I did (after setting up the Akonadi calendars), start KAlarm as follows: 

kalarm --test-set-time "2010-11-22-22:45 UTC"

Thanks,
David.

-- 
David Jarvie.
KDE developer.
KAlarm author -- http://www.astrojar.org.uk/kalarm
-------------- next part --------------
A non-text attachment was scrubbed...
Name: x1.ics
Type: text/calendar
Size: 920 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-pim/attachments/20101122/b5cdf881/attachment.ics>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: x2.ics
Type: text/calendar
Size: 921 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-pim/attachments/20101122/b5cdf881/attachment-0001.ics>
-------------- next part --------------
[Collections]
FavoriteCollectionIds=43,44
FavoriteCollectionLabels=x.ics,arch.ics

[Defaults]
PreActionErrDontShow=true

[EditDialog]
Height 800=574
Width 1280=556

[FileMessage]
Height 800=279
Width 1280=647

[General]
AskResource=false
AutoStart=true
CmdXTerm=xterm -sb -hold -title %t -e %c
TimeZone=UTC

[KFileDialog Settings]
Height 800=450
Recent Files[$e]=$HOME/.kde4.4/share/apps/kalarm/calendar.ics,/tmp/cal.ics,/tmp/x.ics
Width 1280=720

[MainWindow]
Height 800=245
Splitter 1280=183
State=AAAA/wAAAAD9AAAAAAAAAnoAAADAAAAABAAAAAQAAAAIAAAACPwAAAABAAAAAgAAAAEAAAAWAG0AYQBpAG4AVABvAG8AbABCAGEAcgEAAAAA/////wAAAAAAAAAA
ToolBarsMovable=Disabled
Width 1280=634

[MainWindow][Toolbar mainToolBar]
ToolButtonStyle=IconOnly

[Notification Messages]
AskAutoStart=
ConfirmAlarmDeletion=true
EmailQueuedNotify=false
QuitWarn=true

[PrefDialog]
Height 800=545
Width 1280=638

[Recent Dirs]
exportalarms[$e]=file:///tmp/,$HOME/

[ShowOpts]
EditMore=true

[View]
ShowAlarmTime=true
ShowArchivedAlarms=true
ShowResources=true
ShowTimeToAlarm=false
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-pim/attachments/20101122/b5cdf881/attachment.sig>
-------------- next part --------------
_______________________________________________
KDE PIM mailing list kde-pim at kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
KDE PIM home page at http://pim.kde.org/


More information about the kde-pim mailing list