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