Menu

Strange crash on openSuSE 15.1 when trying to connect

2020-04-05
2020-04-15
  • Steffen Walter

    Steffen Walter - 2020-04-05

    Dear All,

    I'm starting Jamulus on OpenSuSE 15.1 64bit, KDE Frameworks 5.55.0, Jamulus version 3.4.4, current updates installed. When trying to connect I see different servers in the subdialog, but no matter which one I choose, Jamulus simply crashes without further notice.

    When I start it from a console, the last traces right after hitting CONNECT are:

    Fatal (internal) error in celt/celt_decoder.c, line 126: assertion failed: st->end <= 21
    KCrash: Application 'Jamulus' crashing...
    KCrash: Attempting to start /usr/lib64/libexec/drkonqi from kdeinit
    sock_file=/run/user/1001/kdeinit5__0
    Cannot read socket fd = 14 err = Erfolg
    CheckRes error
    JackSocketClientChannel read fail
    terminate called after throwing an instance of 'CGenErr'
    Unable to start Dr. Konqi
    Re-raising signal for core dump handling.
    
    [1]+  Abgebrochen             (Speicherabzug geschrieben) Jamulus
    

    The first line points to celt, my installed version of libcelt0-2 is 0.11.3-lp151.2.3, I could not find anything newer so far.

    Jack is up, running and working. I checked that via QJackCtl, I get sound via Musescore, and when I fire up Jamulus, the connection is visible in the QJackCtl graph window.

    Does anyone have any hint? Can I start Jamulus in a more verbose mode or something?

    Thanx'n regardz

    ;-)swalter0306

     
  • Volker Fischer

    Volker Fischer - 2020-04-05

    Per default Jamulus uses its own OPUS code. In that celt_decoder.c line 126 I do not find any ASSERT, see: https://github.com/corrados/jamulus/blob/master/libs/opus/celt/celt_decoder.c#L126
    Do you compile Jamulus using the qmake CONFIG parameter "opus_shared_lib"?

     
  • Steffen Walter

    Steffen Walter - 2020-04-05

    Well, to be frank, I tried to avoid compiling so far ;-D

    I tried that some time ago with other packages, but sooner or later got stuck in dependency hell...

    But if you think that's way to go, I'd give it a spin...

     
  • Volker Fischer

    Volker Fischer - 2020-04-05

    If you did not compile Jamulus yourself, where did you get the binaries from? Did you use this package: https://software.opensuse.org/package/Jamulus

     
  • Steffen Walter

    Steffen Walter - 2020-04-05

    I started out with that one.

    But as I saw, that this is not the current version, I switched to this repository:

    https://ftp.lysator.liu.se/pub/opensuse/repositories/multimedia:/apps/openSUSE_Leap_15.1/

    I already checked that they do not have any more recent version of

    libcelt0-2 = 0.11.3-lp151.49.3

    Changelog looks exactly the same as the one I already have installed.

     
  • Volker Fischer

    Volker Fischer - 2020-04-05

    Ok. Do you know who is responsible for these binaries? We should tell them that their binary of Jamulus does not work anymore.

     
  • Steffen Walter

    Steffen Walter - 2020-04-05

    Ah... yes, of course. Always eager to help, but when I go back to the "vanilla" 3.4.2 version of Jamulus from

    https://software.opensuse.org/package/Jamulus

    I get exactly the same behaviour.

    What do you suggest, should I contact the maintainer here also? Maybe it's more an openSuSE related issue?

     
  • Volker Fischer

    Volker Fischer - 2020-04-05

    Good question. But if it crashes the owner of the package should know it.

     
  • Steffen Walter

    Steffen Walter - 2020-04-06

    I just submitted a bugreport to openSUSE, let's see...

     
    • Gustavo P. Boiko

      Hi

      Until anyone takes care of fixing the linking of Jamulus to the existing libopus package, I have "forked" the package in the openSUSE build service to build it with the opus lib statically linked. It fixes the crash, but it is highly recommended to switch back to the original package once it is fixed. You can use it by adding my home project's repo:

      sudo zypper ar https://download.opensuse.org/repositories/home:/gboiko:/branches:/multimedia:/apps/openSUSE_Leap_15.1/ jamulus_static_opus

      Just a heads up: I don't intend to maintain this fork for a long time, just until the original openSUSE package is fixed.

      Would you mind to paste here the link to the bug you have reported? I want to monitor it and maybe help debugging the problem.

       

      Last edit: Gustavo P. Boiko 2020-04-08
  • Steffen Walter

    Steffen Walter - 2020-04-08

    Thanks a ton Gustavo,

    works like a charm :-D

    The link to the bug report is

    https://github.com/openSUSE/software-o-o/issues/784

    So far no comments and no progress...

    Thank you again!

     
    • Gustavo P. Boiko

      Ok, that is not the right place to report bugs I think.
      The right place would be: https://bugzilla.opensuse.org/

      I don't want to steal the text you have written, so if you could report it there and paste the link to the report here, I would appreciate.

       
  • Gustavo P. Boiko

    I think I found the difference (still debugging what is causing the actual problem though): when opus is built as a standalone library, by default it enables some runtime sanity checks by defining ENABLE_HARDENING by default. When it is built statically in Jamulus itself, this flag is not set and thus this runtime validation is disabled.

    I will keep investigating.

     
  • Gustavo P. Boiko

    I have some more details, such as a backtrace, what the actual value of st->end is.
    Shall I open a bug report in github or would it be better to post the details here?

     
  • Volker Fischer

    Volker Fischer - 2020-04-08

    This is something which should be investigated. Can you please open an issue at: https://github.com/corrados/jamulus/issues

     
  • Volker Fischer

    Volker Fischer - 2020-04-09

    Hmm, one thing could go wrong here. For Jamulus is need special frame sizes of OPUS. For that OPUS has some "opus_custom" interfaces. Maybe in the OpenSuse version of OPUS these custom interfaces are not available leading to the assert issue.

     
    • Gustavo P. Boiko

      That was the first thing I checked, but opus is correctly built with custom modes enabled.

      I am collecting the data for the report right now (just un-doing some printf debugging I did on libopus to get a more accurate backtrace (in terms of line numbers and such)

       
  • Steffen Walter

    Steffen Walter - 2020-04-09

    @Gustavo: Thank you. I've closed my GitHub entry and pointed to your new one.

     
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.