Closed
Bug 1063208
Opened 12 years ago
Closed 8 years ago
Rebuild repositories to have fncache and dotencode
Categories
(Developer Services :: Mercurial: hg.mozilla.org, defect)
Developer Services
Mercurial: hg.mozilla.org
Tracking
(Not tracked)
RESOLVED
DUPLICATE
of bug 1351859
People
(Reporter: gps, Unassigned)
References
Details
(Whiteboard: [kanban:engops:https://mozilla.kanbanize.com/ctrl_board/6/1593] )
Attachments
(1 file)
|
28.70 KB,
text/plain
|
Details |
There is a feature in Mercurial called "fncache" that basically maintains an in-memory cache of available data files so that Mercurial only needs to perform an in-memory lookup (as opposed to a filesystem lookup) to see if a path exists.
I was poking around the production servers and noticed that a hodgepodge of repositories (including mozilla-central) don't have the fncache.
The way you test for the fncache is |grep fncache .hg/requires|. If "fncache" isn't in that file, the repo was likely created with a very old Mercurial.
To "upgrade" a Mercurial repository, you clone it. The new repo will be created with the latest/greatest repository storage format.
We should identify repositories that are missing fncache and upgrade them by re-cloning. There are two phases to this:
1) Rebuild repositories on hgweb slaves
2) Rebuild repositories on master
#1 doesn't require downtime since you can take the slave offline and rebuild at will. #2 would require an outage window. Let's only focus on #1 now.
I'm not sure the performance implications of not having fncache on a server. But it definitely not helping not having fncache.
Comment 1•12 years ago
|
||
Attaching list of repos missing fncache, from hgweb1.
Comment 2•11 years ago
|
||
created /root/missing-fncache on each of the webheads with repos that need fixin'. all in the same ballpark in regards to number of repo:
612 hgweb1/missing-fncache
612 hgweb10/missing-fncache
612 hgweb2/missing-fncache
617 hgweb3/missing-fncache
612 hgweb4/missing-fncache
617 hgweb5/missing-fncache
617 hgweb6/missing-fncache
617 hgweb7/missing-fncache
611 hgweb8/missing-fncache
612 hgweb9/missing-fncache
| Assignee | ||
Updated•11 years ago
|
Product: Release Engineering → Developer Services
Updated•11 years ago
|
Whiteboard: [kanban:engops:https://kanbanize.com/ctrl_board/6/92]
Updated•11 years ago
|
Whiteboard: [kanban:engops:https://kanbanize.com/ctrl_board/6/92] → [kanban:engops:https://mozilla.kanbanize.com/ctrl_board/6/1581] [kanban:engops:https://kanbanize.com/ctrl_board/6/92]
Updated•11 years ago
|
Whiteboard: [kanban:engops:https://mozilla.kanbanize.com/ctrl_board/6/1581] [kanban:engops:https://kanbanize.com/ctrl_board/6/92] → [kanban:engops:https://mozilla.kanbanize.com/ctrl_board/6/1583] [kanban:engops:https://kanbanize.com/ctrl_board/6/92]
Updated•11 years ago
|
Whiteboard: [kanban:engops:https://mozilla.kanbanize.com/ctrl_board/6/1583] [kanban:engops:https://kanbanize.com/ctrl_board/6/92] → [kanban:engops:https://mozilla.kanbanize.com/ctrl_board/6/1591] [kanban:engops:https://kanbanize.com/ctrl_board/6/92]
Updated•11 years ago
|
Whiteboard: [kanban:engops:https://mozilla.kanbanize.com/ctrl_board/6/1591] [kanban:engops:https://kanbanize.com/ctrl_board/6/92] → [kanban:engops:https://mozilla.kanbanize.com/ctrl_board/6/1590] [kanban:engops:https://kanbanize.com/ctrl_board/6/92]
Updated•11 years ago
|
Whiteboard: [kanban:engops:https://mozilla.kanbanize.com/ctrl_board/6/1590] [kanban:engops:https://kanbanize.com/ctrl_board/6/92] → [kanban:engops:https://mozilla.kanbanize.com/ctrl_board/6/1593] [kanban:engops:https://kanbanize.com/ctrl_board/6/92]
| Assignee | ||
Updated•11 years ago
|
Whiteboard: [kanban:engops:https://mozilla.kanbanize.com/ctrl_board/6/1593] [kanban:engops:https://kanbanize.com/ctrl_board/6/92] → [kanban:engops:https://mozilla.kanbanize.com/ctrl_board/6/1593]
| Reporter | ||
Comment 4•11 years ago
|
||
I'm not going to do this today.
I think we should wait until bug 1089465 is in place, as it will make creating the new repo clones much easier.
No longer blocks: 1053705
| Reporter | ||
Comment 5•11 years ago
|
||
dotencode is missing from 1686 repos :(
Summary: Rebuild repositories to have fncache → Rebuild repositories to have fncache and dotencode
| Reporter | ||
Comment 6•11 years ago
|
||
I've written an Ansible playbook to iterate through hgweb nodes and force a re-clone. A side-effect of re-cloning repositories is that they will get the latest/greatest format by default. The playbook integrates with the load balancers, so no client-side downtime is incurred during the switchover.
I've already executed the playbook against mozilla-central and I haven't seen any errors in the server logs nor have I heard any complaints that things broke. It appears the conversion "just works."
I'll continue to chug along and mass re-clone repositories during the week. This should be fully transparent from an end-user perspective.
Assignee: nobody → gps
| Reporter | ||
Comment 7•11 years ago
|
||
I added a `hg debugrebuildfncache` command to Mercurial. This will ship in Mercurial 3.5. We can use that to easily create an fncache file. Although, it stops short of adding the requirement to the repo. Probably easier to just mass re-clone everything (which we need to do to get dotencode anyway).
| Reporter | ||
Comment 8•10 years ago
|
||
As part of investigating bug 1232900, I discovered that many repos had invalid fncache files. mozilla-central, fx-team, mozilla-release, and nearly every b2g repo had incomplete fncache files. Why this is I'm not sure. I'm currently force rebuilding fncache on the important repos on the ssh server.
Depends on: 1232900
| Reporter | ||
Comment 9•10 years ago
|
||
The new hgweb[11-14] machines were seeded via `hg clone` instead of rsync, so they utilize fncache and dotencode on all repos. We just have to convert the repos on the SSH/master server now. That could probably be scripted.
| Reporter | ||
Updated•10 years ago
|
Assignee: gps → nobody
| Reporter | ||
Comment 10•8 years ago
|
||
The upgrade to generaldelta in bug 1351859 will also add the fncache store requirement, since `hg debugupgraderepo` opts repos in to the latest/greatest storage format.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → DUPLICATE
You need to log in
before you can comment on or make changes to this bug.
Description
•