Sujet : Re: shutil.rmtree() fails when used in Fedora (rpm) "mock" environment
De : python (at) *nospam* mrabarnett.plus.com (MRAB)
Groupes : comp.lang.pythonDate : 24. Oct 2024, 19:08:02
Autres entêtes
Message-ID : <mailman.37.1729789685.4695.python-list@python.org>
References : 1 2 3 4 5
User-Agent : Mozilla Thunderbird
On 2024-10-24 17:30, Left Right wrote:
The stack is created on line 760 with os.lstat and entries are appended
on lines 677 (os.rmdir), 679 (os.close) and 689 (os.lstat).
>
'func' is popped off the stack on line 651 and check in the following lines.
>
I can't see anywhere else where something else is put onto the stack or
an entry is replaced.
>
But how do you know this code isn't executed from different threads?
What I anticipate to be the problem is that the "os" module is
imported twice, and there are two references to "os.lstat". Normally,
this wouldn't cause a problem, because they are the same function that
doesn't have any state, but once you are trying to compare them, the
identity test will fail, because those functions were loaded multiple
times into different memory locations.
>
I don't know of any specific mechanism for forcing the interpreter to
import the same module multiple times, but if that was possible (which
in principle it is), then it would explain the behavior.
The stack is a local variable and os.lstat, etc, are pushed and popped in one function and then another that it calls, so they're in the same thread.