[Twisted-Python] PotentialZombieWarning warning message?

Hi:
I'd like to adopt Twisted for a current project I'm coding up. I'm on CentOS 6.7 x86-64 using python v2.6 and the stock python-twisted-8.2.0-3.1 package built for this release.
No matter what I do when trying to implement the Process protocol or use utils.getProcessOutput() directly, I always see the following warning message on the console:
/usr/lib64/python2.6/site-packages/twisted/internet/utils.py:25: PotentialZombieWarning: spawnProcess called, but the SIGCHLD handler is not installed. This probably means you have not yet called reactor.run, or called reactor.run(installSignalHandler=0). You will probably never see this process finish, and it may become a zombie process. reactor.spawnProcess(p, executable, (executable,)+tuple(args), env, path) ...
Is there anyway to get rid of this message? I realize I'm using an older release of twisted but I can't upgrade to the latest without incurring the cost of installing an python v2.7 or greater.
My script is literally:
d = utils.getProcessOutput('/bin/ls') d.addCallbacks(writeResponse, noResponse) reactor.run()
etc.
What am I doing wrong?
-aps

On 14 Dec 2015, at 22:52, pisymbol . pisymbol@gmail.com wrote:
Hi:
I'd like to adopt Twisted for a current project I'm coding up. I'm on CentOS 6.7 x86-64 using python v2.6 and the stock python-twisted-8.2.0-3.1 package built for this release.
...
Is there anyway to get rid of this message? I realize I'm using an older release of twisted but I can't upgrade to the latest without incurring the cost of installing an python v2.7 or greater.
Hi,
Python 2.6 has been EOL for years and Twisted 8.2.0 is nearly seven years old. We can't really help with things that old (many, many issues have since been fixed, so remembering what's a bug that's been squashed and what's a platform bug is nearly impossible), but upgrading to Twisted 15.4 (the last release with Python 2.6 support, and only 4 or so months old) may help.
- Amber

On Mon, Dec 14, 2015 at 10:09 AM, Amber "Hawkie" Brown hawkowl@atleastfornow.net wrote:
On 14 Dec 2015, at 22:52, pisymbol . pisymbol@gmail.com wrote:
Hi:
I'd like to adopt Twisted for a current project I'm coding up. I'm on CentOS 6.7 x86-64 using python v2.6 and the stock python-twisted-8.2.0-3.1 package built for this release.
...
Is there anyway to get rid of this message? I realize I'm using an older release of twisted but I can't upgrade to the latest without incurring the cost of installing an python v2.7 or greater.
Hi,
Python 2.6 has been EOL for years and Twisted 8.2.0 is nearly seven years old. We can't really help with things that old (many, many issues have since been fixed, so remembering what's a bug that's been squashed and what's a platform bug is nearly impossible), but upgrading to Twisted 15.4 (the last release with Python 2.6 support, and only 4 or so months old) may help.
That maybe, but CentOS 6.7 is the latest 6.x release which ships with 8.2.x (somebody maintaining the RHEL 6.x series should update these packages then).
I did a pip install and it said I needed Python 2.7 or higher. Let me reevaluate if I can just update twisted.
Thanks!
-aps

On Dec 14, 2015, at 12:38 PM, pisymbol . pisymbol@gmail.com wrote:
On Mon, Dec 14, 2015 at 10:09 AM, Amber "Hawkie" Brown hawkowl@atleastfornow.net wrote:
On 14 Dec 2015, at 22:52, pisymbol . pisymbol@gmail.com wrote:
Hi:
I'd like to adopt Twisted for a current project I'm coding up. I'm on CentOS 6.7 x86-64 using python v2.6 and the stock python-twisted-8.2.0-3.1 package built for this release.
...
Is there anyway to get rid of this message? I realize I'm using an older release of twisted but I can't upgrade to the latest without incurring the cost of installing an python v2.7 or greater.
Hi,
Python 2.6 has been EOL for years and Twisted 8.2.0 is nearly seven years old. We can't really help with things that old (many, many issues have since been fixed, so remembering what's a bug that's been squashed and what's a platform bug is nearly impossible), but upgrading to Twisted 15.4 (the last release with Python 2.6 support, and only 4 or so months old) may help.
That maybe, but CentOS 6.7 is the latest 6.x release which ships with 8.2.x (somebody maintaining the RHEL 6.x series should update these packages then).
I did a pip install and it said I needed Python 2.7 or higher. Let me reevaluate if I can just update twisted.
Try `pip install twisted==15.4´ if you still require Python2.6 support; `pip install twisted´ will install the latest, which no longer works on 2.6.
But again: Python 2.6 is unsupported by the upstream Python developers. You really should not be using it, since it won't receive security updates (of course, Red Hat and transitively CentOS claim to "support" these packages, but if upstream is refusing patches at this point, it's not clear where that support will come from). This is why we changed our policy to proactively disable it: it's a security risk and we would like to put pressure on downstreams (such as yourself) to stop taking on this risk without realizing it.
If you must use CentOS 6, then I'd recommend installing PyPy 4.0 from https://github.com/squeaky-pl/portable-pypy#portable-pypy-distribution-for-l... https://github.com/squeaky-pl/portable-pypy#portable-pypy-distribution-for-linux and using that. In addition to being security-supported, it will also make your python code run 10x faster :).
-glyph

On Mon, Dec 14, 2015 at 4:51 PM, Glyph Lefkowitz glyph@twistedmatrix.com wrote:
I did a pip install and it said I needed Python 2.7 or higher. Let me reevaluate if I can just update twisted.
Try `pip install twisted==15.4´ if you still require Python2.6 support; `pip install twisted´ will install the latest, which no longer works on 2.6.
Yeah, that's what I did. It's working now!
But again: Python 2.6 is unsupported by the upstream Python developers. You really should not be using it, since it won't receive security updates (of course, Red Hat and transitively CentOS claim to "support" these packages, but if upstream is refusing patches at this point, it's not clear where that support will come from).
As you can imagine, this boils down to politics.
If you must use CentOS 6, then I'd recommend installing PyPy 4.0 from https://github.com/squeaky-pl/portable-pypy#portable-pypy-distribution-for-l... and using that. In addition to being security-supported, it will also make your python code run 10x faster :).
Interesting, I'll take a look.
-aps

On Dec 14, 2015, at 3:53 PM, pisymbol . pisymbol@gmail.com wrote:
On Mon, Dec 14, 2015 at 4:51 PM, Glyph Lefkowitz glyph@twistedmatrix.com wrote:
I did a pip install and it said I needed Python 2.7 or higher. Let me reevaluate if I can just update twisted.
Try `pip install twisted==15.4´ if you still require Python2.6 support; `pip install twisted´ will install the latest, which no longer works on 2.6.
Yeah, that's what I did. It's working now!
Great! Glad to hear you were able to make a huge leap in Twisted versions with little trouble :-).
But again: Python 2.6 is unsupported by the upstream Python developers. You really should not be using it, since it won't receive security updates (of course, Red Hat and transitively CentOS claim to "support" these packages, but if upstream is refusing patches at this point, it's not clear where that support will come from).
As you can imagine, this boils down to politics.
I understand that things like this often do, which is exactly why I want to make it clear that we (speaking in terms of the broader Python community now, not just Twisted) are trying to push people towards more recent versions just because they're more fun or more aesthetically pleasant, but because there are very real risks associated with being on unsupported ancient versions of things. It pains me not to be supporting a configuration that some users want, but there is a line where "conservative about change" becomes "negligent about maintenance" and python 2.6 crossed it a little over two years ago :-).
If you must use CentOS 6, then I'd recommend installing PyPy 4.0 from https://github.com/squeaky-pl/portable-pypy#portable-pypy-distribution-for-l... and using that. In addition to being security-supported, it will also make your python code run 10x faster :).
Interesting, I'll take a look.
Hope that works out for you. Good luck!
-glyph

On Mon, Dec 14, 2015 at 7:43 PM, Glyph Lefkowitz glyph@twistedmatrix.com wrote:
On Dec 14, 2015, at 3:53 PM, pisymbol . pisymbol@gmail.com wrote:
On Mon, Dec 14, 2015 at 4:51 PM, Glyph Lefkowitz glyph@twistedmatrix.com wrote:
I did a pip install and it said I needed Python 2.7 or higher. Let me reevaluate if I can just update twisted.
Try `pip install twisted==15.4´ if you still require Python2.6 support; `pip install twisted´ will install the latest, which no longer works on 2.6.
Yeah, that's what I did. It's working now!
Great! Glad to hear you were able to make a huge leap in Twisted versions with little trouble :-).
But again: Python 2.6 is unsupported by the upstream Python developers. You really should not be using it, since it won't receive security updates (of course, Red Hat and transitively CentOS claim to "support" these packages, but if upstream is refusing patches at this point, it's not clear where that support will come from).
As you can imagine, this boils down to politics.
I understand that things like this often do, which is exactly why I want to make it clear that we (speaking in terms of the broader Python community now, not just Twisted) are trying to push people towards more recent versions just because they're more fun or more aesthetically pleasant, but because there are very real risks associated with being on unsupported ancient versions of things. It pains me not to be supporting a configuration that some users want, but there is a line where "conservative about change" becomes "negligent about maintenance" and python 2.6 crossed it a little over two years ago :-).
I'm not disagreeing with you per se...but...
The fact is the Python community at large then needs to convince the distro maintainers accordingly. Telling a customer to update their entire platform for a newer version of Python isn't going to fly a lot of times (and remember, someone of them have support agreements with RH).
And running two versions of Python can get messy real fast.
Anyway, it is what it is.
If you must use CentOS 6, then I'd recommend installing PyPy 4.0 from https://github.com/squeaky-pl/portable-pypy#portable-pypy-distribution-for-l... and using that. In addition to being security-supported, it will also make your python code run 10x faster :).
Interesting, I'll take a look.
Hope that works out for you. Good luck!
Thanks! So far, so good. I was now able to lift my prototype code and integrate it with the rest.
I'll probably have more questions at some point, but at least 15.4 did the trick!
-aps

"pisymbol ." pisymbol@gmail.com writes:
The fact is the Python community at large then needs to convince the distro maintainers accordingly. Telling a customer to update their entire platform for a newer version of Python isn't going to fly a lot of times (and remember, someone of them have support agreements with RH).
The community has. However Redhat has customers that want support for old systems and are willing to pay for it. CentOS is essentially a repackaged unsupported version of Redhat Enterprise Linux. If you want support for packages against an old version of python, you can contact Redhat (as per this[1] post by core python developer and Redhat employee).
Tom
[1] http://www.curiousefficiency.org/posts/2015/04/stop-supporting-python26.html

On 15 Dec 2015, at 08:43, Glyph Lefkowitz glyph@twistedmatrix.com wrote:
But again: Python 2.6 is unsupported by the upstream Python developers. You really should not be using it, since it won't receive security updates (of course, Red Hat and transitively CentOS claim to "support" these packages, but if upstream is refusing patches at this point, it's not clear where that support will come from).
As you can imagine, this boils down to politics.
I understand that things like this often do, which is exactly why I want to make it clear that we (speaking in terms of the broader Python community now, not just Twisted) are trying to push people towards more recent versions just because they're more fun or more aesthetically pleasant, but because there are very real risks associated with being on unsupported ancient versions of things. It pains me not to be supporting a configuration that some users want, but there is a line where "conservative about change" becomes "negligent about maintenance" and python 2.6 crossed it a little over two years ago :-).
There is a solution to this, and Nick Coghlan has mentioned it to me many times -- Software Collections for RHEL and CentOS. Software Collections is RH's answer to "new software" on "stable distributions" -- SCLs operate side-by-side with system packages, so it won't break anything. Since you're a CentOS 6.7 user, the standard SCL should work (it's 6.5+).
You can find the Python 2.7 SCL at https://www.softwarecollections.org/en/scls/rhscl/python27/, and CentOS publishes instructions on using them on https://wiki.centos.org/AdditionalResources/Repositories/SCL . This might solve your problem of being restrained to CentOS 6, but Python 2.6 being EOL'd everywhere but it.
- Amber

Sorry if the quoting is a little weird in this, I've long since deleted Glyph's original response, so I'm replying to Amber's latest, but I just noticed something in the quote (from Glyph, I think) that I want to correct for the sake of posterity:
On 15 Dec 2015, at 08:43, Glyph Lefkowitz glyph@twistedmatrix.com wrote:
I understand that things like this often do, which is exactly why I want
to make it clear that we (speaking in terms of the broader Python community now, not just Twisted) are trying to push people towards more recent versions just because they're more fun or more aesthetically ===============^ pleasant, but because there are very real risks associated with being on unsupported ancient versions of things. It pains me not to be supporting a configuration that some users want, but there is a line where "conservative about change" becomes "negligent about maintenance" and python 2.6 crossed it a little over two years ago :-).
I'm sure you meant "[we] are trying to push people towards more recent versions [NOT] just because they're more fun..."

On 15/12/15 04:16, Amber "Hawkie" Brown wrote:
There is a solution to this, and Nick Coghlan has mentioned it to me many times -- Software Collections for RHEL and CentOS. Software Collections is RH's answer to "new software" on "stable distributions" -- SCLs operate side-by-side with system packages, so it won't break anything. Since you're a CentOS 6.7 user, the standard SCL should work (it's 6.5+).
I really disliked the SCLs when I looked at it. The supported use-case seems to be a kind of hugely over-engineered set of wrapper/environment setup scripts:
scl enable python2.7 pip install blah
...ad infinitum.
Personally - and I guess for others as well - the SCLs will be off-putting. It's a shame there isn't a simpler solution, namely EPEL python2.7 - having a 2nd python in a different path is quite safe, we do it routinely.
It's hugely annoying that RHEL6 and derivatives missed out on Python 2.7 :o(

We have a fair bit of Python 2.7 Twisted code deployed on RHEL and CentOS 5 and 6. In each case, we build from source and do a make altinstall so we’re running a Python separate from the system’s. Just takes a few minutes to get everything installed and running.
On Tue, Dec 15, 2015 at 6:30 AM, Phil Mayers p.mayers@imperial.ac.uk wrote:
On 15/12/15 04:16, Amber "Hawkie" Brown wrote:
There is a solution to this, and Nick Coghlan has mentioned it to me
many times -- Software Collections for RHEL and CentOS. Software Collections is RH's answer to "new software" on "stable distributions" -- SCLs operate side-by-side with system packages, so it won't break anything. Since you're a CentOS 6.7 user, the standard SCL should work (it's 6.5+).
I really disliked the SCLs when I looked at it. The supported use-case seems to be a kind of hugely over-engineered set of wrapper/environment setup scripts:
scl enable python2.7 pip install blah
...ad infinitum.
Personally - and I guess for others as well - the SCLs will be off-putting. It's a shame there isn't a simpler solution, namely EPEL python2.7 - having a 2nd python in a different path is quite safe, we do it routinely.
It's hugely annoying that RHEL6 and derivatives missed out on Python 2.7 :o(
Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

Here (NASA/GSFC) we use conda-based virtual envs on CentOS 6, and they work great -- I turned our sysadmins on to conda about a year ago, and they *love* it (no more compiling python, woo! ;) All recent versions of twisted are available as conda packages: # conda search twisted Fetching package metadata: ...... twisted 12.3.0 py27_0 defaults 12.3.0 py26_0 defaults 13.0.0 py27_0 defaults 13.0.0 py26_0 defaults 13.1.0 py27_0 defaults 13.1.0 py26_0 defaults 13.2.0 py27_0 defaults 13.2.0 py26_0 defaults 14.0.0 py27_0 defaults 14.0.0 py26_0 defaults 14.0.2 py27_0 defaults 14.0.2 py26_0 defaults 15.0.0 py27_0 defaults 15.0.0 py26_0 defaults 15.1.0 py27_0 defaults 15.1.0 py26_0 defaults 15.2.0 py34_0 defaults 15.2.0 py27_0 defaults 15.2.0 py26_0 defaults 15.2.1 py34_0 defaults . 15.2.1 py27_0 defaults 15.2.1 py26_0 defaults 15.3.0 py34_0 defaults 15.3.0 py27_0 defaults 15.3.0 py26_0 defaults 15.4.0 py35_0 defaults 15.4.0 py34_0 defaults 15.4.0 py27_0 defaults 15.5.0 py35_0 defaults 15.5.0 py34_0 defaults * 15.5.0 py27_0 defaults
Steve
On 12/15/2015 11:40 AM, Ray Cote wrote:
We have a fair bit of Python 2.7 Twisted code deployed on RHEL and CentOS 5 and 6. In each case, we build from source and do a make altinstall so we’re running a Python separate from the system’s. Just takes a few minutes to get everything installed and running.
On Tue, Dec 15, 2015 at 6:30 AM, Phil Mayers <p.mayers@imperial.ac.uk mailto:p.mayers@imperial.ac.uk> wrote:
On 15/12/15 04:16, Amber "Hawkie" Brown wrote: There is a solution to this, and Nick Coghlan has mentioned it to me many times -- Software Collections for RHEL and CentOS. Software Collections is RH's answer to "new software" on "stable distributions" -- SCLs operate side-by-side with system packages, so it won't break anything. Since you're a CentOS 6.7 user, the standard SCL should work (it's 6.5+). I really disliked the SCLs when I looked at it. The supported use-case seems to be a kind of hugely over-engineered set of wrapper/environment setup scripts: scl enable python2.7 pip install blah ...ad infinitum. Personally - and I guess for others as well - the SCLs will be off-putting. It's a shame there isn't a simpler solution, namely EPEL python2.7 - having a 2nd python in a different path is quite safe, we do it routinely. It's hugely annoying that RHEL6 and derivatives missed out on Python 2.7 :o( _______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com <mailto:Twisted-Python@twistedmatrix.com> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
-- Raymond Cote, President voice: +1.603.924.6079 email: rgacote@AppropriateSolutions.com skype: ray.cote
Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

On 15/12/2015 16:40, Ray Cote wrote:
We have a fair bit of Python 2.7 Twisted code deployed on RHEL and CentOS 5 and 6. In each case, we build from source and do a make altinstall so we’re running a Python separate from the system’s.
We build an RPM, but basically yes; put it in a different path and it's fine.
Minor hassle though it is, it's one more thing that I would prefer to not need. But reinstalling upwards of 60 RHEL6 production machines is vastly more hassle ;o)
participants (8)
-
Amber "Hawkie" Brown
-
Glyph Lefkowitz
-
John Santos
-
Phil Mayers
-
pisymbol .
-
Ray Cote
-
Steve Waterbury
-
Tom Prince