Opened 7 years ago

Closed 7 years ago

Last modified 6 years ago

#35407 closed defect (wontfix)

unison fails with "Fatal error: Internal error: New archives are not identical"

Reported by: dcecchin@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 2.1.2
Keywords: Cc: rwilcox (Ryan Wilcox), someuser12, shamardin@…
Port: unison

Description

I have three systems:

  • System: FreeBSD sanction.local 9.0-RELEASE-p3
    • unison version 2.40.63
  • System: Linux kothas 3.2.0-27-generic - Ubuntu 12.04
    • unison version 2.40.65
  • System: Darwin palanthas.local 12.0.0 - Mountain Lion 10.8
    • unison version 2.40.65 - built against OCaml 4.0.0

I made a file (with dd) in a directory then, downloaded it to palanthas via scp manually.

It should say:

Looking for changes
  Waiting for changes from server
Reconciling changes
Nothing to do: replicas have not changed since last sync.

But instead I got this error:

Fatal error: Internal error: New archives are not identical.
Retaining original archives.  Please run Unison again to bring them up to date

Rerunning unison again doesn't fix the problem

Transfers between any of the systems seem to work except when palanthas is either receiving data or sending it over ssh. palanthas is able to do synchronizations on its own filesystem not over ssh with the expected result ie:

dcecchin@palanthas:~$ unison -ui text ~/palanthas_to_palanthas_using-macports_version.a palanthas_to_palanthas_using-macports_version.b

Attachments (1)

patch-Makefile.OCaml.diff (320 bytes) - added by someuser12 7 years ago.
Quick and dirty patch to compile unison-2.40.63 with ocaml 4.0

Download all attachments as: .zip

Change History (11)

comment:1 Changed 7 years ago by ryandesign (Ryan Schmidt)

Port: unison added

The unison port has no maintainer, and since you're describing problems with using unison, and not with installing it, you'll be better off contacting the developers of unison directly.

comment:2 Changed 7 years ago by dcecchin@…

It seems to be a problem since I reinstalled with mountain lion. It used to work just fine before that, and the official binaries work fine (I've temporarily switched over to them). It is possible it is caused by building against OCaml 4.0.0 maybe. I've tested this a number of times now deleting my ~/Library/Application\ Support/Unison/ and ~/.unison directory on the server.

I suspect this break in functionality has something to do with that.

comment:3 Changed 7 years ago by dcecchin@…

It's quite well possible it is related to this http://tech.groups.yahoo.com/group/unison-users/message/10430 - Different archive formats built with ocaml-3.12.1/4.00_beta2

It seems if the server that unison is syncing with uses a different OCaml version it will not work. Eg FreeBSD currently has OCaml 3.12.1 and http://www.freebsd.org/cgi/cvsweb.cgi/ports/lang/ocaml/ and Ubuntu 12.04 has the same version http://packages.ubuntu.com/precise/ocaml which is why it has worked up until now.

comment:4 Changed 7 years ago by dcecchin@…

This should probably be marked as WONTFIX because it's really an upstream issue.

I guess it would have been possible to add a flag like +ocaml3 or +ocaml4 so that the user may choose which version they want to build against if ocaml3 was actually still available in macports.

comment:5 Changed 7 years ago by mf2k (Frank Schima)

Resolution: wontfix
Status: newclosed

Agreed. But you might want to open a request ticket for ocaml3 and Cc the ocaml port maintainer.

comment:6 Changed 7 years ago by rwilcox (Ryan Wilcox)

Cc: rwilcox@… added

Cc Me!

comment:7 in reply to:  description Changed 7 years ago by someuser12

1) Since the issue is triggered by the update of ocaml from 3.x to 4.0, could we imagine a quick-and-dirty fix: increase the revision of unison to force a rebuild? (I rebuilt unison both on client and server side with ocaml 4.0 and, as others said, it solves the issue --- under Mac OS 10.6 and 10.5).

This was suggested on the macports-users mailing list for the case of maxima and sbcl (everytime sbcl is updated, maxima gets broken): http://lists.macosforge.org/pipermail/macports-users/2011-November/026226.html (but, as far as I know, never put into practice for maxima, alas).

Of course, there is also currently an issue with MacPorts' version of unison not being the latest stable version but an unstable version (#35116). If issue #35639 is solved, it will probably force a rebuild of unison.

2) As a side remark, if anyone wants to build unison 2.40.63 with variant x11 with ocaml 4.0: one has to rebuild first lablgtk2 with ocaml 4.0, then modify unison's Makefile.OCaml so that it looks for the labkgtk2 libraries not in OCAMLLIBDIR but in OCAMLLIBDIR/site-lib . I attach to this comment the simplest patch that works, but probably not the most robust one.

Changed 7 years ago by someuser12

Attachment: patch-Makefile.OCaml.diff added

Quick and dirty patch to compile unison-2.40.63 with ocaml 4.0

comment:8 Changed 7 years ago by someuser12

Cc: macosx12345@… added

Cc Me!

comment:9 Changed 7 years ago by shamardin@…

Cc: shamardin@… added

Cc Me!

comment:10 Changed 6 years ago by ecronin (Eric Cronin)

r100034 should have fixed this properly, they modified the hashing to produce the same result with ocaml4 that ocaml3 does.

Note: See TracTickets for help on using tickets.