Closed Bug 1886238 Opened 8 months ago Closed 7 months ago

Perma [Tier 2] Exception: Encountered a hg changeset with no parents! We don't handle this....

Categories

(Core :: Graphics, defect)

defect

Tracking

()

RESOLVED FIXED

People

(Reporter: intermittent-bug-filer, Unassigned)

References

Details

(Keywords: intermittent-failure)

Filed by: smolnar [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer?job_id=451334318&repo=mozilla-central
Full log: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/TQUT9qLwR5uVLhzY-s00mg/runs/0/artifacts/public/logs/live_backing.log


Switched to a new branch 'github-sync'
[task 2024-03-19T16:51:27.690Z] branch 'github-sync' set up to track 'moz-gfx/github-sync'.
[task 2024-03-19T16:51:27.922Z] Everything up-to-date
[task 2024-03-19T16:51:28.128Z] ~
[task 2024-03-19T16:51:28.128Z] Running converter...
[task 2024-03-19T16:51:28.128Z] ~/checkouts/gecko ~
[task 2024-03-19T16:51:28.583Z] Using 488c57bb8ceed6da3f0be935156a480cdb92bc32 as base hg revision
[task 2024-03-19T16:51:30.290Z] Traceback (most recent call last):
[task 2024-03-19T16:51:30.290Z]   File "/builds/worker/checkouts/gecko/tools/github-sync/converter.py", line 417, in <module>
[task 2024-03-19T16:51:30.290Z]     hg_commits = load_hg_commits(dict(), "only(.," + base_hg_rev + ")")
[task 2024-03-19T16:51:30.290Z]                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[task 2024-03-19T16:51:30.290Z]   File "/builds/worker/checkouts/gecko/tools/github-sync/converter.py", line 120, in load_hg_commits
[task 2024-03-19T16:51:30.290Z]     commits[tokens[0]] = HgCommit(tokens[1], tokens[2])
[task 2024-03-19T16:51:30.290Z]                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[task 2024-03-19T16:51:30.290Z]   File "/builds/worker/checkouts/gecko/tools/github-sync/converter.py", line 31, in __init__
[task 2024-03-19T16:51:30.290Z]     raise Exception(
[task 2024-03-19T16:51:30.290Z] Exception: Encountered a hg changeset with no parents! We don't handle this....
[taskcluster 2024-03-19 16:51:33.892Z] === Task Finished ===
[taskcluster 2024-03-19 16:51:33.893Z] Unsuccessful task run with exit code: 1 completed in 159.803 seconds
Component: Task Configuration → Graphics
Product: Firefox Build System → Core
Severity: S4 → --
Priority: P5 → --
Severity: -- → S4
Depends on: 1885597

Servo have implemented their own sync using a github action, so we can remove this job, which will be done in bug 1885597

There is also a sync to https://github.com/moz-gfx/qcms, which is presumably similarly affected?

Flags: needinfo?(jnicol)

I think it's to FirefoxGraphics/qcms instead of moz-gfx? (Not sure why there are both repos..)

Is the job for that failing? To my knowledge we want to keep that running.

Flags: needinfo?(jnicol)

AFAICT it pushes to moz-gfx/qcms and opens a PR from that against FirefoxGraphics/qcms (like https://github.com/FirefoxGraphics/qcms/pull/38)

It probably hasn't failed yet because there haven't been any changes to gfx/qcms this week, but I'd imagine it will fail the next time it runs?

AFAICT it pushes to moz-gfx/qcms and opens a PR from that against FirefoxGraphics/qcms (like https://github.com/FirefoxGraphics/qcms/pull/38)

Ah yes you are correct.

It probably hasn't failed yet because there haven't been any changes to gfx/qcms this week, but I'd imagine it will fail the next time it runs?

We don't expect anything to break the sync to qcms as we haven't changed anything in the target repo. The webrender sync breakage was caused by changes on servo's end. I could be misunderstanding the root cause of the error though.

The immediate cause of the error, as far as I can tell from comment 0, is that when we merged firefox-android to mozilla-central we added new roots to the repo. The sync code doesn't seem to know how to handle that.

Ah, thank you for clarifying, that makes sense. It's just a coincidence that this happened roughly the same time as servo switched to a different sync method for webrender.

Any ETA to get this permanent task failure fixed?

Flags: needinfo?(jnicol)

The github failure will be fixed by bug 1885597.

I'm investigating how to fix this for the qcms sync. The script doesn't like that the android repo merge introduced a new root. That error is easily avoided, although I'm unsure if that will break assumptions later in the script. However, even allowing commits without parents we encounter a new error: we call prune_boring recursively for each commit with multipe parents, and there are now a lot of them, causing the stack to overflow. Perhaps this could be rewritten to be non-recursive. But I'm looking in to whether we should instead do the sync from the downstream repo, like webrender now does (by copying the webrender github action)

Flags: needinfo?(jnicol)

Bug 1885597 removed the entire GitHub sync job so we can now close this

Status: NEW → RESOLVED
Closed: 7 months ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.