Closed Bug 665021 Opened 13 years ago Closed 12 years ago

Provide mechanism for receiving hg notifications from mirrors

Categories

(Release Engineering :: General, defect, P5)

x86_64
Linux
defect

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: catlee, Assigned: catlee)

References

Details

(Whiteboard: [automation])

Once we figure out what data we need about a push, we need to provide a way for the hg mirrors to let us know about a push.

Some options here are:
* sendchange port
* have mirror ssh in, run a script
* message queues
Priority: -- → P3
Whiteboard: [automation]
(In reply to Chris AtLee [:catlee] from comment #0)
> Some options here are:
> * sendchange port
> * have mirror ssh in, run a script
> * message queues

To recap what I just heard from catlee, arr/dustin ruled out using ssh, and our message queues are currently unreliable.

If using the sendchange port is not viable, we'll need to come up with some new options or revisit the old ones. Let's be sure to discuss this next week at the all-hands.
I don't think we need to pull message queues from the short list - their are a number of low-infra required message queues that could be used.

Going to meet with RelOps folks at the allhands to discuss the options
(In reply to Mike Taylor [:bear] from comment #2) 
> Going to meet with RelOps folks at the allhands to discuss the options

Did you get a chance to discuss this with relops?
(In reply to Chris Cooper [:coop] from comment #3)
> (In reply to Mike Taylor [:bear] from comment #2) 
> > Going to meet with RelOps folks at the allhands to discuss the options
> 
> Did you get a chance to discuss this with relops?

sadly no, I think I saw amy once and dustin a handful of times - all of them being "oh hai" moments as they were travelling to/from colo :/
I chatted with Dustin and Corey about this. Dustin and I think the best short term solution is to re-use the QueueDir code we have for pulse/log uploading. In this scenario, the hg master would create an entry in the QueueDir once the mirrors have the new changes. A queue processor on the hg master would pick up the items, and run a command on them (probably ssh/rsync to one of the build machines).

Longer term, we should be using message queues. Corey had some ideas about machines we could use for rabbitmq hosts, but I've forgotten the details.
How's this:

We set up durable topic exchanges for the different branches:
'hg.pushes.mozilla-central'

hg.m.o will publish a message to this exchange using the format described in bug 665020 after successfully pushing a new commit to the mirror(s)

set up a durable queue bound to 'hg.pushes.#' called 'hg.pushes'

releng sets up a consumer that connects to the 'hg.pushes' queue. When messages are received, we insert the data into our databases and ack the message.

I'm still a bit fuzzy on the rmq details...does this make sense?
Assignee: nobody → catlee
Priority: P3 → P2
(In reply to Chris AtLee [:catlee] from comment #6)
> How's this:
> 
> We set up durable topic exchanges for the different branches:
> 'hg.pushes.mozilla-central'
> 
> hg.m.o will publish a message to this exchange using the format described in
> bug 665020 after successfully pushing a new commit to the mirror(s)
> 
> set up a durable queue bound to 'hg.pushes.#' called 'hg.pushes'
> 
> releng sets up a consumer that connects to the 'hg.pushes' queue. When
> messages are received, we insert the data into our databases and ack the
> message.
> 
> I'm still a bit fuzzy on the rmq details...does this make sense?

no need to make it durable IMO - but yes, a topic exchange would work just fine for this.
Priority: P2 → P5
not using hg mirrors any more
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → WONTFIX
Product: mozilla.org → Release Engineering
You need to log in before you can comment on or make changes to this bug.