View Issue Details

IDProjectCategoryView StatusLast Update
0000441MMW v4DB/FileMonitorpublic2009-02-20 18:09
Reporterrusty Assigned To 
PriorityimmediateSeverityfeatureReproducibilityalways
Status closedResolutionfixed 
Fixed in Version3.1 
Summary0000441: Inaccessible tracks are not all greyed out & MM becomes non-responsive
DescriptionIn 1.4, it's easy for the user to try to play a file that has already been deleted from the hard drive because there's no visual feedback to indicate that the file is inaccessible (although inaccessible CD tracks are greyed out anywhere in the library, and inaccessible HD tracks are greyed out in the Now playing node).

In addition, the default configuration is for:
-deleted tracks not to be removed from the library by the File Monitor (this is usually the desired behaviour, but it means that the bug exists despite the File Monitor)
-warning for playing deleted files is disabled by default (since in most cases, the file will simply be skipped by the SDB player--this feature is far more useful for WinAmp where this doesn't occur).

Solution is to add a flag to track whether files are actualy in their expected locations.
Additional InformationThis issue was raised and discussed in some detail in #180

http://www.mediamonkey.com/forum/viewtopic.php?t=29537
TagsNo tags attached.
Fixed in build1200

Activities

rusty

2003-09-01 16:20

administrator   ~0002219

Just an idea--what if the app changed 'Media' to 'Local Drive - NA' that way a new field doesn't need to be introduced and this could hopefully be implemented more easily.

jiri

2003-09-01 16:33

administrator   ~0002220

I wouldn't like to change the media of given track, because it can be missing only temporarily (e.g. accidentaly moved/renamed folder) and this way the link to the file would be lost.

rusty

2003-11-03 13:23

administrator   ~0002712

Note: per http://www.songs-db.com/forum/viewtopic.php?p=882, greyed out tracks should be automatically removed if so configured in the file monitor, _only_ if they are on a non-removable storage device. This means that if a user has a removable hard drive, MM should somehow be able to tell that it isn't a permanent drive.

rusty

2004-07-01 14:36

administrator   ~0004323

Note: per http://www.songs-db.com/forum/viewtopic.php?t=1805 another problem related to the current implementation is the fact that the user can lose control of MM for extended periods as it tries to play tracks that are not presently available.

rusty

2006-07-13 16:47

administrator   ~0007492

One question: aside from adding a flag to indicate if a track isn't in it's stored location, wouldn't it also be necessary to check whether the stored location is accessible?

e.g. if a removable disc is disconnected, then all the tracks on that disc can be marked as unavailable, however, it's not desirable to flag the tracks as having been moved from their indicated location.

rusty

2008-06-02 13:16

administrator   ~0014153

Raising priority based on comments at:
http://www.mediamonkey.com/forum/viewtopic.php?t=29537

The issue is really that MM becomes non-responsive due to this issue.

rusty

2008-11-26 16:36

administrator   ~0015147

Raising to 'immediate' because this prevents MM from running in many cases.

jiri

2008-11-26 23:22

administrator   ~0015166

I think that this isn't an issue in case user presses Stop button - in MM 3.x it works even when there's a lot of unavailable tracks in NP.

I'm not sure what else to do about this issue, maybe as suggested to show some error message when MM isn't able to play >10-20 tracks?

rusty

2008-11-27 05:23

administrator   ~0015172

Let me clarify with an example:

If I run MM in a configuration where the DB is local, but tracks are on the network, and I haven't logged into the network,
--> MM takes forever to start up -- it gets stuck on the splashscreen.

jiri

2008-12-02 14:56

administrator   ~0015296

Fixed in build 1199.

rusty

2008-12-04 05:18

administrator   ~0015374

Retested, and there's still a crash if MM is configured to scan a network location and the network location isn't logged into prior to MM running. MM should probably prompt the user to log in (preferred), or gracefully fail to connect (not as good).

Short debug log follows:
[3052] FastMM has been installed.
[3052] InstanceManager - registering class.
[3052] InstanceManager - creating mutex.
[3052] InstanceManager - creating window.
[3052] InstanceManager - releasing mutex.
[3052] Received command line: '"C:\Program Files\MediaMonkey\MediaMonkey.exe" '
[3052] Going to read brand data.
[3052] Going to init Application.
[3052] Application was inicialized
[3052] Version: 3.1.0.1199
[3052] Forms: Received WM_ACTIVATEAPP
[3052] Splash screen was shown.
[3052] Going to read ini settigs.
[3052] Going to set a language.
[3052] Setting titles.
[3052] Strings translation: started
[3052] Strings translation: finished
[3052] Going to init tree manager.
[3052] Going to insert main tree nodes.
[3052] Updated 0 nodes in MainTree list.
[3052] Updated 0 nodes in SongView list.
[3052] Updated 0 nodes in PodcastsView list.
[3052] Updated 0 nodes in VSTBrowseList1 list.
[3052] Updated 0 nodes in VSTBrowseList2 list.
[3052] Updated 0 nodes in VSTBrowseList3 list.
[3052] Updated 0 nodes in AlbumArtView list.
[3052] Going to init now playing window.
[3052] Now playing initialized.
[3052] Going to init tree history.
[3052] Going to init advanced error handlers.
[3052] Going to init covers window.
[3052] Going to read toolbar positions.
[3052] Going to load drag cursors.
[3052] Going to load player skin.
[3052] Setting PlayerSkin
[3052] Initializing Player Skin
[3052] Initializing Player Skin
[3052] Creating Panel Object: Visualization
[3052] Initializing Player Skin
[3052] Creating Panel Object: StatusPanel
[3052] Initializing Player Skin
[3052] Creating StateButton Object: PlaylistButton
[3052] Initializing Player Skin
[3052] Creating StateButton Object: EQButton
[3052] Initializing Player Skin
[3052] Creating StateButton Object: ShuffleButton
[3052] Initializing Player Skin
[3052] Creating StateButton Object: ContinousButton
[3052] Initializing Player Skin
[3052] Creating Text Object: Custom4
[3052] Initializing Player Skin
[3052] Creating Text Object: Custom3
[3052] Initializing Player Skin
[3052] Creating Text Object: Custom2
[3052] Initializing Player Skin
[3052] Creating Text Object: Custom1
[3052] Initializing Player Skin
[3052] Creating Text Object: SongTitle
[3052] Initializing Player Skin
[3052] Creating Text Object: KbpsDisplay
[3052] Initializing Player Skin
[3052] Creating Text Object: TimeDisplay
[3052] Initializing Player Skin
[3052] Creating Panel Object: Rating
[3052] Initializing Player Skin
[3052] Creating StateButton Object: MuteButton
[3052] Initializing Player Skin
[3052] Creating TrackBar Object: VolumeBar
[3052] Initializing Player Skin
[3052] Creating TrackBar Object: SeekBar
[3052] Initializing Player Skin
[3052] Creating Button Object: StopButton
[3052] Initializing Player Skin
[3052] Creating Button Object: NextButton
[3052] Initializing Player Skin
[3052] Creating Button Object: PrevButton
[3052] Initializing Player Skin
[3052] Creating StateButton Object: PlayPauseButton
[3052] Initializing Player Skin
[3052] Removing file: C:\Documents and Settings\Owner\Local Settings\Temp\695468.tmp
[3052] Removal complete
[3052] Going to check DB exists.
[3052] Going to init DB.
[3052] DB - Going to Open.
[3052] DB - Opened.
[3052] Going to check DB version.
[3052] Thread has started 3368
[3052] Thread registered, going to initialize 3368
[3052] Thread initialized 3368
[3052] MMModuleInit
[3052] 3368 DB open SQL: SELECT NULL FROM sqlite_master WHERE type='table' AND name='DBInfo'
[3052] 3368 DB lock finished, took 1382.
[3052] 3368 DB open SQL: SELECT * FROM DBInfo
[3052] 3368 DB lock finished, took 753.
[3052] 3368 DB open SQL: SELECT count(*) FROM Filters
[3052] 3368 DB lock finished, took 1415.
[3052] 3368 DB open SQL: SELECT * FROM Medias WHERE TurnedSN<>0
[3052] 3368 DB lock finished, took 1315.
[3052] Going to do the first time actions.
[3052] 2872 DB open SQL: SELECT IdMedia FROM Medias WHERE DriveType = 12345
[3052] 2872 DB lock finished, took 731.
[3052] 2872 DB open SQL: SELECT IdMedia FROM Medias WHERE DriveType = 12346
[3052] Going to make final callback 3368
[3052] Thread has finished 3368
[3052] 2872 DB lock finished, took 1348.
[3052] Going to start drive update thread.
[3052] Going to read DB structures.
[3052] 2872 DB open SQL: SELECT * FROM Medias ORDER BY Medias.IDMedia
[3052] 2872 DB lock finished, took 1380.
[3052] 2872 DB open SQL: SELECT * FROM Lists WHERE IDListType = 1 ORDER BY SortOrder
[3052] 2872 DB lock finished, took 989.
[3052] Thread has started 3372
[3052] Thread registered, going to initialize 3372
[3052] 2872 DB open SQL: SELECT * FROM Lists WHERE IDListType = 2 ORDER BY SortOrder
[3052] Thread initialized 3372
[3052] 2872 DB lock finished, took 1162.
[3052] 2872 DB open SQL: SELECT * FROM Lists WHERE IDListType = 3 ORDER BY SortOrder
[3052] 2872 DB lock finished, took 1083.
[3052] 2872 DB open SQL: SELECT * FROM Lists WHERE IDListType = 4 ORDER BY SortOrder
[3052] 2872 DB lock finished, took 886.
[3052] Going to update background.
[3052] Going to init help file.
[3052] Going to init tray icon.
[3052] Going to init scripts.
[3052] Scripts: Read script - &Statistics
[3052] Scripts: Read script - Track List (&HTML)
[3052] Scripts: Read script - Track List (&XML)
[3052] Scripts: Read script - Track List (CS&V)
[3052] Scripts: Read script - Track List (&Excel)
[3052] Scripts: Read script - Auto-&increment Track #s...
[3052] Scripts: Read script - &Swap Artist and Title
[3052] Scripts: Read script - Case Checker...
[3052] Scripts: Read script - Export all Playlists...
[3052] Going to init hotkeys.
[3052] Going to init hotkeys.
[3052] 2872 DB open SQL: SELECT * FROM Filters ORDER BY Pos
[3052] 2872 DB lock finished, took 2526.
[3052] Going to set default hotkeys.
[3052] Going to set menu shortcuts.
[3052] Going to init popup menu handler.
[3052] 2872 DB prepare SQL: SELECT IDGenre, GenreName FROM Genres
[3052] 2872 DB query prepare finished, took 474.
[3052] 2872 DB open SQL: SELECT IDGenre, GenreName FROM Genres
[3052] 2872 DB lock finished, took 818.
[3052] 2872 DB open SQL: SELECT * FROM OrganizeRules ORDER BY Pos
[3052] 2872 DB lock finished, took 1200.
[3052] Main form initialized.
[3052] Player: Going to start plugin engine.
[3052] Winamp simulation window received messsage 36
[3052] Winamp sim - message left to the default processing
[3052] Winamp simulation window received messsage 131
[3052] Winamp sim - message left to the default processing
[3052] Winamp simulation window received messsage 1
[3052] Winamp sim - message left to the default processing
[3052] Winamp sim - message left to the default processing
[3052] Winamp sim - message left to the default processing
[3052] Winamp sim - message left to the default processing
[3052] Winamp sim - message left to the default processing
[3052] Going to load input plugin C:\Program Files\MediaMonkey\Plugins\in_ape.dll
[3052] Going to load input plugin C:\Program Files\MediaMonkey\Plugins\in_mpc.dll
[3052] Going to load input plugin C:\Program Files\MediaMonkey\Plugins\in_vorbis.dll
[3052] Going to load input plugin C:\Program Files\MediaMonkey\Plugins\in_wav.dll
[3052] Going to load input plugin C:\Program Files\MediaMonkey\Plugins\in_wma.dll
[3052] Going to load input plugin C:\Program Files\MediaMonkey\Plugins\in_wmp3.dll
[3052] Going to load output plugin C:\Program Files\MediaMonkey\Plugins\out_MMDS.dll
[3052] FastMM has been installed.
[3052] Going to load output plugin C:\Program Files\MediaMonkey\Plugins\out_wave.dll
[3052] Going to load DSP plugin C:\Program Files\MediaMonkey\Plugins\dsp_DeFX.dll
[3052] Winamp sim - WM_USER message 603
[3052] Winamp sim - WM_USER message 603
[3052] Going to init playlist window.
[3052] DSP - Going to update DSP module list.
[3052] DSP - Module list updated.
[3052] Going to start auto-scanner.
[3052] --------------------------------------------------------
[3052] New exception:
[3052] Delphi exception, type EDirMonError, message: The system cannot find the path specified
[3052] Exception code: 250477278
[3052] Exception flags: 3
[3052] Number of parameters: 7
[3052] (no debug info) Find error: 7C812AEB
[3052] call stack - 0 : (no debug info) Find error: 004812E7
[3052] call stack - 1 : (no debug info) Find error: 005B2803
[3052] call stack - 2 : (no debug info) Find error: 005B26E6
[3052] call stack - 3 : (no debug info) Find error: 0082567F
[3052] call stack - 4 : (no debug info) Find error: 00824E28
[3052] call stack - 5 : (no debug info) Find error: 006B6227
[3052] call stack - 6 : (no debug info) Find error: 0093E6B9
[3052] call stack - 7 : (no debug info) Find error: 7C817063
[3052] call stack - 8 : (no debug info) Find error: FFFFFFFC
[3052]
[3052] FileMonitor: Couldn't start monitoring the folder \\puzzle30\My Music\

jiri

2008-12-04 23:02

administrator   ~0015395

Fixed in build 1200.

1. The original fix was related to the fact, that when there were tracks in NP from inaccessible network disk, it could freeze the Main Window for many seconds on startup.

2. This new fix moves start of monitoring of folders to a thread and so there's no delay on MM startup anymore.

lowlander

2009-02-20 18:09

developer   ~0016817

Verified that starting MediaMonkey with unavailable network tracks doesn't result in slow start or hang.