Closed Bug 1070637 Opened 10 years ago Closed 10 years ago

Pushlogs from hg.mozilla.org are empty

Categories

(Developer Services :: General, task)

task
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: epinal99-bugzilla2, Assigned: bkero)

References

(Blocks 1 open bug)

Details

(Keywords: regression)

Open http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=8648aa476eef&tochange=9688476c1544 Result: blank page. Expected: I should see the list of bugfixes.
Keywords: regression
OS: Windows 7 → All
Hardware: x86_64 → All
With no params the page at least returns the template, but still no changesets: https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml Though interestingly (and fortunate, since TBPL uses it) the json version of this works: http://hg.mozilla.org/mozilla-central/json-pushes?full=1
(In reply to Ed Morley [:edmorley] from comment #1) > With no params the page at least returns the template, but still no > changesets: > https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml Actually, that's not due to the params, mozilla-inbound returns an empty template, mozilla-central a blank page: http://hg.mozilla.org/mozilla-central/pushloghtml
Assignee: nobody → server-ops-devservices
Component: Mercurial Pushlog → Server Operations: Developer Services
Product: Webtools → mozilla.org
QA Contact: nmaul
Version: Trunk → other
Blocks: 1068520
Severity: critical → major
Lowering so Onduty doesn't get paged.
Severity: major → normal
I've managed to patch this in a patch to pushlog-feed.py. This can be seen in the latest revision in http://hg.mozilla.org/hgcustom/pushlog/ diff -r 0ffe19e2e343 -r ac1d016df8fb pushlog-feed.py --- a/pushlog-feed.py Wed Sep 11 14:02:52 2013 -0400 +++ b/pushlog-feed.py Mon Sep 22 00:03:26 2014 -0700 @@ -345,8 +345,9 @@ def nodeinbranch(repo, ctx): branches = [] branch = ctx.branch() - if branch != 'default' and repo.branchtags().get(branch) != ctx.node(): - branches.append({"name": branch}) + if hasattr(repo, 'branchtags'): + if branch != 'default' and repo.branchtags().get(branch) != ctx.node(): + branches.append({"name": branch}) return branches def changenav(): The branchtags() method was removed in the changeset listed here: http://hg.intevation.org/mercurial/crew/rev/4274eda143cb
Assignee: server-ops-devservices → bkero
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Should this be fixed already on hg.m.o? Or does this take a while to reach live servers?
Fixed in 86e6470a7c55 (branchtags shows up in two places) and apache gracefully restarted. Checked each web head and they're all showing data. Shout if you see anything else amiss. diff -r ac1d016df8fb pushlog-feed.py --- a/pushlog-feed.py Mon Sep 22 00:03:26 2014 -0700 +++ b/pushlog-feed.py Mon Sep 22 08:39:22 2014 -0400 @@ -338,8 +338,9 @@ # If this is an empty repo, ctx.node() == nullid, # ctx.branch() == 'default', but branchtags() is # an empty dict. Using dict.get avoids a traceback. - if repo.branchtags().get(branch) == ctx.node(): - branches.append({"name": branch}) + if hasattr(repo, 'branchtags'): + if repo.branchtags().get(branch) == ctx.node(): + branches.append({"name": branch}) return branches def nodeinbranch(repo, ctx):
Thank you - looks good now :-)
Blocks: 1071126
:fubar While this certainly did fix it for the reported issue, there is a followup to do which regressed with this update: https://hg.mozilla.org/releases/mozilla-beta/pushloghtml?changeset=d179d51ba70c Note for example, that the specified cset landed on a branch (easy to verify by clicking down to hg's main view), however pushloghtml doesn't actually show that its a branch, while it used to. Your change basically makes the "old mercurial used repo.branchtags() -- while in new thats invalid" not raise a real exception that breaks things. n-i to you and gps to figure out the best path forward here.
Flags: needinfo?(klibby)
Flags: needinfo?(gps)
I know sod all about python, nevermind the hg internals; I just carried on what ben started. Alternatively, patches accepted.
Flags: needinfo?(klibby)
If I can read this: # If this is an empty repo, ctx.node() == nullid, # ctx.branch() == 'default', but branchtags() is # an empty dict. Using dict.get avoids a traceback. if repo.branchtags().get(branch) == ctx.node(): branches.append({"name": branch}) correctly, the code block was designed to avoid a traceback, not to throw one in the event of an empty repository. This bug belongs to me and gps is out until next week. If you're familiar with the code and the change in Mercurial 2.9, could you offer an alternate fix for the problem? Additionally, I don't see the problem in the example you provided. Could you provide some additional information to help me understand the issue?
Blocks: 1071296
Let's keep this bug for the "outage" (fixed), and track the other needs in a new bug. I've opened bug 1071296 for that, and transferred the ni there
Flags: needinfo?(gps)
Component: Server Operations: Developer Services → General
Product: mozilla.org → Developer Services
You need to log in before you can comment on or make changes to this bug.