Shared Vaults via Dropbox sync problem

Options
londan
londan
Community Member

Hi,

We're having a problem with Shared Vaults synced via Dropbox. We have 4 Mac users sharing a vault Africa Shared and noticed that one of the members of the team was getting all our changes to the vault, but when she changed something it didn't feed through to any of the others.

When I checked the Dropbox folder I noticed that there were 2x copies of the vault: The correct one with upper and lowercase letters Africa Shared but also a rogue vault of all lowercase letters africa shared.

After a few minutes the Dropbox folder returned to displaying just one copy of the database, but when I looked online you could see the lowercase version was there but had been deleted. In the end the only way to fix this was to have everyone stop syncing the vault, then un-share and completely delete the 1Password Africa Shared folder containing the database from Dropbox. We then created a new folder, re-shared and re-synced everyone in 1Password. We then also discovered another vault with the same problem so fixed that one too.

This seems to be read/write error by 1Password with upper/lowercase characters becoming jumbled. Would be great if you clever Agilebits folks could figure a way to avoid this problem.

Cheers, Dan


1Password Version: 1Password 5 Version 5.3.2 (532001) Agile Web Store
Extension Version: Not Provided
OS Version: OS X 10.10.4
Sync Type: Dropbox

Comments

  • littlebobbytables
    littlebobbytables
    1Password Alumni
    Options

    Hi @londan (Dan),

    I have to confess, I've not seen that one before. As you have four users can you confirm if they're all using just their Macs and if they're all running the same version. It almost seems like somebody is using a file system that doesn't differentiate between case but I can't even think what filesystems even do this now.

    I don't suppose the Dropbox logs are any use in determining when and how this happened are they? I only ask because it's so unusual and we definitely would like to get to the bottom of this puzzle.

  • londan
    londan
    Community Member
    Options

    Hi LittleBobbyTables,

    Thanks for the reply. All four users are on Macs with OS X 10.10.3 or 10.10.4. Also, the other shared vault that was corrupted is only used by 2 of us, both on Macs and both on 10.10.4. The files and database folders were never re-named or shared with Windows users.

    Think it is something to do with Dropbox itself so really would need code in 1Password to do case-insensitive checks as/when read/writing files. Small post from developer of another app here:
    * http://notesy-app.com/weblog/files/tag-characters.html

    It could be that this problem is nothing to do with the character issue at all, just seemed a bit of a co-incidence. Will try to dig out the Dropbox access logs for the user with the problems.

    Cheers, Dan

  • littlebobbytables
    littlebobbytables
    1Password Alumni
    Options

    Hi @londan,

    I'll have to pass this one to the devs I think. When we create a sync container like the Agile Keychain we simply store the filename as we used to create it and similarly for when we connect an existing copy of 1Password to an existing Agile Keychain, we record the filename as it was at the time. We don't have anything in 1Password that would allow you to change the name of the Agile Keychain from within 1Password so the code assumes it doesn't change. It means I'm at quite a loss to explain how this happened.

  • londan
    londan
    Community Member
    Options

    Thanks LittleBobbyTables. My understanding of the issue is that the Dropbox servers are case-sensitive so it sees Africa Shared and africa shared as two different files. As they also support syncing with systems – like Mac OS – which are case-insensitive, your code must check the case of the file whenever reading/writing or these errors will occur.

    I've seem similar ghosting on file servers in multi-OS environments. MS Office has a problem like this if you open a file directly from a Unix/Linux/Mac OS file share. The temporary hidden files can get scrambled especially if the file is accessed by multiple users.

  • littlebobbytables
    littlebobbytables
    1Password Alumni
    Options

    Hello @londan,

    It seems to be messy. Dropbox isn't case sensitive. Their website won't allow me to have both aa.jpg and aa.JPG or Aa.jpg in the same folder. It also won't allow me to rename aa.jpg to one of those directly, I have to also add or subtract a character and then undo that part i.e. aa.jpg to Aa1.jpg and then to Aa.jpg is acceptable. This reminds me of an older version of OS X's case insensitivity to be honest.

    OS X though will allow me to rename aa.jpg directly to Aa.jpg (but won't allow both) and Dropbox doesn't pick up on it. However, if I do the same with an Agile Keychain like demo.agilekeychain where I disable sync, manually rename the file and reconnect I can have it where 1Password is syncing to Demo.agilekeychain (that is after all what OS X is reporting exists) but it still exists as demo.agilekeychain on Dropbox. Now 1Password still correctly updates and the demo.agilekeychain is being altered on Dropbox's servers.

    I've only found one way so far to create the screenshot you see and that's if you delete or rename a moderately-sized folder and basically syncing takes a moment to catch up. So with my example above with the JPG image you wouldn't see it but if you have a moderately-sized vault using the Agile Keychain format and you do something like above you can be in the situation where you would briefly see Demo.agilekeychain alongside demo.agilekeychain because Dropbox's service seems to delete and add rather than rename. It's easier to see if you don't have a great internet connection I believe as OS X catches up.

    Please don't get me wrong, I want to keep this dialogue open but I have my doubts at the moment that this is 1Password at fault, at least with the Mac version anyway which wholly relies on what OS X tells it. With that above case OS X told me Demo.agilekeychain existed but demo.agilekeychain didn't - despite what Dropbox's server might have said.

    If we can pin down a reasonable sequence steps that reproduces it (very simple to say, I think a lot trickier to discover) where you and I agree "that has to be accounted" for I'll package it all up in a bug report and make the developers aware. We do have to understand how it happened though as at the moment, it seems something happened outside of 1Password but I don't understand what.

  • londan
    londan
    Community Member
    Options

    Hi LittleBobbyTables,

    Thanks for all the work looking into this. Sorry, looks like I'm getting the case sensitivity a bit jumbled! It could be that this is all a red-herring and that the sync problems we had were indeed just coincidental to the screenshot of the duplicate upper/lowercase filenames.

    I have though done some quick tests renaming files while also logged into the Dropbox.com web interface with Show Undeleted Files switched on. If I try to rename a file in OS X from aa.txt to Aa.txt then I just get a Finder error, but if I try to do this in the Dropbox web client then it creates a file aa (1).txt. It also seems that whenever I rename a file it doesn't actually rename it, but instead makes a copy with the new name and deletes the old one (though it can be restored).

    Hmmm... think it might be best to just chalk this one up to Gremlins and move on. I can always re-open the thread if one of our Shared Vaults gets out of sync again.

    Thanks again for the help – greatly appreciated!

    Cheers, Dan

  • thightower
    thightower
    Community Member
    Options

    @londan

    Yes, Dropbox on doing a move or rename for that matter > Treats it as -- copy first -- then -- delete the old file. Most times you will not see this, but there are occasions where you will. The 1Password keychain is one such example (in my experience).

    Sorry to poke the thread, just wanted to confirm the above.

    --
    Tom Hightower

    Dropbox Moderator / 1Password Moderator

  • littlebobbytables
    littlebobbytables
    1Password Alumni
    Options

    Hi @londan,

    We will keep the thread open and should you experience any other funky behaviour please do let us know. We certainly don't want to be doing anything weird that would jeopardise the sync container, it's just I'm not certain what did happen yet.

    Thanks for the enlightenment @thightower, I'm guessing it's possible to see this if your connection is slow or saturated for any reason if that's the case.

    Keep us updates @londan :smile:

  • londan
    londan
    Community Member
    Options

    All good @littlebobbytables. Will keep you posted if I run into any further sync issues.

  • Drew_AG
    Drew_AG
    1Password Alumni
    Options

    Thanks, we'll be happy to help if more sync issues happen! :)

This discussion has been closed.