Closed Bug 1527704 Opened 6 years ago Closed 6 years ago

installs.ini and profiles.ini should not be read in a row using main thread I/O during early startup

Categories

(Toolkit :: Startup and Profile System, defect, P1)

defect

Tracking

()

RESOLVED FIXED
mozilla68
Tracking Status
firefox-esr60 --- unaffected
firefox66 --- unaffected
firefox67 + fixed
firefox68 + fixed

People

(Reporter: florian, Assigned: mossop)

References

(Depends on 1 open bug, Blocks 1 open bug, Regression)

Details

(Keywords: regression, Whiteboard: patch under review [fxperf:p1])

Attachments

(1 file)

https://perfht.ml/2DT02Uv shows that we do (expensive in that case) main thread I/O during early startup on installs.ini immediately followed by main thread I/O on profiles.ini

These 2 files are in the same folder, it seems a single file should be enough.

From #fx-team:

Mossop: If you run an older version of Firefox that doesn't know about the installs data it will throw away all that data when it writes profiles.ini

florian: could we write all data to the new file, so that we don't have to open both in new versions of Firefox?

Mossop: florian: Then we'd need some mechanism to sync changes from the old file if older versions of Firefox change the data.

florian: how long do we need to support these old versions?

Mossop: Not really sure. At the very least until 68 has ridden to ESR, probably a little longer.

florian: why does it matter if old versions of Firefox write more data to the old file?

Mossop: If they create new profiles or delete old ones the new versions won't know about that

florian: how about: 1. always write the new data in both files for now. 2. At startup read only profiles.ini and open installs.ini only if the new data was missing in profiles.ini 3. In a distant future, get rid of installs.ini ?

Mossop: Hmm, yeah that could work

Keywords: regression

[Tracking Requested - why for this release]: startup performance regression from bug 1474285 which landed in the 67 cycle.

Whiteboard: [fxperf] → [fxperf:p1]

Per comment 1, this is a startup performance regression from bug 1474285. Dave, will this get fixed by the 67 soft freeze (Mar 11)?

Flags: needinfo?(dtownsend)

(In reply to Neha Kochar [:neha] from comment #2)

Per comment 1, this is a startup performance regression from bug 1474285. Dave, will this get fixed by the 67 soft freeze (Mar 11)?

I'm not sure, it's quite a lot of work

Flags: needinfo?(dtownsend)

What are the consequences of not being able to fix this by March 11th? I wasn't aware that this was needed.

Flags: needinfo?(nkochar)

(In reply to Dave Townsend [:mossop] (he/him) from comment #4)

What are the consequences of not being able to fix this by March 11th? I wasn't aware that this was needed.

I asked because this is a startup performance regression for 67 (soft freeze March 11) and it came up in the regression triage meeting. I asked Pascal (67 RelMan) and he mentioned that we can take a safe uplift in beta (March 18) if necessary to fix the perf regression.

Flags: needinfo?(nkochar)
Assignee: nobody → dtownsend

Originally we stored the new information about installation defaults in
installs.ini since older versions of Firefox would throw away any new data in
profiles.ini any time they made changes to the profiles. That does however mean
we have to load two files on startup.

This changes things so that we save all the data in profiles.ini as well as a
version tag and still save the install data into installs.ini. An older version
will throw away the install data and version tag from profiles.ini but leave
installs.ini alone. On startup if the version tag is gone from profiles.ini then
we reload the install data from installs.ini and put it back into profiles.ini.

At some point in the future where we don't care about supporting older versions
of Firefox we can just drop installs.ini entirely.

A lot of the changes here involve moving to loading profiles.ini into an
in-memory ini, keeping it up to date and flushing it to disk. This means that we
no longer throw away any information in the ini file that this version does not
understand allowing the possibility of adding new data to this file in the
future.

Whiteboard: [fxperf:p1] → patch under review [fxperf:p1]
Depends on: 1535458
Pushed by dtownsend@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/d4feb17faf01 Store install information in profiles.ini and use installs.ini as a backup in case an earlier Firefox throws it away. r=froydnj
Pushed by dtownsend@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/e1c9790cd3be Store install information in profiles.ini and use installs.ini as a backup in case an earlier Firefox throws it away. r=froydnj

Backed out changeset 1c16d4ce9107 (Bug 1527704) for build bustages in builds/worker/workspace/build/src/toolkit/profile/nsToolkitProfileService.cpp CLOSED TREE

Failure: https://treeherder.mozilla.org/#/jobs?repo=autoland&resultStatus=testfailed%2Cbusted%2Cexception&classifiedState=unclassified&fromchange=d7fdd6fbd9cd6c019733f2b574c6ffb95ba81913&selectedJob=235991874

Log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=235991874&repo=autoland&lineNumber=22338

[task 2019-03-26T01:16:56.360Z] 01:16:56 INFO - make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/js/ductwork/debugger'
[task 2019-03-26T01:16:56.360Z] 01:16:56 INFO - make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/toolkit/system/gnome'
[task 2019-03-26T01:16:56.360Z] 01:16:56 INFO - toolkit/system/gnome/nsGnomeModule.o
[task 2019-03-26T01:16:56.361Z] 01:16:56 INFO - make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/toolkit/system/gnome'
[task 2019-03-26T01:16:56.364Z] 01:16:56 INFO - make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/js/ductwork/debugger'
[task 2019-03-26T01:16:56.364Z] 01:16:56 INFO - js/ductwork/debugger/JSDebugger.o
[task 2019-03-26T01:16:56.364Z] 01:16:56 INFO - make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/js/ductwork/debugger'
[task 2019-03-26T01:16:56.380Z] 01:16:56 INFO - make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/media/mtransport/test'
[task 2019-03-26T01:16:56.383Z] 01:16:56 INFO - /builds/worker/workspace/build/src/sccache2/sccache /builds/worker/workspace/build/src/clang/bin/clang++ -o transport_unittests.o -c -I/builds/worker/workspace/build/src/obj-firefox/dist/stl_wrappers -I/builds/worker/workspace/build/src/obj-firefox/dist/system_wrappers -include /builds/worker/workspace/build/src/config/gcc_hidden.h -DDEBUG=1 -DOS_POSIX=1 -DOS_LINUX=1 -DHAVE_STRDUP -DNR_SOCKET_IS_VOID_PTR -DSCTP_DEBUG -DLINUX -D__Userspace_os_Linux=1 -DSTATIC_EXPORTABLE_JS_API -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/builds/worker/workspace/build/src/media/mtransport/test -I/builds/worker/workspace/build/src/obj-firefox/media/mtransport/test -I/builds/worker/workspace/build/src/obj-firefox/ipc/ipdl/_ipdlheaders -I/builds/worker/workspace/build/src/ipc/chromium/src -I/builds/worker/workspace/build/src/ipc/glue -I/builds/worker/workspace/build/src/media/mtransport/third_party/nrappkit/src/port/linux/include -I/builds/worker/workspace/build/src/media/mtransport -I/builds/worker/workspace/build/src/media/mtransport/third_party -I/builds/worker/workspace/build/src/media/mtransport/third_party/nICEr/src/crypto -I/builds/worker/workspace/build/src/media/mtransport/third_party/nICEr/src/ice -I/builds/worker/workspace/build/src/media/mtransport/third_party/nICEr/src/net -I/builds/worker/workspace/build/src/media/mtransport/third_party/nICEr/src/stun -I/builds/worker/workspace/build/src/media/mtransport/third_party/nICEr/src/util -I/builds/worker/workspace/build/src/media/mtransport/third_party/nrappkit/src/event -I/builds/worker/workspace/build/src/media/mtransport/third_party/nrappkit/src/log -I/builds/worker/workspace/build/src/media/mtransport/third_party/nrappkit/src/plugin -I/builds/worker/workspace/build/src/media/mtransport/third_party/nrappkit/src/port/generic/include -I/builds/worker/workspace/build/src/media/mtransport/third_party/nrappkit/src/registry -I/builds/worker/workspace/build/src/media/mtransport/third_party/nrappkit/src/share -I/builds/worker/workspace/build/src/media/mtransport/third_party/nrappkit/src/stats -I/builds/worker/workspace/build/src/media/mtransport/third_party/nrappkit/src/util -I/builds/worker/workspace/build/src/media/mtransport/third_party/nrappkit/src/util/libekr -I/builds/worker/workspace/build/src/netwerk/sctp/src -I/builds/worker/workspace/build/src/xpcom/tests -I/builds/worker/workspace/build/src/obj-firefox/dist/include -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nspr -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nss -fPIC -DMOZILLA_CLIENT -include /builds/worker/workspace/build/src/obj-firefox/mozilla-config.h -Qunused-arguments -U_FORTIFY_SOURCE -fno-common -Qunused-arguments -Wall -Wbitfield-enum-conversion -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wshadow-field-in-constructor-modified -Wsign-compare -Wtype-limits -Wunreachable-code -Wunreachable-code-return -Wwrite-strings -Wno-invalid-offsetof -Wclass-varargs -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wloop-analysis -Wc++1z-compat -Wc++2a-compat -Wcomma -Wimplicit-fallthrough -Werror=non-literal-null-conversion -Wstring-conversion -Wtautological-overlap-compare -Wtautological-unsigned-enum-zero-compare -Wtautological-unsigned-zero-compare -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=backend-plugin -Wno-error=return-std-move -Wno-error=atomic-alignment -Wformat -Wformat-security -Wno-gnu-zero-variadic-macro-arguments -Wno-unknown-warning-option -Wno-return-type-c-linkage -D_GLIBCXX_USE_CXX11_ABI=0 -fno-sized-deallocation -fsanitize=address -fcrash-diagnostics-dir=/builds/worker/artifacts -U_FORTIFY_SOURCE -fno-common -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -Xclang -load -Xclang /builds/worker/workspace/build/src/obj-firefox/build/clang-plugin/libclang-plugin.so -Xclang -add-plugin -Xclang moz-check -O1 -fno-omit-frame-pointer -funwind-tables -Werror -Wno-error=shadow -MD -MP -MF .deps/transport_unittests.o.pp /builds/worker/workspace/build/src/media/mtransport/test/transport_unittests.cpp
[task 2019-03-26T01:16:56.383Z] 01:16:56 INFO - make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/media/mtransport/test'
[task 2019-03-26T01:16:56.383Z] 01:16:56 INFO - make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/toolkit/system/gnome'
[task 2019-03-26T01:16:56.383Z] 01:16:56 INFO - toolkit/system/gnome/nsSystemAlertsService.o
[task 2019-03-26T01:16:56.383Z] 01:16:56 INFO - make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/toolkit/system/gnome'
[task 2019-03-26T01:16:56.419Z] 01:16:56 INFO - make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/gfx/thebes'
[task 2019-03-26T01:16:56.425Z] 01:16:56 INFO - /builds/worker/workspace/build/src/sccache2/sccache /builds/worker/workspace/build/src/clang/bin/clang++ -o PrintTargetThebes.o -c -I/builds/worker/workspace/build/src/obj-firefox/dist/stl_wrappers -I/builds/worker/workspace/build/src/obj-firefox/dist/system_wrappers -include /builds/worker/workspace/build/src/config/gcc_hidden.h -DDEBUG=1 -DOS_POSIX=1 -DOS_LINUX=1 -DMOZ_ENABLE_FREETYPE -DGRAPHITE2_STATIC -DSTATIC_EXPORTABLE_JS_API -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/builds/worker/workspace/build/src/gfx/thebes -I/builds/worker/workspace/build/src/obj-firefox/gfx/thebes -I/builds/worker/workspace/build/src/obj-firefox/ipc/ipdl/_ipdlheaders -I/builds/worker/workspace/build/src/ipc/chromium/src -I/builds/worker/workspace/build/src/ipc/glue -I/builds/worker/workspace/build/src/dom/base -I/builds/worker/workspace/build/src/dom/xml -I/builds/worker/workspace/build/src/gfx/skia -I/builds/worker/workspace/build/src/gfx/skia/skia/include/config -I/builds/worker/workspace/build/src/gfx/skia/skia/include/core -I/builds/worker/workspace/build/src/gfx/skia/skia/include/docs -I/builds/worker/workspace/build/src/gfx/skia/skia/include/gpu -I/builds/worker/workspace/build/src/gfx/skia/skia/include/utils -I/builds/worker/workspace/build/src/obj-firefox/dist/include -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nspr -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nss -fPIC -DMOZILLA_CLIENT -include /builds/worker/workspace/build/src/obj-firefox/mozilla-config.h -Qunused-arguments -U_FORTIFY_SOURCE -fno-common -Qunused-arguments -Wall -Wbitfield-enum-conversion -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wshadow-field-in-constructor-modified -Wsign-compare -Wtype-limits -Wunreachable-code -Wunreachable-code-return -Wwrite-strings -Wno-invalid-offsetof -Wclass-varargs -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wloop-analysis -Wc++1z-compat -Wc++2a-compat -Wcomma -Wimplicit-fallthrough -Werror=non-literal-null-conversion -Wstring-conversion -Wtautological-overlap-compare -Wtautological-unsigned-enum-zero-compare -Wtautological-unsigned-zero-compare -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=backend-plugin -Wno-error=return-std-move -Wno-error=atomic-alignment -Wformat -Wformat-security -Wno-gnu-zero-variadic-macro-arguments -Wno-unknown-warning-option -Wno-return-type-c-linkage -D_GLIBCXX_USE_CXX11_ABI=0 -fno-sized-deallocation -fsanitize=address -fcrash-diagnostics-dir=/builds/worker/artifacts -U_FORTIFY_SOURCE -fno-common -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -Xclang -load -Xclang /builds/worker/workspace/build/src/obj-firefox/build/clang-plugin/libclang-plugin.so -Xclang -add-plugin -Xclang moz-check -O1 -fno-omit-frame-pointer -funwind-tables -Werror -I/builds/worker/workspace/build/src/obj-firefox/dist/include/cairo -I/builds/worker/workspace/build/src/widget/gtk/compat-gtk3 -pthread -I/usr/include/gtk-3.0 -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/pixman-1 -I/usr/include/libpng12 -I/usr/include/gtk-3.0/unix-print -pthread -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng12 -MD -MP -MF .deps/PrintTargetThebes.o.pp /builds/worker/workspace/build/src/gfx/thebes/PrintTargetThebes.cpp
[task 2019-03-26T01:16:56.425Z] 01:16:56 INFO - make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/gfx/thebes'
[task 2019-03-26T01:16:56.425Z] 01:16:56 INFO - make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/gfx/thebes'
[task 2019-03-26T01:16:56.426Z] 01:16:56 INFO - gfx/thebes/gfxDrawable.o
[task 2019-03-26T01:16:56.426Z] 01:16:56 INFO - make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/gfx/thebes'
[task 2019-03-26T01:16:56.426Z] 01:16:56 INFO - make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/toolkit/profile'
[task 2019-03-26T01:16:56.426Z] 01:16:56 INFO - /builds/worker/workspace/build/src/sccache2/sccache /builds/worker/workspace/build/src/clang/bin/clang++ -o Unified_cpp_toolkit_profile0.o -c -I/builds/worker/workspace/build/src/obj-firefox/dist/stl_wrappers -I/builds/worker/workspace/build/src/obj-firefox/dist/system_wrappers -include /builds/worker/workspace/build/src/config/gcc_hidden.h -DDEBUG=1 -DSTATIC_EXPORTABLE_JS_API -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/builds/worker/workspace/build/src/toolkit/profile -I/builds/worker/workspace/build/src/obj-firefox/toolkit/profile -I/builds/worker/workspace/build/src/toolkit/xre -I/builds/worker/workspace/build/src/obj-firefox/dist/include -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nspr -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nss -fPIC -DMOZILLA_CLIENT -include /builds/worker/workspace/build/src/obj-firefox/mozilla-config.h -Qunused-arguments -U_FORTIFY_SOURCE -fno-common -Qunused-arguments -Wall -Wbitfield-enum-conversion -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wshadow-field-in-constructor-modified -Wsign-compare -Wtype-limits -Wunreachable-code -Wunreachable-code-return -Wwrite-strings -Wno-invalid-offsetof -Wclass-varargs -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wloop-analysis -Wc++1z-compat -Wc++2a-compat -Wcomma -Wimplicit-fallthrough -Werror=non-literal-null-conversion -Wstring-conversion -Wtautological-overlap-compare -Wtautological-unsigned-enum-zero-compare -Wtautological-unsigned-zero-compare -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=backend-plugin -Wno-error=return-std-move -Wno-error=atomic-alignment -Wformat -Wformat-security -Wno-gnu-zero-variadic-macro-arguments -Wno-unknown-warning-option -Wno-return-type-c-linkage -D_GLIBCXX_USE_CXX11_ABI=0 -fno-sized-deallocation -fsanitize=address -fcrash-diagnostics-dir=/builds/worker/artifacts -U_FORTIFY_SOURCE -fno-common -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -Xclang -load -Xclang /builds/worker/workspace/build/src/obj-firefox/build/clang-plugin/libclang-plugin.so -Xclang -add-plugin -Xclang moz-check -O1 -fno-omit-frame-pointer -funwind-tables -Werror -MD -MP -MF .deps/Unified_cpp_toolkit_profile0.o.pp /builds/worker/workspace/build/src/obj-firefox/toolkit/profile/Unified_cpp_toolkit_profile0.cpp
[task 2019-03-26T01:16:56.426Z] 01:16:56 INFO - In file included from /builds/worker/workspace/build/src/obj-firefox/toolkit/profile/Unified_cpp_toolkit_profile0.cpp:11:
[task 2019-03-26T01:16:56.426Z] 01:16:56 ERROR - /builds/worker/workspace/build/src/toolkit/profile/nsToolkitProfileService.cpp:1685:8: error: Unused "kungFuDeathGrip" 'RefPtr<nsToolkitProfile>' objects constructed from temporary values are prohibited
[task 2019-03-26T01:16:56.426Z] 01:16:56 INFO - for (RefPtr<nsToolkitProfile> profile : mProfiles) {
[task 2019-03-26T01:16:56.426Z] 01:16:56 INFO - ^
[task 2019-03-26T01:16:56.426Z] 01:16:56 INFO - /builds/worker/workspace/build/src/toolkit/profile/nsToolkitProfileService.cpp:1685:41: note: Please switch all accesses to this value to go through 'profile', or explicitly pass 'profile' to mozilla::Unused
[task 2019-03-26T01:16:56.426Z] 01:16:56 INFO - for (RefPtr<nsToolkitProfile> profile : mProfiles) {
[task 2019-03-26T01:16:56.426Z] 01:16:56 INFO - ^
[task 2019-03-26T01:16:56.426Z] 01:16:56 INFO - 1 error generated.
[task 2019-03-26T01:16:56.426Z] 01:16:56 INFO - /builds/worker/workspace/build/src/config/rules.mk:805: recipe for target 'Unified_cpp_toolkit_profile0.o' failed
[task 2019-03-26T01:16:56.426Z] 01:16:56 ERROR - make[4]: *** [Unified_cpp_toolkit_profile0.o] Error 1
[task 2019-03-26T01:16:56.427Z] 01:16:56 INFO - make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/toolkit/profile'
[task 2019-03-26T01:16:56.427Z] 01:16:56 INFO - /builds/worker/workspace/build/src/config/recurse.mk:74: recipe for target 'toolkit/profile/target' failed
[task 2019-03-26T01:16:56.427Z] 01:16:56 ERROR - make[3]: *** [toolkit/profile/target] Error 2
[task 2019-03-26T01:16:56.427Z] 01:16:56 INFO - make[3]: *** Waiting for unfinished jobs....
[task 2019-03-26T01:16:56.427Z] 01:16:56 INFO - make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/gfx/thebes'
[task 2019-03-26T01:16:56.427Z] 01:16:56 INFO - gfx/thebes/gfxFT2FontBase.o
[task 2019-03-26T01:16:56.427Z] 01:16:56 INFO - make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/gfx/thebes'
[task 2019-03-26T01:16:56.427Z] 01:16:56 INFO - make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/toolkit/system/gnome'
[task 2019-03-26T01:16:56.427Z] 01:16:56 INFO - /builds/worker/workspace/build/src/sccache2/sccache /builds/worker/workspace/build/src/clang/bin/clang++ -o nsAlertsIconListener.o -c -I/builds/worker/workspace/build/src/obj-firefox/dist/stl_wrappers -I/builds/worker/workspace/build/src/obj-firefox/dist/system_wrappers -include /builds/worker/workspace/build/src/config/gcc_hidden.h -DDEBUG=1 -DSTATIC_EXPORTABLE_JS_API -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/builds/worker/workspace/build/src/toolkit/system/gnome -I/builds/worker/workspace/build/src/obj-firefox/toolkit/system/gnome -I/builds/worker/workspace/build/src/toolkit/components/build -I/builds/worker/workspace/build/src/obj-firefox/dist/include -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nspr -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nss -fPIC -DMOZILLA_CLIENT -include /builds/worker/workspace/build/src/obj-firefox/mozilla-config.h -Qunused-arguments -U_FORTIFY_SOURCE -fno-common -Qunused-arguments -Wall -Wbitfield-enum-conversion -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wshadow-field-in-constructor-modified -Wsign-compare -Wtype-limits -Wunreachable-code -Wunreachable-code-return -Wwrite-strings -Wno-invalid-offsetof -Wclass-varargs -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wloop-analysis -Wc++1z-compat -Wc++2a-compat -Wcomma -Wimplicit-fallthrough -Werror=non-literal-null-conversion -Wstring-conversion -Wtautological-overlap-compare -Wtautological-unsigned-enum-zero-compare -Wtautological-unsigned-zero-compare -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=backend-plugin -Wno-error=return-std-move -Wno-error=atomic-alignment -Wformat -Wformat-security -Wno-gnu-zero-variadic-macro-arguments -Wno-unknown-warning-option -Wno-return-type-c-linkage -D_GLIBCXX_USE_CXX11_ABI=0 -fno-sized-deallocation -fsanitize=address -fcrash-diagnostics-dir=/builds/worker/artifacts -U_FORTIFY_SOURCE -fno-common -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -Xclang -load -Xclang /builds/worker/workspace/build/src/obj-firefox/build/clang-plugin/libclang-plugin.so -Xclang -add-plugin -Xclang moz-check -O1 -fno-omit-frame-pointer -funwind-tables -Werror -pthread -I/usr/include/gconf/2 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/builds/worker/workspace/build/src/widget/gtk/compat-gtk3 -pthread -I/usr/include/gtk-3.0 -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/pixman-1 -I/usr/include/libpng12 -I/usr/include/gtk-3.0/unix-print -MD -MP -MF .deps/nsAlertsIconListener.o.pp /builds/worker/workspace/build/src/toolkit/system/gnome/nsAlertsIconListener.cpp

Flags: needinfo?(dtownsend)
Flags: needinfo?(dtownsend)
Backout by rgurzau@mozilla.com: https://hg.mozilla.org/mozilla-central/rev/a0dcfd3d82f2 Backed out changeset 1c16d4ce9107 for build bustages in builds/worker/workspace/build/src/toolkit/profile/nsToolkitProfileService.cpp CLOSED TREE
Pushed by dtownsend@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/084974858a7b Store install information in profiles.ini and use installs.ini as a backup in case an earlier Firefox throws it away. r=froydnj
Backout by csabou@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/3f6b0e9f7792 Backed out changeset 084974858a7b for xpcshell failures on test_remove.js.

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&resultStatus=success%2Ctestfailed%2Cbusted%2Cexception&searchStr=windows%2C10%2Cx64%2Cdebug%2Cxpcshell%2Ctests%2Ctest-windows10-64%2Fdebug-xpcshell%2Cx%28x%29&tochange=0fedcd9cdd51f06c9e177a1b81c04c7ac93e27bf&fromchange=084974858a7b95b106c8f2cd4c334ef716c9a417&selectedJob=236237241

Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=236237241&repo=autoland&lineNumber=9850

Backout link: https://hg.mozilla.org/integration/autoland/rev/3f6b0e9f77927285eb0958947a30301ddc30b131

23:34:01 INFO - TEST-START | toolkit/profile/xpcshell/test_remove.js
23:39:01 WARNING - TEST-UNEXPECTED-TIMEOUT | toolkit/profile/xpcshell/test_remove.js | Test timed out
23:39:01 INFO - TEST-INFO took 300001ms
23:39:01 INFO - >>>>>>>
23:39:01 INFO - PID 13184 | Unable to load \untrusted-startup-test-dll.dll; LoadLibraryW failed: 126[13184, Main Thread] WARNING: Cannot get app build ID. Defaulting to canary.: file z:/build/build/src/toolkit/components/telemetry/core/TelemetryOrigin.cpp, line 201
23:39:01 INFO - PID 13184 | Couldn't convert chrome URL: chrome://branding/locale/brand.properties
23:39:01 INFO - PID 13184 | [13184, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80520012: file z:/build/build/src/netwerk/base/nsIOService.cpp, line 942
23:39:01 INFO - PID 13184 | [13184, Main Thread] WARNING: Failed to get directory to cache.: file z:/build/build/src/security/sandbox/win/src/sandboxbroker/sandboxBroker.cpp, line 81
23:39:01 INFO - PID 13184 | [13184, Main Thread] WARNING: Failed to get directory to cache.: file z:/build/build/src/security/sandbox/win/src/sandboxbroker/sandboxBroker.cpp, line 81
23:39:01 INFO - PID 13184 | [13184, Main Thread] WARNING: Failed to get directory to cache.: file z:/build/build/src/security/sandbox/win/src/sandboxbroker/sandboxBroker.cpp, line 81
23:39:01 INFO - PID 13184 | [13184, Main Thread] WARNING: Failed to get directory to cache.: file z:/build/build/src/security/sandbox/win/src/sandboxbroker/sandboxBroker.cpp, line 81
23:39:01 INFO - PID 13184 | [13184, Main Thread] WARNING: Failed to get directory to cache.: file z:/build/build/src/security/sandbox/win/src/sandboxbroker/sandboxBroker.cpp, line 81
23:39:01 INFO - PID 13184 | [13184, Main Thread] WARNING: Couldn't get the user appdata directory. Crash events may not be produced.: file z:/build/build/src/toolkit/crashreporter/nsExceptionHandler.cpp, line 2528
23:39:01 INFO - (xpcshell/head.js) | test MAIN run_test pending (1)
23:39:01 INFO - (xpcshell/head.js) | test run_next_test 0 pending (2)
23:39:01 INFO - (xpcshell/head.js) | test MAIN run_test finished (2)
23:39:01 INFO - running event loop
23:39:01 INFO - PID 13184 | [13184, Main Thread] WARNING: Could not get the program name for a cubeb stream.: 'NS_SUCCEEDED(rv)', file z:/build/build/src/dom/media/CubebUtils.cpp, line 359
23:39:01 INFO - toolkit/profile/xpcshell/test_remove.js | Starting
23:39:01 INFO - (xpcshell/head.js) | test pending (2)
23:39:01 INFO - TEST-PASS | toolkit/profile/xpcshell/test_remove.js | - profileCount should be correct. - 0 == 0

Priority: -- → P1
Pushed by dtownsend@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/8d043fdfac71 Store install information in profiles.ini and use installs.ini as a backup in case an earlier Firefox throws it away. r=froydnj
Pushed by dtownsend@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/bb01b9203501 Store install information in profiles.ini and use installs.ini as a backup in case an earlier Firefox throws it away. r=froydnj
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla68
https://hg.mozilla.org/projects/ash/rev/1c16d4ce910755f1841c30a331e6aa5c212afcdf Bug 1527704: Store install information in profiles.ini and use installs.ini as a backup in case an earlier Firefox throws it away. r=froydnj https://hg.mozilla.org/projects/ash/rev/a0dcfd3d82f2f8c2407afbb45de34d455156a048 Backed out changeset 1c16d4ce9107 (bug 1527704) for build bustages in builds/worker/workspace/build/src/toolkit/profile/nsToolkitProfileService.cpp CLOSED TREE
Flags: needinfo?(dtownsend)

Thanks for fixing this, Dave. This is marked tracking 67. Is the patch safe for uplift to 67 beta? If yes, could you please make a beta uplift request?

Flags: needinfo?(dtownsend)
Depends on: 1539820

(In reply to Neha Kochar [:neha] from comment #21)

Thanks for fixing this, Dave. This is marked tracking 67. Is the patch safe for uplift to 67 beta? If yes, could you please make a beta uplift request?

At this stage I think it is safe, I want to give it a day on nightly first though.

Comment on attachment 9049302 [details]
Bug 1527704: Store install information in profiles.ini and use installs.ini as a backup in case an earlier Firefox throws it away. r=froydnj

Beta/Release Uplift Approval Request

  • Feature/Bug causing the regression: Bug 1474285
  • User impact if declined: Users will see a small increase in startup time.
  • Is this code covered by automated tests?: Yes
  • Has the fix been verified in Nightly?: Yes
  • Needs manual test from QE?: No
  • If yes, steps to reproduce:
  • List of other uplifts needed: None
  • Risk to taking this patch: Medium
  • Why is the change risky/not risky? (and alternatives if risky): This changes how we store information about the user's profile. Automated tests do verify pretty well that everything is working though.
  • String changes made/needed: N/A
Flags: needinfo?(dtownsend)
Attachment #9049302 - Flags: approval-mozilla-beta?

Comment on attachment 9049302 [details]
Bug 1527704: Store install information in profiles.ini and use installs.ini as a backup in case an earlier Firefox throws it away. r=froydnj

Perf fix, part of the Dedicated Profiles per install work which ships in 67, with tests and on Nightly for a week with no reported regression. Uplift accepted for 67 beta 8, thanks.

Attachment #9049302 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
No longer blocks: 1474285
Regressed by: 1474285
Depends on: 1546931
Blocks: 1543096
Has Regression Range: --- → yes
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: