Closed Bug 1467048 Opened Last year Closed Last year

30.15 - 141.38% compiler_metrics num_static_constructors (on all platforms) regression on push 0014f483953e0066b86796da1d6512214c5be737 (Tue Jun 5 2018)

Categories

(Core :: General, defect)

62 Branch
Unspecified
All
defect
Not set

Tracking

()

VERIFIED FIXED
mozilla62
Tracking Status
firefox-esr52 --- unaffected
firefox-esr60 --- unaffected
firefox60 --- unaffected
firefox61 --- unaffected
firefox62 --- fixed

People

(Reporter: igoldan, Assigned: erahm)

References

(Blocks 1 open bug)

Details

(Keywords: regression)

Attachments

(1 file)

We have detected a build metrics regression from push:

https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?changeset=0014f483953e0066b86796da1d6512214c5be737

As author of one of the patches included in that push, we need your help to address this regression.

Regressions:

141%  compiler_metrics num_static_constructors android-5-0-aarch64 opt      87.00 -> 210.00
141%  compiler_metrics num_static_constructors android-4-0-armv7-api16 opt  87.00 -> 210.00
140%  compiler_metrics num_static_constructors android-4-2-x86 opt          88.00 -> 211.00
140%  compiler_metrics num_static_constructors osx-cross opt                96.00 -> 230.00
121%  compiler_metrics num_static_constructors windows2012-64 opt static-analysis108.00 -> 239.00
108%  compiler_metrics num_static_constructors linux64 pgo                  119.00 -> 247.00
107%  compiler_metrics num_static_constructors linux32 pgo                  120.00 -> 248.00
104%  compiler_metrics num_static_constructors linux64 opt valgrind         123.00 -> 251.00
104%  compiler_metrics num_static_constructors linux64 opt base-toolchains  123.00 -> 251.00
104%  compiler_metrics num_static_constructors linux32 opt                  123.00 -> 251.00
104%  compiler_metrics num_static_constructors linux64 opt                  123.00 -> 251.00
 96%  compiler_metrics num_static_constructors android-4-0-armv7-api16 debug 117.00 -> 229.00
 55%  compiler_metrics num_static_constructors windows2012-32 pgo           471.00 -> 730.00
 50%  compiler_metrics num_static_constructors windows2012-32 opt           514.00 -> 773.00
 47%  compiler_metrics num_static_constructors osx-cross debug              199.00 -> 293.00
 46%  compiler_metrics num_static_constructors windows2012-64 pgo           561.00 -> 820.00
 46%  compiler_metrics num_static_constructors windows2012-64 debug static-analysis203.00 -> 296.00
 45%  compiler_metrics num_static_constructors windows2012-64 opt           572.00 -> 831.00
 34%  compiler_metrics num_static_constructors linux64 debug base-toolchains239.00 -> 321.00
 34%  compiler_metrics num_static_constructors linux32 debug                239.00 -> 321.00
 34%  compiler_metrics num_static_constructors linux64 debug                239.00 -> 321.00
 34%  compiler_metrics num_static_constructors linux64 debug fuzzing        241.00 -> 323.00
 30%  compiler_metrics num_static_constructors windows2012-32 debug         860.00 -> 1,122.00
 30%  compiler_metrics num_static_constructors windows2012-64 debug         869.00 -> 1,131.00


You can find links to graphs and comparison views for each of the above tests at: https://treeherder.mozilla.org/perf.html#/alerts?id=13652

On the page above you can see an alert for each affected platform as well as a link to a graph showing the history of scores for this test. There is also a link to a treeherder page showing the jobs in a pushlog format.

To learn more about the regressing test(s), please see: https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Automated_Performance_Testing_and_Sheriffing/Build_Metrics
Blocks: 1436768
Product: Testing → Core
Flags: needinfo?(erahm)
Thanks for the report, we're looking into mitigations but haven't found anything that works yet. Worst case scenario we can back out, but really this is supposed to be short-lived code to help track down crashes. Another option is to limit the code to nightly which would mean we still have a regression but at least it doesn't ride the trains.
This adds 'CorruptionCanaryForStatics', which as the name implies is suitable
for use in objects that are statically declared. It has a trivial destructor
which allows us to avoid the need for static constructors.
Assignee: nobody → erahm
Status: NEW → ASSIGNED
Attachment #8983980 - Flags: review?(nfroyd)
Comment on attachment 8983980 [details] [diff] [review]
Add a version of CorruptionCanary for statics

Review of attachment 8983980 [details] [diff] [review]:
-----------------------------------------------------------------

Thank you!

::: xpcom/base/Logging.h
@@ +167,4 @@
>  public:
>    explicit constexpr LazyLogModule(const char* aLogName)
>      : mLogName(aLogName)
> +    , mCanary()

We can probably remove this, right?
Attachment #8983980 - Flags: review?(nfroyd) → review+
(In reply to Nathan Froyd [:froydnj] from comment #4)
> Comment on attachment 8983980 [details] [diff] [review]
> Add a version of CorruptionCanary for statics
> 
> Review of attachment 8983980 [details] [diff] [review]:
> -----------------------------------------------------------------
> 
> Thank you!
> 
> ::: xpcom/base/Logging.h
> @@ +167,4 @@
> >  public:
> >    explicit constexpr LazyLogModule(const char* aLogName)
> >      : mLogName(aLogName)
> > +    , mCanary()
> 
> We can probably remove this, right?

Yeah I think so, removed before pushing.
https://hg.mozilla.org/mozilla-central/rev/14f7dab3a9bd
Status: ASSIGNED → RESOLVED
Closed: Last year
Resolution: --- → FIXED
Target Milestone: --- → mozilla62
Awesome, this got entirely fixed!
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.