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