mixxxdj / mixxx

Mixxx is Free DJ software that gives you everything you need to perform live mixes.
http://mixxx.org
Other
4.53k stars 1.28k forks source link

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

Closed hh37138 closed 1 week ago

hh37138 commented 1 month ago

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 commented 1 month ago

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 commented 1 month ago

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

daschuer commented 1 month ago

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 commented 1 month ago

warning [Main] failed to load portaudio for JACK rename

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

https://github.com/mixxxdj/mixxx/blob/60bdaca11e4011121895a59bbf2e05549020de63/src/soundio/soundmanager.cpp#L654-L677

hh37138 commented 1 month ago

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 commented 1 month ago

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 commented 1 month ago

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 commented 1 month ago

@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 commented 1 month ago

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 commented 1 month ago

@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 commented 1 month ago

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 commented 1 month ago

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

ronso0 commented 1 month ago

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 commented 1 month ago

@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 commented 1 month ago

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 commented 1 month ago

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 commented 1 month ago

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 commented 1 month ago

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 commented 1 month ago

(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 :facepalm: 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 commented 1 month ago

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 commented 1 month ago

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 commented 1 month ago

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 commented 1 month ago

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.