crash on select a win7 library for the library

Bug #695913 reported by William Good
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mixxx
Fix Released
Medium
William Good

Bug Description

to reproduce:
delete mixxx config directory
start mixxx in win7
click the "music" item under "libraries" at the left
mixxx dies (see screenshot)

Related branches

Revision history for this message
William Good (bkgood) wrote :
Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

This is not a Mixxx issue. The QtSql.dll is missing sqlite support and you don't have a sqlite plugin available.
Did you build Qt yourself? If so, did you configure it to embed the sqlite support? If you are using the binaries from Qt, I think you will need to create a QtSQL plugin dll. I'm not sure how since I've never done it. (I build Qt myself with the embedded support and full text searching.)

Revision history for this message
Albert Santoni (gamegod) wrote : Re: [Bug 695913] Re: crash on select a win7 library for the library

I've reworked the scons files to copy over the sqlite plugins to the
dist32/64 directory in the mixxx-buildserver branch, which fixes this
problem ( with the stock Qt SDK).

We shouldn't depend on a custom version of Qt....
On 2010-12-31 8:21 AM, "Sean M. Pappalardo" <email address hidden>
wrote:

Revision history for this message
Albert Santoni (gamegod) wrote :

Now that I'm not writing my on phone, I can elaborate a bit.

Our SCons target on Windows used to create a "dist(32/64)" directory and copy all the files you need in order to deploy Mixxx over into it. You used to just be able to zip up that directory and send it to someone, and it would work.

Somewhere along the way, that broke in two ways. The first is that we weren't correctly copying the MSVC runtime DLLs over into that folder (nor their required manifest file), and the second was that we weren't copying over the Qt SQLite plugin DLL. To deploy a Qt application that uses SQLite, you don't need it built in, you just need the plugin sitting in a certain directory relative to your .exe.

Anyways, we used to be able to say "scons" and have an instantly deployable build of Mixxx, but that broke maybe a year ago. I've gone off and fixed all this stuff in the mixxx-buildserver branch because otherwise we can't have automated builds. I expect we'll merge this branch into trunk shortly after 1.9 is released.

Thanks,
Albert

Albert Santoni (gamegod)
Changed in mixxx:
status: Confirmed → Invalid
assignee: Bill Good (bkgood) → nobody
milestone: 1.9.0 → none
Revision history for this message
William Good (bkgood) wrote :

My build works fine if I select a regular directory (eg. C:\music), it's if I select a Windows 7 library (see http://www.microsoft.com/windows/windows-7/features/libraries.aspx if unfamilar with the other-all annoying feature) I get this dialog box and crash. I'm not sure why this error is being triggered by this seemingly unrelated condition, but that's the case. The same behaviour occurred with the person in IRC who reported this, dialog and crash if he selected a Win7 library, worked otherwise.

This is going to be a major issue as more Windows mixxx users use Windows 7 as, when one gets the "select music library" dialog, the Win7 "Music" library is immediately obvious (see screenshot), and I suspect many users will choose that, and mixxx will crash.

Revision history for this message
William Good (bkgood) wrote :

Re-opening as per above comment

Changed in mixxx:
assignee: nobody → Bill Good (bkgood)
milestone: none → 1.9.0
status: Invalid → Confirmed
Revision history for this message
William Good (bkgood) wrote :

This is sorta fixed in lp:mixxx/1.9 r2651

Problem was that, with the config directory deleted, the db file couldn't be opened and mixxx assumed the error was a lack of driver. This situation is normally averted in mixxx.cpp where the library folder is selected, however, if nothing is selected (empty string is returned from the select-a-directory dialog, this is what happens when one selects a win7 library), ConfigObject<CV>::Save isn't called, and that's what creates that config path if it doesn't exist.

Fix was to make sure that directory exists before the library is created. This does leave an outstanding issue of what happens when a user selects the win7 music library and nothing happens (thank you microsoft). The return value of the dialog we use currently doesn't seem to distinguish between the user hitting cancel and a user selecting a directory that resolves to an empty string (like a win7 library), and we need to know to tell the user to pick a real directory if they pick a virtual one.

Changed in mixxx:
status: Confirmed → Fix Committed
Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

Looks like this is due to be fixed in Qt 4.8.0: http://bugreports.qt.nokia.com/browse/QTBUG-12655

Revision history for this message
William Good (bkgood) wrote :

Anyone have any ideas on how we can mitigate potential confusion by a win7 user after he selects a Library for his library and nothing happens?

Good news from qt there, at least.

Revision history for this message
Albert Santoni (gamegod) wrote :

On Sat, Jan 1, 2011 at 3:31 PM, Bill Good <email address hidden> wrote:
> Anyone have any ideas on how we can mitigate potential confusion by a
> win7 user after he selects a Library for his library and nothing
> happens?

What happens if we check for the blank string, give an error
messagebox, and ask them to pick again?

This is pretty pathetic that this bug shipped in Qt 4.7. These new
Windows APIs shouldn't have snuck up on anyone.

Albert

>
> Good news from qt there, at least.
>
> --
> You received this bug notification because you are a member of Mixxx
> Development Team, which is subscribed to Mixxx.
> https://bugs.launchpad.net/bugs/695913
>
> Title:
>  crash on select a win7 library for the library
>

Revision history for this message
Albert Santoni (gamegod) wrote :

Not so fast. The description for the "fix" in Qt 4.8 is:

"Disable selection of Libraries on Windows 7 in getExistingDirectory()."

... which is not a fix at all.

On Sun, Jan 2, 2011 at 1:15 AM, Albert Santoni <email address hidden> wrote:
> On Sat, Jan 1, 2011 at 3:31 PM, Bill Good <email address hidden> wrote:
>> Anyone have any ideas on how we can mitigate potential confusion by a
>> win7 user after he selects a Library for his library and nothing
>> happens?
>
> What happens if we check for the blank string, give an error
> messagebox, and ask them to pick again?
>
> This is pretty pathetic that this bug shipped in Qt 4.7. These new
> Windows APIs shouldn't have snuck up on anyone.
>
> Albert
>
>>
>> Good news from qt there, at least.
>>
>> --
>> You received this bug notification because you are a member of Mixxx
>> Development Team, which is subscribed to Mixxx.
>> https://bugs.launchpad.net/bugs/695913
>>
>> Title:
>>  crash on select a win7 library for the library
>>
>

RJ Skerry-Ryan (rryan)
Changed in mixxx:
status: Fix Committed → Fix Released
Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:
https://github.com/mixxxdj/mixxx/issues/5737

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.