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 Crashing when Live DJing #10956

Closed
stalegummy9 opened this issue Oct 11, 2022 · 50 comments
Closed

MIXXX Crashing when Live DJing #10956

stalegummy9 opened this issue Oct 11, 2022 · 50 comments

Comments

@stalegummy9
Copy link

Bug Description

So I stream on SecondLife. I use shoutcast and icecast. Issue happens with both streams… intermittently.

My mixxx sw will just crash and close at random times… half hour/ 45 mins/2 hours or not at all for days… crashes in the middle of any random song…

I’m curious if there are any advanced settings to check so this doesnt happen to me…
(bitrate, GUI size/display resolution, audio latency??

This issue was more prevalent before the SW upgrade MIXXX had. And would happen to me commonly when back jogging the jogwheel for some reason…

Im using a Pioneer DDJ-SB3 with it plugged into the back of my PC.
Also my PC has 8 different USB cables going into it if that can introduce issues.
(webcam, mic, 2 device chargers, bluetooth dongle for mouse, gaming controller, DDJ controller, USB hub)
I have 20Mbps internet upload speed
AMD Ryzen 7 5800X 8-Core Processor 3.80 GHz
Windows 11

UPDATE:
Yeah i crashed again 1hr 21 mins into my LIVE DJ set last night, pretty frustrating!!!
I’m wondering if its a bug in my controller SB3 DDJ? Gonna try DJing alot of hours with DDJ 400 and see if it still crashes. otherwise im done with MIXXX it takes all the fun out of DJing knowing it can crash on your live set at any given second

attaching log files from the time it happened
i see this at the bottom of the file where it crashed
Warning [Main]: TagLib - ID3v2.2 is only partially supported - please convert your file tags to at least ID3v2.3
Warning [Main]: TagLib - Legacy ID3v2 version - importing only basic tags

mixxx.log

Version

2.3.3

OS

Windows 11

@Holzhaus
Copy link
Member

We need a backtrace for debugging crashes. Have a look at the wiki for finding out how to create one: https://github.com/mixxxdj/mixxx/wiki/Creating%20Backtraces

@stalegummy9
Copy link
Author

stalegummy9 commented Oct 11, 2022 via email

@stalegummy9
Copy link
Author

i have the x64dbg SW now running. I wont be able to "force" mixxx to crash instead wait until it decides it wants to crash. I wonder if it has to do with the ID3v2.2 metadata? i even tried to play the last 3 songs again like it crashed last night but nothing crashed on me. Seems intermittent. ANY HELP or guidance is much appreciated

@daschuer
Copy link
Member

Can you confirm that this file is playing:

C:/Users/brian/Music/Mixxx/07032022 random add/Synth System & Ayah Marar - Wide Awake.mp3

You may also create a copy so that it is again new for Mixxx.

@stalegummy9
Copy link
Author

stalegummy9 commented Oct 12, 2022 via email

@stalegummy9
Copy link
Author

stalegummy9 commented Oct 12, 2022 via email

@stalegummy9
Copy link
Author

So it crashed again finally.  I opened mixxx this morning and just played a 30 min demo track.
I went to my PC and mixxx wasnt even playing music and it closed itself.  Just like it does randomly when playing LIVE.

I looked in the "mixxx" text file and since this was the only thing done today this was the only warning or error from today.
Warning [Controller]: ControlDoublePrivate::getControl returning NULL for ( "[Channel2]" , "slipEnabled" )
Warning [Controller]: ControllerEngine: Unknown control "[Channel2]" "slipEnabled" , returning 0.0

Think this is in regards to "SHIFT + VINYL" from the controller. But i never use that function for "slip"
Maybe i could disable it?   if its even an issue?

@stalegummy9
Copy link
Author

So it cant be the ID tags then

@daschuer
Copy link
Member

Can you share the mixxx.log?

@stalegummy9
Copy link
Author

stalegummy9 commented Oct 14, 2022

got it to crash in the debugger, here is the text file for the log, after right clicking call stack then copying the log into text file
mixxx crash with debugger.txt

@stalegummy9
Copy link
Author

i dont see anything in this showing anything obvious or errors :(

@daschuer
Copy link
Member

Great, thank you.

The issue with "slipEnabled" is a typo. It needs to be "slip_enabled".
Do you have interest to fix this yourself?

It is a matter of replacing the name in this file;

script.toggleControl(group, "slipEnabled");

Here is a brief description:
https://github.com/mixxxdj/mixxx/wiki/Bugfix-Workflow

This it is a controller mapping, it is not even required to build Mixxx. You just need to edit the file in
%LOCALAPPDATA%\Mixxx\controllers in addition for testing.

@daschuer
Copy link
Member

The actual crash happens here:

      000000B2960FA868 00007FF7828E69DF 00007FF7826FCDFA 60   mixxx.QList<std::shared_ptr<mixxx::SeratoBeatGridNonTerminalMarker> >::QList<std::shared_ptr<mixxx::SeratoBeatGridNonTerminalMarker> >+1A User 
      000000B2960FA8C8 00007FF7828E6F26 00007FF7828E69DF F0   mixxx.WWaveformViewer::getCuePointerFromCueMark+6F                                                                                        User 
      000000B2960FA9B8 00007FFA1A9C7796 00007FF7828E6F26 90   mixxx.WWaveformViewer::mouseMoveEvent+216 

This is already a good int, but it would be even better to see the debug information.
They can be installed with the Mixxx installer enabling "PDB debug files".
and follow this https://github.com/mixxxdj/mixxx/wiki/Creating%20Backtraces

@stalegummy9
Copy link
Author

stalegummy9 commented Oct 14, 2022 via email

@daschuer
Copy link
Member

The crash happens here:

if (pMark && getCuePointerFromCueMark(pMark)) {

However, I am not able to track that down to the real crash. It must be a wrong call due to a dangling pointer.

@daschuer
Copy link
Member

daschuer commented Oct 14, 2022

Can you confirm that the crash happens when hovering the cue points on the big waveform?

I am preparing a PR with additional null checks.

@daschuer
Copy link
Member

This build may fix your issue https://github.com/mixxxdj/mixxx/suites/8772078775/artifacts/398034199
It is a preview for the 2.3.4 with my changes applied.

@stalegummy9
Copy link
Author

stalegummy9 commented Oct 14, 2022 via email

@stalegummy9
Copy link
Author

stalegummy9 commented Oct 14, 2022 via email

@stalegummy9
Copy link
Author

Great, thank you.

The issue with "slipEnabled" is a typo. It needs to be "slip_enabled". Do you have interest to fix this yourself?

It is a matter of replacing the name in this file;

script.toggleControl(group, "slipEnabled");

Here is a brief description: https://github.com/mixxxdj/mixxx/wiki/Bugfix-Workflow

This it is a controller mapping, it is not even required to build Mixxx. You just need to edit the file in %LOCALAPPDATA%\Mixxx\controllers in addition for testing.

so in users>name>appdata>local>mixxx>controllers

there is one file "Pioneer DDJ-SB3 no slip func.midi" but its an uneditable XML file. Is this already changed in the new install you sent or is there a way I can edit this?

@ronso0
Copy link
Member

ronso0 commented Oct 14, 2022

It's close to impossible this script command has anything to do with the crash, even more so if Mixxx crashes while idle.

And No, this mapping hasn't been fixed yet.
Yo need to edit the script yourself. Go to Preferences > Controllers > ..DDJ-SB3, open both the SB3 midi file and the SB3 js file and save copies to your user mapping directory, refresh the pref page so the copied mapping should appear also at the top of the mapping list (user mappings). Then you can click on the SB3 js file link and change the mentioned slip line.

@MarcPlace
Copy link

MarcPlace commented Oct 15, 2022

Hmm... I'm wondering if this bug is related to #10689, where I had also (very rare) crashes when editing a hotcue point with my Denon MC7000 controller.

@daschuer
Copy link
Member

daschuer commented Oct 15, 2022

Maybe yes, even though the backtrace looks different.

You may checkout this PR:
#10960

Please try the following with the 2.3.3 release:

  • Pause a track
  • Move the mouse to the scrolling waveform where the cue lable will appear.
  • create a cue via controller
  • Move the mouse.

Does this crash?

If yes, repeat with a build from the PR. Does it still crash?

@stalegummy9
Copy link
Author

stalegummy9 commented Oct 15, 2022 via email

@stalegummy9
Copy link
Author

opened Mixxx and i had a track paused, I kept within1 beat and made a bunch of cue points, then created 8 hotcues in the same beat dragging the waveform with mouse and the jogwheel. No issues. Trying to edit the script now, my file structure is a little different than explained above so dont want to make a mistake taking it slow. I do plan to stream/mix at least an hour or 2 tonight in the debugger again.

@stalegummy9
Copy link
Author

So just trying to make a copy of my Pioneer-DDJ-SB3-scripts.js file

I get this error message from Windows (i have windows 11)
message in sb3

@stalegummy9
Copy link
Author

Ok so i was able to edit this file in the Mixxx/controllers location
I added a copy to this location (picture) but not getting it to refresh and show in the mapping file section of Mixxx.
In the Mixxx/controller section it is also updated. ("slipEnabled" is a typo. It needs to be "slip_enabled")
added edited script

@stalegummy9
Copy link
Author

so in each location the file is updated and renamed to the same name as the original with the original file out and saved to desktop for backup.... I reloaded mixxx and the preferences assuming its using the new file as the old one is gone and im using my controller now... So at this point ill run through the debugger daily until the issue comes back if it even does?

@stalegummy9
Copy link
Author

stalegummy9 commented Oct 16, 2022

been mixing and marking cues most of the night, in stream mode, in the debugger and it just crashed...

I clicked on "Tracks" the main library so I could go get a song I was thinkin of...
There was one track there because I had previously searched for the current track.
When I went to move the mouse (I have used the mouse frequently most of the night) I clicked in the search bar to delete the past track name so it would show the entire "Tracks" library.

This is where it froze up. the last letter of the track in the search bar is highlighted like I tried to highlight the word before hitting delete....

Interesting... Kind of feels similar to my last or 2nd to last crash. Something to do with moving the mouse to do something/click something in the playlist window on the left. I can't say this is every single crash I've had was caused this way but this felt familiar to a recent one.

The mouse cursor on the window is responsive but is a "word cursor" symbol as I move it anywhere on the mixxx window. I cannot close mixxx or minimize the window, its locked up.

I do have the debugger open I want to wait if you guys have any ideas

UPDATE:
Copied the call stack and pasted into text file that's attached
Copied the log and pasted into text file that's attached

mixxx crash 125-130amCT.txt
crash log 125-130amCT.txt

@stalegummy9
Copy link
Author

Update: today have been mixing, marking tracks with hotcues, using mouse, changing folders, dragging songs, setting new initial cue points all while streaming with no issues. will keep running through debugger until it crashes again

@MarcPlace
Copy link

Maybe yes, even though the backtrace looks different.

You may checkout this PR: #10960

Please try the following with the 2.3.3 release:

* Pause a track

* Move the mouse to the scrolling waveform where the cue lable will appear.

* create a cue via controller

* Move the mouse.

Does this crash?

If yes, repeat with a build from the PR. Does it still crash?

I did some tests tonight and yes, I can confirm that this action crashes Mixxx-2.3.3 with SIGSEGV quite frequently on Linux.
Unfortunately I don't have debug symbols anymore in my recently installed Mixxx version, so the only thing I see in the BT is

Core was generated by `mixxx'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007fa6d28413f7 in QMutex::lock() () from /usr/lib64/libQt5Core.so.5
[Current thread is 1 (Thread 0x7fa6cc894f00 (LWP 7310))]
(gdb) bt
#0  0x00007fa6d28413f7 in QMutex::lock() () from /usr/lib64/libQt5Core.so.5
#1  0x0000562bcdc8ea47 in ?? ()
#2  0x0000562bcda50b6b in ?? ()
#3  0x0000562bcda518eb in ?? ()
#4  0x00007fa6d55e2b3e in QWidget::event(QEvent*) () from /usr/lib64/libQt5Widgets.so.5
#5  0x00007fa6d55a07af in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/libQt5Widgets.so.5
#6  0x00007fa6d55a8328 in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/libQt5Widgets.so.5
#7  0x00007fa6d29ec118 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib64/libQt5Core.so.5

But good to hear that we can reproduce this issue anytime now. Tomorrow evening I will try the build from the PR to find out, if this fixes the issue for good. Good work, guys. Thank you!

Marco

@ronso0
Copy link
Member

ronso0 commented Oct 17, 2022

Tomorrow evening I will try the build from the PR to find out, if this fixes the issue for good.

You don't need to built yourself, there are deb files available from the CI, see https://github.com/mixxxdj/mixxx/wiki/Testing#github-pull-requests

@MarcPlace
Copy link

@ronso0
Thanks for the hint. I'm using Gentoo Linux, so I don't mind compiling myself anyway. :-)

I've just recompiled Mixxx without letting "emerge" stripping the binary in the end. Now the BT looks like this:

Core was generated by `mixxx'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007fc48d0403f7 in QMutex::lock() () from /usr/lib64/libQt5Core.so.5
[Current thread is 1 (Thread 0x7fc487093f00 (LWP 12037))]
(gdb) bt
#0  0x00007fc48d0403f7 in QMutex::lock() () from /usr/lib64/libQt5Core.so.5
#1  0x000055cc390a3a47 in Cue::getColor() const ()
#2  0x000055cc38e65b6b in WWaveformViewer::unhighlightMark(QSharedPointer<WaveformMark>) ()
#3  0x000055cc38e66796 in WWaveformViewer::mouseMoveEvent(QMouseEvent*) ()
#4  0x00007fc48fde1b3e in QWidget::event(QEvent*) () from /usr/lib64/libQt5Widgets.so.5
#5  0x00007fc48fd9f7af in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/libQt5Widgets.so.5
#6  0x00007fc48fda7328 in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/libQt5Widgets.so.5
#7  0x00007fc48d1eb118 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib64/libQt5Core.so.5
#8  0x00007fc48fda5dfc in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) ()
   from /usr/lib64/libQt5Widgets.so.5

@daschuer
Copy link
Member

I think #10960 should fix this crash.
you can use it by
git pull [email protected]:daschuer/mixxx.git gh10956
Can you confirm that?

@stalegummy9
Copy link
Author

> I think #10960 should fix this crash. you can use it by git pull [email protected]:daschuer/mixxx.git gh10956 Can you confirm that?

**Is this in regards to my intermittent issue? I have not had a crash or issue in 2 days regarding:

  • Pause a track
  • Move the mouse to the scrolling waveform where the cue lable will appear.
  • create a cue via controller
  • Move the mouse.

I think at the end of the day the mapping for the SB3 is just not reliable for me playing events and stuff.
Might have to get a different controller if I intend to keep using Mixxx**

@daschuer
Copy link
Member

Since the proposed fixes are in the Mixxx c++ code switching the controller will not solve your issue.
In your case using the builds linked above should help. Or just wait until it lands in a release.

@stalegummy9
Copy link
Author

ill use the build.. i have a couple friends using the DDJ-400 and they have zero problems. I might borrow one for an event (online) this weekend and possibly test it out for a week or 2 to see if it has issues.

@stalegummy9
Copy link
Author

where does the command
git pull [email protected]:daschuer/mixxx.git gh10956
get placed?

@MarcPlace
Copy link

I think #10960 should fix this crash. you can use it by git pull [email protected]:daschuer/mixxx.git gh10956 Can you confirm that?

I've made a few tests (setting and removing hotcue points, hovering mouse over cue point). With gh10956 no segfaults anymore, while 2.3.3 constantly has crashed at this point. Very good!

@ronso0 ronso0 linked a pull request Oct 18, 2022 that will close this issue
@stalegummy9
Copy link
Author

This issue is 100% because the SB3 controller i have borrowed a DDJ400 and have had zero issues since for the past month.

Something in the mapping is causing hard crashed for the DDJSB3 so I cannot use my controller with mixxx

@ronso0
Copy link
Member

ronso0 commented Nov 7, 2022

@stalegummy9 Which build did you use lately?

@stalegummy9
Copy link
Author

stalegummy9 commented Nov 7, 2022 via email

@ronso0
Copy link
Member

ronso0 commented Nov 7, 2022

@stalegummy9 The fix was merged but unfortunately there are no 2.3.4-beta builds for macOS on the download server for testing.
Though you may test the build of another 2.3 PR with rather safe change set, for example #10992
See https://github.com/mixxxdj/mixxx/wiki/Testing#github-pull-requests

@daschuer
Copy link
Member

daschuer commented Nov 8, 2022

Luckily we have builds from the 2.3 branch. This is the most recent:
http://downloads.mixxx.org/snapshots/2.3/mixxx-2.3.3-84-g43ebbddc33-macosintel.dmg

@ronso0
Copy link
Member

ronso0 commented Nov 8, 2022

Ah okay, down there. Good to know!

@daschuer
Copy link
Member

daschuer commented Dec 2, 2022

Fixed by #10960

@daschuer daschuer closed this as completed Dec 2, 2022
@daschuer daschuer added this to the 2.3.4 milestone Dec 2, 2022
@stalegummy9
Copy link
Author

stalegummy9 commented Dec 2, 2022 via email

@ronso0
Copy link
Member

ronso0 commented Dec 2, 2022

@stalegummy9 Did you actually try the 2.3.4-beta build?

@stalegummy9
Copy link
Author

stalegummy9 commented Dec 2, 2022 via email

@ronso0
Copy link
Member

ronso0 commented Dec 3, 2022

If you can still reproduce the crash with the SB3 running a recent 2.3.4-beta build with the fix (for example http://downloads.mixxx.org/snapshots/2.3/mixxx-2.3.3-99-g53d43ccb2a-macosintel.dmg) please create a backtrace and attach it here.

https://github.com/mixxxdj/mixxx/wiki/Testing#github-pull-requests
https://github.com/mixxxdj/mixxx/wiki/Creating%20Backtraces

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

No branches or pull requests

5 participants