Re: Can unison better help with renamed hosts?

Tõivo Leedjärv <[email protected]> Fri, 26 Apr 2024 13:03:59 +0200
Newsgroups gmane.network.unison.general
Message-ID <CAALvpZRF1RhVUGFMV42Y7k8WRejsM8LFEXens4FJXW-jE_xBkw@mail.gmail.com>
This discussion is getting off-topic for the -users list. Is it worth
continuing on the -hackers list or are we reaching a conclusion of
"without a good reason, don't touch what's not broken"?

On Wed, 24 Apr 2024 at 17:01, Greg Troxel <[email protected]> wrote:
>
> Tõivo Leedjärv <[email protected]> writes:
>
> > On Wed, 24 Apr 2024 at 15:34, Greg Troxel <[email protected]> wrote:
> >>
> >> If what we are doing is saying that it should be a hostname, and we are
> >> remediating that changing, that's different from saying that it is an
> >> arbitrary string that should be unique and unchanging, and that we
> >> default to hostname because it traditionally had those properties.
> >
> > Now that I think about it some more, we could actually just skip the
> > whole client-server part of this and use the same ID on both. It would
> > then become the ID for the "sync setup" more than anything else. But
>
> Sure, but that id needs to use state from both sides.  Basically I think
> that dissociating control state from how it is used is asking for
> trouble.  And we do have an id for the sync setup: it's the hash of both
> peer ids.
>
> > I think we've now established that the problem was in fact the client
> > getting different names. We can expect this to happen much more rarely
> > on the server side, though you can just as well sync between two
> > laptops. If it's very rare on the server side then the current tools
> > suffice, I think.
>
> sure
>
> >>   permanent rename is still messy
> >>
> >> which leads me to
> >>
> >>   we should generate a per-host identifier which can bootstrap from a
> >>   non-dynamic dhcp name and store it, perhaps with some random bits to
> >>   avoid collissions
> >>
> >>   we should just use that identifier
> >
> > I was thinking in that direction too. That could be a rather nice
> > solution with just one (maybe tiny) caveat. If the stored identifier
> > is deleted then (unless the same id is re-generated) it would force
> > full rescan even if the archive files were not deleted. Basically,
> > deleting either the archive file or the stored id file will have the
> > same result from user's perspective. Maybe that is fair?
>
> I think it's fine to have to rescan if things change, as long as those
> things aren't expected to change often.
>
> However, it strikes me that having ~/.unison have state about a replica
> reached by a pathname on that system is also dissociated state.
>
> An example: I do backups (not involving unison at all) to external
> disks.  Because I was raised UNIX, I mount them on /mnt.  If I were
> doing unison, there'd be records in ~/.unison about /mnt/foo, but when I
> put in different disks, there are different bits.  That's me, but this
> seems easy to happen.
>
> So really, state about a replica belongs in /path/to/replica/.unison
> (which is *never* synced and cannot be) or someplace, all of identifier,
> ar, fp, lk.
>
> It's certainly fair to configure identifier in .unison and use that as the
> initial value for replica identifier.
>
> And those per-replica identifiers need to be unique.  It can be a UUID
> per replica, or it can be a "clientidentifier" plus a replica name.
> Then we need to tell people not to rsync replicas unless they intend to
> move them!

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].