Closed Bug 1542980 Opened 6 months ago Closed 6 months ago

Build failure with deterministic js shells

Categories

(Core :: JavaScript Engine, defect, blocker)

defect
Not set
blocker

Tracking

()

RESOLVED FIXED
mozilla68
Tracking Status
firefox68 --- fixed

People

(Reporter: gkw, Assigned: allstars.chh)

References

(Regression)

Details

Attachments

(2 files)

This command seems to fail for me:

AR=ar sh <some path>/js/src/configure --enable-debug --enable-more-deterministic --with-ccache --enable-gczeal --enable-debug-symbols --disable-tests --disable-cranelift

See the build failure stack.

autobisectjs shows this is probably related to the following changeset:

The first bad revision is:
changeset: https://hg.mozilla.org/mozilla-central/rev/427b854cdb1c
parent: 1c0ed0456994
user: Yoshi Cheng-Hao Huang
date: Wed Mar 13 13:33:15 2019 +0100
summary: Bug 1534967 - Part 1: use RootedIdVector. r=jonco

Yoshi, is bug 1534967 a likely regressor?

$ clang --version
clang version 6.0.1-svn334776-1exp120190309042703.125 (branches/release_60)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin

It also fails on m-c tip rev 9eb55c9bf557, tested on Ubuntu Linux 18.04. I think I could also reproduce this on macOS.

Flags: needinfo?(allstars.chh)
In file included from /home/ubuntu/shell-cache/js-dbg-64-dm-linux-x86_64-427b854cdb1c/objdir-js/js/src/Unified_cpp_js_src15.cpp:47:
/home/ubuntu/trees/mozilla-central/js/src/vm/Iteration.cpp:527:20: error: member reference type 'const JS::StackGCVector<JS::PropertyKey, js::TempAllocPolicy>' is not a pointer
  jsid* ids = props->begin();
              ~~~~~^
/home/ubuntu/shell-cache/js-dbg-64-dm-linux-x86_64-427b854cdb1c/objdir-js/dist/include/js/RootingAPI.h:662:3: note: '->' applied to return value of the operator->() declared here
  DECLARE_POINTER_CONSTREF_OPS(T);
  ^
/home/ubuntu/shell-cache/js-dbg-64-dm-linux-x86_64-427b854cdb1c/objdir-js/dist/include/js/RootingAPI.h:171:3: note: expanded from macro 'DECLARE_POINTER_CONSTREF_OPS'
  const T& operator->() const { return get(); }
  ^
In file included from /home/ubuntu/shell-cache/js-dbg-64-dm-linux-x86_64-427b854cdb1c/objdir-js/js/src/Unified_cpp_js_src15.cpp:47:
/home/ubuntu/trees/mozilla-central/js/src/vm/Iteration.cpp:528:19: error: member reference type 'const JS::StackGCVector<JS::PropertyKey, js::TempAllocPolicy>' is not a pointer
  size_t n = props->length();
             ~~~~~^
/home/ubuntu/shell-cache/js-dbg-64-dm-linux-x86_64-427b854cdb1c/objdir-js/dist/include/js/RootingAPI.h:662:3: note: '->' applied to return value of the operator->() declared here
  DECLARE_POINTER_CONSTREF_OPS(T);
  ^
/home/ubuntu/shell-cache/js-dbg-64-dm-linux-x86_64-427b854cdb1c/objdir-js/dist/include/js/RootingAPI.h:171:3: note: expanded from macro 'DECLARE_POINTER_CONSTREF_OPS'
  const T& operator->() const { return get(); }
  ^
2 errors generated.
/home/ubuntu/trees/mozilla-central/config/rules.mk:805: recipe for target 'Unified_cpp_js_src15.o' failed

Specifically this portion?

Assignee: nobody → allstars.chh
Flags: needinfo?(allstars.chh)

This is from Bug 1534967, and the code is wrapped with compiler option
JS_MORE_DETERMINISTIC, which is only enabled through
'--enable-more-deterministic' in shell configure.

Status: NEW → ASSIGNED
Summary: Build failure with js shells → Build failure with deterministic js shells

Thanks for looking at this quickly, we use deterministic builds often for fuzzing.

Jon, review-ping please?

Flags: needinfo?(jcoppeard)

Done, sorry for the delay.

Flags: needinfo?(jcoppeard)
Pushed by allstars.chh@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/4c4e45853808
fixed js shell compilation error. r=jonco
Status: ASSIGNED → RESOLVED
Closed: 6 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla68
Duplicate of this bug: 1542951
You need to log in before you can comment on or make changes to this bug.