[tahoe-lafs-trac-stream] [tahoe-lafs] #1274: eliminate pywin32 dependency
tahoe-lafs
trac at tahoe-lafs.org
Thu Jan 20 20:40:33 UTC 2011
#1274: eliminate pywin32 dependency
------------------------------+---------------------------------------------
Reporter: davidsarah | Owner: warner
Type: defect | Status: new
Priority: major | Milestone: 1.8.2
Component: code-storage | Version: 1.8.0
Resolution: | Keywords: pywin32 windows win64 docs-needed news-needed
Launchpad Bug: |
------------------------------+---------------------------------------------
Comment (by warner):
Replying to [comment:14 davidsarah]:
>
> * change {{{test_runner.py}}} and {{{iputil.py}}} to use the
> {{{subprocess}}} module.
The usual problem with using {{{subprocess}}} is {{{SIGCHLD}}}: Twisted's
reactor and {{{subprocess.py}}} fight over who gets to register a handler.
The reactor isn't strictly running during a {{{trial}}} unit test context.
It
sort of is, but {{{reactor.run()}}} isn't called, and I've had problems
using
{{{reactor.spawnProcess}}} or {{{utils.getProcessOutputAndValue}}} from
tests
(the "potential zombie child" warning), which I've addressed by explicitly
invoking the twisted call that installs its SIGCHLD handler.
But it almost certainly is running when {{{iputil.py}}} gets used. So if
{{{subprocess.py}}} takes over the SIGCHLD handler, we need to look
carefully
and make sure that Twisted gets it back again afterwards. I don't know if
we
use {{{getProcessOutputAndValue}}} anywhere outside of {{{iputil.py}}}, so
a
problem there may not bite us until we add a call like that later (like
maybe
a call to {{{du -s}}} to measure storage usage), and I'd like to avoid
that
uncertainty.
So maybe a quick manual test which does a {{{reactor.spawnProcess}}} in
response to a WUI button press is in order.
--
Ticket URL: <http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1274#comment:20>
tahoe-lafs <http://tahoe-lafs.org>
secure decentralized storage
More information about the tahoe-lafs-trac-stream
mailing list