Thanks for the explanation of the bug and for patching the code.

-Gabriel

On Tue, Oct 14, 2014 at 6:44 PM, Vyacheslav Egorov <[email protected]>
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 <[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 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
> [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