Skip to content

Commit 9a34a4f

Browse files
authored
[lldb] fix fd leak during lldb testsuite (#118093)
During lldb testing dotest.py opens files to dump testcase results, but doesn't close them. This patch makes necessary changes to fix the file descriptors leak.
1 parent e6eac65 commit 9a34a4f

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

lldb/packages/Python/lldbsuite/test/lldbtest.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -865,13 +865,9 @@ def setUp(self):
865865
session_file = self.getLogBasenameForCurrentTest() + ".log"
866866
self.log_files.append(session_file)
867867

868-
# Python 3 doesn't support unbuffered I/O in text mode. Open buffered.
869-
self.session = encoded_file.open(session_file, "utf-8", mode="w")
870-
871868
# Optimistically set __errored__, __failed__, __expected__ to False
872869
# initially. If the test errored/failed, the session info
873-
# (self.session) is then dumped into a session specific file for
874-
# diagnosis.
870+
# is then dumped into a session specific file for diagnosis.
875871
self.__cleanup_errored__ = False
876872
self.__errored__ = False
877873
self.__failed__ = False
@@ -1235,20 +1231,25 @@ def dumpSessionInfo(self):
12351231
else:
12361232
prefix = "Success"
12371233

1234+
session_file = self.getLogBasenameForCurrentTest() + ".log"
1235+
1236+
# Python 3 doesn't support unbuffered I/O in text mode. Open buffered.
1237+
session = encoded_file.open(session_file, "utf-8", mode="w")
1238+
12381239
if not self.__unexpected__ and not self.__skipped__:
12391240
for test, traceback in pairs:
12401241
if test is self:
1241-
print(traceback, file=self.session)
1242+
print(traceback, file=session)
12421243

12431244
import datetime
12441245

12451246
print(
12461247
"Session info generated @",
12471248
datetime.datetime.now().ctime(),
1248-
file=self.session,
1249+
file=session,
12491250
)
1250-
self.session.close()
1251-
del self.session
1251+
session.close()
1252+
del session
12521253

12531254
# process the log files
12541255
if prefix != "Success" or lldbtest_config.log_success:

0 commit comments

Comments
 (0)