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