git clone fails on NFS4 exports using FSAL Ceph
Hello, i am exporting the ceph filesystem via FSAL Ceph on ganesha 3.3. When i try to do a "git clone <some_repository>" on an export mounted via NFS4 i get the following error: $ git clone https://github.com/buckyroberts/Viberr.git Klone nach 'Viberr' ... remote: Enumerating objects: 77, done. remote: Total 77 (delta 0), reused 0 (delta 0), pack-reused 77 Empfange Objekte: 100% (77/77), 7.23 MiB | 7.13 MiB/s, Fertig. fatal: kann /home/f.stolte/Viberr/.git/objects/pack/tmp_pack_gi8Eex nicht öffnen: Keine Berechtigung fatal: index-pack fehlgeschlagen While researching this issue, i found a similar bug in ganesha, but it was related to the gluster FSAL. While exporting the mounted cephfilesystem with the VFS FSAL, git clone works fine. But VFS does not respect the directory quota we set like the ceph FSAL, so this way is not an option. Can i fix this issue with a config parameter or do i need to report a bug for the ganesha ceph FSAL?
On Tue, 2020-11-03 at 12:39 +0000, f.stolte@fz-juelich.de wrote:
Hello, i am exporting the ceph filesystem via FSAL Ceph on ganesha 3.3. When i try to do a "git clone <some_repository>" on an export mounted via NFS4 i get the following error:
$ git clone https://github.com/buckyroberts/Viberr.git Klone nach 'Viberr' ... remote: Enumerating objects: 77, done. remote: Total 77 (delta 0), reused 0 (delta 0), pack-reused 77 Empfange Objekte: 100% (77/77), 7.23 MiB | 7.13 MiB/s, Fertig. fatal: kann /home/f.stolte/Viberr/.git/objects/pack/tmp_pack_gi8Eex nicht öffnen: Keine Berechtigung fatal: index-pack fehlgeschlagen
While researching this issue, i found a similar bug in ganesha, but it was related to the gluster FSAL. While exporting the mounted cephfilesystem with the VFS FSAL, git clone works fine. But VFS does not respect the directory quota we set like the ceph FSAL, so this way is not an option.
Can i fix this issue with a config parameter or do i need to report a bug for the ganesha ceph FSAL?
I'm not familiar with the german translations of POSIX error messages. Is that EACCES or EPERM? If you run the git clone under strace, can you see which system call returned the error? -- Jeff Layton <jlayton@poochiereds.net>
On Tue, 2020-11-03 at 12:39 +0000, f.stolte(a)fz-juelich.de wrote:
I'm not familiar with the german translations of POSIX error messages. Is that EACCES or EPERM? If you run the git clone under strace, can you see which system call returned the error? Hi Jeff,
i changed the locale to english and executed git clone with strace. I think this is the interesting part: fatal: unable to open /home/f.stolte/Viberr/.git/objects/pack/tmp_pack_ZVQwGK: Permission denied "", 46) = 0 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=2429, si_uid=145522, si_status=128, si_utime=9, si_stime=2} --- close(7) = 0 wait4(2429, [{WIFEXITED(s) && WEXITSTATUS(s) == 128}], 0, NULL) = 2429 write(2, "fatal: index-pack failed\n", 25fatal: index-pack failed ) = 25 getpid() = 2425
On Tue, 2020-11-03 at 13:19 +0000, f.stolte@fz-juelich.de wrote:
On Tue, 2020-11-03 at 12:39 +0000, f.stolte(a)fz-juelich.de wrote:
I'm not familiar with the german translations of POSIX error messages. Is that EACCES or EPERM? If you run the git clone under strace, can you see which system call returned the error? Hi Jeff,
i changed the locale to english and executed git clone with strace. I think this is the interesting part: fatal: unable to open /home/f.stolte/Viberr/.git/objects/pack/tmp_pack_ZVQwGK: Permission denied "", 46) = 0 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=2429, si_uid=145522, si_status=128, si_utime=9, si_stime=2} --- close(7) = 0 wait4(2429, [{WIFEXITED(s) && WEXITSTATUS(s) == 128}], 0, NULL) = 2429 write(2, "fatal: index-pack failed\n", 25fatal: index-pack failed ) = 25 getpid() = 2425 _______________________________________________ Support mailing list -- support@lists.nfs-ganesha.org To unsubscribe send an email to support-leave@lists.nfs-ganesha.org
Ahh, that shows the process running and exiting with an error. You may need to re-run the strace with a '-f' flag (to follow fork()). -- Jeff Layton <jlayton@poochiereds.net>
On Tue, 2020-11-03 at 13:19 +0000, f.stolte(a)fz-juelich.de wrote:
Ahh, that shows the process running and exiting with an error. You may need to re-run the strace with a '-f' flag (to follow fork()).
I think this line is the answer to your original question: openat(AT_FDCWD, "/home/f.stolte/Viberr/.git/objects/pack/tmp_pack_IVPQcf", O_RDONLY) = -1 EACCES (Permission denied)
Since we know it is EACCES what can i do now?
Hi, I think that I've seen such behavior with NFSv3 (which is stateless) If I remember correctly Git opens a file descriptor to create a read-only file and tries to put its content. I guess a network capture can help to understand which procedure calls are made. Olivier On Thu, Nov 5, 2020 at 9:09 AM <f.stolte@fz-juelich.de> wrote:
Since we know it is EACCES what can i do now? _______________________________________________ Support mailing list -- support@lists.nfs-ganesha.org To unsubscribe send an email to support-leave@lists.nfs-ganesha.org
On Wed, 2020-11-04 at 07:50 +0000, f.stolte@fz-juelich.de wrote:
On Tue, 2020-11-03 at 13:19 +0000, f.stolte(a)fz-juelich.de wrote:
Ahh, that shows the process running and exiting with an error. You may need to re-run the strace with a '-f' flag (to follow fork()).
I think this line is the answer to your original question: openat(AT_FDCWD, "/home/f.stolte/Viberr/.git/objects/pack/tmp_pack_IVPQcf", O_RDONLY) = -1 EACCES (Permission denied)
...what are the permissions on that file, and what are the uid/gid/groups for the user doing this call? Also, what version of libcephfs do you have? -- Jeff Layton <jlayton@poochiereds.net>
participants (3)
-
f.stolte@fz-juelich.de -
Jeff Layton -
Olivier Garaud