diff --git a/test/functional/test_framework/netutil.py b/test/functional/test_framework/netutil.py --- a/test/functional/test_framework/netutil.py +++ b/test/functional/test_framework/netutil.py @@ -9,6 +9,7 @@ import array from binascii import unhexlify +from errno import ENOENT, EINVAL import os import socket import struct @@ -34,9 +35,20 @@ base = '/proc/{}/fd'.format(pid) inodes = [] for item in os.listdir(base): - target = os.readlink(os.path.join(base, item)) - if target.startswith('socket:'): - inodes.append(int(target[8:-1])) + try: + target = os.readlink(os.path.join(base, item)) + except OSError as err: + if err.errno == ENOENT: + # The file which is gone in the meantime + continue + elif err.errno == EINVAL: + # Not a link + continue + else: + raise + else: + if target.startswith('socket:'): + inodes.append(int(target[8:-1])) return inodes