leighmcculloch / docker-unison

A docker data container using Unison for fast folder sync. An alternative to slow boot2docker volumes on OS X.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Fatal error: Lost connection with the server

brikis98 opened this issue · comments

I just tried this out and while the initial file sync using unison seems to work, at some point, subsequent ones start to fail due to a lost connection with the server error:

Contacting server...
Looking for changes
  Waiting for changes from server                                       
Reconciling changes
         <---- new dir    .sass-cache/73518faaa7ed96cd1457d21e3debf149fba1a055  
changed  ---->            _drafts/foo.md  
Propagating updates
UNISON 2.48.3 started propagating changes at 18:36:37.74 on 06 May 2015
[BGN] Copying .sass-cache/73518faaa7ed96cd1457d21e3debf149fba1a055 from //fb6abd0fdb11//unison to /Users/brikis98/foo
[BGN] Updating file _drafts/foo.md from /Users/brikis98/foo to //fb6abd0fdb11//unison
Fatal error: Lost connection with the server
  4%  00:00 ETAbrikis98-pro:foo

Any idea what's causing that? The container still seems to be running:

brikis98-pro:foo brikis98$ docker ps -a
CONTAINER ID        IMAGE                                   COMMAND             CREATED             STATUS                        PORTS                    NAMES
fb6abd0fdb11        leighmcculloch/unison:latest            "/sbin/my_init"     27 minutes ago      Up 27 minutes                 0.0.0.0:5000->5000/tcp   unison-container    

I've also seen some similar errors, and I think it's related to the unison being unable to write to the file.

This seems to happen to me fairly often. I exported the container and inspected the log:

server started
Unison failed: Uncaught exception Failure("input_value: bad bigarray kind")
Raised by primitive operation at file "/tmp/unison/unison-2.48.3/remote.ml", line 453, characters 18-45
Called from file "/tmp/unison/unison-2.48.3/remote.ml", line 459, characters 23-61
Called from file "/tmp/unison/unison-2.48.3/lwt/lwt.ml", line 75, characters 20-23
Re-raised at file "/tmp/unison/unison-2.48.3/lwt/lwt.ml", line 135, characters 12-13
Called from file "list.ml", line 73, characters 12-15
Called from file "/tmp/unison/unison-2.48.3/lwt/lwt.ml", line 31, characters 2-37
Called from file "/tmp/unison/unison-2.48.3/lwt/lwt.ml", line 83, characters 17-46
Called from file "/tmp/unison/unison-2.48.3/lwt/generic/lwt_unix_impl.ml", line 147, characters 6-40
Called from file "/tmp/unison/unison-2.48.3/remote.ml", line 1460, characters 11-57
Called from file "/tmp/unison/unison-2.48.3/ubase/util.ml", line 170, characters 6-9
Called from file "/tmp/unison/unison-2.48.3/main.ml", line 131, characters 4-9

server started

Seems to be related to:
http://www.spotwise.com/2015/01/06/broken-unison-brew-on-yosemite/

TLDR;
brew uses ocaml 4.02 while the ubuntu package manager provides 4.01. The error is caused by these mismatched versions.