Linux - Projucer crashes on startup

Hello,

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

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

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

(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.

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

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

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

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

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

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

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

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

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?

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

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

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 ?? ()

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

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)

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

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!