IBuilder.updateBuild() doesn't deal with EINTR

Bug #616693 reported by Julian Edwards
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Launchpad itself
Fix Released
Critical
Julian Edwards

Bug Description

In the new buildd manager, which now interleaves subprocesses via spawnProcess with other builder comms, we are getting "Interrupted system call" errors when polling builders. This is most likely because the reset script for another builder just finished and we get a SIGCHLD, which terminates the socket receive op.

{{{
2010-08-12 11:05:38+0100 [-] Disabling builder: http://yellow.buildd:8221/ -- (4
, 'Interrupted system call')
2010-08-12 11:05:38+0100 [-] Traceback (most recent call last):
2010-08-12 11:05:38+0100 [-] File "/srv/launchpad.net/codelines/soyuz-producti
on-rev-9648/lib/lp/buildmaster/model/builder.py", line 204, in updateBuilderStat
us
2010-08-12 11:05:38+0100 [-] builder.checkSlaveAlive()
2010-08-12 11:05:38+0100 [-] File "/srv/launchpad.net/codelines/soyuz-producti
on-rev-9648/lib/lp/buildmaster/model/builder.py", line 286, in checkSlaveAlive
2010-08-12 11:05:38+0100 [-] if self.slave.echo("Test")[0] != "Test":
2010-08-12 11:05:38+0100 [-] File "/usr/lib/python2.5/xmlrpclib.py", line 1147
, in __call__
2010-08-12 11:05:38+0100 [-] return self.__send(self.__name, args)
2010-08-12 11:05:38+0100 [-] File "/usr/lib/python2.5/xmlrpclib.py", line 1437, in __request
2010-08-12 11:05:38+0100 [-] verbose=self.__verbose
2010-08-12 11:05:38+0100 [-] File "/usr/lib/python2.5/xmlrpclib.py", line 1185, in request
2010-08-12 11:05:38+0100 [-] errcode, errmsg, headers = h.getreply()
2010-08-12 11:05:38+0100 [-] File "/usr/lib/python2.5/httplib.py", line 1199, in getreply
2010-08-12 11:05:38+0100 [-] response = self._conn.getresponse()
2010-08-12 11:05:38+0100 [-] File "/usr/lib/python2.5/httplib.py", line 928, in getresponse
2010-08-12 11:05:38+0100 [-] response.begin()
2010-08-12 11:05:38+0100 [-] File "/usr/lib/python2.5/httplib.py", line 385, in begin
2010-08-12 11:05:38+0100 [-] version, status, reason = self._read_status()
2010-08-12 11:05:38+0100 [-] File "/usr/lib/python2.5/httplib.py", line 343, in _read_status
2010-08-12 11:05:38+0100 [-] line = self.fp.readline()
2010-08-12 11:05:38+0100 [-] File "/usr/lib/python2.5/socket.py", line 331, in readline
2010-08-12 11:05:38+0100 [-] data = recv(1)
2010-08-12 11:05:38+0100 [-] error: (4, 'Interrupted system call')
2010-08-12 11:05:39+0100 [-] yellow was made unavailable, resetting attached job
2010-08-12 11:05:40+0100 [-] Dispatching: <lawrencium:http://lawrencium.ppa:8221/>
}}}

Related branches

Changed in soyuz:
status: New → Triaged
importance: Undecided → High
tags: added: buildd-manager
Changed in soyuz:
assignee: nobody → Julian Edwards (julian-edwards)
status: Triaged → In Progress
tags: added: oem-services
Revision history for this message
Francis J. Lacoste (flacoste) wrote :

Escaling to Critical as this is killing time-sensitive OEM builds.

Changed in soyuz:
importance: High → Critical
description: updated
Revision history for this message
Julian Edwards (julian-edwards) wrote : Re: [Bug 616693] Re: IBuilder.updateBuild() doesn't deal with EINTR

A fresh cowboy this morning seems to have cleaned up the problem. I'll land
the fix properly now.

Revision history for this message
Launchpad QA Bot (lpqabot) wrote : Bug fixed by a commit
tags: added: qa-needstesting
Revision history for this message
Launchpad QA Bot (lpqabot) wrote :
Changed in soyuz:
status: In Progress → Fix Released
tags: added: qa-ok
removed: qa-needstesting
Ursula Junque (ursinha)
Changed in soyuz:
milestone: none → 10.09
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.