** Description changed:

- On a fresh install of Lubuntu 12.04 Beta on a HP Compaq Evo N610c,
- mplayer crashes with an illegal instruction. It can be reproduced with
- the command line mplayer or GNOME MPlayer (GNOME MPlayer itself does not
- crash, but goes to "Stopped" state). The reason for the crash is that a
- fisttpll instruction, a PNI (Prescott New Instructions), which requires
- SSE3, is executed, but my CPU (Pentium 4 Mobile) does not support SSE3
- (it CPU flags are fpu vme de pse tsc msr pae mce cx8 mtrr pge mca cmov
- pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe up pebs bts
- cid xtpr). Maybe this bug is related to
- https://bugs.launchpad.net/ubuntu/+source/mplayer2/+bug/858226, see
- there how to set the compiler flags to avoid issueing SSE2 instructions.
- Here are two GDB sessions which show the problem, the video file does
- not matter, it happens with all videos I tested.
+ SRU explanation:
+ [Impact] 
+ This bug makes mplayer2 (and gnome-mplayer which use it by default) unusable 
with some CPU (some Penthium3 and 4). As it's the video player by default on 
Lubuntu, it affects a large number of users (see also all the duplicate bugs : 
#934774, #928793, #858226, #974774, #987734, #1014279).
+ The patch only changes the way compiler flags are used, the same way it's 
used on mplayer source package.
  
- $ gdb --args mplayer -noautosub InFlames_Touch_Of_Red.mpeg 
+ [Test Case]
+ Open mplayer2 on an affected system.
+ See the crash.
+ 
+ [Regression Potential] 
+ * It may affect performance on all architectures, since we are touching the 
compiler flags and optimization.
+ * It may also affect the non affected architectures for the same reasons 
above.
+ * However, since the same mechanism is used on mplayer source package without 
any problem reported, it should be quite safe.
+ 
+ Original bug report:
+ On a fresh install of Lubuntu 12.04 Beta on a HP Compaq Evo N610c, mplayer 
crashes with an illegal instruction. It can be reproduced with the command line 
mplayer or GNOME MPlayer (GNOME MPlayer itself does not crash, but goes to 
"Stopped" state). The reason for the crash is that a fisttpll instruction, a 
PNI (Prescott New Instructions), which requires SSE3, is executed, but my CPU 
(Pentium 4 Mobile) does not support SSE3 (it CPU flags are fpu vme de pse tsc 
msr pae mce cx8 mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 
ss ht tm pbe up pebs bts cid xtpr). Maybe this bug is related to 
https://bugs.launchpad.net/ubuntu/+source/mplayer2/+bug/858226, see there how 
to set the compiler flags to avoid issueing SSE2 instructions. Here are two GDB 
sessions which show the problem, the video file does not matter, it happens 
with all videos I tested.
+ 
+ $ gdb --args mplayer -noautosub InFlames_Touch_Of_Red.mpeg
  GNU gdb (Ubuntu/Linaro 7.4-2012.02-0ubuntu2) 7.4-2012.02
  (gdb) r
  Starting program: /usr/bin/mplayer -noautosub InFlames_Touch_Of_Red.mpeg
  [Thread debugging using libthread_db enabled]
  Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
  
  Program received signal SIGILL, Illegal instruction.
- 0x080dd52e in parse_flag (opt=0x824743c, name=..., param=..., 
-     ambiguous_param=true, dst=0x83ee048) at m_option.c:118
+ 0x080dd52e in parse_flag (opt=0x824743c, name=..., param=...,
+     ambiguous_param=true, dst=0x83ee048) at m_option.c:118
  118   m_option.c: No such file or directory.
  (gdb) bt
- #0  0x080dd52e in parse_flag (opt=0x824743c, name=..., param=..., 
-     ambiguous_param=true, dst=0x83ee048) at m_option.c:118
- #1  0x080d95c4 in m_option_parse (dst=<optimized out>, ambiguous_param=true, 
-     param=..., name=..., opt=<optimized out>) at m_option.h:450
- #2  m_config_parse_option (config=0x83d51e0, name=..., param=..., 
-     ambiguous_param=true, set=true) at m_config.c:506
- #3  0x0809c11b in m_config_parse_mp_command_line (config=0x83d51e0, argc=3, 
-     argv=0xbffff424) at parser-mpcmd.c:217
+ #0  0x080dd52e in parse_flag (opt=0x824743c, name=..., param=...,
+     ambiguous_param=true, dst=0x83ee048) at m_option.c:118
+ #1  0x080d95c4 in m_option_parse (dst=<optimized out>, ambiguous_param=true,
+     param=..., name=..., opt=<optimized out>) at m_option.h:450
+ #2  m_config_parse_option (config=0x83d51e0, name=..., param=...,
+     ambiguous_param=true, set=true) at m_config.c:506
+ #3  0x0809c11b in m_config_parse_mp_command_line (config=0x83d51e0, argc=3,
+     argv=0xbffff424) at parser-mpcmd.c:217
  #4  0x08086df4 in main (argc=3, argv=0xbffff424) at mplayer.c:4023
  (gdb) disas
  (..)
  => 0x080dd52e <+510>: fisttpl (%edx)
  
- $ gdb --args mplayer InFlames_Touch_Of_Red.mpeg 
+ $ gdb --args mplayer InFlames_Touch_Of_Red.mpeg
  (gdb) r
  Starting program: /usr/bin/mplayer InFlames_Touch_Of_Red.mpeg
  [Thread debugging using libthread_db enabled]
  Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
  MPlayer2 UNKNOWN (C) 2000-2011 MPlayer Team
  mplayer: could not connect to socket
  mplayer: No such file or directory
  Failed to open LIRC support. You will not be able to use your remote control.
  
  Playing InFlames_Touch_Of_Red.mpeg.
  Detected file format: MPEG-PS format (libavformat)
  [mpeg @ 0x1a27d80]max_analyze_duration reached
  [lavf] stream 0: video (mpeg1video), -vid 0
  [lavf] stream 1: audio (mp2), -aid 0
  VIDEO:  [mpg1]  352x288  0bpp  25.000 fps  1150.0 kbps (140.4 kbyte/s)
  Load subtitles in .
  
  Program received signal SIGILL, Illegal instruction.
  0x081586b3 in demux_lavf_fill_buffer (demux=0x841a940, dsds=0x8416328)
-     at libmpdemux/demux_lavf.c:790
+     at libmpdemux/demux_lavf.c:790
  790   libmpdemux/demux_lavf.c: No such file or directory.
  (gdb) bt
  #0  0x081586b3 in demux_lavf_fill_buffer (demux=0x841a940, dsds=0x8416328)
-     at libmpdemux/demux_lavf.c:790
+     at libmpdemux/demux_lavf.c:790
  #1  0x08146932 in demux_fill_buffer (ds=0x8416328, demux=0x841a940)
-     at libmpdemux/demuxer.c:621
+     at libmpdemux/demuxer.c:621
  #2  ds_get_next_pts (ds=0x8416328) at libmpdemux/demuxer.c:863
- #3  0x08088711 in print_file_properties (filename=<optimized out>, 
-     mpctx=0x83d41e8) at mplayer.c:538
+ #3  0x08088711 in print_file_properties (filename=<optimized out>,
+     mpctx=0x83d41e8) at mplayer.c:538
  #4  main (argc=2, argv=0xbffff434) at mplayer.c:4866
  (gdb) disas
  (..)
  => 0x081586b3 <+499>: fisttpll 0x8018(%esi)
  
  ProblemType: Bug
  DistroRelease: Ubuntu 12.04
  Package: mplayer2 2.0-426-gc32b3ed-2
  ProcVersionSignature: Ubuntu 3.2.0-21.34-generic 3.2.13
  Uname: Linux 3.2.0-21-generic i686
  ApportVersion: 2.0-0ubuntu4
  Architecture: i386
  Date: Thu Apr  5 12:16:34 2012
  InstallationMedia: Lubuntu 12.04 "Precise Pangolin" - Beta i386 (20120328)
  ProcEnviron:
-  PATH=(custom, no user)
-  LANG=en_US.UTF-8
-  SHELL=/bin/bash
+  PATH=(custom, no user)
+  LANG=en_US.UTF-8
+  SHELL=/bin/bash
  SourcePackage: mplayer2
  UpgradeStatus: No upgrade log present (probably fresh install)

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/974125

Title:
  mplayer crashes with illegal instruction

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/mplayer2/+bug/974125/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to