PMS not starting since 0.9.9.13. Illegal Instruction Error

Hello

 

Plex Media Server is running on my debian wheezy 32bit a couple of years now. 

I`m using the forums debian repo from Christian Svedin.

 

Since 0.9.9.13 PMS do not start anymore. A direct call of /usr/sbin/start_pms brings the error message "Illegal Instruction"

When I install the old version (0.9.9.12 or earlier) everything works fine.

 

The official ubuntu packages got the same problem. So it seems that this is not a problem of the debian repo.

 

I`m also running PMS on a debian wheezy 64bit server. Everything works fine there.

 

Any ideas why the new versions are not working anymore on my 32bit server?

 

 

uname -a: Linux server 3.2.0-4-686-pae #1 SMP Debian 3.2.60-1+deb7u3 i686 GNU/Linux

 

Thanks

Did you download the 64 bit version by accident? That is the typical cause if ‘illegal instruction’. If so, how did it install? Did you have to force (-f) it?

No. It comes as an update via apt-get upgrade. 

The same procedure as any version before.

I did not change anything.

Also a reinstall did not solve the problem.

root@server:/# file /usr/lib/plexmediaserver/Plex\ Media\ Server
/usr/lib/plexmediaserver/Plex Media Server: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, BuildID[sha1]=0x31ed9469c8df938963ee1b7fdd54bc3d533327ad, stripped
 

I suggest bypassing the repositories and grabbing the package file directly from the Plex downloads page because it seems  the repository copy is messed up somehow.

After downloading it, simply do a direct install with the traditional  sudo dpkg -i  package-filename.

Then restart it as a the service it should be.

I already tried to install the original ubuntu package from the plex download page.

Same result.

I tried to run it in gdb.

Here is the result. Maybe you can see where the problem is...

root@server:/usr/lib/plexmediaserver# /usr/lib/plexmediaserver/start.sh
GNU gdb (GDB) 7.4.1-debian
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu".
For bug reporting instructions, please see:
...
Reading symbols from /usr/lib/plexmediaserver/Plex Media Server...(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/lib/plexmediaserver/Plex Media Server
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/i686/cmov/libthread_db.so.1".

Program received signal SIGILL, Illegal instruction.
0xb66b4f6e in cv::initInterTab2D(int, bool) () from /usr/lib/plexmediaserver/libopencv_imgproc.so.2.4

Thank you for your help

Ok.. now that makes sense.   Plex requires the SSE instruction set. 

Ok. And before 0.9.9.13 it did not require the SSE Instructions?

Plex is running on an old ThinClient with AMD Geode NX 1500 CPU.

I think this CPU should support the SSE instructions.

Its only used for direct streaming without transcoding or someting else.

I believe it always has, but that may be just the 64 bit version.

Your cpu doesn't support SSE.    per:  http://en.wikipedia.org/wiki/Geode_(processor)

Yes I know it should be in the NX.. are you sure it's an NX?

I just compared the libraries from 0.9.9.12 and 0.9.9.13.

The libopencv_imgproc.so.2.4 don`t exist in 0.9.9.12.

Thats the problem I think. 

Geode NX[edit]

AMD Geode NX 1500.
NX 1250@6W: Clock speed: 667 MHz, average power consumption 6 watts, TDP 9 watts (1.0 volts core operating voltage).
NX 1500@6W: Clock speed: 1 GHz, average power consumption 6 watts, TDP 9 watts (1.1 volts core operating voltage).
NX 1750@14W: Clock speed: 1.4 GHz, average power consumption 14 watts, TDP 25 watts (1.25 volts core operating voltage)( ANXS1750FXC3M )
Features:

7th generation core (based on Mobile Athlon XP-M).
Power management: AMD PowerNow!, ACPI 1.0b and ACPI 2.0.
128 KB L1 cache.
256 KB L2 cache with hardware data prefetch
133 MHz Front Side Bus (FSB)
3DNow!, MMX and SSE instruction sets
0.13 µm (130 nm) fabrication process
Pin compatibility between all NX family processors.
OS support: Linux, Windows CE, MS Windows XP.
Compatible with Socket A motherboards

So then there must be new instructions called into play... if you get the instruction pointer when the signal hits  (trap the pid itself), you should see which instruction (using gdb) is causing it

I wonder if it's SSE2?

Sorry but today its the first time I work with gdb. So I have no clue how to do that.

If you help me with the commands I can figure it out.

I read a few articles on opencv.org and I think its SSE2 indeed.

It`s a pity but I think I need a new server...

I think so too.. but that is quite an older processor... introduced in 2004  (the geode itself was 2002).

I have solved the problem for me.

I build the opencv package without sse2 and sse3 instructions.

Then I replace the libopencv_imgproc.so.2.4 and libopencv_core.so.2.4 in /usr/lib/plexmediaserver by the self compiled versions.

Now plex is running fine.

Thank you for your help ChuckL

Hi I have similar issue

cat /proc/cpuinfo 
processor : 0
vendor_id : AuthenticAMD
cpu family : 6
model : 6
model name : AMD Athlon(tm) XP 1600+
stepping : 2
cpu MHz : 1395.004
cache size : 256 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr sse syscall mmxext 3dnowext 3dnow
bogomips : 2790.00
clflush size : 32
cache_alignment : 32
address sizes : 34 bits physical, 32 bits virtual
power management: ts
 
So my cpu supports sse butI am not sure with linux kernel should I use. I have two installed and I tried with both and I get same error.
ii  linux-image-3.2.0-4-486                 3.2.60-1+deb7u3          i386                     Linux 3.2 for older PCs
ii  linux-image-3.2.0-4-686-pae             3.2.60-1+deb7u3          i386                     Linux 3.2 for modern PCs
 
I am no debian wheezy 7.6 with plexmediaserver 0.9.9.14.531-7eef8c6-deb i386   Plex Media Server for Linux
 
I installed this using debian repo and I also tried to install it using ubuntu deb package available from pled.tv
 
For all of the options explain about I get same error "Illegal instruction" from pled user when I run start.sh from /usr/lib/plexmediaserver/
 
Papst in case you are reading this is your problem really solved? if so can I have your compiled version of opencv?
 
ChuckL and others any idea if its same issue or different? and how to solve this?
 
Thanks pujan14

I would first try what Papst did.   Download and compile the opencv libraries and build them without SSE2 and SSE3 enabled.

Any idea how do I do that? 

From here I understand I have to pass some parameters to cmake but I do not know which and how.

http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html

can you please tell me what should my "cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .." line look like?

sorry new to compiling stuff... :P

Hi I have good news, anyone having similar issue can follow papst's method it solved issue for me. From my understanding if you have sse support but not sse2 or sse3 than you will have to build libopencv_imgproc.so.2.4 and libopencv_core.so.2.4 with sse2 and sse3 disabled. I do not know if this is also the case for sse. If anyone wants to do this I am writing mini how to.

1) follow this guide http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html Download opencv source and to things as per the guide except use this command "cmake -D CMAKE_BUILD_TYPE=RELEASE -D ENABLE_SSE2=OFF -D ENABLE_SSE3=OFF -D CMAKE_INSTALL_PREFIX=/usr/local .." to configure cmake.

2) Once library is build for your architecture you replace libopencv_imgproc.so.2.4 and libopencv_core.so.2.4 from /usr/lib/plexmediaserver/ to newly build one's. you will find two files called libopencv_imgproc.so.2.4.9 and libopencv_core.so.2.4.9 (for opencv version 2.4.9) in folder release/lib you created from last step.

I hope this helps others.

This is all very interesting .... For a long time the windows users have been told that if their processor did not support SSE2 then they could not have Plex Media Server..

Simmilar problem, using an old PC1500 motherboard (VIA CPU).

Flags obtained with cat /proc/cpuinfo:

flags           : pae fpu vme de pse tsc msr cx8 sep mtrr pge cmov pat mmx fxsr sse rng rng_en ace ace_en

Last running version: plexmediaserver_0.9.9.12

Errors on dmesg when uong plexmediaserver_0.9.9.13 or plexmediaserver_0.9.9.14:

[29275.101123] init: plexmediaserver main process (29087) terminated with status 132

As papst said, compile from source opencv and substitute the libraries in /usr/lib/plexmediaserver/ by the newer ones.

As pujan14 explained, to compile:

1) follow this guide http://docs.opencv.o...ux_install.html Download opencv source and to things as per the guide except use this command "cmake -D CMAKE_BUILD_TYPE=RELEASE -D ENABLE_SSE2=OFF -D ENABLE_SSE3=OFF -D CMAKE_INSTALL_PREFIX=/usr/local .." to configure cmake.

2) Compile with

make -j2

3) Once library is built for your architecture you replace libopencv_imgproc.so.2.4 and libopencv_core.so.2.4 from /usr/lib/plexmediaserver/ to newly build one's. you will find two files called libopencv_imgproc.so.2.4.9 and libopencv_core.so.2.4.9 (for opencv version 2.4.9) in folder release/lib you created from last step.

sudo cp opencv-2.4.9/release/lib/libopencv_core.so.2.4.9 /usr/lib/plexmediaserver/
sudo cp opencv-2.4.9/release/lib/libopencv_imgproc.so.2.4.9 /usr/lib/plexmediaserver/

4) I renamed the old files and soft-linked the new files to use the filenames expected by plexmediaserver:


cd /usr/lib/plexmediaserver/

sudo mv libopencv_core.so.2.4 libopencv_core.so.2.4.old
sudo mv libopencv_imgproc.so.2.4 libopencv_imgproc.so.2.4.old

sudo ln -s libopencv_core.so.2.4.9 libopencv_core.so.2.4
sudo ln -s libopencv_imgproc.so.2.4.9 libopencv_imgproc.so.2.4

sudo service plexmediaserver start

Hi All

I had the same problem with blank site on Ubuntu Server 15.10.

I need to downgrade WebClient.bundle from version 0.9.16 to 0.9.12 in /usr/lib/plexmediaserver/Resources/Plug-ins-ee6e505