On Wed, 22 May 2013, Guillem Jover wrote:

The /proc/<PID>/exe and other native equivalent implementations on
BSDs do not give anything meaningful when the inode has been removed,
and as it stands s-s-d uses the Linux method on kFreeBSD. We noticed
this last year (see #652575, CCed to debian-bsd), and I played with
different methods, but there's currently no way to retrieve the exec
path from a process whose executable has been removed (not even with
sysctl KERN_PROC_PATHNAME, only Linux and HPUX seem to have sane
interfaces for this). I'll recheck my notes to make sure though.

It seems like the position of upstream FreeBSD is that, once a file is opened, its name is basically lost or unreliable. Going from a vnode in-kernel to a name is provided on a "best-effort" basis based on what's in the namecache, but is explicitly not a robust/supported interface and is allowed to fail. Whether the file in question is being executed as a process binary is not relevant.

Handling this was on my TODO for dpkg 1.17.x, and I guess I'll have
to switch the --exec option on kFreeBSD to use the KVM method, which
is unfortunately based on the process argv...

If I am reading #699208 and #652575 correctly, the --exec option is approximately the only option.

-Ben Kaduk


--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to