Duplicated contacts with Baïkal 0.2.6


  • developer

    2 MB… seems like you have a LOT of contacts or very big data stored with them. Is that correct?



  • Well at least on my phone there are only 139 contacts, with nothing but
    phone numbers and e-mail addresses in it.

    But now on the server side, since all contacts are duplicated each time
    I do a manual synchronization, I do have around 1100 contacts.

    On 17/11/2013 5:48 PM, rfc2822 wrote:

    2 MB… seems like you have a LOT of contacts or very big data stored
    with them. Is that correct?


    Reply to this email directly or view it on GitHub
    https://github.com/rfc2822/davdroid/issues/51#issuecomment-28652190.


  • developer

    Did you try with a clean / empty account? The last error is caused because 1100 contacts are too many.



  • So I deleted all my contacts (after having backed them up onto the
    memory phone in one single vcf file) on the phone AND on the server.

    I created a new account on the server.
    Then imported my contacts back on the phone.
    Then synchronized the davdroid account.
    Then checked on the Baikal dashboard: only 86 contacts out of 139 where
    imported.
    After the sync, when I open the contact list, it is empty.

    I still do have those errors in the debug logs:

    11-17 19:45:28.577 12938:13179 E/CursorWindow ]

    Could not allocate CursorWindow
    ‘/data/user/0/com.android.providers.contacts/databases/contacts2.db’ of
    size 2097152 due to error -12.

    [ 11-17 19:45:28.587 12938:13179 E/JavaBinder ]

    *** Uncaught remote exception! (Exceptions are not yet supported across
    processes.)

    android.database.CursorWindowAllocationException: Cursor window
    allocation of 2048 kb failed. # Open Cursors=856 (# cursors opened by
    pid 19167=856)

    at android.database.CursorWindow.<init>(CursorWindow.java:104)
    
    at
    

    android.database.AbstractWindowedCursor.clearOrCreateWindow(AbstractWindowedCursor.java:198)

    at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:139)
    
    at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:133)
    
    at
    

    android.database.CursorToBulkCursorAdaptor.getBulkCursorDescriptor(CursorToBulkCursorAdaptor.java:143)

    at
    

    android.content.ContentProviderNative.onTransact(ContentProviderNative.java:121)

    at android.os.Binder.execTransact(Binder.java:367)
    
    at dalvik.system.NativeStart.run(Native Method)
    

    Maybe the local phone database is corrupted, is there a way to clean it ?

    On 17/11/2013 7:11 PM, rfc2822 wrote:

    Did you try with a clean / empty account? The last error is caused
    because 1100 contacts are too many.


    Reply to this email directly or view it on GitHub
    https://github.com/rfc2822/davdroid/issues/51#issuecomment-28658885.



  • Having said that, I decided to test the creation of a new contact. Then the contact application died. I would like to attach the logfile (too many lines to paste them here), but is there a way to upload a text file on Github?

    I don’t know if it’s relevant, but I’m using a Motorola Razri, which host an Intel CPU.


  • developer

    Maybe you can upload the logs to gist.github.com and then link it?


  • developer

    DAVdroid 0.5 comes with VCard 3 support as required by the CardDAV specs and some minor tweaks. Please test again (don’t forget to delete your account and create it again with DAVdroid 0.5) and if it still doesn’t work, please comment here again.



  • I tested this with 0.5.2-alpha and it is still duplicating contacts.



  • I have a similar duplicate contacts issue using DAVdroid 0.5.2-alpha and OwnCloud 6.0.

    • I install OwnCloud 6.0 and DAVdroid 0.5.2-alpha.
    • On my phone, I start with no contacts and configure DAVdroid to sync with OwnCloud for CardDAV.
    • I import a list of contacts.
    • Everything looks correct.
    • After some amount of time, I check back in OwnCloud and the number of contacts has increased, and increases, and keeps increasing.

    Are there others who have OwnCloud as a CardDAV server and don’t have this problem? Alternately, what CardDAV servers are successfully working?

    One more question for @rfc2822 . How many contacts is too many? I have something like 500. Also, most of them have pictures. This means a contacts.vcf file is around 4M in size. Do I need to be worried?



  • These are the steps I followed with 0.5.2-alpha and Baïkal 0.2.6:

    1. Exported all contacts to a vcf file.
    2. Deleted old DAVdroid account, verified that contacts disappeared from contacts app.
    3. Tried to delete the default address-book for my user with Baïkal’s web admin interface but that choked and never finished loading the page and the address-book remained. Instead I deleted all rows from the cards table in the sqlite database, verified that the web admin interface showed no contacts in my address-book.
    4. Added new DAVdroid account to phone.
    5. Imported contacts from vcf file.
    6. Watched the contact count on the web admin interface grow past 500 contacts while the phone said it was still syncing. I have just under 500 contacts on the phone.


  • As I wrote above, I’m having the same contacts duplication bug using OwnCloud. For the phone, I’ve tested on a Galaxy S3 and using an emulated phone on my computer. Both behave the same (i.e., badly).

    Both Baikal and OwnCloud appear to use a SabreDAV back end. So possibly we’re seeing the same underlying problem. (But I am just speculating.)

    Is this issue a good place for me to comment about my problems using OwnCloud, or would it be better to open another?


  • developer

    Please try again with DAVdroid 0.5.4 (uninstall/delete all accounts, then install DAVdroid 0.5.4 and add accounts again). There have been many improvements related to a larger number of contacts/events as well as performance optimisations.



  • 0.5.4-alpha from f-droid works!



  • Also works for me with Davdroid 0.5.4 from F-Droid (and on the server side, OwnCloud). Great work, thanks!


Log in to reply