Skip to content

Commit

Permalink
Merge bitcoin/bitcoin#31614: test: expect that files may disappear fr…
Browse files Browse the repository at this point in the history
…om /proc/PID/fd/

b2e9fdc test: expect that files may disappear from /proc/PID/fd/ (Vasil Dimov)

Pull request description:

  `get_socket_inodes()` calls `os.listdir()` and then iterates on the results using `os.readlink()`. However a file may disappear from the directory after `os.listdir()` and before `os.readlink()` resulting in a `FileNotFoundError` exception.

  It is expected that this may happen for `bitcoind` which is running and could open or close files or sockets at any time. Thus ignore the `FileNotFoundError` exception.

ACKs for top commit:
  arejula27:
    ACK  [`b2e9fdc`](bitcoin/bitcoin@b2e9fdc)
  sipa:
    utACK b2e9fdc
  achow101:
    ACK b2e9fdc
  theuni:
    utACK b2e9fdc
  hodlinator:
    ACK b2e9fdc

Tree-SHA512: 8eb05393e4de4307a70af446c3fc7e8f7dc3f08bf9d68d74d02b0e4e900cfd4865249f297be31f1fd7b05ffea45eb855c5cfcd75704167950c1deb4f17109f33
  • Loading branch information
achow101 committed Feb 10, 2025
2 parents 1d813e4 + b2e9fdc commit ff3171f
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions test/functional/test_framework/netutil.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,12 @@ def get_socket_inodes(pid):
base = '/proc/%i/fd' % 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))
if target.startswith('socket:'):
inodes.append(int(target[8:-1]))
except FileNotFoundError:
pass
return inodes

def _remove_empty(array):
Expand Down

0 comments on commit ff3171f

Please sign in to comment.