[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: VLC on G5 crash : illegal instruction



Hi,

On 3/8/21 9:49 AM, John Paul Adrian Glaubitz wrote:
We certainly shouldn't disable the whole JIT over a single instruction but rather
check whether this instruction can be guarded on older POWER systems.

But we need to find out first which instruction triggers the SIGILL.

Indeed, it crashes inside JIT, here the stacktrace:

#0  0x00007fffe9c5fa30 in ?? ()
#1  0x00007ffff02c406c in jit_machine_stack_exec (arguments=arguments@entry=0x7fffeb9a51d8,
    executable_func=0x7fffe9c5fd00) at src/pcre2_jit_match.c:57
#2  0x00007ffff02f3a38 in pcre2_jit_match_16 (code=0x7fffec4392a0, subject=0x100165218,     length=<optimized out>, start_offset=<optimized out>, options=<optimized out>,     match_data=0x7fffec3cd180, mcontext=<optimized out>) at src/pcre2_jit_match.c:168 #3  0x00007ffff02f52b8 in pcre2_match_16 (code=0x7fffec4392a0, subject=0x100165218, length=37,     start_offset=0, options=0, match_data=0x7fffec3cd180, mcontext=0x1001782c0) at src/pcre2_match.c:6345 #4  0x00007ffff0ad0240 in ?? () from /usr/lib/powerpc64-linux-gnu/libQt5Core.so.5 #5  0x00007ffff0ad5a0c in ?? () from /usr/lib/powerpc64-linux-gnu/libQt5Core.so.5 #6  0x00007ffff0ad5ffc in .QRegularExpression::match(QString const&, int, QRegularExpression::MatchType, QFlags<QRegularExpression::MatchOption>) const () from /usr/lib/powerpc64-linux-gnu/libQt5Core.so.5 #7  0x00007ffff1ee41fc in ?? () from /usr/lib/powerpc64-linux-gnu/libQt5Widgets.so.5 #8  0x00007ffff1ee4fec in ?? () from /usr/lib/powerpc64-linux-gnu/libQt5Widgets.so.5 #9  0x00007ffff1eeb6cc in ?? () from /usr/lib/powerpc64-linux-gnu/libQt5Widgets.so.5
#10 0x00007ffff0ce1618 in .QMetaCallEvent::placeMetaCall(QObject*) ()
   from /usr/lib/powerpc64-linux-gnu/libQt5Core.so.5
#11 0x00007ffff0ce7eec in .QObject::event(QEvent*) () from /usr/lib/powerpc64-linux-gnu/libQt5Core.so.5
#12 0x00007ffff1eed8d8 in .QFileSystemModel::event(QEvent*) ()
   from /usr/lib/powerpc64-linux-gnu/libQt5Widgets.so.5
#13 0x00007ffff1beb5f4 in .QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib/powerpc64-linux-gnu/libQt5Widgets.so.5
#14 0x00007ffff1bf5c24 in .QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/powerpc64-linux-gnu/libQt5Widgets.so.5
#15 0x00007ffff0ca26bc in .QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
   from /usr/lib/powerpc64-linux-gnu/libQt5Core.so.5
#16 0x00007ffff0ca2a54 in .QCoreApplication::sendEvent(QObject*, QEvent*) ()
   from /usr/lib/powerpc64-linux-gnu/libQt5Core.so.5
#17 0x00007ffff0ca6e64 in .QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) ()
   from /usr/lib/powerpc64-linux-gnu/libQt5Core.so.5

(gdb) p local_stack
$1 = {top = 0x7fffeb9a5158 "", end = 0x7fffeb9a5158 "", start = 0x7fffeb99d158 "",
  min_start = 0x7fffeb99d158 ""}

(gdb) p *arguments
$3 = {stack = 0x7fffeb99d138, str = 0x100165218, begin = 0x100165218, end = 0x100165262,   match_data = 0x7fffec3cd180, startchar_ptr = 0x100165218, mark_ptr = 0x0, callout = 0x0,   callout_data = 0x0, offset_limit = 18446744073709551615, limit_match = 10000000, oveccount = 2,
  options =


(gdb) p arguments->str
$4 = (PCRE2_SPTR16) 0x100165218
(gdb) p arguments->startchar_ptr
$5 = (PCRE2_SPTR16) 0x100165218
(gdb) p arguments->stack
$6 = (struct sljit_stack *) 0x7fffeb99d138
(gdb) p arguments->begin
$7 = (PCRE2_SPTR16) 0x100165218
(gdb)

Now... I am not much wiser, I hope you will be!


Riccardo


PS: there is risk that due to stronger lock-down I might not access this machine for a fortnight or more.


Reply to: