Le 6 juil. 09 à 09:47, Ralf Becker a écrit :
[...]
Jul 6 08:14:32 trevi mail:err|error dovecot: IMAP(beckerr):
fchown(/u/f0/rzuser/beckerr/Mail/.subscriptions.lock, -1, -1)
failed: Invalid argument
[...]
The error just appears on NFS mounted shared and I'm not sure if
AIX or netapp is the cause.
According to the posix specification, fchown may return EINVAL when
the owner or group ID is not a value supported by the implementation,
or when the fildes argument refers to a pipe or socket or an fattach()-
ed STREAM and the implementation disallows execution of fchown() on a
pipe.
Wouldn't it be worth to check what kind of entity gets created under
your environment?
I ask because I wouldn't exclude without further investigations the
possibility of encountering other side effects wrt files throughout
the code.
So to determine the real problem is
not easy, but to fix it is:
While uid and gid are both -1 the call could be suppressed, because
nothing is really changed:
--- ./lib/file-dotlock.c.org 2009-07-06 09:25:14.000000000 +0200
+++ ./lib/file-dotlock.c 2009-07-06 09:24:48.000000000 +0200
@@ -780,7 +780,7 @@
fd = file_dotlock_open(set, path, flags, &dotlock);
umask(old_mask);
- if (fd != -1) {
+ if (fd != -1 && (uid != -1 || gid != -1)) {
if (fchown(fd, uid, gid) < 0) {
if (errno == EPERM && uid == (uid_t)-1) {
i_error("%s", eperm_error_get_chgrp("fchown",
Alternatively, perhaps could you write a small c program so as to test
a fchown(fd,-1,-1) operation on a "regular" file as see whether it
fails or not.
HTH,
Axel