Linux - Projucer crashes on startup


#1

Hello,

Projucer is crashing during startup on Linux.
Posted details here: https://gist.github.com/TTimo/305d59ac076cf079bce2eb66117ec512


#2

Are you running the Projucer without a window server? Unfortunately that is not supported.


#3

Same happens here. on Linux Mint 17.3, desktop install.
I noticed that I don’t have the linux-vdso.so.1 on my system.
Please note: I’m not a developer just trying to compile JuceOPLVSTi :wink:

/build/JUCE $ ldd Projucer
linux-vdso.so.1 => (0x00007ffe22dd3000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f545eb39000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f545e91b000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f545e615000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f545e3ff000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f545e03a000)
/lib64/ld-linux-x86-64.so.2 (0x00007f545ed3d000


#4

(you can ignore the vsdo thing that’s not the problem. vdso is something the dynamic linker injects)

XOrg is running and correctly configured, all graphic applications work.


#5

I’m seeing exactly the same problem on ARCH Linux x86_64 with Grapefruit JUCE. The curious thing is, that I have two systems running ARCH Linux. A Core i7 6700HQ and a Core i5-3450. While it runs perfectly on the i7, on the i5 I get this:

(gdb) run
Starting program: /home/rajan/JUCE/Projucer 
[Thread debugging using libthread_db enabled] 
Using host libthread_db library "/usr/lib/libthread_db.so.1".

Program received signal SIGILL, Illegal instruction.
0x00000000006a7f73 in ?? ()

dmesg shows:
[ 99.693102] traps: Projucer[1190] trap invalid opcode ip:6a7f73 sp:7ffca57ddec0 error:0 in Projucer[400000+ae1000]

Both systems are up to date the pacman -Q doesn’t show any relevant differences.

Any idea?

Cheers
Bollie


#6

I’ve also copied the compiled binary from my current JUCE projekt from the i7 to the i5. It also crashes on startup. However, I’ve been able to get a bit more debug data:

`(gdb) run`
Starting program: /home/rajan/TascMania 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
JUCE v4.2.3
[New Thread 0x7ffff3cee700 (LWP 1373)]
Faild USB init: No such device


Thread 1 "TascMania" received signal SIGILL, Illegal instruction.
0x00000000005270bb in juce::InternalMessageQueue::sleepUntilEvent (
    this=0xae4750, timeoutMs=2000)
    at ../../../../JUCE/modules/juce_events/native/juce_linux_Messaging.cpp:119
119            FD_SET (fd0, &readset);
(gdb) bt
#0  0x00000000005270bb in juce::InternalMessageQueue::sleepUntilEvent (
    this=0xae4750, timeoutMs=2000)
    at ../../../../JUCE/modules/juce_events/native/juce_linux_Messaging.cpp:119
#1  0x0000000000524b58 in juce::MessageManager::dispatchNextMessageOnSystemQueue (returnIfNoPendingMessages=false)
    at ../../../../JUCE/modules/juce_events/native/juce_linux_Messaging.cpp:399
#2  0x0000000000520eee in juce::MessageManager::runDispatchLoop (this=0xae4650)
    at ../../../../JUCE/modules/juce_events/messages/juce_MessageManager.cpp:130
#3  0x00000000005204b5 in juce::JUCEApplicationBase::main ()
    at ../../../../JUCE/modules/juce_events/messages/juce_ApplicationBase.cpp:240
#4  0x00000000005203cc in juce::JUCEApplicationBase::main (argc=1, 
    argv=0x7fffffffe8f8)
    at ../../../../JUCE/modules/juce_events/messages/juce_ApplicationBase.cpp:218
#5  0x000000000041975d in main (argc=1, argv=0x7fffffffe8f8)
    at ../../Source/Main.cpp:88

Hope that helps.

Cheers
Bollie


#7

My bad, getting JUCE from github and compiling Projucer did the trick. :wink:


#8

Seems like we’ve compiled the Projucer with some i7 specific instructions. I’ll sort this out.


#9

OK I’ve recompiled the projucer with “-mtune=generic” can someone try this build on an i3 in Linux Mint/Ubuntu?


#10

Unfortunately it crashes the same. The crash I initially reported is not an illegal instruction issue btw, I’m running on an i7 system. Others have piggybacked on this report and reported a SIGILL so you may still have fixed that.

I don’t know what’s going against X.Org and why it’s failing tbh. Only program that does that, I have OpenGL, Steam, games etc. all working great.

Here’s the xtrace of executing this latest binary: https://gist.github.com/TTimo/cbc066d18209177e7b43c097d015f9e7


#11

Seems to be related to the Xrandr code in JUCE. Which distribution, desktop manager (GNOME, Unity, Mate, …?) are you using?


#12

Ubuntu 15.10 - happens both with Unity (the default window manager for the distro) and with XMonad which I normally use.


#13

So odd, I’m using the same system (Ubuntu 15.10 with Unity) daily with JUCE. Any interesting monitor setup? What’s your graphics card?


#14

NVidia 660M, I run with two monitors, but I tried restarting with only one
monitor connected and there is no difference either.


#15

OK just to narrow it down. Can you start X11 with a VESA or framebuffer driver instead of nouveau or the nv driver?


#16

It’s the nvidia binary driver. I can’t really try another driver easily atm as I don’t want to compromise the stability of this system which I use for development daily, but I’ll look into it on other machines.

If you wanted to provide me with a symbol file I could narrow down the call that fails more precisely:

(gdb) bt
#0  0x00007ffff67acca0 in _XIOError () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#1  0x00007ffff67aad4a in _XReply () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#2  0x00007ffff67a09e6 in XQueryExtension () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#3  0x00007ffff67944f2 in XInitExtension () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#4  0x00007ffff6cbdfdf in XextAddDisplay () from /usr/lib/x86_64-linux-gnu/libXext.so.6
#5  0x00007ffff6ec4dc6 in ?? () from /usr/lib/x86_64-linux-gnu/libXrandr.so
#6  0x00007ffff6ec7cb3 in XRRGetOutputPrimary () from /usr/lib/x86_64-linux-gnu/libXrandr.so
#7  0x0000000000831808 in ?? ()
#8  0x00000000007b0772 in ?? ()
#9  0x00000000007b10bf in ?? ()
#10 0x00000000007b13ab in ?? ()
#11 0x00000000007ddd02 in ?? ()
#12 0x0000000000476710 in ?? ()
#13 0x000000000047f2e9 in ?? ()
#14 0x000000000069c532 in ?? ()
#15 0x000000000045e278 in ?? ()
#16 0x00007ffff70eeac0 in __libc_start_main (main=0x4155e0, argc=1, argv=0x7fffffffe218, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffe208) at libc-start.c:289
#17 0x0000000000460ea9 in ?? ()

#17

Hi Fabian,

the precompiled Projucer binary is crashing for me as well.

Im trying Projucer Linux (updated 7th April 2016) on Linux Mint 18 64-bit XFCE, Intel® Core™ i7-2640M CPU @ 2.80GHz.

(gdb) run
Starting program: /usr/local/bin/Projucer 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Program received signal SIGILL, Illegal instruction.
0x00000000006a5853 in ?? ()
(gdb) bt
#0  0x00000000006a5853 in ?? ()
#1  0x0000000000766d50 in ?? ()
#2  0x00000000005d62ad in ?? ()
#3  0x000000000047c523 in ?? ()
#4  0x000000000047c69d in ?? ()
#5  0x0000000000460083 in ?? ()
#6  0x00007ffff6e81830 in __libc_start_main (main=0x41987a, argc=1, argv=0x7fffffffd9d8, init=<optimized out>, 
    fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffd9c8) at ../csu/libc-start.c:291
#7  0x0000000000462bd9 in ?? ()

Libraries:

ldd /usr/local/bin/Projucer
	linux-vdso.so.1 =>  (0x00007ffc1ffbe000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f7972179000)
	libcurl-gnutls.so.4 => /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 (0x00007f7971f0c000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f7971cef000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f79719e6000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f79717d0000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7971407000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f797237d000)
	libidn.so.11 => /usr/lib/x86_64-linux-gnu/libidn.so.11 (0x00007f79711d4000)
	librtmp.so.1 => /usr/lib/x86_64-linux-gnu/librtmp.so.1 (0x00007f7970fb8000)
	libnettle.so.6 => /usr/lib/x86_64-linux-gnu/libnettle.so.6 (0x00007f7970d82000)
	libgnutls.so.30 => /usr/lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007f7970a52000)
	libgssapi_krb5.so.2 => /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007f7970808000)
	liblber-2.4.so.2 => /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2 (0x00007f79705f9000)
	libldap_r-2.4.so.2 => /usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2 (0x00007f79703a8000)
	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f797018e000)
	libhogweed.so.4 => /usr/lib/x86_64-linux-gnu/libhogweed.so.4 (0x00007f796ff5b000)
	libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f796fcdb000)
	libp11-kit.so.0 => /usr/lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007f796fa77000)
	libtasn1.so.6 => /usr/lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007f796f864000)
	libkrb5.so.3 => /usr/lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007f796f592000)
	libk5crypto.so.3 => /usr/lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007f796f363000)
	libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007f796f15f000)
	libkrb5support.so.0 => /usr/lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007f796ef54000)
	libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f796ed39000)
	libsasl2.so.2 => /usr/lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007f796eb1e000)
	libgssapi.so.3 => /usr/lib/x86_64-linux-gnu/libgssapi.so.3 (0x00007f796e8dd000)
	libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6 (0x00007f796e6d5000)
	libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007f796e4d1000)
	libheimntlm.so.0 => /usr/lib/x86_64-linux-gnu/libheimntlm.so.0 (0x00007f796e2c8000)
	libkrb5.so.26 => /usr/lib/x86_64-linux-gnu/libkrb5.so.26 (0x00007f796e03e000)
	libasn1.so.8 => /usr/lib/x86_64-linux-gnu/libasn1.so.8 (0x00007f796dd9c000)
	libhcrypto.so.4 => /usr/lib/x86_64-linux-gnu/libhcrypto.so.4 (0x00007f796db69000)
	libroken.so.18 => /usr/lib/x86_64-linux-gnu/libroken.so.18 (0x00007f796d953000)
	libwind.so.0 => /usr/lib/x86_64-linux-gnu/libwind.so.0 (0x00007f796d72a000)
	libheimbase.so.1 => /usr/lib/x86_64-linux-gnu/libheimbase.so.1 (0x00007f796d51b000)
	libhx509.so.5 => /usr/lib/x86_64-linux-gnu/libhx509.so.5 (0x00007f796d2d0000)
	libsqlite3.so.0 => /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007f796cffb000)
	libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007f796cdc3000)

Best,
Sebastian


#18

Are you sure you are using the correct Projucer? The one from the website does not depend on libcurl directly:

MintVM ~/Documents/Scratch $ wget 'http://assets.roli.com/juce/juce-grapefruit-linux.zip'
MintVM ~/Documents/Scratch $ unzip juce-grapefruit-linux.zip
MintVM ~/Documents/Scratch $ ldd JUCE/Projucer 
  linux-vdso.so.1 =>  (0x00007ffff62fd000)
  libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f2bd93a0000)
  libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f2bd9097000)
  libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f2bd8e79000)
  libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f2bd8ab0000)
  /lib64/ld-linux-x86-64.so.2 (0x0000555f93b3a000)

#19

Hi Fabian,

I was using the Projucer download that I got from my.roli.com after activating my Projucer license. The version that you sent me works, but I can neither sign in (greyed out) nor use the live build engine (“under development”) on this version.

Best,
Sebastian


#20

Hmmm, that’s odd. That should be the same one as the link I’ve sent you.

The live-build engine is not supported under linux. Sorry!