[1.2.8 on Xubuntu 15.04] insync taking an unusually long time to complete initial syncing

Running 1.2.8.35136-trusty on Xubuntu 15.04.

insync is taking clocked 5 min to complete initial sync. It was practically immediate with previous version. Ran insync start --no-daemon, and here’s the console output:

paulo@monk:~/tmp$ insync start --no-daemon
INFO     2015-05-05 06:45:10,346 [__init__:info:1614] insync version: 1.2.8.35136
INFO     2015-05-05 06:45:10,350 [__init__:info:1614] client created <ideskmain.client.Client object at 0x7fb8717b8810>
INFO     2015-05-05 06:45:10,352 [__init__:info:1614] unix socket server thread start
INFO     2015-05-05 06:45:10,353 [__init__:info:1614] starting client
INFO     2015-05-05 06:45:10,369 [__init__:info:1614] LinuxFSWatcher._start
INFO     2015-05-05 06:45:10,372 [__init__:info:1614] Inotify loop enter
/usr/lib/insync/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/lib/x86_64-linux-gnu/libproxy.so.1)
Failed to load module: /usr/lib/x86_64-linux-gnu/gio/modules/libgiolibproxy.so
INFO     2015-05-05 06:45:10,527 [__init__:info:1614] Syncing GDUser(id=u'108004781291236804203', email=u'MY EMAIL ADDRESS', name=u'Paulo Marcel Coelho Arag\xe3o').
INFO     2015-05-05 06:45:12,279 [__init__:info:1614] watch origin: /home/paulo/Google Drive
INFO     2015-05-05 06:45:12,651 [__init__:info:1614] GDUser(id=u'108004781291236804203', email=u'MY EMAIL ADDRESS', name=u'Paulo Marcel Coelho Arag\xe3o') (existing) is now being synced.
INFO     2015-05-05 06:45:12,901 [__init__:info:1614] state: SYNCING
INFO     2015-05-05 06:46:13,120 [__init__:info:1614] No updater available.
ERROR    2015-05-05 06:47:12,778 [__init__:error:1588] While creating private link.
Traceback (most recent call last):
  File "ideskmain/clientmenuitems.py", line 513, in __get_private_link
  File "idesksyncer/shareapi.py", line 168, in create_private_link
  File "idesksyncer/shareapi.py", line 85, in insert_permission
  File "idesksyncer/gdstate.py", line 531, in insert_permission
  File "idesksyncer/gdstate.py", line 793, in _to_contact
AttributeError: 'PermissionResource' object has no attribute 'emailAddress'
INFO     2015-05-05 06:50:02,386 [__init__:info:1614] state: SYNCED

First impressions about this new version (for Linux, at least): a step back from previous version, breaking things that worked before:

  1. Private links are not being copied (issue 1076)
  2. Unusually long time time (5 min on this run) to complete initial sync

EDIT: I want to downgrade and pin insync to the previous version (1.2.7.35123-trusty) How can I do that ? The previous version is not available in the repository.

I can confirm that it takes longer now.
Before the update it was just mere seconds of initialisation. After the update it takes about a minute for me.

By the way, Marcel, your email address is in your log. Not sure if you want that.

By the way, Marcel, your email address is in your log. Not sure if you want that.

Thanks for pointing it out, @Han_Kruiger!

Gotta find a way to downgrade while the issues are fixed. 0.1.28 didn’t bring any immediately visible imorovements that might justify putting up with the regressions.

I wonder if someone has come up with any workarounds for these issues.

@marcelpaulo For the private links issue, we are working on it and the fix should be available in the next release.

For the initial sync issue, please try running Insync with insync start --synchronous-normal.

I didn’t know there were so many options on the CLI. I tried your suggestion, and indeed startup time is as swift as it was with 1.2.7. A couple of doubts about it:

  • The description of --synchronous-normal says: “sets synchronous flag of sqlite to NORMAL; improves performance but increases risk of db corruption”. Could you please explain this risk ?
  • Was 1.2.7 startup fast because it used --synchronous-normal ?

I didn’t know there was such a plethora of command line options. I can now integrate insync with mc, particularly for getting private and public links. Great to know, thanks for the indirect tip !

For reference, in case someone also uses mc as primary file manager and wants to integrate it with insync, I added this snippet to ~/.config/mc/menu:

+ d ^/home/paulo/Google\ Drive & t rd
i   insync
    insync get_private_link %d/%f >/dev/null &

Integrating other actions will be just as simple.

Is there an ETA for that ?

@marcelpaulo From sqlite’s page:

When synchronous is NORMAL (1), the SQLite database engine will still sync at the most critical moments, but less often than in FULL mode. There is a very small (though non-zero) chance that a power failure at just the wrong time could corrupt the database in NORMAL mode. But in practice, you are more likely to suffer a catastrophic disk failure or some other unrecoverable hardware fault.

Yes, 1.2.7 used --synchronous-normal. We switched to FULL in 1.2.8 to address reports of db corruption, but it seems it has bugs of its own.

The fix for creating private links has been added to 1.2.9. However it doesn’t address the slow syncing yet.

2 Likes

How weird that I haven’t been receiving email alerts for the threads I’m watching.

Anyway, thanks for the (late !) explanation, @lpugoy. I’ve just installed 1.2.10, and can see that insync is using --synchronous-normal as default. So I removed my workaround (had copied /usr/share/applications/insync.desktop to ~/.local/share/applications, and changed Exec to insync start --synchronous-normal).

Thanks a lot for the swift handling of the issue !