RomanKubiak / ctrlr

Ctrlr
BSD 3-Clause "New" or "Revised" License
517 stars 60 forks source link

Crash on ArchLinux #321

Open bda65hp opened 3 years ago

bda65hp commented 3 years ago

Hi all, After manual compilation (the binary version do not work because there's no libbfd-system here), Ctrlr launch but crash each time i try to open or create a new panel. With 5.6.0, master and kiosk. If i compile the Debug version, it work but without any MIDI in/out.

Ctrlr crash at: 16 Jun 2021 11:42:26 Stack trace: ./Ctrlr(+0x614dba) [0x55bf51ededba] ./Ctrlr(+0x553735) [0x55bf51e1d735] ./Ctrlr(+0x60309d) [0x55bf51ecd09d] /usr/lib/libpthread.so.0(+0x13870) [0x7f3c99679870] ./Ctrlr(+0x8bb626) [0x55bf52185626] ./Ctrlr(+0x8bb9d4) [0x55bf521859d4] ./Ctrlr(+0x9f8d64) [0x55bf522c2d64] ./Ctrlr(+0xa0147f) [0x55bf522cb47f] ./Ctrlr(+0xa01fae) [0x55bf522cbfae] ./Ctrlr(+0x8f7ee1) [0x55bf521c1ee1] ./Ctrlr(+0x8e46d2) [0x55bf521ae6d2] ./Ctrlr(+0x562bd4) [0x55bf51e2cbd4] ./Ctrlr(+0x69c24a) [0x55bf51f6624a] ./Ctrlr(+0x69b193) [0x55bf51f65193] ./Ctrlr(+0x69b367) [0x55bf51f65367] ./Ctrlr(+0x2a729c) [0x55bf51b7129c] /usr/lib/libc.so.6(__libc_start_main+0xd5) [0x7f3c98fc5b25] ./Ctrlr(+0x55345e) [0x55bf51e1d45e]

I can send the compilation output if needed.

keinstein commented 3 years ago

Can you try https://github.com/keinstein/ctrlr/tree/lua5.2, please? I's for Debian, but maybe it helps for you, too.

See also #294

Edit: I only updated LinuxMakefile so far. And libusb is still disabled.

keinstein commented 3 years ago

It could be a duplicate of #168 In that case the backtrace is useless.

keinstein commented 3 years ago

And it is probably a duplicate of #294 .

bda65hp commented 3 years ago

@keinstein Same problem with your branch on Arch.

I don't know if it's related, but i always need to rewrite the makefile with Projucer. If not, i've got thi error: Makefile:336: *** target pattern contains no '%'. Stop.

keinstein commented 3 years ago

This problem is well-known. That's why I just ignore the vst builds and build just the Standalone version as I described in #294.

bda65hp commented 3 years ago

Yes, but it crash in Standalone only version too.

keinstein commented 3 years ago

check out the branch lua5.2, please and create a backtrace as discussed in #294, please.

bda65hp commented 3 years ago

Debug version do not crash but there's no MIDI in/out.

gdb Ctrlr GNU gdb (GDB) 10.2 Copyright (C) 2021 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html 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 "x86_64-pc-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: https://www.gnu.org/software/gdb/bugs/. Find the GDB manual and other documentation resources online at: http://www.gnu.org/software/gdb/documentation/.

For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from Ctrlr... (gdb) r Starting program: /home/bruno/src/ctrlr-lua5.2/Builds/LinuxMakefile/build/Ctrlr [Thread debugging using libthread_db enabled] Using host libthread_db library "/usr/lib/libthread_db.so.1". CTRLR:initialise params "" [New Thread 0x7ffff6a89640 (LWP 30349)] BFD::write_output closed read handle: file: /home/bruno/src/ctrlr-lua5.2/Builds/LinuxMakefile/build/Ctrlr temp:

Thread 1 "Ctrlr" received signal SIGSEGV, Segmentation fault. 0x0000555555de3491 in luabind::detail::object_rep::objectrep (this=0x55555770a3a8, instance=0x0, crep=0x555557531ad8) at ../../Source/Misc/luabind/src/object_rep.cpp:36 36 : m_instance(instance) (gdb) bt full

0 0x0000555555de3491 in luabind::detail::object_rep::objectrep (this=0x55555770a3a8, instance=0x0, crep=0x555557531ad8) at ../../Source/Misc/luabind/src/object_rep.cpp:36

No locals.

1 0x0000555555de38c3 in luabind::detail::push_new_instance (L=L@entry=0x55555717c050, cls=0x555557531ad8) at ../../Source/Misc/luabind/src/object_rep.cpp:324

    storage = 0x55555770a3a8
    result = <optimized out>

2 0x0000555555f2f31d in luabind::detail::make_instance<CtrlrPanel*> (L=L@entry=0x55555717c050, p=p@entry=0x55555749d2b0) at ../../Source/Misc/luabind/luabind/detail/make_instance.hpp:84

    dynamic = {first = <optimized out>, second = 0x55555749d2b0}
    cls = <optimized out>
    instance = <optimized out>
    storage = <optimized out>

3 0x0000555555f37cb8 in luabind::detail::pointer_converter::apply (this=, ptr=0x55555749d2b0, L=0x55555717c050) at ../../Source/Misc/luabind/luabind/detail/policy.hpp:238

No locals.

4 luabind::detail::push_aux<CtrlrPanel* const, luabind::detail::default_policy> (value=, L=0x55555717c050) at ../../Source/Misc/luabind/luabind/stack.hpp:33

    cv = {<luabind::detail::pointer_converter> = {result = <optimized out>}, <No data fields>}
    cv = {<luabind::detail::pointer_converter> = {result = <optimized out>}, <No data fields>}

5 luabind::push<CtrlrPanel* const, luabind::detail::null_type> (value=, L=0x55555717c050) at ../../Source/Misc/luabind/luabind/stack.hpp:51

No locals.

6 luabind::push<CtrlrPanel* const> (value=, L=0x55555717c050) at ../../Source/Misc/luabind/luabind/stack.hpp:57

No locals.

7 luabind::adl::index_proxy::operator=<CtrlrPanel*> (value=, this=) at ../../Source/Misc/luabind/luabind/detail/object.hpp:599

    pop = {m_state = <optimized out>, m_n = <optimized out>}
    pop = {m_state = <optimized out>, m_n = <optimized out>}

8 CtrlrLuaManager::assignDefaultObjects (this=0x555556f78b80, L=0x55555717c050) at ../../Source/Lua/CtrlrLuaManager.cpp:244

No locals.

9 0x0000555555f387e8 in CtrlrLuaManager::CtrlrLuaManager (this=this@entry=0x555556f78b80, _owner=...) at ../../Source/Lua/CtrlrLuaManager.cpp:88

No locals.

10 0x0000555555e22cdf in CtrlrPanel::CtrlrPanel (this=this@entry=0x55555749d2b0, _owner=..., panelName=..., idx=idx@entry=0) at ../../Source/Core/CtrlrPanel/CtrlrPanel.cpp:56

No locals.

11 0x0000555555e0e4fa in CtrlrManager::addPanel (this=0x555556e36940, savedState=..., showUI=) at ../../Source/Core/CtrlrManager/CtrlrManager.cpp:174

    panel = <optimized out>

12 0x0000555555e0f9a1 in CtrlrManager::restoreState (this=0x555556e36940, savedTree=...) at ../../Source/Core/CtrlrManager/CtrlrManager.cpp:241

    i = 2
    mmlock = {<juce::Thread::Listener> = {_vptr.Listener = 0x555556a0e958 <vtable for juce::MessageManagerLock+16>}, mmLock = {blockingMessage = {referencedObject = 0x0}, lockedEvent = {useManualReset = false, mutex = {<std::__mutex_base> = {
              _M_mutex = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 0, __spins = 0, __elision = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = '\000' <repeats 39 times>, __align = 0}}, <No data fields>}, 
          condition = {_M_cond = {_M_cond = {__data = {{__wseq = 0, __wseq32 = {__low = 0, __high = 0}}, {__g1_start = 0, __g1_start32 = {__low = 0, __high = 0}}, __g_refs = {0, 0}, __g_size = {0, 0}, __g1_orig_size = 0, __wrefs = 0, __g_signals = {
                    0, 0}}, __size = '\000' <repeats 47 times>, __align = 0}}}, triggered = {_M_base = {static _S_alignment = 1, _M_i = false}}}, abortWait = {value = {<std::__atomic_base<int>> = {static _S_alignment = 4, 
              _M_i = 0}, <No data fields>}}, lockGained = {value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = 0}, <No data fields>}}}, locked = true}

13 0x0000555555e0fc1b in CtrlrManager::restoreState (this=0x555556e36940, savedState=...) at ../../Source/Core/CtrlrManager/CtrlrManager.cpp:258

No locals.

14 0x0000555555a505ea in CtrlrProcessor::setStateInformation (this=, xmlState=xmlState@entry=0x555556e351a0) at ../../Source/Plugin/CtrlrProcessor.cpp:434

No locals.

15 0x0000555555a4ed02 in CtrlrStandaloneWindow::CtrlrStandaloneWindow (this=this@entry=0x555556e15a20, title=..., backgroundColour=...) at ../../JUCE/modules/juce_core/memory/juce_ScopedPointer.h:89

    xml = {object = 0x555556e351a0}
    editor = <optimized out>
    xml = {object = <optimized out>}
    editor = <optimized out>
    ed = {object = {referencedObject = <optimized out>}, listeners = {listeners = {values = {<juce::DummyCriticalSection> = {<No data fields>}, elements = {data = <optimized out>}, numAllocated = <optimized out>, numUsed = <optimized out>}}}}
    r = {pos = {x = <optimized out>, y = <optimized out>}, w = <optimized out>, h = <optimized out>}

16 0x0000555555a4e058 in CtrlrApplication::initialise (this=this@entry=0x555556e155b0, commandLineParameters=...) at ../../Source/Core/StandaloneWrapper/CtrlrStandaloneApplication.cpp:110

No locals.

17 0x0000555555ba6cb5 in juce::JUCEApplicationBase::initialiseApp (this=0x555556e155b0) at ../../JUCE/modules/juce_events/messages/juce_ApplicationBase.cpp:297

No locals.

18 0x00005555557ec864 in juce::JUCEApplicationBase::main () at ../../JUCE/modules/juce_events/messages/juce_ApplicationBase.cpp:256

    libraryInitialiser = {<No data fields>}
    app = std::unique_ptr<juce::JUCEApplicationBase> = {get() = 0x555556e155b0}

19 0x00007ffff7673b25 in __libc_start_main () from /usr/lib/libc.so.6

No symbol table info available.

20 0x0000555555a4d20e in _start ()

No symbol table info available. (gdb)

Thanks for your help.

keinstein commented 3 years ago

0 0x0000555555de3491 in luabind::detail::object_rep::objectrep (this=0x55555770a3a8, instance=0x0, crep=0x555557531ad8) at ../../Source/Misc/luabind/src/object_rep.cpp:36

It seems as you don't use the build system from the lua5.2-branch. Please use the system provided lua, luabind, boost and lua-bitop (see also https://bbs.archlinux.org/viewtopic.php?id=197531).

And don't use the included luausb library (libusb folder). It is known to crash my system and its too old to be considered.

bda65hp commented 3 years ago

There no more lua-bitop in arch repos. It's too difficult for me to use Ctrlr on Arch actually. Provided lua version is 5.4. I don't know which build system i use. I do make -f pchbuild.mk CONFIG=Release Standalone

Thanks very much for your help.

keinstein commented 3 years ago

There no more lua-bitop in arch repos.

Please, take a look at https://archlinux.org/packages/?sort=&q=lua+bitop&maintainer=&flagged= It seems that you have to enable the Community repository.

It's too difficult for me to use Ctrlr on Arch actually.

Yes, you can help to make it better. I can't do the work for you as I'm working with Debian.

Provided lua version is 5.4.

That's not supported, yet. I chose 5.2 because it fits together on Debian. 5.4 introduces integers which would be a great improvement for Ctrlr, even for existing code. But luabind and possibly other code must be updated in order to support everything from lua5.4.

BTW.: Arch Linux supports lua 5.2 (Extra repository) https://archlinux.org/packages/?sort=&q=lua&maintainer=&flagged=

I don't know which build system i use. I do make -f pchbuild.mk CONFIG=Release Standalone

This is ok. Which brach did you checkout? You need the lua5.2 branch.

Thanks very much for your help.

I help as much as I can. But I can't support the outdated lua libraries that come with the Ctrlr source code.

bda65hp commented 3 years ago

Sorry, my bad. lua52-bitop is in the repos. But there's no luabind. I've compiled one for lua5.2 but there's no object_fwd.h (same source as in Debian stable repo):

bruno@zania LinuxMakefile [lua5.2*] % LANG=C make -f pchbuild.mk CONFIG=Release Standalone
Compiling CtrlrManager.cpp In file included from ../../Source/Lua/CtrlrLuaObject.h:4, from ../../Source/Core/CtrlrModulator/CtrlrModulator.h:5, from ../../Source/Core/CtrlrManager/CtrlrManager.h:3, from ../../Source/Core/CtrlrManager/CtrlrManager.cpp:2: ../../Source/Lua/CtrlrLuaObjectWrapper.h:4:10: fatal error: luabind/object_fwd.hpp: No such file or directory 4 | #include "luabind/object_fwd.hpp" | ^~~~~~~~ compilation terminated. make: *** [Makefile:355: build/intermediate/Release/CtrlrManager_f2f12d08.o] Error 1

With your lua5.2 branch here