Update 2018-09-24 Apparently ocaml versions >=4.05.0 do not produce segfaults anymore so this post is moot.
As I already explained a long time ago, my favorite tool for file synchronization is unison. However, every now and then when I do a system upgrade on my funtoo machines, I note that after that unison just segfaults when invoked. This seems to be a for quite a long time, so I am always a bit confused when this happens.
However, on funtoo the cure is quite easy:
emerge -av1 =dev-lang/ocaml-3.12.1 # or whatever is the latest ocaml-3 emerge -av unison
As far as I know no other package I use depends on ocaml, so I just leave it there. Else I would run another update of ocaml. I also might add newer versions to my packages.mask, however then I'd have to remember this if this bug gets fixed or I need a higher version of ocaml-4 at some point in the future. So this blog posts serves as a reminder for me, as I often search only for recent bugreports when something breaks.
Also there seems to be an issue when one host has an ocaml-3 runtime, the other one an ocaml-4 runtime, which seems to be unresolved, leading to
Internal error: New archives are not identical. Retaining original archives. Please run Unison again to bring them up to date.
Indeed the problem also seems to occur if unison is compiled with different versions of ocaml-3, however, reproducing the steps above on all machines at the same time seems to resolve the issue. Maybe I should look out for a better supported fork of unison. Recommendations are welcome!