-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ResourceWarning messages being printed #320
Comments
masayukig
added a commit
to masayukig/stestr
that referenced
this issue
Apr 14, 2022
This commit adds a destructor to wait for a process termination in `ReturnCodeToSubunit` class. This commit fixes mtreinish#320 partially.
I think there are still other warnings being emitted (I think around open fds) so I reopened this but #322 should have fixed a bunch of the warnings |
mtreinish
added a commit
that referenced
this issue
Feb 6, 2023
This commit fixes the ResourceWarning emitted by stestr's SubunitRunner._list method caused by a leaking file descriptor when that method exits. The root cause of this was this method was calling fdopen() internally to open a new descriptor to the user specified result stream and never closing it when the method returns. The issue was that the return from that method had a reference to that fd and closing it would have resulted in potentially unexpected behavior. However, this code is not needed, it was just ported from subunit's SubunitTestRunner class when this code was forked and rewritten to use unittest instead of testtools. The subunit code is used in a broader context and the fdopen might be needed there. But for stestr, we always use stdout for the result stream as this only gets called internally the worker processes to run tests. If we used something other than stdout the result stream would not get sent to the parent process. Since we're alwwys using stdout we don't need an fdopen call because we never will need a fresh fd for it. This commit removes the legacy baggage causing this ResourceWarning and just interacts with the stream directly avoiding an additional open that never gets closed. Related to #320
mtreinish
added a commit
that referenced
this issue
Feb 6, 2023
This commit fixes the ResourceWarning emitted by stestr's SubunitRunner._list method caused by a leaking file descriptor when that method exits. The root cause of this was this method was calling fdopen() internally to open a new descriptor to the user specified result stream and never closing it when the method returns. The issue was that the return from that method had a reference to that fd and closing it would have resulted in potentially unexpected behavior. However, this code is not needed, it was just ported from subunit's SubunitTestRunner class when this code was forked and rewritten to use unittest instead of testtools. The subunit code is used in a broader context and the fdopen might be needed there. But for stestr, we always use stdout for the result stream as this only gets called internally the worker processes to run tests. If we used something other than stdout the result stream would not get sent to the parent process. Since we're alwwys using stdout we don't need an fdopen call because we never will need a fresh fd for it. This commit removes the legacy baggage causing this ResourceWarning and just interacts with the stream directly avoiding an additional open that never gets closed. Related to #320
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Issue description
When
PYTHONWARNINGS
is set todefault
,stestr
printsResourceWarning
messages for files not closed and subprocesses still running.Expected behavior and actual behavior
It shouldn't print the messages as they are sometimes interfering with the
Totals
report.Steps to reproduce the problem
Run
stestr
withPYTHONWARNINGS
env. set todefault
Specifications like the version of the project, operating system, or hardware
System information
3.2.1
):3.7
,3.8
,3.9
,3.10
):pip freeze
):Additional information
The text was updated successfully, but these errors were encountered: