"Notes" data sync/merging bug or flaw

syncrasy
syncrasy
Community Member
edited December 2016 in Mac

Background: I sync 1Password between two Mac computers over my local network. Mac #1 has the Primary vault. Mac #2's 1Password sync preferences point to that vault over the network. I enable sync on Mac #2 only when both computers are on the network. Typically I leave sync disabled on Mac #2 before I disconnect it from the network to avoid the nag warning from 1Password about not being able to find the desktop computer. (This process has worked for me, so please don't focus on this process for this question; we have discussed the pros/cons ad nauseum in other threads.)

Current problem: When I sync the computers after having Mac #2's sync disabled then re-enabling sync, the sync merging behavior doesn't actually sync Notes in a login item; rather it adds any changed Notes to the existing login item, in addition to the original Notes, placing "==" symbols between them. For example:

Changed notes (after sync)

==

Original notes

If I leave both computers on the network, then change Notes on one computer, then sync the computers, the Notes are sync'd as expected (no duplication of original notes). It's only when I disable/re-enable sync on Mac #2 that the problem occurs.

I don't think this happened with 1Password 5. Seems like it started with 1Password6, but I could be wrong. In any case, I don't think this behavior is desirable or intended. Synchronization should update the old login item to look just like the changed login item. can Agilebits add (true) syncing/merging behavior in a future release of 1Password? And why would sync behave differently just because it was disabled/re-enabled?


1Password Version: 6.5.2
Extension Version: 4.6.1
OS Version: OS X 10.11.6
Sync Type: local network

Comments

  • AGAlumB
    AGAlumB
    1Password Alumni

    Background: I sync 1Password between two Mac computers over my local network. Mac #1 has the Primary vault. Mac #2's 1Password sync preferences point to that vault over the network. I enable sync on Mac #2 only when both computers are on the network. Typically I leave sync disabled on Mac #2 before I disconnect it from the network to avoid the nag warning from 1Password about not being able to find the desktop computer. (This process has worked for me, so please don't focus on this process for this question; we have discussed the pros/cons ad nauseum in other threads.)

    @syncrasy: This is all I'll say on the matter since I don't want to derail the discussion, but I did want to mention that 1Password for iOS 6.5 has improved the experience there, so you shouldn't have to disconnect from the network anymore. :)

    If I leave both computers on the network, then change Notes on one computer, then sync the computers, the Notes are sync'd as expected (no duplication of original notes). It's only when I disable/re-enable sync on Mac #2 that the problem occurs.

    I believe this is the key. When you disable sync and set it up again, 1Password is using a new sync state, because it doesn't want to assume that the next sync connection you make carries forward from the old one, as that could seriously mangle your data. A new sync connection is essentially a clean slate.

    I don't think this happened with 1Password 5. Seems like it started with 1Password6, but I could be wrong. In any case, I don't think this behavior is desirable or intended. Synchronization should update the old login item to look just like the changed login item. can Agilebits add (true) syncing/merging behavior in a future release of 1Password? And why would sync behave differently just because it was disabled/re-enabled?

    I think what's happened here is that you started your "sync shuffle" in response to the prompt that the server is not available, which began with 1Password for Mac 6.0 since we made some changes to the way locking worked. I think I answered your question about regarding the sync state, but be sure to let me know if you have other questions or there's something you'd like me to clarify. I think that with the change to 1Password for iOS I mentioned above, you'll no longer feel the need for these workarounds though, and these issues can become a distant memory. Not to say that sync conflicts will cease to occur, but they'll be more manageable. And I think we'd all much rather have conflicting data than lost data. :)

  • syncrasy
    syncrasy
    Community Member

    I think what's happened here is that you started your "sync shuffle" in response to the prompt that the server is not available,

    Actually, no. The behavior happened when I did my "sync shuffle" normally (no nag prompt). So the changes in 1Password 6 sync/merging method don't like my normal "sync shuffle" even if I perform it correctly.

    And I think we'd all much rather have conflicting data than lost data.

    This would be true if Agilebits were technically incapable of true syncing/merging data. Since 1Password 5 synced data seamlessly without duplicating old notes -- even with my "sync shuffle" -- your statement is a bit hollow. Unless 1Password 6 provides some sort of additional security benefit that I'm missing, it isn't clear why Agilebits changed the locking method. It worked in 5, why not keep the same method for 6?

    ... with the change to 1Password for iOS I mentioned above, you'll no longer feel the need for these workarounds...

    I don't understand how 1Password for iOS will address my syncing issues. I use 1Password on Mac OS. I don't use it for iOS devices.

  • AGAlumB
    AGAlumB
    1Password Alumni

    I don't understand how 1Password for iOS will address my syncing issues. I use 1Password on Mac OS. I don't use it for iOS devices.

    @syncrasy: I'm sorry. I guess I completely misunderstood then. You said you were using "local network" for syncing. Since WLAN Server is the only local sync feature 1Password offers, I assumed you were using that. I'm not sure what else you could be doing, but from your comments it sounds like you're not using that at least.

    This would be true if Agilebits were technically incapable of true syncing/merging data. Since 1Password 5 synced data seamlessly without duplicating old notes -- even with my "sync shuffle" -- your statement is a bit hollow. Unless 1Password 6 provides some sort of additional security benefit that I'm missing, it isn't clear why Agilebits changed the locking method. It worked in 5, why not keep the same method for 6?

    Older versions of 1Password didn't have any sync conflict management for Notes fields. That's why you didn't see it before. I can't say much more than that without knowing what you're doing exactly to "sync" your data, but sounds like you're running into "more conflicts" because you're using an unsupported sync method in the first place (Folder Sync to a network drive?) and conflict resolution didn't exist in the past. Let me know!

  • syncrasy
    syncrasy
    Community Member

    Since WLAN Server is the only local sync feature 1Password offers,

    Not true. Take a look at your own web site, https://support.1password.com/sync-options/:

    Sync over a local network (advanced users)

    • WLAN Server
    • Sync to a folder

    I'm using Sync to a folder. The folder is local on Mac #1, but I can access it over the wi-fi network for syncing Mac #2. I suppose that would be called "Folder Sync to a network drive."

    I realize "Sync to a folder" might not be fully supported ("It’s up to you to configure your preferred sync solution to keep that folder in sync with other computers"), but it is in Agilebit's list of local network sync options.

    You raise the topic of conflict resolution. What does 1Password consider a conflict? Surely not updating changes from one database to another. As I understand it, in a syncing context, conflict resolution involves resolving changes to data that was changed on both computers since the last sync. I don't think that's what's happening in my case (I changed Mac #1 and wanted to update Mac #2 to match Mac #1.) I don't think my "sync shuffle" would create a conflict since data on Mac #2 has not been changed.

  • AGAlumB
    AGAlumB
    1Password Alumni

    Not true. Take a look at your own web site, https://support.1password.com/sync-options/:

    Sync over a local network (advanced users)
    WLAN Server
    Sync to a folder
    I'm using Sync to a folder. The folder is local on Mac #1, but I can access it over the wi-fi network for syncing Mac #2. I suppose that would be called "Folder Sync to a network drive."

    @syncrasy: lol well, I won't argue semantics with you. This is what I'm talking about:

    Lastly, you can keep a copy of a vault updated in a folder you specify. It’s up to you to configure your preferred sync solution to keep that folder in sync with other computers.

    I realize "Sync to a folder" might not be fully supported ("It’s up to you to configure your preferred sync solution to keep that folder in sync with other computers"), but it is in Agilebit's list of local network sync options.

    Folder Sync isn't a network sync option; it's fully supported when saving to a folder, but not a network share. It's simply not possible for 1Password to ensure the availability of the data when it needs to read or write to it. Folder Sync is great for syncing to a folder of your choosing so you can use another sync service (ChronoSync, OneDrive, Google Drive, etc.) We can guarantee the reliability of 1Password syncing to a folder on your computer, but not what happens with 3rd party software or network shares. We just don't want people getting themselves into situations where they can lose data. I've been there, and it isn't something I'd wish on anyone.

    You raise the topic of conflict resolution. What does 1Password consider a conflict? Surely not updating changes from one database to another. As I understand it, in a syncing context, conflict resolution involves resolving changes to data that was changed on both computers since the last sync. I don't think that's what's happening in my case (I changed Mac #1 and wanted to update Mac #2 to match Mac #1.) I don't think my "sync shuffle" would create a conflict since data on Mac #2 has not been changed.

    Exactly. Data that was modified on multiple devices prior to syncing is a conflict. If we just assume that the newer one is correct, you may be losing other information from the other one. It's easy to make another change on another device without realizing that the first change you made elsewhere hadn't been sync'd yet. It's hard to say for certain, but strictly speaking viewing an item can modify it. So that's an easy way to get confusing conflicts, often with duplicate information, with unsupported sync setups.

    For example, what if there was a temporary network issue that caused a delay when trying to write to the network drive? It can end up with a modified date/time that doesn't quite reflect when you actually made the change. I've had plenty of odd network anomalies on macOS which resulted in network drive disconnect and problems reconnecting. Even now, nothing is showing up in Finder > Network, so I'm having to manually connect via AFP or SMB — probably until I reboot. This isn't the end of the world when I'm just streaming videos over the network, but it isn't something I'd want to risk with my 1Password data.

This discussion has been closed.