Boost logo

Boost :

From: Caleb Epstein (caleb.epstein_at_[hidden])
Date: 2004-11-30 11:53:23


On Tue, 30 Nov 2004 02:39:12 -0600, Aleksey Gurtovoy
<agurtovoy_at_[hidden]> wrote:

> > I had to do this manually because the regression.py script doesn't
> > handly my FTP firewall properly.
>
> Could you post the exact traceback? Chances are we can do something about it.

# Done writing "/home/nbde52d/src/boost-regression/results/CalebEpstein.xml".
# Compressing "/home/nbde52d/src/boost-regression/results/CalebEpstein.xml"...
# Done writing "/home/nbde52d/src/boost-regression/results/CalebEpstein.zip".
# Uploading log archive
"/home/nbde52d/src/boost-regression/results/CalebEpstein.zip" to
ftp://fx.meta-comm.com/boost-regression/CVS-HEAD
Traceback (most recent call last):
  File "./regression.py", line 765, in ?
    commands[ command ]( **accept_args( args ) )
  File "./regression.py", line 612, in regression
    upload_logs( tag, runner, user )
  File "./regression.py", line 545, in upload_logs
    upload_logs( regression_results, runner, tag, user )
  File "/home/nbde52d/src/boost-regression/boost/tools/regression/xsl_reports/runner/collect_and_upload_logs.py",
line 153, in upload_logs
    upload_to_ftp( tag, logs_archive )
  File "/home/nbde52d/src/boost-regression/boost/tools/regression/xsl_reports/runner/collect_and_upload_logs.py",
line 51, in upload_to_ftp
    ftp = ftplib.FTP( ftp_site )
  File "/home/eqdev/tools/sunos-sparc-gcc/python-2.3.4/lib/python2.3/ftplib.py",
line 107, in __init__
    self.connect(host)
  File "/home/eqdev/tools/sunos-sparc-gcc/python-2.3.4/lib/python2.3/ftplib.py",
line 117, in connect
    for res in socket.getaddrinfo(self.host, self.port, 0, socket.SOCK_STREAM):
socket.gaierror: (8, 'host/servname not known')

I cannot resolve internet hostnames inside my firewall. I have an
http proxy server which can handle http, https and ftp requests
(e.g. ftp-over-http, which probably only supports RETR I suspect), as
well as an FTP proxy server that uses the convention of specifying
user_at_remotehost as the username to
connect to Internet hosts. In other words, I do:

% ftp ny-proxy
Connected to ny-proxy.
220 nyinfppxy1 FTP proxy (Version V2.1) ready.
Name (ny-proxy:nbde52d): annonymous_at_[hidden]
331-(----GATEWAY CONNECTED TO fx.meta-comm.com----)
331-(220 filestor Microsoft FTP Service (Version 5.0).)
331 Password required for annonymous.
Password:

Then from there things behave like regular FTP. I don't think
Python's ftplib has any out-of-the-box support for firewalls unlike
the equivalent Perl module Net::FTP which honors the environment
variable FTP_FIREWALL.

> > These results are with one small patch applied to date_time to work
> > with the Rogue Wave std::locale::facet.
>
> Your might consider putting this into your comment file.

Done. This will be in the next zip I upload. I'm also attaching the two
small patches to this message.

> We should really get rid of the obstacles on the way to automated runs,
> though. I'll look into fixing the tarball issue you've reported earlier.

Thanks. There are also some other bugs I've found with regression.py:

1. Using the --mail argument crashes the script:

% python ./regression.py --runner CalebEpstein --local boost_1_32_0
--toolsets sunpro --bjam-options "-j8" --mail caleb.epstein_at_[hidden]
--proxy $http_proxy
# Sending start notification to "caleb.epstein_at_[hidden]"
# Sending report to "caleb.epstein_at_[hidden]"
Traceback (most recent call last):
  File "./regression.py", line 765, in ?
    commands[ command ]( **accept_args( args ) )
  File "./regression.py", line 625, in regression
    msg = regression_log + [ '' ] + apply( traceback.format_exception,
sys.exc_info() )
TypeError: cannot concatenate 'str' and 'list' objects

2. The --local argument is not idempotent. If this points to a
directory, it will be renamed to "boost", so a later run with the same
arguments will fail.

3. The --local argument expects to be given a name like
<tag>.<something> and takes the first portion before the . as a tag.
If the name points to a directory like boost_1_32_0 the tag name is
taken as this name with the last character dropped (e.g.
"boost_1_32_").

4. Unless --comment is supplied, an existing comment.html file will be
overwritten. I found this one out the hard way!

    global comment_path
    if comment is None:
        log( 'Comment file "%s" not found; creating default comment.' % comment_
path )
        f = open( comment_path, 'w' )
        f.write( '<p>Tests are run on %s platform.</p>' % string.capitalize( sys
.platform ) )
        f.close()
    else:
        comment_path = os.path.join( regression_root, comment )

-- 
Caleb Epstein
caleb dot epstein at gmail dot com





Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk