Subject: | POE::Wheel::Run not exiting "cleanly" from the child |
Hello,
I was trying to install POE::Component::SmokeBox on my winxp laptop and
it failed a few tests. Digging around more, I found out that the bug
actually is in PWR! Attached is a simple testcase that shows this bug.
This bug is present on linux and windows. I haven't tested other
platforms but I have a good feeling they'll exhibit the same bug.
In a nutshell, the PWR child doesn't "cleanly" exit the child if there
are any errors before+during the exec. If you have DIE
blocks/objects/POE running/etc they will get run in the child! This
definitely could have repercussions if the child executed some
code it shouldn't have.
I've made progress trying to patch this bug and have talked with the
win32 people ( jdb++ ) and will be working on this over time. This
ticket is left here as a reminder for us all until it's 100% fixed.
After talking with Rocco/Philip/others in #poe@irc we decided the right
course of action would be to do:
1. Patch PWR to behave properly
2. Patch PWR to warn LOUDLY, I mean LOUDLY if the exec failed on win32
that your process is leaking memory
3. Patch PWR to add docs about this issue
4. Submit a perlbug saying "POSIX::_exit(0) should behave properly on
win32"
5. Once 5.14.0 ( or any other release comes out fixing this ) we can
have the docs in PWR updated so users on win32 know they should upgrade
perls if they execute invalid binaries all day long :)
6. profit?
Please keep an eye on this ticket and update it if any changes happen.
Thanks!
--
~Apocalypse
Subject: | pwr_bug |
Message body not shown because it is not plain text.
Subject: | pwr_diagnosis |
Message body not shown because it is not plain text.