IOError: [Errno 2] No such file or directory: objdir/dist/bin/platform.ini

RESOLVED FIXED in Thunderbird 45.0

Status

--
major
RESOLVED FIXED
3 years ago
a year ago

People

(Reporter: aleth, Assigned: aleth)

Tracking

({intermittent-failure})

unspecified
Thunderbird 45.0
intermittent-failure

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(2 attachments, 1 obsolete attachment)

(Assignee)

Description

3 years ago
TB build orange, can be reproduced locally, also seen for IB.
(Assignee)

Comment 1

3 years ago
This happens because e.g. toolkit/mozapps/installer/package-name.mk runs before toolkit/xre/Makefile.in invokes make-platformini.py.
(Assignee)

Updated

3 years ago
Severity: normal → major

Comment 2

3 years ago
(In reply to aleth [:aleth] from comment #1)
> This happens because e.g. toolkit/mozapps/installer/package-name.mk runs
> before toolkit/xre/Makefile.in invokes make-platformini.py.

The above must be the explanation.
I noticed the same issue and figured out 
platform.ini seems to be available only in a successful build.

Quote a paragraph from https://bugzilla.mozilla.org/show_bug.cgi?id=1222591#c4 
---
Unrelated

(6) platform.ini is missing:

Since I specify |make -j4| or something like that
during my local build, the output is intermixed from different |make| invocation and is hard to see, but when I searched "No such file"
I noticed the following errors concerning "platform.ini"

--- begin quote 
/NREF-COMM-CENTRAL/comm-central/ldap/c-sdk/libraries/libldap/unbind.c: In function ‘ldap_unbind’:
/NREF-COMM-CENTRAL/comm-central/ldap/c-sdk/libraries/libldap/unbind.c:58:2: warning: too many arguments for format [-Wformat-extra-args]
  LDAPDebug( LDAP_DEBUG_TRACE, "ldap_unbind\n", 0, 0, 0 );
  ^
/NREF-COMM-CENTRAL/comm-central/ldap/c-sdk/libraries/libldap/unbind.c:58:2: warning: too many arguments for format [-Wformat-extra-args]
/NREF-COMM-CENTRAL/comm-central/ldap/c-sdk/libraries/libldap/unbind.c: In function ‘nsldapi_send_unbind’:
/NREF-COMM-CENTRAL/comm-central/ldap/c-sdk/libraries/libldap/unbind.c:202:2: warning: too many arguments for format [-Wformat-extra-args]
  LDAPDebug( LDAP_DEBUG_TRACE, "nsldapi_send_unbind\n", 0, 0, 0 );
  ^
/NREF-COMM-CENTRAL/comm-central/ldap/c-sdk/libraries/libldap/unbind.c:202:2: warning: too many arguments for format [-Wformat-extra-args]
url.o
vorg.o
Traceback (most recent call last):
  File "/NREF-COMM-CENTRAL/comm-central/mozilla/config/printconfigsetting.py", line 16, in <module>
    with open(file) as fh:
IOError: [Errno 2] No such file or directory: '/NREF-COMM-CENTRAL/objdir-tb3/dist/bin/platform.ini'
In file included from ldvector.c:298:0:
/NREF-COMM-CENTRAL/objdir-tb3/dist/private/nss/verref.h: In function ‘FREEBL_GetVector’:
/NREF-COMM-CENTRAL/objdir-tb3/dist/private/nss/verref.h:31:25: warning: unused variable ‘_nss_version_c’ [-Wunused-variable]
     volatile const char _nss_version_c = NSS_VERSION_VARIABLE[0];
                         ^
Traceback (most recent call last):
  File "/NREF-COMM-CENTRAL/comm-central/mozilla/config/printconfigsetting.py", line 16, in <module>
    with open(file) as fh:
IOError: [Errno 2] No such file or directory: '/NREF-COMM-CENTRAL/objdir-tb3/dist/bin/platform.ini'
userstatusctrl.o
   ...
--- end quote 

I have no idea what triggered the build script(s) look for platform.ini.
Looking at the existing platform.ini on my system, I surmize this file
is probably created only during the successful build.
The existing platform.ini files are all from successful different builds and
from Debian or Mozilla package installations.

Hmm, so trying to rely on it during build is not useful IMHO.

platform.ini on a particular system of mine  (Debian GNU/Linux 64-bit):
ishikawa@ip030:/NREF-COMM-CENTRAL/comm-central$ locate platform.ini
/REF-OBJ-DIR/objdir-tb3/toolkit/xre/platform.ini   
/TB-NEW/64bits-transition/home/mailtest/thunderbird/platform.ini
/TEST-MAIL-DIR/objdir-tb3/mozilla/dist/bin/platform.ini
/TEST-MAIL-DIR/objdir-tb3/mozilla/toolkit/xre/platform.ini
/WWW-DIR/ASAN-OBJ-DIR/objdir-tb3/dist/bin/platform.ini
/WWW-DIR/ASAN-OBJ-DIR/objdir-tb3/toolkit/xre/platform.ini
/home/ishikawa/OLD-HOME/firefox/platform.ini
/home/ishikawa/OLD-HOME/thunderbird/platform.ini
/home/ishikawa/ff-objdir-tb3/dist/bin/platform.ini
/home/ishikawa/ff-objdir-tb3/toolkit/xre/platform.ini
/home/ishikawa/firefox/platform.ini
/home/ishikawa/repos/thunderbird/platform.ini
/home/mtest2/firefox/platform.ini
/home/mtest2/firefox/updated/platform.ini
/usr/lib/icedove/platform.ini
/usr/lib/iceweasel/platform.ini
---
(Assignee)

Comment 3

3 years ago
It looks like I (currently) can't reproduce this locally any more on OSX for TB.

For IB, it's still there, and the problematic package-name.mk call is from im/build.mk, which is called from mozilla/Makefile.in.
(Assignee)

Comment 4

3 years ago
Filed a separate bug for Instantbird, Bug 1222740.

Comment 5

3 years ago
(In reply to aleth [:aleth] from comment #3)
> It looks like I (currently) can't reproduce this locally any more on OSX for
> TB.
> 
> For IB, it's still there, and the problematic package-name.mk call is from
> im/build.mk, which is called from mozilla/Makefile.in.

My observation in comment 2 was under linux (Debian GNU/Linux 64-bit).
(Assignee)

Comment 6

3 years ago
Created attachment 8685459 [details] [diff] [review]
Avoid calling printconfigsetting.py too early from mail/app/Makefile.in
(Assignee)

Updated

3 years ago
Assignee: nobody → aleth
Status: NEW → ASSIGNED
(Assignee)

Comment 7

3 years ago
Comment on attachment 8685459 [details] [diff] [review]
Avoid calling printconfigsetting.py too early from mail/app/Makefile.in

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

This patch "fixes" the problem by not running the offending calls when the makefile is entered during the build, rather than at the end.

It works, but it would be better to figure out why that makefile is evaluated early. No idea how to do that though.
Attachment #8685459 - Flags: feedback?(Pidgeot18)
Keywords: intermittent-failure
Comment on attachment 8685459 [details] [diff] [review]
Avoid calling printconfigsetting.py too early from mail/app/Makefile.in

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

For this portion of the build system, you'd probably get better information from glandium or gps.

I'm not entirely sure where platform.ini is being generated, but I'm nervous about the impact this has on setting the DEFINES in relevant files.
Attachment #8685459 - Flags: feedback?(Pidgeot18)
(Assignee)

Comment 9

3 years ago
Comment on attachment 8685459 [details] [diff] [review]
Avoid calling printconfigsetting.py too early from mail/app/Makefile.in

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

> I'm not entirely sure where platform.ini is being generated, but I'm nervous
> about the impact this has on setting the DEFINES in relevant files.

It's generated in toolkit/xre/Makefile.in. This is in effect another split build system issue...
Attachment #8685459 - Flags: feedback?(gps)
Comment on attachment 8685459 [details] [diff] [review]
Avoid calling printconfigsetting.py too early from mail/app/Makefile.in

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

Hacks, hacks everywhere. There is likely a better way to do this (like attaching the action to a specific target). But I don't feel like paging this make file back in my head to suggest the proper solution.
Attachment #8685459 - Flags: review+
Attachment #8685459 - Flags: feedback?(gps)
Attachment #8685459 - Flags: feedback+

Comment 11

3 years ago
Comment on attachment 8685459 [details] [diff] [review]
Avoid calling printconfigsetting.py too early from mail/app/Makefile.in

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

> +ifneq ("$(wildcard $(LIBXUL_DIST)/bin/platform.ini)","")
> +# This makefile is evaluated multiple times. The following calls fail unless
> +# we are at the end of the build, at which point platform.ini exists.
> +GRE_MILESTONE = $(shell $(PYTHON) $(MOZILLA_SRCDIR)/config/printconfigsetting.py $(LIBXUL_DIST)/bin/platform.ini Build Milestone)
> +GRE_BUILDID = $(shell $(PYTHON) $(MOZILLA_SRCDIR)/config/printconfigsetting.py $(LIBXUL_DIST)/bin/platform.ini Build BuildID)

LIBXUL_DIST was killed by mozilla-central changeset a1ded8c2c798.
(Assignee)

Comment 12

3 years ago
Created attachment 8691636 [details] [diff] [review]
Remove unused compile defines from mail/app/Makefile.in
Attachment #8691636 - Flags: review?(gps)
(Assignee)

Updated

3 years ago
Attachment #8685459 - Attachment is obsolete: true
(Assignee)

Comment 13

3 years ago
(In reply to Gregory Szorc [:gps] from comment #10)
> Hacks, hacks everywhere. There is likely a better way to do this (like
> attaching the action to a specific target). But I don't feel like paging
> this make file back in my head to suggest the proper solution.

This patch would be less hacky: as far as I can tell, those two compile defines are actually not needed (application.ini and platform.ini *seem* to get populated correctly without them). But maybe I have overlooked something?

Updated

3 years ago
Attachment #8691636 - Flags: review?(gps) → review+
(Assignee)

Comment 14

3 years ago
https://hg.mozilla.org/comm-central/rev/0c42bcd7a5f5ac770c28212eacbbb4630c4b8a7b
Bug 1220501 - Remove unused compile defines from mail/app/Makefile.in. r=gps
(Assignee)

Comment 15

3 years ago
Landed with gps' review, but requesting needinfo from Fallen and jcranmer to double-check there is no split-build-system reason why we must keep these, as I just noticed Calendar already uses an ifdef:
https://dxr.mozilla.org/comm-central/source/calendar/lightning/Makefile.in#45
Flags: needinfo?(philipp)
Flags: needinfo?(Pidgeot18)
(Assignee)

Comment 16

3 years ago
https://hg.mozilla.org/comm-central/rev/36242a48149d6aed19eed49e93368c88649f58c0
Bug 1220501 - Remove unused compile defines from mail/app/Makefile.in: followup to fix typo. rs=bustage-fix
I seem to recall GRE_MILESTONE is going away in another bug? I'm not quite sure what to answer here, if they are not used in Thunderbird files, then removing is probably ok. aleth, anything left to do here?
Flags: needinfo?(philipp) → needinfo?(aleth)
GRE_MILESTONE is one of the parts of the build system outside my area of expertise.
Flags: needinfo?(Pidgeot18)
(Assignee)

Comment 19

3 years ago
(In reply to Philipp Kewisch [:Fallen] from comment #17)
> I seem to recall GRE_MILESTONE is going away in another bug? I'm not quite
> sure what to answer here, if they are not used in Thunderbird files, then
> removing is probably ok. aleth, anything left to do here?

GRE_MILESTONE is still around for now, but GRE_BUILDID has gone away (see Bug 1248246). Anyway, this bug here landed ages ago and hasn't seemed to cause any regressions, so I think we are done. The needinfo at the time was meant as a sanity check since comment 18 holds for me too ;)
Status: ASSIGNED → RESOLVED
Last Resolved: 3 years ago
Flags: needinfo?(aleth)
Resolution: --- → FIXED
Target Milestone: --- → Thunderbird 45.0

Comment 20

3 years ago
I still appear to be getting this bug when compiling xulrunner (45.0.1) in debian 7 64bit (chroot):

 6:41.12 In the directory  /ramdisk/mozilla-release/obj-x86_64-unknown-linux-gnu/widget/gtk
 6:41.12 The following command failed to execute properly:
 6:41.12 c++ -o Unified_cpp_widget_gtk1.o -c -I/ramdisk/mozilla-release/obj-x86_64-unknown-linux-gnu/dist/stl_wrappers -I/ramdisk/mozilla-release/obj-x86_64-unknown-linux-gnu/dist/system_wrappers -include /ramdisk/mozilla-release/config/gcc_hidden.h -DOS_POSIX=1 -DOS_LINUX=1 -DCAIRO_GFX -DMOZ_APP_NAME="xulrunner" -DSTATIC_EXPORTABLE_JS_API -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/ramdisk/mozilla-release/widget/gtk -I. -I../../ipc/ipdl/_ipdlheaders -I/ramdisk/mozilla-release/ipc/chromium/src -I/ramdisk/mozilla-release/ipc/glue -I/ramdisk/mozilla-release/layout/generic -I/ramdisk/mozilla-release/layout/xul -I/ramdisk/mozilla-release/other-licenses/atk-1.0 -I/ramdisk/mozilla-release/widget -I/ramdisk/mozilla-release/widget/x11 -I../../dist/include -I/ramdisk/mozilla-release/obj-x86_64-unknown-linux-gnu/dist/include/nspr -I/ramdisk/mozilla-release/obj-x86_64-unknown-linux-gnu/dist/include/nss -fPIC -DMOZILLA_CLIENT -include ../../mozilla-config.h -MD -MP -MF .deps/Unified_cpp_widget_gtk1.o.pp -Wall -Wempty-body -Woverloaded-virtual -Wsign-compare -Wwrite-strings -Wno-invalid-offsetof -Wcast-align -fno-exceptions -fno-strict-aliasing -fno-rtti -fno-exceptions -fno-math-errno -std=gnu++0x -pthread -pipe -DNDEBUG -DTRIMMED -g -freorder-blocks -Os -fomit-frame-pointer -I/ramdisk/mozilla-release/obj-x86_64-unknown-linux-gnu/dist/include/cairo -I/ramdisk/mozilla-release/widget/gtk/compat -pthread -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/gtk-unix-print-2.0 /ramdisk/mozilla-release/obj-x86_64-unknown-linux-gnu/widget/gtk/Unified_cpp_widget_gtk1.cpp
 6:41.12 make[5]: *** [Unified_cpp_widget_gtk1.o] Error 1
 6:41.12 make[5]: *** Waiting for unfinished jobs....
 6:47.27 make[4]: *** [widget/gtk/target] Error 2
 6:47.27 make[4]: *** Waiting for unfinished jobs....
 7:28.21 make[3]: *** [compile] Error 2
 7:28.21 make[2]: *** [default] Error 2
 7:28.21 make[1]: *** [realbuild] Error 2
 7:28.21 make: *** [build] Error 2
 0:00.23 make[3]: Entering directory `/ramdisk/mozilla-release/obj-x86_64-unknown-linux-gnu/xulrunner/installer'
 0:00.23 Makefile:73: FULL_NSPR_CFLAGS=-I\${includedir}
 0:00.25 Traceback (most recent call last):
 0:00.25   File "/ramdisk/mozilla-release/config/printconfigsetting.py", line 16, in <module>
 0:00.25     with open(file) as fh:
 0:00.25 IOError: [Errno 2] No such file or directory: '../../dist/bin/platform.ini'
 0:00.29 Traceback (most recent call last):
 0:00.29   File "/ramdisk/mozilla-release/config/printconfigsetting.py", line 16, in <module>
 0:00.29     with open(file) as fh:
 0:00.29 IOError: [Errno 2] No such file or directory: '../../dist/bin/platform.ini'
 0:00.33 Traceback (most recent call last):
 0:00.33   File "/ramdisk/mozilla-release/config/printconfigsetting.py", line 16, in <module>
 0:00.33     with open(file) as fh:
 0:00.33 IOError: [Errno 2] No such file or directory: '../../dist/bin/platform.ini'
 0:00.46 Error: "components/interfaces.manifest" is included from "chrome.manifest", which is outside "components"
 0:00.52 Warning: Skipping nsinstall
 0:00.52 Traceback (most recent call last):
 0:00.52   File "/ramdisk/mozilla-release/toolkit/mozapps/installer/packager.py", line 406, in <module>
 0:00.52     main()
 0:00.52   File "/ramdisk/mozilla-release/toolkit/mozapps/installer/packager.py", line 358, in main
 0:00.52     copier.add(mozpath.join(respath, 'removed-files'), removals)
 0:00.52   File "/usr/lib/python2.7/contextlib.py", line 24, in __exit__
 0:00.52     self.gen.next()
 0:00.52   File "/ramdisk/mozilla-release/python/mozbuild/mozpack/errors.py", line 131, in accumulate
 0:00.52     raise AccumulatedErrors()
 0:00.52 mozpack.errors.AccumulatedErrors
 0:00.53 make[3]: *** [stage-package] Error 1
 0:00.53 make[3]: Leaving directory `/ramdisk/mozilla-release/obj-x86_64-unknown-linux-gnu/xulrunner/installer'
 0:00.53 make[2]: *** [make-package] Error 2
 0:00.53 make[2]: Leaving directory `/ramdisk/mozilla-release/obj-x86_64-unknown-linux-gnu/xulrunner/installer'
 0:00.53 make[1]: *** [default] Error 2
 0:00.53 make[1]: Leaving directory `/ramdisk/mozilla-release/obj-x86_64-unknown-linux-gnu/xulrunner/installer'
 0:00.53 make: *** [package] Error 2
 0:00.53 make: Leaving directory `/ramdisk/mozilla-release/obj-x86_64-unknown-linux-gnu'

.mozconfig:

mk_add_options OS_TARGET=Linux
ac_add_options --enable-application=xulrunner
ac_add_options --disable-javaxpcom
ac_add_options --enable-alsa
ac_add_options --disable-pulseaudio
ac_add_options --disable-permissions
ac_add_options --disable-crashreporter
ac_add_options --disable-updater
ac_add_options --disable-parental-controls
ac_add_options --disable-feeds
ac_add_options --prefix=/usr
ac_add_options --enable-default-toolkit=cairo-gtk2
ac_add_options --enable-pango
ac_add_options --disable-mozril-geoloc
ac_add_options --enable-svg
ac_add_options --enable-mathml
ac_add_options --disable-gnomevfs
ac_add_options --disable-gconf
ac_add_options --disable-dbus
ac_add_options --disable-gnomeui
ac_add_options --disable-gnomeui
ac_add_options --disable-mochitest
ac_add_options --disable-debug
ac_add_options --enable-canvas
ac_add_options --disable-installer
ac_add_options --enable-strip
ac_add_options --enable-install-strip
ac_add_options --disable-gstreamer
ac_add_options --disable-apple-media
ac_add_options --disable-necko-wifi
ac_add_options --disable-gamepad
ac_add_options --disable-tests
ac_add_options --disable-printing
ac_add_options --disable-accessibility

What I don't understand is why it triggers with --disable-printing activated.
Created attachment 8830513 [details] [review]
[treeherder] wlach:1333928 > mozilla:master
1 failures in 892 pushes (0.001 failures/push) were associated with this bug in the last 7 days.   

Repository breakdown:
* try: 1

Platform breakdown:
* osx-10-10: 1

For more details, see:
https://brasstacks.mozilla.com/orangefactor/?display=Bug&bugid=1220501&startday=2017-06-19&endday=2017-06-25&tree=all
1 failures in 718 pushes (0.001 failures/push) were associated with this bug in the last 7 days.   

Repository breakdown:
* try: 1

Platform breakdown:
* osx-10-10: 1

For more details, see:
https://brasstacks.mozilla.com/orangefactor/?display=Bug&bugid=1220501&startday=2017-06-26&endday=2017-07-02&tree=all
You need to log in before you can comment on or make changes to this bug.