I did setup GlusterFS but when I mounted the directory on the client and did hg clone myrepo myrepo
in that mounted directory, it's giving the following error:
requesting all changes
adding changesets
transaction abort!
rollback completed
abort: integrity check failed on 00changelog.i:6!
- When I go to a none Glusterfs directory then clone, hg works fine.
- I checked out the code to a different directory then moved it to the mounted GlusterFS directory and it works fine.
So it must be that either Mercurial or GlusterFS has a bug but don't know if there is an alternative. Else I will have to use rsync from non mounted directory. Any idea what's going on here?
Versions
GlusterFS 3.2.6
Mercurial 2.1.1
Best Answer
It looks like this bug: Direct io-mode support and related changes in caching translators, described in Write-behind breaks Mercurial. The bug will be fixed in GlusterFS 3.4.0 (I don't know if is fixed in 3.3, anyway try the beta), according to the Bugzilla entry.
As a workaround, is suggested to disable write-behind:
gluster volume set conf performance.write-behind off
.