Closed Bug 1196595 Opened 10 years ago Closed 10 years ago

Update the old emulator tooltool configs so it would install gtk3

Categories

(Release Engineering :: General, defect)

defect
Not set
normal

Tracking

(blocking-b2g:2.5+)

RESOLVED FIXED
blocking-b2g 2.5+

People

(Reporter: rickychien, Assigned: rickychien)

References

Details

Attachments

(1 file, 1 obsolete file)

According to https://bugzilla.mozilla.org/show_bug.cgi?id=1146713#c70, latest b2g desktop depends on gtk3 for some reasons (see also bug 1189125) that break gaia build if we try to upgrade b2g to 43.0a1. A proper fix is we should install gtk libs on build machines.
Flags: needinfo?(jopsen)
I need TC folks's feedbacks since that blocks bug 1146713.
Flags: needinfo?(mshal)
Blocks: 1146713
We install gtk3 using tooltool - it's not on the build machines by default. See for example: https://dxr.mozilla.org/mozilla-central/source/browser/config/tooltool-manifests/linux64/releng.manifest#13
Flags: needinfo?(mshal)
(In reply to Michael Shal [:mshal] from comment #2) > We install gtk3 using tooltool - it's not on the build machines by default. > See for example: > > https://dxr.mozilla.org/mozilla-central/source/browser/config/tooltool- > manifests/linux64/releng.manifest#13 ok, so do you know who can let it install on the build machines by default? It's an urgent 2.5 blocker.
Flags: needinfo?(mshal)
I'm not sure I understand - why can't you add gtk3.tar.xz to the relevant tooltool manifest?
Flags: needinfo?(mshal)
I'm not familiar with b2g or gecko stuffs. I think it's proper to ask releng for help.
Flags: needinfo?(jlund)
Component: General → General Automation
Product: Taskcluster → Release Engineering
QA Contact: catlee
Severity: normal → blocker
Can you point me to a build log on treeherder that this is affecting? From bug 1146713 it sounds like this is for B2G Desktop, but gtk3 should already be installed for those builds from the tooltool manifest: https://dxr.mozilla.org/mozilla-central/source/b2g/config/tooltool-manifests/linux64/releng.manifest#13
Flags: needinfo?(rchien)
Here https://treeherder.mozilla.org/#/jobs?repo=b2g-inbound&revision=d255da3b284c And I saw this message: home/worker/workspace/gaia/b2g_sdk/43.0a1-2015-08-17-15-02-06/b2g/xpcshell: error while loading shared libraries: libgtk-3.so.0: cannot open shared object file: No such file or directory it probably relate to gtk3
Flags: needinfo?(rchien)
From that log you can see that gtk3 is installed: INFO - File gtk3.tar.xz fetched from https://api.pub.build.mozilla.org/tooltool/ as /home/worker/workspace/gecko/tmpKTIKLf ... INFO - untarring "gtk3.tar.xz" We probably just need to setup LD_LIBRARY_PATH to point to $topsrcdir/gtk3/usr/local/lib when running xpcshell. :glandium, do you have a recommendation here?
Flags: needinfo?(mh+mozilla)
Flags: needinfo?(jopsen)
Flags: needinfo?(jlund)
changing priority so we stop getting alerts in #buildduty
Severity: blocker → major
How is this xpcshell run?
Flags: needinfo?(mh+mozilla)
This is not invoked recursively from the gecko build system is it?
Flags: needinfo?(mh+mozilla)
Unfortunately no.
Flags: needinfo?(mh+mozilla)
I would like to change the severity back to "blocker" since this bug impacts B2G Emulator KK and many codes on 2.5 cannot be tested now.
Severity: major → blocker
Then you have to set the right variables on your own. LD_LIBRARY_PATH should be enough.
Flags: needinfo?(mh+mozilla)
In a releng bug component, the severity blocker on an unassigned bug means it produces alerts all the time.
Component: General Automation → General
Product: Release Engineering → Firefox OS
QA Contact: catlee
Summary: Support gtk libs on build machines → b2g build system's invocation of xpcshell fails to find gtk libs on build machines
(In reply to Mike Hommey [:glandium] from comment #16) > Then you have to set the right variables on your own. LD_LIBRARY_PATH should > be enough. Just to be on the safe side: if this is really necessary, we should think of some way to carry that variable from Gecko build system to Gaia, not hardcode it...
(In reply to Phil Ringnalda (:philor) from comment #17) > In a releng bug component, the severity blocker on an unassigned bug means > it produces alerts all the time. Thanks for this info and the help to change the component.
Set this bug to be 2.5 blocker per comment 15.
blocking-b2g: --- → 2.5+
I think LD_LIBRARY_PATH should depend on user's machine. Is it possible to set LD_LIBRARY_PATH from buildbot script, not hardcode it from gecko or gaia?
Flags: needinfo?(mh+mozilla)
Problem of LD_LIBRARY_PATH we ran into didn't happened on local machine, it happened on treeherder only. So we need your help for setting an appropriate ENVs on build machine.
Import .mozconfig.mk from the gecko build?
Flags: needinfo?(mh+mozilla)
Gregory, do you know what's the best way to setup LD_LIBRARY_PATH for b2g desktop build?
Flags: needinfo?(gps)
:glandium, would you mind taking this bug? thanks :)
Flags: needinfo?(mh+mozilla)
I can't take this bug. I know nothing of those builds. You obviously have gtk3 pulled from tooltool, so it's there, somewhere, wherever tooltool is run from. Set LD_LIBRARY_PATH to that_path/gtk3/usr/local/lib from wherever it makes sense in the build (the TC script, the wrapper script if there is one, gaia build system...)
Flags: needinfo?(mh+mozilla)
Essentially, I'm repeating comment 9.
Ricky, isn't the issue at [1] ? [1] https://github.com/mozilla-b2g/gaia/blob/a8a462ab783a5bbab508d3c29483cff260672e3c/Makefile#L340 Maybe you can replace: XULRUNNERSDK := LD_LIBRARY_PATH="$(dir $(XPCSHELLSDK))" by XULRUNNERSDK := LD_LIBRARY_PATH="$(dir $(XPCSHELLSDK)):$(LD_LIBRARY_PATH)" (or anything that makes it work)
Flags: needinfo?(rchien)
Note, you don't want a trailing : when LD_LIBRARY_PATH is empty.
If it means LD_LIBRARY_PATH has already set from buildbot or TC machine, I can export it to Gaia build system. I hope that it will work. Thank you Julien, I'll try it later.
Flags: needinfo?(rchien)
Try status https://treeherder.mozilla.org/#/jobs?repo=try&revision=e46de7e4ff61 still don't know why there are lots of test suites broke /usr/local/lib/node_modules/taskcluster-vcs/build/bin/tc-vcs.js:57 throw err; ^ Error: Error running command: git clone https://github.com/rickychien/gaia /home/worker/gaia at Error (<anonymous>) at run$ (/usr/local/lib/node_modules/taskcluster-vcs/build/run.js:122:15) at tryCatch (/usr/local/lib/node_modules/taskcluster-vcs/node_modules/6to5/node_modules/regenerator-6to5/runtime.js:53:40) at GeneratorFunctionPrototype.invoke (/usr/local/lib/node_modules/taskcluster-vcs/node_modules/6to5/node_modules/regenerator-6to5/runtime.js:209:22) at tryCatch (/usr/local/lib/node_modules/taskcluster-vcs/node_modules/6to5/node_modules/regenerator-6to5/runtime.js:53:40) at Function.step (/usr/local/lib/node_modules/taskcluster-vcs/node_modules/6to5/node_modules/regenerator-6to5/runtime.js:103:22) at /usr/local/lib/node_modules/taskcluster-vcs/node_modules/6to5/node_modules/core-js/shim.js:1283:41 at /usr/local/lib/node_modules/taskcluster-vcs/node_modules/6to5/node_modules/core-js/shim.js:1293:10 at process._tickCallback (node.js:442:13) It seems to relate to task-cluster modules...
Others seem to have this under control.
Flags: needinfo?(gps)
Try passed.
Assignee: nobody → rchien
Status: NEW → ASSIGNED
Thanks for taking care of this!
Patch was landed in https://bugzilla.mozilla.org/show_bug.cgi?id=1146713#c86 but it was backed out for similar failures as last time. Here is my patch https://github.com/mozilla-b2g/gaia/commit/61385bf8a2063f256b546ea5dffb90a53c12876c I wonder why this patch passed on try but failed on b2g-inbound, it was not supposed to happen. Mike, do you have any idea?
Pushed to try again: https://treeherder.mozilla.org/#/jobs?repo=try&revision=eb03b7d2208d without applying XULRUNNERSDK := LD_LIBRARY_PATH="$(dir $(XPCSHELLSDK)):$(LD_LIBRARY_PATH)" and I expect it will throw gtk failures as same as on b2g-inbound.
Flags: needinfo?(mh+mozilla)
Compare with my first patch and second patch, result of B2G Desktop Linux x64 on b2g-inbound is definitely different, see also First patch: https://treeherder.mozilla.org/#/jobs?repo=b2g-inbound&revision=d255da3b284c Second patch: https://treeherder.mozilla.org/#/jobs?repo=b2g-inbound&revision=cfb6e4519984 I don't see any libgtk-3.so errors throw on B2G Desktop Linux x64 in second patch, so I guess that issue is still machine related.
Without the command lines appearing in the logs, I can't tell anything.
Flags: needinfo?(mh+mozilla)
I don't understand why you can't see command lines in the logs. Just click on raw log button first patch: https://s3-us-west-2.amazonaws.com/taskcluster-public-artifacts/7bCnRLKrROyf1imOn3Tilg/0/public/logs/live_backing.log it threw this error: libgtk-3.so.0: cannot open shared object file second patch: https://s3-us-west-2.amazonaws.com/taskcluster-public-artifacts/gwJIZoMaSaSLihCrvyYZEw/0/public/logs/live_backing.log it passed without failures
Flags: needinfo?(mh+mozilla)
(In reply to Ricky Chien [:rickychien] from comment #41) > I don't understand why you can't see command lines in the logs. Just click > on raw log button There is no command line running xpcshell with LD_LIBRARY_PATH in the log. There is a test -f /path/to/xpcshell, and then the error.
Flags: needinfo?(mh+mozilla)
Yep because all xpcshell invocations are well hidden in the Makefile (using $(shell)) and as a result we don't see them in the output. I agree that the builds on B2K Desktop look good now. Is it possible that the image builds machine actually miss GTK3 ? I don't see the same commands about "tooltool" in their logs. See http://ftp.mozilla.org/pub/mozilla.org/b2g/tinderbox-builds/b2g-inbound-emulator/1440641647/b2g_b2g-inbound_emulator_dep-bm72-build1-build129.txt.gz (we can see this one ^ installs gtk2) See https://s3-us-west-2.amazonaws.com/taskcluster-public-artifacts/cNbzvtQnR6avb8mxqilRYA/0/public/logs/live_backing.log (I don't see any tooltool invocaton on this one). So I'd say _these_ build environments don't have GTK3, and that Ricky patch is OK.
Both logs in comment 41 have tooltool running and pulling/installing gtk3.tar.xz.
I checked the log with Ricky and we found the LD_LIBRARY_PATH is set on the commend-line itself when calling |./build.sh|, not exported to the shell. We would need to carry that from gaia/Android.mk and Ricky is doing exactly that right now.
The way B2G build system and Gaia build script are called is very confusing, I hope we could improve that *someday*.
Mike, logs in comment 41 are not the ones failing with the current patch from Ricky. Logs in comment 41 show the effect from his patch on the same build -- that works now. (I agree it was not the best to show the current situation)
Here is what we should do per IRC conversation with Julien: 1. On taskcluster VMs like [1] we have gtk3 installed, but Gaia have failed to consume LD_LIBRARY_PATH from B2G build system. Ricky need to produce a patch to do that on bug 1146713. 2. On ICS Emulator old buildbot VMs we have only gtk2 installed via apt-get [2]. We need releng to install gtk3 on these machine too. [1] https://s3-us-west-2.amazonaws.com/taskcluster-public-artifacts/B5lGXwVXQ5OW9gatMw0LZA/0/public/logs/live_backing.log [2] http://ftp.mozilla.org/pub/mozilla.org/b2g/tinderbox-builds/b2g-inbound-emulator/1440641647/b2g_b2g-inbound_emulator_dep-bm72-build1-build129.txt.gz Switching this bug over to releng again.
Assignee: rchien → nobody
Status: ASSIGNED → NEW
Component: General → General Automation
Product: Firefox OS → Release Engineering
QA Contact: catlee
(In reply to Tim Guan-tin Chien [:timdream] (slow response; please ni? to queue) from comment #48) > Here is what we should do per IRC conversation with Julien: > > 1. On taskcluster VMs like [1] we have gtk3 installed, but Gaia have failed > to consume LD_LIBRARY_PATH from B2G build system. Ricky need to produce a > patch to do that on bug 1146713. If gtk3 is installed at the OS level, then LD_LIBRARY_PATH is not needed. > 2. On ICS Emulator old buildbot VMs we have only gtk2 installed via apt-get > [2]. We need releng to install gtk3 on these machine too. Buildbot slaves use a Centos 6 environment to build. There are no gtk3 packages for that, and that's why we have a tooltool package in the first place.
(In reply to Mike Hommey [:glandium] from comment #49) > Buildbot slaves use a Centos 6 environment to build. There are no gtk3 > packages for that, and that's why we have a tooltool package in the first > place. And that's why you need LD_LIBRARY_PATH to be set with the gtk3 path from the tooltool unpack.
(In reply to Mike Hommey [:glandium] from comment #49) > (In reply to Tim Guan-tin Chien [:timdream] (slow response; please ni? to > queue) from comment #48) > > Here is what we should do per IRC conversation with Julien: > > > > 1. On taskcluster VMs like [1] we have gtk3 installed, but Gaia have failed > > to consume LD_LIBRARY_PATH from B2G build system. Ricky need to produce a > > patch to do that on bug 1146713. > > If gtk3 is installed at the OS level, then LD_LIBRARY_PATH is not needed. > Just to reaffirm, gtk3 is not installed at the OS level in either TC nor builtbots; it's only available from tooltool.
Summary: b2g build system's invocation of xpcshell fails to find gtk libs on build machines → buildbot VMs need gtk3
Summary: buildbot VMs need gtk3 → Update the old emulator tooltool configs so it would install gtk3
Attachment #8653367 - Flags: review?(mh+mozilla)
Push to try: https://treeherder.mozilla.org/#/jobs?repo=try&revision=503e0fa6c835 and I saw gtk3 appeared on B2G ICS Emulator from above link.
glandium answered the releng needs with https://bugzilla.mozilla.org/show_bug.cgi?id=1196595#c49 and c#50 --> not a blocker
Severity: blocker → normal
Attachment #8653367 - Attachment is patch: true
Comment on attachment 8653367 [details] [diff] [review] Add gtk3.tar.xz in emulator Review of attachment 8653367 [details] [diff] [review]: ----------------------------------------------------------------- ::: b2g/config/emulator/releng-emulator.tt @@ +10,5 @@ > +"size": 12057960, > +"digest": "6105d6432943141cffb40020dc5ba3a793650bdeb3af9bd5e56d3796c5f03df9962a73e521646cd71fbfb5e266c1e74716ad722fb6055589dfb7d35175bca89e", > +"algorithm": "sha512", > +"filename": "gtk3.tar.xz", > +"setup": "setup.sh", You can remove the setup line from all these. That's not relevant for the emulator builds (and currently doesn't do anything anyways).
Attachment #8653367 - Flags: review?(mh+mozilla) → review+
Attachment #8653367 - Attachment is obsolete: true
Attachment #8653931 - Flags: review+
Attachment #8653931 - Flags: checked-in?
Assignee: nobody → rchien
Status: NEW → ASSIGNED
Attachment #8653931 - Flags: checked-in?
Ryan, could you help me check-in that patch? thanks
Flags: needinfo?(ryanvm)
Attachment #8653931 - Attachment is patch: true
Flags: needinfo?(ryanvm)
Please fix your hg config so that patches are generated with all of the necessary commit information.
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Component: General Automation → General
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: