Closed Bug 1543403 Opened 5 years ago Closed 4 years ago

Normandy hangs the browser UI for over one second when verifying signatures

Categories

(Firefox :: Normandy Client, defect, P2)

defect

Tracking

()

RESOLVED FIXED
Performance Impact medium
Tracking Status
firefox68 --- fixed

People

(Reporter: mstange, Assigned: keeler)

References

(Regression)

Details

(Keywords: perf:responsiveness, regression)

Profile: https://perfht.ml/2VARfOm

I just encountered a one second UI freeze in a local build. The profile shows time spent in verifyObjectSignature, which runs on the main thread of the parent process.

This function was added in bug 1538248, so I'm tentatively marking this bug as a regression from that bug.

verifyObjectSignature() was just extracted in bug 1538248, but I would say that the real issue is bug 1540642

Oh, never mind comment #2, it turns out the flame graph isn't actually time-sequential, as I assumed. The stack graph is, and that does show we're verifying a whole bunch of things. So yes, coalescing things (fixing bug 1540642) should help.

Flags: needinfo?(mgoodwin)

That said, that'd cut the time needed here approximately in half, which still isn't really brilliant...

I think this is the same thing we were discussing in bug 1534600. This seems like a duplicate bug to me.

See Also: → 1540645

QF triage team wanted to ask if you know how frequently this code get hits to help us assess how bad the problem is for users.

Flags: needinfo?(mcooper)

This code currently runs automatically every 6 hours, when Normandy checks the server for new recipes. It uses the same timer as the update service to trigger itself. We are planning to switch to a push-based model in the near future. At that point it would run anytime sometime changes on the server. I don't know how often that is, but my intuition makes me think it would be fairly limited, spiking up to a few times an hour.

Flags: needinfo?(mcooper)
Whiteboard: [qf] → [qf:p2:responsiveness]

From bug 1534600 this doesn't seem likely to get fixed in 68.

The priority flag is not set for this bug.
:mythmon, could you have a look please?

For more information, please visit auto_nag documentation.

Flags: needinfo?(mcooper)

Setting to P2 to match the qf priority label.

Flags: needinfo?(mcooper)
Priority: -- → P2

Dana, with bug 1534600 fixed, I expect there isn't a problem here anymore? Or do you think there is more work to be done in Normandy specifically?

Flags: needinfo?(dkeeler)

I imagine that took care of the issue, but it would probably be good to confirm with a profile.

Flags: needinfo?(dkeeler)

I took a profile of Normandy running at startup, which should be a worst case scenario. https://perfht.ml/2Ez8DfQ

In the original profile, searching for normandy showed 1286ms of time spent in the call tree, most of which is attributable to verifyObjectSignature. In this new profile, I see 56ms of time spent. This seems too good to be true, but I haven't been able to find any other places where time is spent on Normandy code in the profile.

Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Assignee: nobody → dkeeler
Depends on: 1534600
Has Regression Range: --- → yes
Performance Impact: --- → P2
Whiteboard: [qf:p2:responsiveness]
You need to log in before you can comment on or make changes to this bug.