We have a lot of rules for signature generation in our Socorro config. Currently anyone dealing with crash reports outside of Socorro (we get this in various forms of automated testing) has a hard time mapping their crash stacks to the canonical signatures that Socorro generates. It would be useful to be able to hand Socorro a list of frames and get back a signature, which can then be mapped to the signatures stored in Bugzilla, for instance. I would like to have a web API that takes a list of frames and applies Socorro's signature generation algorithm on it to generate and return a signature. Architecturally this probably needs to be added to the middleware, and then a amll piece of the web UI that proxies the call back to the middleware. Deployment-wise, ideally we'd be able to use this from our production automated test machines, so it would be great it we could hammer it with requests without issues. Given that it'd be loosely coupled with other Socorro components it probably wouldn't be an issue to run it on some separate webheads.
lars says: https://github.com/mozilla/socorro/blob/master/socorro/processor/signature_utilities.py#L633 " If you can put a frames list into a "faked" processed crash, this class' ```action_``` method will add a signature to it for either C or Java crashes. you'd have to put the stackwalker output into a "processed_crash" as processed_crash['json_dump'] and then fake things like processed_crash['hang_type']"
Do you still need this API endpoint?
First prototype of this is available as a service on heroku: https://github.com/adngdb/crash-signature-service (see the README)
Yes, this is still something we'd like to have. We discussed some topics around this in London for generating consistent signatures between systems.
Adrian's prototype solves that but it's just a prototype. He's cloned the signature definition files (the .txt files) from socorro into his prototype. It wouldn't be horribly hard to add a new endpoint in our existing webapp that does, sort of, what Adrian's signer app does but using the very same signature regular expressions we use in processing. However, Ted you talk about a bigger picture thing. A unified server across systems. What do you think we should do right now? Nothing? Embed Adrian's prototype into crashstats's webapp? Invest in Adrian's prototype? (Yeah, I know it's a big question :)
I'm looking into Adrian's prototype as a starting point for bug 1336587, where we want to take advantage of the newly available stacks in crash pings (bug 1280484) to generate signatures for crash pings similarly to what Socorro uses. I'm aware that the prototype is missing many of the signature generating rules, I'm digging through the Socorro source now to evaluate how much we could do given the crash ping contents. Mostly I just wanted to give a heads-up that the prototype has been of interest.