Eryk Sun <eryk...@gmail.com> added the comment:
>> subprocess._active[0]._handle.Close() > > Why would you do that? You should not access the private _active list, > nor access the private _handle attribute. I understand that it's a way > to trigger such bug, but is it possible to trigger this bug without > accessing any private attribute? The example is just emulating a problem from someone else's code that's closing our handle. Typically this situation occurs because the code is holding onto a handle value for a kernel object (File, Section, Job, Process, Thread, Event, etc) that got closed. The handle value eventually gets reused, such as for our _handle. >> I wouldn't want _internal_poll to silence this error, but maybe it >> could be translated into a warning > > I disagree with that. It's very bad is suddenly the handle becomes > invalid for no obvious reason. It's better to get an hard error > (exception) in such case. I agree, but the exception breaks Popen.__init__. It would have to be ignored or translated to a warning somewhere if we continues to poll a list of active processes every time __init__() is called. But since the latter is unnecessary in Windows, I suggested to just skip it. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue37380> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com