View Issue Details

IDProjectCategoryView StatusLast Update
0012627MMW v4Otherpublic2015-02-27 21:24
Reporterpeke Assigned To 
PriorityurgentSeveritycrashReproducibilityalways
Status confirmedResolutionopen 
Product Version4.1 
Target Version4.1.7 
Summary0012627: Portable Mode: When destination for download needs elevation MMW crashes
DescriptionIn case that podcast Download needs elevation and user either accept or decline MMW crashes when run in Portable mode
TagsNo tags attached.
Fixed in build

Activities

Ludek

2015-02-27 20:43

developer   ~0042211

Last edited: 2015-02-27 21:03

I have tested on the user's DB provided by Peke and the download location is
C:\Users\User\Music\Podcasts\.....
which needs admin rights and elevation.

Peke tested on portable version in debug mode so it crashed with "EOleException: The application called an interface that was marshalled for a different thread."

The reason is here: http://www.mediamonkey.com/support/index.php?/Knowledgebase/Article/View/146/0/portable-mode-settings-dont-save--addons-dont-install-correctly

Namely:

1) To enable OS Integration settings to function in portable mode, register the MediaMonkey elevation COM object, which is used to give MediaMonkey admin rights in cases where changes must be made to the registry (e.g. for file associations):

MediaMonkeyCOM.exe /regserver


In that case we should probably inform user about the problem in a more graceful manner so that user can know how to "fix" this, i.e. that he needs to call "MediaMonkeyCOM.exe /regserver" to resolve this or even better we should show a dialog and register the elevator automatically after approving the dialog.

Ludek

2015-02-27 21:18

developer   ~0042212

Last edited: 2015-02-27 21:34

Further findings: I can download the files using regular version after acceptation of the elevation and with the portable after registering the COM server and acceptation of the elevation (as expected)

The issue is when there are both regular and portable versions installed in different folders, in that case the portable version somehow wants to use the COM server (elevator) of the standard version from different folder and crashes.

BTW the same issue appears whenever there are two regular versions installed (in different folders). The elevator works only for the lastly registered/installed, for the other one it crashes the same way: "EOleException: The application called an interface that was marshalled for a different thread."

Again, we should inform the users in a more graceful way than crashing

1) When elevation is cancelled
2) When elevator cannot be used