#2054: buildbot/github post-receive URL timestamp problem
---------------------+-----------------------
Reporter: mmorse | Owner:
Type: defect | Status: reopened
Priority: critical | Milestone: 0.8.5
Version: 0.8.4p1 | Resolution:
Keywords: git |
---------------------+-----------------------
Old description:
> I'm trying to trigger a buildbot run whenever there's a change to a
> github repo. I've added a post-receive URL service hook to the repo, and
> verified that the POST is making it back to my buildmaster. However, an
> exception is raised when that POST is processed:
>
> {{{
> 2011-07-12 11:32:18-0700 [HTTPChannel,0,17.226.192.60] Attempting to load
> module buildbot.status.web.hooks.github
> 2011-07-12 11:32:18-0700 [HTTPChannel,0,17.226.192.60] in process_change
> 2011-07-12 11:32:18-0700 [HTTPChannel,0,17.226.192.60]
> ERROR:root:Encountered an exception:
> 2011-07-12 11:32:18-0700 [HTTPChannel,0,17.226.192.60]
> ERROR:root:Traceback (most recent call last):
> 2011-07-12 11:32:18-0700 [HTTPChannel,0,17.226.192.60] ERROR:root:File
> "/Library/Python/2.6/site-packages/buildbot/status/web/hooks/github.py",
> line 100, in getChanges
> 2011-07-12 11:32:18-0700 [HTTPChannel,0,17.226.192.60] changes =
> process_change(payload, user, repo, repo_url, project)
> 2011-07-12 11:32:18-0700 [HTTPChannel,0,17.226.192.60] ERROR:root:File
> "/Library/Python/2.6/site-packages/buildbot/status/web/hooks/github.py",
> line 139, in process_change
> 2011-07-12 11:32:18-0700 [HTTPChannel,0,17.226.192.60] when =
> convertTime( commit['timestamp'])
> 2011-07-12 11:32:18-0700 [HTTPChannel,0,17.226.192.60] ERROR:root:File
> "/Library/Python/2.6/site-packages/buildbot/status/web/hooks/github.py",
> line 63, in convertTime
> 2011-07-12 11:32:18-0700 [HTTPChannel,0,17.226.192.60]
> result.groups()
> 2011-07-12 11:32:18-0700 [HTTPChannel,0,17.226.192.60]
> ERROR:root:AttributeError: 'NoneType' object has no attribute 'groups'
> 2011-07-12 11:32:18-0700 [HTTPChannel,0,17.226.192.60] Got the following
> changes None
> }}}
>
> From what I can determine, the problem is that the timestamp coming from
> the github repo looks like this:
>
> {{{
> "timestamp":"2011-07-12T18:32:05Z"
> }}}
>
> ...but module buildbot.status.web.hooks.github is looking for something
> in the format:
>
> {{{
> "timestamp":"1970-01-01T00:00:00+00:00"
> }}}
> Here's the code
> (http://buildbot.net/buildbot/docs/0.8.3/reference/buildbot.status.web.hooks
> .github-pysrc.html):
>
> {{{
> 59 def convertTime(myTestTimestamp):
> 60 #"1970-01-01T00:00:00+00:00"
> 61 matcher =
> re.compile(r'(dddd)-(dd)-(dd)T(dd):(dd):(dd)([-+])(dd):(dd)')
> 62 result = matcher.match(myTestTimestamp)
> 63 (year, month, day, hour, minute, second, offsetsign, houroffset,
> minoffset) =
> 64 result.groups()
> }}}
>
> Here's the configuration of the build master
> {{{
> System Version: Mac OS X Server 10.6.8 (10K540)
> Server Configuration: Advanced
> Kernel Version: Darwin 10.8.0
> Boot Volume: SnowLeopardServer
> Boot Mode: Normal
> Computer Name: DevPubsContinuousIntegration
> User Name: BuildMaster (buildmaster)
> Secure Virtual Memory: Not Enabled
> 64-bit Kernel and Extensions: No
> Time since boot: 1 day6:37
>
> Buildbot version: 0.8.4p1
> Twisted version: 11.0.0
>
> }}}
New description:
I'm trying to trigger a buildbot run whenever there's a change to a github
repo. I've added a post-receive URL service hook to the repo, and verified
that the POST is making it back to my buildmaster. However, an exception
is raised when that POST is processed:
{{{
2011-07-12 11:32:18-0700 [HTTPChannel,0,17.226.192.60] Attempting to load
module buildbot.status.web.hooks.github
2011-07-12 11:32:18-0700 [HTTPChannel,0,17.226.192.60] in process_change
2011-07-12 11:32:18-0700 [HTTPChannel,0,17.226.192.60]
ERROR:root:Encountered an exception:
2011-07-12 11:32:18-0700 [HTTPChannel,0,17.226.192.60]
ERROR:root:Traceback (most recent call last):
2011-07-12 11:32:18-0700 [HTTPChannel,0,17.226.192.60] ERROR:root:File
"/Library/Python/2.6/site-packages/buildbot/status/web/hooks/github.py",
line 100, in getChanges
2011-07-12 11:32:18-0700 [HTTPChannel,0,17.226.192.60] changes =
process_change(payload, user, repo, repo_url, project)
2011-07-12 11:32:18-0700 [HTTPChannel,0,17.226.192.60] ERROR:root:File
"/Library/Python/2.6/site-packages/buildbot/status/web/hooks/github.py",
line 139, in process_change
2011-07-12 11:32:18-0700 [HTTPChannel,0,17.226.192.60] when =
convertTime( commit['timestamp'])
2011-07-12 11:32:18-0700 [HTTPChannel,0,17.226.192.60] ERROR:root:File
"/Library/Python/2.6/site-packages/buildbot/status/web/hooks/github.py",
line 63, in convertTime
2011-07-12 11:32:18-0700 [HTTPChannel,0,17.226.192.60] result.groups()
2011-07-12 11:32:18-0700 [HTTPChannel,0,17.226.192.60]
ERROR:root:AttributeError: 'NoneType' object has no attribute 'groups'
2011-07-12 11:32:18-0700 [HTTPChannel,0,17.226.192.60] Got the following
changes None
}}}
From what I can determine, the problem is that the timestamp coming from
the github repo looks like this:
{{{
"timestamp":"2011-07-12T18:32:05Z"
}}}
...but module buildbot.status.web.hooks.github is looking for something in
the format:
{{{
"timestamp":"1970-01-01T00:00:00+00:00"
}}}
Here's the code
(http://buildbot.net/buildbot/docs/0.8.3/reference/buildbot.status.web.hooks
.github-pysrc.html):
{{{
59 def convertTime(myTestTimestamp):
60 #"1970-01-01T00:00:00+00:00"
61 matcher =
re.compile(r'(dddd)-(dd)-(dd)T(dd):(dd):(dd)([-+])(dd):(dd)')
62 result = matcher.match(myTestTimestamp)
63 (year, month, day, hour, minute, second, offsetsign, houroffset,
minoffset) =
64 result.groups()
}}}
Here's the configuration of the build master
{{{
System Version: Mac OS X Server 10.6.8 (10K540)
Server Configuration: Advanced
Kernel Version: Darwin 10.8.0
Boot Volume: SnowLeopardServer
Boot Mode: Normal
Computer Name: DevPubsContinuousIntegration
User Name: BuildMaster (buildmaster)
Secure Virtual Memory: Not Enabled
64-bit Kernel and Extensions: No
Time since boot: 1 day6:37
Buildbot version: 0.8.4p1
Twisted version: 11.0.0
}}}
--
Comment (by dustin):
Any idea what the payload was in that case?
Newer code uses dateutil's dateparse, which might be more effective. If
you can't get a copy of the payload that causes this, then maybe applying
https://github.com/buildbot/buildbot/commit/30ed6549 would help?
--
Ticket URL: <http://trac.buildbot.net/ticket/2054#comment:6>
Buildbot <http://buildbot.net/>
Buildbot: build/test automation
------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
_______________________________________________
Buildbot-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/buildbot-commits