[Buildbot-devel] Re: BuildBot test fails on Win32 platform.

Brian Warner warner-buildbot at lothar.com
Wed Apr 20 20:15:21 UTC 2005


> Great. I'd really like to get this system running. I know there are
> other solutions, but they all seem to be Java, C# etc. I'm trying to
> keep a lid on the number of languages we use and Python is one that we
> use.

Cool.. works for me :).

I'm hoping to get a publically-visible meta-buildbot set up this week, or
next. If you've got a spare win32 machine that could run a slave, we could
probably keep the win32 compatibility problems down in the future. (the
buildslave that runs the win32 twisted testsuite might also be available for
buildbot work, but when there a problems it helps to have a highly-motivated
person at the other end :).

> I think that is working fine now. I haven't run any of the VC tests as
> we are using Perforce and Alienbrain. The other tests that I'm having
> trouble with I let you know about.

Yeah, this is what I get for not reading all my mail before replying to the
first one. I'm working through the others now. My thoughts so far:


usePTY:

 the stdout-vs-stderr thing is really a PTY question. We should have two
 modes:

  usePTY=True, in which case we only expect one stream out of the command
  usePTY=False, in which case we expect separate stdout and stderr

 in the unix world, the purpose of using the PTY is to get a separate process
 group code the child command (and, more importantly, for any grand-child
 processes it might spawn). You can kill off a whole process group at once,
 so if your build or your tests have a process that hangs, the timeout will
 clean up better. The downside is that stdout and stderr are merged
 (interleaved), since both file descriptors are pointing at the same pipe.
 Sometimes it's nice to have them separated out, and the logfile displaying
 code will put them in different colors if they're there.

 Not all unix OSes handle PTYs the same, I remember having problems with
 solaris that made me need to set usePTY=False. Also, it's kind of nice to
 get separate stdout/stderr streams, so it's a tradeoff.

 Now, in the windows world, I'm not assuming the existence anything like
 process groups, so I'd be fine with setting usePTY=False all the time (in
 fact I think the code does this internally). But does windows have the
 concept of stdout vs stderr? From your message it sounds like it does.

 I'm studying your slave_win32.patch (SF#1185548) more closely before
 applying it, because I want to make sure that 1) we're testing that these
 streams are interleaved, not just appended, and 2) that it makes sense to
 have usePTY=True on windows at all.

favicon.ico:

 I'll change buildbot/status/html.py to construct buildbot_icon better.. that
 "../buildbot.png" hack certainly won't work for windows. I'll also change
 the test to let Waterfall() use the default favicon (I hadn't yet
 implemented the default when I wrote the test). Hopefully that plus the
 read-in-binary change will fix the test.

web_pathname_port:

 this test involves two separate listening TCP sockets: it's using a
 "web.distrib" distributed publisher. The first socket is the resource that's
 being published (and is speaking "PB", twisted's RPC protocol). The second
 socket is the actual web server, and is speaking HTTP.

 I'll add the timeout you suggested. Take a look in _trial_temp/test.log and
 see if there are any additional messages in there. The IPv4Address
 deprecation warning is ok, that's just a minor issue that should have been
 fixed in Twisted itself (and is in CVS, but not yet in any released
 versions).


cheers,
 -Brian




More information about the devel mailing list