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 <[email protected]>
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
> [email protected]
> 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 [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
-- 
v8-users mailing list
[email protected]
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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to