Message347006
>> 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. |
|
Date |
User |
Action |
Args |
2019-07-01 11:44:02 | eryksun | set | recipients:
+ eryksun, gregory.p.smith, paul.moore, vstinner, tim.golden, zach.ware, steve.dower, efiop |
2019-07-01 11:44:01 | eryksun | set | messageid: <1561981441.99.0.291165141925.issue37380@roundup.psfhosted.org> |
2019-07-01 11:44:01 | eryksun | link | issue37380 messages |
2019-07-01 11:44:01 | eryksun | create | |
|