Opened 10 years ago

Closed 9 years ago

#753 closed defect (fixed)

xmlrpc_getBuild fails for failed builds

Reported by: clown Owned by: dustin
Priority: major Milestone: 0.8.2
Version: 0.7.12 Keywords:
Cc:

Description

For any build which finished with a failure the method fails with

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/usr/lib/python2.5/xmlrpclib.py", line 1147, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib/python2.5/xmlrpclib.py", line 1437, in __request
    verbose=self.__verbose
  File "/usr/lib/python2.5/xmlrpclib.py", line 1201, in request
    return self._parse_response(h.getfile(), sock)
  File "/usr/lib/python2.5/xmlrpclib.py", line 1340, in _parse_response
    return u.close()
  File "/usr/lib/python2.5/xmlrpclib.py", line 787, in close
    raise Fault(**self._stack[0])
Fault: <Fault 8002: "Can't serialize output: cannot marshal None unless allow_none is enabled">

Change History (6)

comment:2 Changed 10 years ago by dustin

  • Milestone changed from undecided to 0.8.0
  • Owner set to dustin
  • Status changed from new to assigned

This should be fairly easy to fix. It took me a while to figure out that the Fault is being transmitted *from* Buildbot, which is why there is no buildbot source in the traceback.

comment:3 Changed 10 years ago by dustin

OK, I can't replicate this, but I don't know *too* much about XMLRPC. I'm using a JavaScript? library (http://code.google.com/p/json-xml-rpc) to trigger XMLRPC requests. I made a build fail, and requested it via JS. No error. Here's the XML I got back:

<?xml version='1.0'?>
<methodResponse>
<params>
<param>
<value><struct>
<member>
<name>full_error</name>
<value><struct>
<member>
<name>shell_1</name>
<value><string></string></value>
</member>
</struct></value>
</member>
<member>
<name>end</name>
<value><double>1270788463.5301051</double></value>
</member>
<member>
<name>logs</name>
<value><array><data>
<value><struct>
<member>
<name>text</name>
<value><string>HUGE</string></value>
</member>
<member>
<name>name</name>
<value><string>svn/stdio</string></value>
</member>
</struct></value>
<value><struct>
<member>
<name>text</name>
<value><string>HUGE</string></value>
</member>
<member>
<name>name</name>
<value><string>MasterShellCommand/stdio</string></value>
</member>
</struct></value>
<value><struct>
<member><name>text</name>
<value><string>HUGE</string></value>
</member>
<member>
<name>name</name>
<value><string>shell/stdio</string></value>
</member>
</struct></value>
<value><struct>
<member>
<name>text</name>
<value><string>HUGE</string></value>
</member>
<member>
<name>name</name>
<value><string>shell_1/stdio</string></value>
</member>
</struct></value>
</data></array></value>
</member>
<member>
<name>start</name>
<value><double>1270788457.711386</double></value>
</member>
<member>
<name>url</name>
<value><string>http://localhost:8010/builders/builder/builds/0</string></value>
</member>
<member>
<name>text</name>
<value><array><data>
<value><string>failed</string></value>
<value><string>shell_1</string></value>
</data></array></value>
</member>
<member>
<name>results</name>
<value><int>2</int></value>
</member>
<member>
<name>number</name>
<value><int>0</int></value>
</member>
<member>
<name>slavename</name>
<value><string>bot</string></value>
</member>
<member>
<name>reason</name>
<value><string>The web-page 'force build' button was pressed by '': 
</string></value>
</member>
<member>
<name>steps</name>
<value><array><data>
<value><struct>
<member>
<name>start</name>
<value><double>1270788457.7118659</double></value>
</member>
<member>
<name>text</name>
<value><array><data>
<value><string>update</string></value>
</data></array></value>
</member>
<member>
<name>end</name>
<value><double>1270788458.09887</double></value>
</member>
<member>
<name>name</name>
<value><string>svn</string></value>
</member>
<member>
<name>results</name>
<value><array><data>
<value><int>0</int></value>
<value><array><data>
</data></array></value>
</data></array></value>
</member>
</struct></value>
<value><struct>
<member>
<name>start</name>
<value><double>1270788458.101397</double></value>
</member>
<member>
<name>text</name>
<value><array><data>
<value><string>Ran</string></value>
</data></array></value>
</member>
<member>
<name>end</name>
<value><double>1270788463.169955</double></value>
</member>
<member>
<name>name</name>
<value><string>MasterShellCommand</string></value>
</member>
<member>
<name>results</name>
<value><array><data>
<value><int>0</int></value>
<value><array><data>
</data></array></value>
</data></array></value>
</member>
</struct></value>
<value><struct>
<member>
<name>start</name>
<value><double>1270788463.3755441</double></value>
</member>
<member>
<name>text</name>
<value><array><data>
<value><string>'cat</string></value>
<value><string>main.cp'</string></value>
</data></array></value>
</member>
<member>
<name>end</name>
<value><double>1270788463.4563589</double></value>
</member>
<member>
<name>name</name>
<value><string>shell</string></value>
</member>
<member>
<name>results</name>
<value><array><data>
<value><int>0</int></value>
<value><array><data>
</data></array></value>
</data></array></value>
</member>
</struct></value>
<value><struct>
<member>
<name>start</name>
<value><double>1270788463.457437</double></value>
</member>
<member>
<name>text</name>
<value><array><data>
<value><string>'false'</string></value>
<value><string>failed</string></value>
</data></array></value>
</member>
<member>
<name>end</name>
<value><double>1270788463.529218</double></value>
</member>
<member>
<name>name</name>
<value><string>shell_1</string></value>
</member>
<member>
<name>results</name>
<value><array><data>
<value><int>2</int></value>
<value><array><data>
<value><string>shell_1</string></value>
</data></array></value>
</data></array></value>
</member>
</struct></value>
</data></array></value>
</member>
<member>
<name>builder_name</name>
<value><string>builder</string></value>
</member>
<member>
<name>branch</name>
<value><string></string></value>
</member>
<member>
<name>reasons</name>
<value><array><data>
<value><array><data>
<value><string>'false'</string></value>
<value><string>failed</string></value>
</data></array></value>
</data></array></value>
</member>
<member>
<name>revision</name>
<value><string>1332</string></value>
</member>
</struct></value>
</param>
</params>
</methodResponse>

Do you see anything wrong there?

comment:4 Changed 10 years ago by dustin

  • Milestone changed from 0.8.0 to 0.8.1

Moving to 0.8.1 until I can find a replication recipe.

comment:5 Changed 10 years ago by dustin

We may be removing XMLRPC entirely, in which case this ticket will be moot.

comment:6 Changed 9 years ago by Dustin J. Mitchell

  • Resolution set to fixed
  • Status changed from assigned to closed

Remove XMLRPC

fixes #832; fixes #753

Changeset: 5beb08fe99c3aaec35e3f458d4b3afd795ca77b3

Note: See TracTickets for help on using tickets.