Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mixxx 2.4.1 crashing upon opening in Linux Penguin - Flatpak installed #13720

Open
hh37138 opened this issue Oct 5, 2024 · 23 comments
Open

Mixxx 2.4.1 crashing upon opening in Linux Penguin - Flatpak installed #13720

hh37138 opened this issue Oct 5, 2024 · 23 comments
Labels

Comments

@hh37138
Copy link

hh37138 commented Oct 5, 2024

Bug Description

Every time I attempt to open the program in Linux on my Chromebook, it force closes immediately. The program worked fine a couple of days ago. Today I attempted to install a new USB Mic (it didn't work even in Chrome) and I updated my Chrome system. No changes were made to Linux. I attempted to run the program from the terminal and uninstall and reinstall it and received the following:

hollywoodhowiegaroutte@penguin:~$ flatpak run org.mixxx.Mixxx
F: Ignoring D-Conf migrate-path setting /org/mixxx/Mixxx
Using preferences ScaleFactor 1
Loading resources from  "/app/share/mixxx/"
Configuration file is at the current version "2.4.1"
BroadcastSettings - Found 1 profile(s)
 qt.qpa.wayland:warning [Main] Ignoring unexpected wl_surface.enter received for output with id: 7 screen name: "Screen5" screen model: "unknown" This is most likely a bug in the compositor.
warning [Main] failed to load portaudio for JACK rename
ALSA lib ../../../src/pcm/pcm.c:2666:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.front
ALSA lib ../../../src/pcm/pcm.c:2666:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib ../../../src/pcm/pcm.c:2666:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib ../../../src/pcm/pcm.c:2666:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib ../../../src/pcm/pcm.c:2666:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround21
ALSA lib ../../../src/pcm/pcm.c:2666:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround21
ALSA lib ../../../src/pcm/pcm.c:2666:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround40
ALSA lib ../../../src/pcm/pcm.c:2666:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround41
ALSA lib ../../../src/pcm/pcm.c:2666:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround50
ALSA lib ../../../src/pcm/pcm.c:2666:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround51
ALSA lib ../../../src/pcm/pcm.c:2666:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround71
ALSA lib ../../../src/pcm/pcm.c:2666:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958
ALSA lib ../../../src/pcm/pcm.c:2666:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958
ALSA lib ../../../src/pcm/pcm.c:2666:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958
ALSA lib ../../../src/pcm/pcm.c:2666:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib ../../../src/pcm/pcm.c:2666:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib ../../../src/pcm/pcm.c:2666:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib ../../../src/pcm/pcm.c:2666:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib ../../../src/pcm/pcm.c:2666:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib ../../../src/pcm/pcm.c:2666:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib ../../oss/pcm_oss.c:404:(_snd_pcm_oss_open) Cannot open device /dev/dsp
ALSA lib ../../oss/pcm_oss.c:404:(_snd_pcm_oss_open) Cannot open device /dev/dsp
ALSA lib ../../src/confmisc.c:160:(snd_config_get_card) Invalid field card
ALSA lib ../../usb_stream/pcm_usb_stream.c:481:(_snd_pcm_usb_stream_open) Invalid card 'card'
ALSA lib ../../src/confmisc.c:160:(snd_config_get_card) Invalid field card
ALSA lib ../../usb_stream/pcm_usb_stream.c:481:(_snd_pcm_usb_stream_open) Invalid card 'card'
ALSA lib ../../../src/pcm/pcm_direct.c:2049:(snd1_pcm_direct_parse_open_conf) The field ipc_gid must be a valid group (create group audio)
warning [Main] Output sound device clock reference not set! Using "sysdefault"
warning [0x7f3724002760] Engine thread not scheduled with the real-time policy SCHED_FIFO
hollywoodhowiegaroutte@penguin:~$ flatpak uninstall --delete-data org.mixxx.Mixxx


        ID                            Branch        Op
 1. [✗] org.mixxx.Mixxx               stable        r
 2. [ ] org.mixxx.Mixxx.Locale        stable        r

Error: Flatpak system operation Uninstall not allowed for user
error: Failed to uninstall org.mixxx.Mixxx: Flatpak system operation Uninstall not allowed for user
hollywoodhowiegaroutte@penguin:~$ flatpak install org.mixxx.Mixxx
Looking for matches…
Remotes found with refs similar to ‘org.mixxx.Mixxx’:

   1) ‘flathub’ (system)
   2) ‘flathub’ (user)

Which do you want to use (0 to abort)? [0-2]: 1
Skipping: org.mixxx.Mixxx/x86_64/stable is already installed

ASK: Please review and advise on a solution to be able to use Mixxx.

Version

2.4.1

OS

Linux Penguin

@hh37138 hh37138 added the bug label Oct 5, 2024
@hh37138
Copy link
Author

hh37138 commented Oct 5, 2024

Screenshot 2024-10-04 8 32 07 PM
A lot of the code from the terminal appears to have been deleted, so here is a screenshot of it

@hh37138
Copy link
Author

hh37138 commented Oct 5, 2024

BTW, I also increased the Linux disk from 10 to 30 G with no change in behavior.

@daschuer
Copy link
Member

daschuer commented Oct 5, 2024

It looks like something is messed up with your audio hardware. However this should be no excuse for a crash.

Can you provide the mixxx.log file, which contains more debug information.

You may also try to provide a gdb backtrace. It should be:

flatpak run --devel --command=sh org.mixxx.Mixxx
gdb ./mixxx --developer

Make it crash ...
bt
(Not tested)

@Swiftb0y
Copy link
Member

Swiftb0y commented Oct 5, 2024

warning [Main] failed to load portaudio for JACK rename

I think its rather crashing because it can't load portaudio

void SoundManager::setJACKName() const {
#ifdef Q_OS_LINUX
typedef PaError (*SetJackClientName)(const char *name);
QLibrary portaudio("libportaudio.so.2");
if (portaudio.load()) {
SetJackClientName func(
reinterpret_cast<SetJackClientName>(
portaudio.resolve("PaJack_SetClientName")));
if (func) {
// PortAudio does not make a copy of the string we provide it so we
// need to make sure it will last forever so we intentionally leak
// this string.
char* jackNameCopy = strdup(VersionStore::applicationName().toLocal8Bit().constData());
if (!func(jackNameCopy)) {
qDebug() << "JACK client name set";
}
} else {
qWarning() << "failed to resolve JACK name method";
}
} else {
qWarning() << "failed to load portaudio for JACK rename";
}
#endif
}

@hh37138
Copy link
Author

hh37138 commented Oct 5, 2024

It looks like something is messed up with your audio hardware. However this should be no excuse for a crash.

Can you provide the mixxx.log file, which contains more debug information.

You may also try to provide a gdb backtrace. It should be:

flatpak run --devel --command=sh org.mixxx.Mixxx
gdb ./mixxx --developer

Make it crash ... bt (Not tested)

Daschuer, How do I locate the mixxx log file when I can't open mixxx? I'm brand new to Linux and have practically no knowledge of how to use it.

Here is a screenshot of what happened when I tried to do the gdb backtrace

Screenshot 2024-10-05 5 27 57 PM

@hh37138
Copy link
Author

hh37138 commented Oct 5, 2024

warning [Main] failed to load portaudio for JACK rename

I think its rather crashing because it can't load portaudio

Swiftb0y,

The only way I know how to change from Jack to Alsa (?) is inside of Mixxx. Is there a way to do that from the terminal? My old microphone set-up would not work with Jack, but it would with the other option in Mixxx. I may have switched it over to Jack as part of my troubleshooting.

@ronso0
Copy link
Member

ronso0 commented Oct 6, 2024

Here is a screenshot of what happened when I tried to do the gdb backtrace

This tells you gdb is not installed. Install it with sudo apt-get install gdb
Complete steps to create backtraces are here:
https://github.com/mixxxdj/mixxx/wiki/Creating-Backtraces#linux--mac-os-x-with-xcode-4x

The only way I know how to change from Jack to Alsa (?) is inside of Mixxx

Take a look a your Mixxx settings directory (here's how to find it). There should be a soundconfig.xml which holds the sound configuration incl. the API.
Rename it and start Mixxx, which should then use the defaults (ALSA?).

@hh37138
Copy link
Author

hh37138 commented Oct 7, 2024

@ronso0 Thank you! I'm learning more about Linux every day.

I was able to install gdb using the Sudo command line you provided, however, when I tried to run it again it failed.
image

I tried the directions from the manual to locate the file, but they were not recognized:
image

I went into my Linux Program Files and wasn't able to locate the soundconfig.xml file
image.

@Swiftb0y @daschuer @ronso0 Thank you all for your help so far. I appreciate it!

@daschuer
Copy link
Member

daschuer commented Oct 7, 2024

I think its rather crashing because it can't load portaudio

The attempt to set the Jack client name is not the case for the crash. It is only an optional convenience feature to show Mixxx as Mixxx and not as portaudio in Jack tools.

It however indicates that portaudio is not loaded as "libportaudio.so.2". Does it use a different name or static linking?

@daschuer
Copy link
Member

daschuer commented Oct 7, 2024

@hh37138 You have a typo in the gdb --help command. It is gdb with b for bug.

Please start gdb without extra command line options (sorry fro the wrong hint).
gbd ./mixxx
And then inside gdb
run --developer

@daschuer
Copy link
Member

daschuer commented Oct 7, 2024

It looks like jack is not installed with flatpack:

https://github.com/flathub/org.mixxx.Mixxx/blob/07271bed214b6e1cd5eb98c6c0dab9304ac61d49/org.mixxx.Mixxx.yaml#L148

@FakeShemp @djantti

Is jack/pipewire working with flatpack?
Can you add libjack.so ?

Can you also confirm the situation with libportdio.so
Is it available for dynamic loading? At which part is it located?

@hh37138
Copy link
Author

hh37138 commented Oct 7, 2024

@daschuer Thanks for the update! I got a little bit farther.
image

@ronso0
Copy link
Member

ronso0 commented Oct 7, 2024

gdb ./mixxx means gdb should look for an executable called mixxx in the current directory.
on the left of the command proper you can see the current working directory, and ~ means you're currently in your user home directory.l (you won't find mixxx there, unless you did a very unusual installation yourself).
You want the executable from /usr/bin (or some other default lookup path), so you need to type only

gdb mixxx

then, as written in the wiki

set height 0
run
etc.

@hh37138
Copy link
Author

hh37138 commented Oct 8, 2024

@ronso0

Take a look a your Mixxx settings directory (here's [how to find it](https://manual.mixxx.org/2.4/en/chapters/appendix/settings_directory.html)). There should be a soundconfig.xml which holds the sound configuration incl. the API.
Rename it and start Mixxx, which should then use the defaults (ALSA?).

Somehow I missed the direction in the wiki to make sure I could see all my hidden files in the folders. Once I enabled that I could find the soundconfig.xml file, and rename it. I was able to open Mixxx without it crashing!! It was still set on Jack, but I quickly reset it to Alsa. After saving my settings, I closed the app and reopened it with no issues! Thanks so much!! Bossman no longer wants to fire me! (He can't, we're married, LOL)

I still haven't figured out the gdb thing. Let me know if you still need it for some other aspect of this ticket, but my inital concern is resolved 😂

@daschuer
Copy link
Member

daschuer commented Oct 8, 2024

Is jack still listed in the API combo box of your hardware preferences?

Mixxx should never crash not even with a faulty configuration. A backtrace will help to acheve this. So please try to produce one with the old config.

@hh37138
Copy link
Author

hh37138 commented Oct 10, 2024

Sorry for the long response time. The day job was insisting that I show up for once :)

I put Jack back as the API combo and it's still not crashing <3

I can't get the debug log to load from within mixxx or the Linux terminal. When attempting from inside Mixxx I click the button on the Library tab and nothing happens.
Screen recording 2024-10-10 3.10.29 PM.webm
Here are the Terminal results:
image
image

@ronso0
Copy link
Member

ronso0 commented Oct 10, 2024

The leading ./ tells the interpreter to look for the following file or command in the current working directory. The ~ before the prompt indicates this is your home directory, but you want the mixxx binary from one of the usual binary lookup paths (usr/bin for example)

TL;DR
instead of ./mixxx use just mixxx (plus the other arguments, of course)

I put Jack back as the API combo and it's still not crashing

I think @daschuer meant to you put back the previous (crashing) soundconfig.xml, only with that the debug log is useful.
Could that still be in your Trash?

@hh37138
Copy link
Author

hh37138 commented Oct 10, 2024

soundconfig.xml still exists in my files.

I only renamed the file to soundconfigure.xml, which stopped the crashing. I tried to rename it what it was, but the system said the file name still existed.

I tried the code you suggested and the files were not found:
image

@ronso0
Copy link
Member

ronso0 commented Oct 10, 2024

(please post copied text instead of screenshots, that allows us to copy it for responses, thanks)

Oh sorry, I forgot this is about the Flatpak version 🤦
That explains why mixxx is not found (and why there is no .mixxx/mixxx.log I think).

For debugging a Flatpak app the procedure is a bit different:

Note: I don't have the sdk installed, so I can't test these steps.

@hh37138
Copy link
Author

hh37138 commented Oct 11, 2024

Hi @ronso0, thank you so much for the directions!

Here are the results of the flatpak debug install attempt:

hollywoodhowiegaroutte@penguin:~$ flatpak install org.freedesktop.Sdk.Debug/x86_64/23.08
Looking for matches…
Remotes found with refs similar to ‘org.freedesktop.Sdk.Debug/x86_64/23.08’:

  1. ‘flathub’ (system)
  2. ‘flathub’ (user)

Which do you want to use (0 to abort)? [0-2]: 1

    ID                               Branch        Op       Remote        Download
  1. [✗] org.freedesktop.Sdk.Debug 23.08 i flathub 2.8 GB / 2.5 GB

Warning: Failed to get revokefs-fuse socket from system-helper: Flatpak system operation GetRevokefsFd not allowed for user
Error: Flatpak system operation Deploy not allowed for user
^[[40;55Rerror: Failed to install org.freedesktop.Sdk.Debug: Flatpak system operation Deploy not allowed for user

@djantti
Copy link
Contributor

djantti commented Oct 17, 2024

Is jack/pipewire working with flatpack? Can you add libjack.so ?

Can you also confirm the situation with libportdio.so Is it available for dynamic loading? At which part is it located?

Sorry for the delayed reply. As far as I know JACK is not not supported at all (and never will be) on Flatpaks and the only way of using it is through PipeWire. It does work really well nowadays. PortAudio is also included and loaded correctly.

But something super strange is happening in this bug report, since even the common Flatpak uninstall / install commands appear to fail. I'll see if I can get a ChromeOS VM going and dig around a bit.

@ronso0
Copy link
Member

ronso0 commented Oct 17, 2024

I'll see if I can get a ChromeOS VM going and dig around a bit.

Interesting that no one mentioned that before. Could indeed be a Flatpak install inside 'Linux' on a ChromeBook?
(in that case I'M out, too many unknown variables for my taste ; )
@hh37138 can you verify?

@djantti
Copy link
Contributor

djantti commented Oct 17, 2024

Yeah, AFAIK that is the most common way of running somewhat standard Linux on Chromebooks.

ChromeOS (a highly locked down custom Linux distribution by itself) runs a virtual machine called crosvm and creates a container inside it with a mutable Linux environment. And then we have Mixxx running in a Flatpak sandbox on top of that.

I did manage to get ChromeOS running in a virtual machine, but it just states that 'Linux is not supported on your Chromebook'. Oh well... it prolly needs a bare metal install and / or a Google account.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants