Closed Bug 638349 Opened 13 years ago Closed 13 years ago

nanojit tinderbox having trouble with ARM machines

Categories

(Release Engineering :: General, defect, P2)

ARM
Linux
defect

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: n.nethercote, Assigned: coop)

Details

Attachments

(1 file)

Several recent patch landings have failed on ARM, looks like some scratchbox problems?  Eg. see here:

- http://tinderbox.mozilla.org/showlog.cgi?log=Nanojit/1299123746.1299123765.20419.gz
- http://tinderbox.mozilla.org/showlog.cgi?log=Nanojit/1299127340.1299127372.3649.gz

The most recent landing also had this problem on Windows:

- http://tinderbox.mozilla.org/showlog.cgi?log=Nanojit/1299127340.1299127350.3567.gz

"no space left on device".  Not sure if that'll clear itself or not.

Thanks.
The windows problem looks like a dupe of 639840 (now duped to 629377).  So let's focus this bug on the first two failures (scratchbox), which are not windows-related.
Summary: nanojit tinderbox having trouble with ARM and Windows machines → nanojit tinderbox having trouble with ARM machines
From the records available to me (going back to beginning of February), it looks like nanojit has never built successfully on ARM. Has it ever worked?

Digging into the slaves involved, I see two classes of failures:

* moz2-linux-slave22 - has no scratchbox mount at all (!)

* the rest (moz2-linux-slave[12,31,34,45]) - actual build failures of the type:

/scratchbox/tools/bin/exec.sh: line 1: cd: /builds/slave/nanojit-arm/build: No such file or directory
/scratchbox/tools/bin/exec.sh: line 3: /home/cltbld/scripts/scripts/nanojit/nanojit.sh: No such file or directory
/scratchbox/tools/bin/exec.sh: line 3: exec: /home/cltbld/scripts/scripts/nanojit/nanojit.sh: cannot execute: No such file or directory

I'm attempting to update moz2-linux-slave22 from puppet right now to make sure scratchbox is installed, otherwise I'll yank it from the pool.
Assignee: nobody → coop
Status: NEW → ASSIGNED
Priority: -- → P2
Hardware: x86_64 → ARM
(In reply to comment #2)
> From the records available to me (going back to beginning of February), it
> looks like nanojit has never built successfully on ARM. Has it ever worked?

Yes, it used to work.  It's been broken for a while, though.  I don't know exactly when it broke but before February sounds right.
(In reply to comment #2)
> I'm attempting to update moz2-linux-slave22 from puppet right now to make sure
> scratchbox is installed, otherwise I'll yank it from the pool.

This is done now.
From the output, it looks like it's trying to access the scripts via the home dir rather than the cloned copy. Providing the full path to the scripts dir should fix this. Running a quick test here to confirm.
Well, it starts building, but errors out shortly after configure:

c++ -DHAVE_CONFIG_H -DNANOJIT_CENTRAL -I. -I../nanojit-src -I../nanojit-src/nanojit -g  -Wall -Wno-invalid-offsetof -Wno-variadic-macros -Werror -c ../nanojit-src/lirasm/lirasm.cpp
../nanojit-src/lirasm/lirasm.cpp: In constructor 'FragmentAssembler::FragmentAssembler(Lirasm&, const std::string&, bool)':
../nanojit-src/lirasm/lirasm.cpp:572: error: 'mConfig' was not declared in this scope
../nanojit-src/lirasm/lirasm.cpp: In member function 'void FragmentAssembler::assembleRandomFragment(int)':
../nanojit-src/lirasm/lirasm.cpp:1513: error: 'mConfig' was not declared in this scope
../nanojit-src/lirasm/lirasm.cpp:1529: error: 'avmplus::AvmCore' has not been declared
make: *** [lirasm.o] Error 1

Is this a valid failure, i.e. should I roll a buildbot patch to get us building again so you guys can start fixing code issues? Or is there still something further wrong on our end?
Yeah, those are valid failures (that's what happens when we don't have testing coverage for a few weeks!)  Please roll the necessary patch!  Thanks.
Because we're running under scratchbox, we need the full path to the script to be run. 

Also, the build/ subdir doesn't exist and isn't created by the script, so just do our building in the builder dir. The script *does* create it's own subdirs, so this is fine.
Attachment #518616 - Flags: review?(nrthomas)
Attachment #518616 - Flags: review?(nrthomas) → review?(jhford)
Comment on attachment 518616 [details] [diff] [review]
Fix how we call the nanojit build script on ARM

In the non-windows, and non-arm case, there isn't going to be a nanojit_script variable defined and the ScriptFactory is going to barf.  Putting |nanojit_script = 'scripts/nanojit/nanojit.sh'| before the if: or putting an assignment in else: would fix this.  r+ with this fixed.

> def generateNanojitObjects(config, SLAVES):
>     builders = []
>     for platform in config['platforms']:
>         if 'win' in platform:
>             slaves = SLAVES[platform]
>             interpreter = 'bash'
>+            nanojit_script = 'scripts/nanojit/nanojit.sh'
>h         elif 'arm' in platform:
>             slaves = SLAVES['linux']
>-            interpreter = ['/scratchbox/moz_scratchbox', '-d', '/builds/slave/nanojit-arm/build']
>+            interpreter = ['/scratchbox/moz_scratchbox', '-d', '/builds/slave/nanojit-arm']
>+            nanojit_script = '/builds/slave/nanojit-arm/scripts/nanojit/nanojit.sh'
>         else:
>             slaves = SLAVES[platform]
>             interpreter = None
              nanojit_script = 'scripts/nanojit/nanojit.sh'
> 
>         f = ScriptFactory(
>                 config['scripts_repo'],
>-                'scripts/nanojit/nanojit.sh',
>+                nanojit_script,
>                 interpreter=interpreter,
>                 log_eval_func=rc_eval_func({1: WARNINGS}),
>
Attachment #518616 - Flags: review?(jhford) → review+
Comment on attachment 518616 [details] [diff] [review]
Fix how we call the nanojit build script on ARM

http://hg.mozilla.org/build/buildbotcustom/rev/1467834dce75

Armen is going to reconfig the masters this afternoon. That should pick up this patch.
Attachment #518616 - Flags: checked-in+
After a quick bustage fix, we're building here again:

http://tinderbox.mozilla.org/showlog.cgi?log=Nanojit/1299882773.1299882824.23706.gz
Status: ASSIGNED → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Looks good, thanks guys!
Do we still need arm support?
Spidermonkey arm and nanojit arm seem to be the last two things which are keeping scratchbox alive on our linux slaves (bug 548551)
Bug 698201 will remove Nanojit from Mozilla's code.  That leaves Adobe still using it.  Ed, does Adobe need the Nanojit tinderboxes?
Nope, we've got our own automation for the stuff we need; all clear.
Product: mozilla.org → Release Engineering
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: