Bug#842513: vlc: immediate crash on launch on powerpc

Robert Ou rqou at robertou.com
Sat Oct 29 23:16:02 UTC 2016

On Sat, Oct 29, 2016 at 3:43 PM, James Cowgill <jcowgill at debian.org> wrote:
> Control: tags -1 help
> Control: severity -1 grave
> Hi,
> On 29/10/16 23:00, Robert Ou wrote:
>> Package: src:vlc
>> Version: 2.2.4-7
>> Severity: normal
>> Dear Maintainer,
>> I decided I wanted to test the performance of Debian PowerPC on my
>> ancient iMac, and I discovered that vlc will immediately crash with an
>> illegal instruction right after showing the "Privacy and Network Access
>> Policy" window and before showing the main window. The crashes look like
>> the following:
>> [ 1560.952016] vlc[997]: unhandled signal 4 at 0ea48f58 nip 0ea48f58 lr 0ea48f4c code 30001
> As powerpc is a release architecture, this bug is RC.
> I tried running vlc on partch. It managed to get further, but then
> segfaulted inside QT so it's probably a separate issue. I also had to
> run it in xvfb so it probably gets different results.
> Specifically what powerpc hardware do you have? Could you run vlc within
> gdb to determine which instruction it SIGILLs on (try 'layout asm')?

I was testing on a first-generation iMac with a 333 MHz PowerPC 750
(G3). Running vlc under gdb shows that the crash occurs in
libqt4_plugin.so in QRect::adjusted. The crash occurs on a "lvx
v0,r10,r5" opcode, which is an Altivec opcode. The G3 however does not
support Altivec. Here is a backtrace and some more debug information:

0x0ea11f58 in QRect::adjusted (yp2=-5, xp2=-5, yp1=4, xp1=4,
this=0xaf3fd6f0) at
382    /usr/include/powerpc-linux-gnu/qt5/QtCore/qrect.h: No such file
or directory.
(gdb) where
#0  0x0ea11f58 in QRect::adjusted (yp2=-5, xp2=-5, yp1=4, xp1=4,
this=0xaf3fd6f0) at
#1  AbstractController::telexFrame (this=this at entry=0xae05c8c0) at
#2  0x0ea13c1c in AbstractController::createWidget
(this=this at entry=0xae05c8c0, button=button at entry=TELETEXT_BUTTONS,
options=0) at components/controller.cpp:376
#3  0x0ea16dd0 in AbstractController::createAndAddWidget
(this=this at entry=0xae05c8c0,
controlLayout_=controlLayout_ at entry=0xae05c930,
i_index=i_index at entry=-1, i_type=i_type at entry=TELETEXT_BUTTONS,
    i_option=<optimized out>) at components/controller.cpp:181
#4  0x0ea17920 in AbstractController::parseAndCreate
(newControlLayout=0xae05c930, config=..., this=0xae05c8c0) at
#5  ControlsWidget::ControlsWidget (this=0xae05c8c0, _p_i=<optimized
out>, b_advControls=<optimized out>, _parent=<optimized out>) at
#6  0x0e934110 in MainInterface::createMainWidget
(this=this at entry=0xaf240990, creationSettings=0xaf2306a0) at
#7  0x0e934b0c in MainInterface::MainInterface (this=0xaf240990,
_p_intf=<optimized out>) at main_interface.cpp:166
#8  0x0e91b8a4 in Thread (obj=0x100c3d30) at qt4.cpp:532
#9  0x0ff73500 in start_thread (arg=0xaf3fe380) at pthread_create.c:335
#10 0x0fe8a9ac in clone () at
(gdb) x/16i $pc-32
   0xea11f38 <AbstractController::telexFrame()+2328>:    mr      r3,r14
   0xea11f3c <AbstractController::telexFrame()+2332>:    bl      0xead3400
   0xea11f40 <AbstractController::telexFrame()+2336>:    mr      r4,r23
   0xea11f44 <AbstractController::telexFrame()+2340>:    addi    r3,r1,320
   0xea11f48 <AbstractController::telexFrame()+2344>:    bl      0xead3860
   0xea11f4c <AbstractController::telexFrame()+2348>:    lwz     r4,-32472(r30)
   0xea11f50 <AbstractController::telexFrame()+2352>:    addi    r10,r1,464
   0xea11f54 <AbstractController::telexFrame()+2356>:    li      r5,-144
=> 0xea11f58 <AbstractController::telexFrame()+2360>:    lvx     v0,r10,r5
   0xea11f5c <AbstractController::telexFrame()+2364>:    li      r14,-128
   0xea11f60 <AbstractController::telexFrame()+2368>:    mr      r3,r21
   0xea11f64 <AbstractController::telexFrame()+2372>:    lvx     v1,0,r4
   0xea11f68 <AbstractController::telexFrame()+2376>:    mr      r4,r26
   0xea11f6c <AbstractController::telexFrame()+2380>:    vadduwm v0,v0,v1
   0xea11f70 <AbstractController::telexFrame()+2384>:    stvx    v0,r10,r14
   0xea11f74 <AbstractController::telexFrame()+2388>:    bl      0xeac09b0
(gdb) info reg
r0             0xea11f40    245440320
r1             0xaf3fd5b0    2940196272
r2             0xaf405850    2940229712
r3             0xaf3fd6f0    2940196592
r4             0xeb0b790    246462352
r5             0xffffff70    4294967152
r6             0xa0d2763c    2698147388
r7             0x0    0
r8             0x0    0
r9             0x19    25
r10            0xaf3fd780    2940196736
r11            0xdd4c9f0    232049136
r12            0xfe1eac4    266463940
r13            0x100280a0    268599456
r14            0xaf3fd658    2940196440
r15            0xae065950    2919651664
r16            0xaf3fd75c    2940196700
r17            0xae06d610    2919683600
r18            0xae071b60    2919701344
r19            0xaf3fd648    2940196424
r20            0xae054690    2919581328
r21            0xaf3fd654    2940196436
r22            0xae0666e0    2919655136
r23            0xaf3fd6e0    2940196576
r24            0xaf3fd76c    2940196716
r25            0xae05c8c0    2919614656
r26            0xaf3fd700    2940196608
r27            0xaf3fd718    2940196632
r28            0xebc2b3c    247212860
r29            0xebc2a68    247212648
r30            0xebc7064    247230564
r31            0xeb09588    246453640
pc             0xea11f58    0xea11f58 <AbstractController::telexFrame()+2360>
msr            0x8d932    579890
cr             0x28008848    671123528
lr             0xea11f4c    0xea11f4c <AbstractController::telexFrame()+2348>
ctr            0xdd4c9f0    232049136
xer            0x20000000    536870912
orig_r3        0xe    14
trap           0x700    1792

More information about the pkg-multimedia-maintainers mailing list