Export to GitHub

psutil - issue #503

os.readlink can return errno.ESRCH


Posted on May 8, 2014 by Happy Ox

Traceback:

Traceback (most recent call last): File "/usr/local/bin/thermos_observe/twitter/common/exceptions/init.py", line 126, in _excepting_run File "/usr/local/bin/thermos_observe/twitter/aurora/observer/mesos_vars.py", line 510, in run File "/usr/local/bin/thermos_observe/twitter/aurora/observer/mesos_vars.py", line 314, in collect File "/usr/local/bin/thermos_observe/twitter/aurora/observer/mesos_vars.py", line 324, in collect_slaves File "/root/.pex/install/3c8008ea22662d5ffd7a5f0b056c41fdc13c1c49/psutil-1.1.2-py2.6-linux-x86_64.egg/psutil/_common.py", line 48, in get ret = self.func(instance) File "/root/.pex/install/3c8008ea22662d5ffd7a5f0b056c41fdc13c1c49/psutil-1.1.2-py2.6-linux-x86_64.egg/psutil/init.py", line 380, in exe exe = self._platform_impl.get_process_exe() File "/root/.pex/install/3c8008ea22662d5ffd7a5f0b056c41fdc13c1c49/psutil-1.1.2-py2.6-linux-x86_64.egg/psutil/_pslinux.py", line 480, in get_process_exe exe = os.readlink("/proc/%s/exe" % self.pid) OSError: [Errno 3] No such process: '/proc/563/exe'

What version of psutil are you using? What Python version? psutil 1.1.2 Python 2.6.8

On what operating system? Is it 32bit or 64bit version? Linux x86_64 2.6.50 custom kernel

Please provide any additional information below.

Verified that this code is unchanged in 2.1.1.

It looks like os.readlink('/proc/pid/exe') actually raises OSError errno.ESRCH instead of errno.ENOENT when it races.

This is fairly rare -- the code runs on many, many machines and we've only experienced this issue a handful of times.

Comment #1

Posted on May 8, 2014 by Happy Monkey

Thanks. Fixed in revision 1c6aac966b4f.

Status: FixedInHG

Labels:
Type-Defect Priority-Medium OpSys-Linux