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:
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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:
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.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Just to keep the thread updated, the fix in opus got accepted upstream, I have submitted it to the opensuse package (not sure how long they will take to accept it though): https://build.opensuse.org/request/show/794365
As I noticed that the Jamulus package was outdated (probably because the package maintainer didn't realize the new releases won't show up in SF.net), I submitted a request to update it to 3.4.5: https://build.opensuse.org/request/show/794366
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:
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
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"?
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...
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
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.
Ok. Do you know who is responsible for these binaries? We should tell them that their binary of Jamulus does not work anymore.
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?
Good question. But if it crashes the owner of the package should know it.
I just submitted a bugreport to openSUSE, let's see...
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
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!
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.
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.
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?
This is something which should be investigated. Can you please open an issue at: https://github.com/corrados/jamulus/issues
So I suppose I should close
https://github.com/openSUSE/software-o-o/issues/784
in the meantime, right?
Would be best to do so with a link to the new issue at
https://github.com/corrados/jamulus/issues
as soon as Gustavo's information is available there.
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.
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)
There you go:
https://github.com/corrados/jamulus/issues/47
@Gustavo: Thank you. I've closed my GitHub entry and pointed to your new one.
Just to keep the thread updated, the fix in opus got accepted upstream, I have submitted it to the opensuse package (not sure how long they will take to accept it though):
https://build.opensuse.org/request/show/794365
As I noticed that the Jamulus package was outdated (probably because the package maintainer didn't realize the new releases won't show up in SF.net), I submitted a request to update it to 3.4.5:
https://build.opensuse.org/request/show/794366
@Steffen if you update Jamulus from my repo, the crash will be back, but I have a patched libopus0 package in this repo if you need:
sudo zypper ar https://download.opensuse.org/repositories/home:/gboiko:/branches:/multimedia:/libs/openSUSE_Leap_15.1/ opus_custom_modes