Sub Repos out of sync

Hi,

we got a server with a repo.
we share a subdirectory of this repo (with individual user) which is somehow now an own repo (only visible via fschk) .
Now the subrepo got different content than the main repo.

  1. someone know why we get a subrepo here ? we didn’t created it our self.
  2. is it possible to merge them like in git ?

We use the Community Server 9.0.6 .

Greetings

Whenever you share a folder, a sub-repo is created and shared to the user. Usually the sub-repo will be automatically merged with the parent. You should check server seafile.log for error messages.

There are only Errors like this one:

virtual-repo.c(890): Cannot find seafdir for repo e4b40ae1-g path /xx/yy.

2022-08-22 13:10:47 …/common/fs-mgr.c(1895): [fs mgr] Failed to read dir 3c178a75e978e2c2fd7b20726e5684ab6bfd15ef.

2022-08-22 13:10:47 …/common/fs-mgr.c(2662): Failed to get dir for /xx/yy.

So the library or the sub-library is corrupted. You can use seaf-fsck to check them. You should check first the parent library. If the parent library is ok, you can just re-create the share. If not, just repair it and re-create the share.

We allready used seaf-fsck multible times and it reports that everything is working fine.
We will probably recreate the share next week.

I tried seaf-fsck and it didn’t report anything.
I tried to export the sublib via seaf-fsck --export and I got a shitload of missing directories and it won’t export anything.
So I synced the sublib and mainlib to a windows Server and synced it manually via total commander.
Then I kicked all Users out of the share, but thew sublib won’t delete it.
I endet up deleting the entry in the VirtualRepo Table to see the sublib as regular repo in seahub and delete it there.
Than I was able to create a new one.

After all there are some points to improve:

  • show the sub libs in the admin panel including some functions like delete, compare to main or last successfull sync
  • I’m not sure what the seaf-fsck does in deep, but it didn’t work properly
  • maybe the self written filesystem is a large problem for debugging, maybe you could add an option to disable it and rely on the regular local fs