Thanks for the explanation of the bug and for patching the code.
-Gabriel
On Tue, Oct 14, 2014 at 6:44 PM, Vyacheslav Egorov vego...@chromium.org
wrote:
Hi Gabriel,
I took a quick look into this and it's actually an issue in my code: we
are trying to lookup SharedFunctionInfo by inlining_id in the list that is
actually indexed by something else entirely (unique id of inlined
function). So we if we inline the same function twice we end up reading out
of bounds (if you run with --enable-slow-asserts you will get bounds check
error). I will fix this.
Good news: this does *not* affect IRHydra, because IRHydra does not rely
on linearized source positions encoded in the code, it uses whatever is
encoded in the hydrogen.cfg file, and those are correct.
Vyacheslav Egorov
On Tue, Oct 14, 2014 at 9:46 PM, Gabriel Southern souther...@gmail.com
wrote:
I wanted to try IRHydra2 (http://mrale.ph/irhydra/2/) with the Octane
benchmarks. When I use the x64.debug version of d8 with the flags listed
for IRHydra2 and run the Octane benchmarks I get a crash in the interpreter.
I tried to narrow down the problem, and it looks like
--hydrogen_track_positions is the flag that gives the problem. The stack
trace that I get when d8 crashes is:
#
# Fatal error in ../src/assembler.cc, line 1551
# CHECK(pos = 0) failed
#
C stack trace ===
1: V8_Fatal
2: v8::internal::PositionsRecorder::RecordPosition(int)
3: v8::internal::LCodeGen::RecordAndWritePosition(int)
4: v8::internal::LCodeGenBase::GenerateBody()
5: v8::internal::LCodeGen::GenerateCode()
6: v8::internal::LChunk::Codegen()
7: v8::internal::OptimizedCompileJob::GenerateCode()
8:
v8::internal::Compiler::GetConcurrentlyOptimizedCode(v8::internal::OptimizedCompileJob*)
9: v8::internal::OptimizingCompilerThread::InstallOptimizedFunctions()
10: ??
11: v8::internal::Runtime_TryInstallOptimizedCode(int,
v8::internal::Object**, v8::internal::Isolate*)
12: ??
Looking in gdb I think the problem is that the check DCHECK(pos = 0)
in PositionsRecorder::RecordPosition(int) fails in debug mode because pos
is -842150428. Running in release mode the interpreter doesn't crash,
probably since the check is not run, but I'm wondering if the output can be
trusted to be correct.
I noticed an issue related to the --hydrogen_track_positions flag had
been opened in Feb, 2014:
https://code.google.com/p/v8/issues/detail?id=3184
I also have experienced this problem when compiling either the master or
the bleeding_edge branch (from the git repo).
I'm using Ubuntu 12.04 with Linux 3.5 and gcc 4.7.3. I've tried with
both x64 and ia32 and seen the crash in both cases. Any suggestions for
debugging the problem are appreciated. I'm wondering if it's something
specific to my system, or a bug in V8. And whether it really matters for
using IRHydra2 or not.
-Gabriel
--
--
v8-users mailing list
v8-users@googlegroups.com
http://groups.google.com/group/v8-users
---
You received this message because you are subscribed to the Google Groups
v8-users group.
To unsubscribe from this group and stop receiving emails from it, send an
email to v8-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
--
v8-users mailing list
v8-users@googlegroups.com
http://groups.google.com/group/v8-users
---
You received this message because you are subscribed to a topic in the
Google Groups v8-users group.
To unsubscribe from this topic, visit
https://groups.google.com/d/topic/v8-users/CDr8QOxH_00/unsubscribe.
To unsubscribe from this group and all its topics, send an email to
v8-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
--
v8-users mailing list
v8-users@googlegroups.com
http://groups.google.com/group/v8-users
---
You received this message because you are subscribed to the Google Groups
v8-users group.
To unsubscribe from this group and stop receiving emails from it, send an email
to v8-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.