kern/157234: //proc/curproc/file returns "unknown" with a binary
called via a nullfs mountpoint
Patrick Lamaiziere
patfbsd at davenulle.org
Sat May 21 11:20:08 UTC 2011
>Number: 157234
>Category: kern
>Synopsis: //proc/curproc/file returns "unknown" with a binary called via a nullfs mountpoint
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Sat May 21 11:20:08 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator: Patrick Lamaiziere
>Release: 8.2-STABLE / i386
>Organization:
>Environment:
FreeBSD roxette.lamaiziere.net 8.2-STABLE FreeBSD 8.2-STABLE #0: Fri May 20 19:12:02 CEST 2011 root at roxette:/usr/obj/usr/src/sys/GENERIC i386
>Description:
Hello,
I use a nullfs mount /journal/usrlocal in /usr/local :
mount:
/dev/ada0s2e.journal on /journal (ufs, asynchronous, local, gjournal)
procfs on /proc (procfs, local)
/journal/usrlocal on /usr/local (nullfs, local)
/proc/curproc/file returns "unknown" with a binary called via a nullfs mountpoint, but not if called directly.
test program (test.c)
#include <stdio.h>
#include <unistd.h>
#include <errno.h>
main() {
ssize_t n = 0;
char link[1024];
n = readlink("/proc/curproc/file", link, 1024);
if (n == -1) {
printf("error : %d\n", errno);
} else {
printf("file = %s\n", link);
}
}
build and copy "test" binary into /usr/local/bin
$ /journal/usrlocal/bin/test
file = /journal/usrlocal/bin/test
$ /usr/local/bin/test
file = unknown
This prevents me to run java (it uses curproc file to find where are its libraries)
Thanks, regards.
>How-To-Repeat:
See above
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list