OpenBSD - Error reading owner-info for <REPOPATH>: No such file or directory (2)
John Keeping
john at keeping.me.uk
Thu Feb 25 10:26:05 UTC 2021
On Thu, Feb 25, 2021 at 05:00:57PM +1000, Paul W. Rankin wrote:
> I'm running cgit v1.2.3 on OpenBSD 6.8 with httpd and slowcgi. I'm
> getting tons of log errors in the form:
> Error reading owner-info for <REPOPATH>: No such file or directory
> (2)
>
> I've found this Stack Overflow question
> https://stackoverflow.com/questions/48450631/ which suggests that the
> problem is with the call to getpwuid trying to access /etc/passwd:
>
> if ((pwd = getpwuid(st.st_uid)) == NULL) {
> fprintf(stderr, "Error reading owner-info for %s: %s (%d)\n",
> path->buf, strerror(errno), errno);
> break;
> }
>
> @ https://git.zx2c4.com/cgit/tree/scan-tree.c#n139
>
> On OpenBSD, httpd runs in a chroot at /var/www, which would seem to
> suggest why cgit would not be able to access /etc/passwd
>
> In my cgitrc I have
> enable-git-config=0
> enable-index-owner=0
> so that doesn't help.
>
> Is there any way to prevent all these error logs? Currently this fills
> up a log file about once an hour...
Without any changes to the code, if you set "repo.owner" (or
"gitweb.owner" if you have "enable-git-config" set) then this value will
be used and the loop that tries getpwuid() won't be entered.
I think it would be reasonable to provide a way to disable the "owner
from filesystem" code via cgitrc. It's probably meaningless in many
setups, for example with Gitolite, where all the repositories are owned
by a "git" user anyway.
John
More information about the CGit
mailing list