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.
