Bug 117749

Summary: kaddressbook hangs on loading vcard
Product: kab3 Reporter: Leo Savernik <l.savernik>
Component: generalAssignee: Tobias Koenig <tokoe>
Status: RESOLVED UNMAINTAINED    
Severity: normal    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Attachments: address list
patch fixing the bug

Description Leo Savernik 2005-12-05 21:06:37 UTC
Version:            (using KDE KDE 3.5.0)
Installed from:    Compiled From Sources

Since I've upgraded to KDE 3.5, kaddressbook always hangs when attempting to load the default-address resource (aka my addressbook, aka std.vcf).

Note that the addressbook hasn't changed since, and it worked in KDE 3.4.

The symptoms are as follows:
- kaddressbook starts up normally, it is even interactive for a short period of time
- when the status bar reads "0 contact(s) matching", kaddressbook hangs indefinitely and won't return to normal.

Under my typical user account, this problem is consistently reproduceable.

Under a fresh user account for testing, the problem occurs about on every second launch.

Here's the transcript:

kabc: StdAddressBook::self()
kresources: Factory::self()
kio (KSycoca): Trying to open ksycoca from /var/tmp/kdecache-run3.5/ksycoca
kio (KTrader): query for KResources/Plugin : returning 11 offers
kresources: ManagerImpl::ManagerImpl()
kresources: Connecting DCOP signals...
kresources: ManagerImpl::readConfig()
kresources: Factory::self()
kresources: ManagerImpl::readResourceConfig() jBlMjHETSL
kresources: Factory::resource( file, config )
kio (KDirWatch): Available methods: Stat
kabc: FormatFactory::self()
kio (KDirWatch): Added File /home/run3.5/.kde/share/apps/kabc/std.vcf [KDirWatch-1]
kio (KDirWatch): Global Poll Freq is now 500 msec
kio (KDirWatch):  Started Polling Timer, freq 500
kio (KDirWatch):  Setup Stat (freq 500) for /home/run3.5/.kde/share/apps/kabc/std.vcf
kio (KDirWatch): KDirWatch-1 restarted scanning /home/run3.5/.kde/share/apps/kabc/std.vcf (now 1 watchers)
kabc: StdAddressBook::StdAddressBook( bool )
kresources: Opening resource resource
kresources: ManagerImpl::writeConfig()
kresources: Saving resource jBlMjHETSL
kresources: Resource::writeConfig()
kresources: Saving general info
kresources: ManagerImpl::save() finished
kabc: AddressBook::asyncLoad()
kio (KTrader): query for KAddressBook/View : returning 3 offers
kdecore (KConfigSkeleton): Creating KConfigSkeleton (0x8168900)
kdecore (KConfigSkeleton): KConfigSkeleton::readConfig()
libkdepim: KPimPrefs::usrReadConfig()
kaddressbook: AddresseeEditorWidget()
QLayout::addChildLayout: layout already has a parent
kdeui (KDatePicker): KDatePicker::dateChangedSlot: date changed (2005/12/5).
kdeui (KDatePicker): KDatePicker::dateChangedSlot: date changed (2005/12/5).
kaddressbook: ContactEditorWidgetManager::reload()
kio (KTrader): query for KAddressBook/ContactEditorWidget : returning 1 offers
kabc: StdAddressBook::self()
kabc: StdAddressBook::self()
kabc: StdAddressBook::self()
kabc: StdAddressBook::self()
kabc: StdAddressBook::self()
kabc: StdAddressBook::self()
kaddressbook: AddresseeEditorWidget::load()
kio (KTrader): query for KAddressBook/Extension : returning 2 offers
kio (KDirWatch): Added File /home/run3.5/.kde/share/apps/kabc/distlists NotExisting [KDirWatch-2]
kio (KDirWatch):  Setup Stat (freq 500) for /home/run3.5/.kde/share/apps/kabc/distlists
kio (KTrader): query for KAddressBook/XXPort : returning 11 offers
kdecore (KLibLoader): library=libkaddrbk_gnokii_xxport: No file named libkaddrbk_gnokii_xxport.la found in paths.
kaddressbook: XXPortManager::loadExtensions(): Factory creation failed
kaddressbook: ViewManager::setActiveView: creating view - Default Table View
Comment 1 Leo Savernik 2005-12-05 21:08:59 UTC
Created attachment 13777 [details]
address list

Address-book I'm able to reproduce this bug with. The entries are anonymised,
but this turned out to not hinder reproduction.
Comment 2 Tobias Koenig 2005-12-10 18:24:39 UTC
Hi,

I can't reproduce this with the current version, please try to backup your
$HOME/.kde/share/config/kaddressbookrc, remove the original and start kaddressbook.

Ciao,
Tobias
Comment 3 Leo Savernik 2005-12-14 22:58:48 UTC
Reopening. This is a real bug caused by caching end iterators from a collection of this object, and comparing it with iterators derived from collections of *other* objects.

So this is a real bug. It just happens to exhibit no fault on gcc 3.x
Comment 4 Leo Savernik 2005-12-14 23:01:10 UTC
Created attachment 13919 [details]
patch fixing the bug

This patch caches only the iterators of the actual collections going to be
traversed.
Comment 5 Tobias Koenig 2006-05-09 14:15:48 UTC
Applyed to SVN already
Comment 6 Tobias Koenig 2009-08-05 16:28:03 UTC
The development of the old KAddressBook will be discontinued for KDE 4.4.
Since the new application has the same name, but a completly new code base we close all bug reports against the old version and ask the submitters to resend there reports against the new product.