mixxxdj / mixxx

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

DEBUG ASSERT: "mappingFile.exists()" in LegacyControllerMapping::loadSettings() #13728

Open mxmilkiib opened 6 days ago

mxmilkiib commented 6 days ago

Bug Description

Removed unfinished script files, tried various ChatGPT generated files which didn't work, tried changing back to parts of older files in steps, couldn't even see in the preset menu, moved .mixxx/controller dir and made a new one, tried to use the Learning Wizard, crash.

https://gist.github.com/mxmilkiib/d7fa17e801ec6c986ba256c8f1b48164 down to afair 2136

DEBUG ASSERT: "mappingFile.exists()" in function void LegacyControllerMapping::loadSettings(UserSettingsPointer, const QString&) const at ./src/controllers/legacycontrollermapping.cpp:14

Version

2.6

OS

Linux

acolombier commented 6 days ago

This is a debug assert - you may continue the execution upon assert (press c in GDB when getting a SIGINT). You may disable debug assert if you aren't developing the Mixxx core and don't want to be bother. I can confirm that the loadSetting is not expected to be called in your scenario so this could use some improvement although looking at the code I don't think it should cause a crash.

mxmilkiib commented 6 days ago

Just rebuilt Mixxx with a clear cmake and it also coredumps.

mxmilkiib commented 6 days ago

This happens for any controller when clicking the Learning Wizard.

ronso0 commented 6 days ago

IIUC this stems from removing mapping files while they are still considered 'loaded', ie. the config still holds the mapping file path? This can (but shouldn't) happen, so shall we turn the DEBUG_ASSERT into VERIFY_OR_DEBUG_ASSERT, or even just if (!mappingFile.exists())?

@acolombier Are you already working on this / plan to do so? If no, I'd take a stab.

acolombier commented 6 days ago

Sounds like the fix! Haven't looked at it yet, please go ahead @ronso0

ronso0 commented 6 days ago

Yup, see #13738

Btw I can confirm we hit the assert when starting the Learning Wizard.