Ticket #161 (closed Defect: fixed)

Opened 6 years ago

Last modified 4 years ago

Sapphire forgets meta data when network share is disconnected.

Reported by: chris@… Owned by:
Priority: normal Milestone:
Component: Browser Version: 1.0b6
Keywords: Cc:

Description

I have all my media on a smb share. I've feteched all move and tv show data, and everything seems to work fine. When I disconnect the network share, and then reconnect it, my shows and movies are not longer available. I have to rescan to see them.

Am I doing something wrong, or is this a bug?

Change History

comment:1 Changed 6 years ago by gbooker

A program cannot distinguish between a disconnected mount (use the correct word) and deleted files. Sapphire makes the exception of not pruning metadata if the directory contains 0 files. Make sure your mount either shows all files/directories, or none (use ls -a to make sure your aren't missing any hidden files).

comment:2 Changed 6 years ago by anonymous

Is there any way to recover from this?

If a mount is disconnected while Sapphire is in use, it seems to lose everything when looking at the UI. However, inspecting the Application Support folder shows all the metadata is still in tact. Re-mounting the network share doesn't seem to resolve it though.

comment:3 Changed 6 years ago by gbooker

Are you saying that the metadata file contains all the information to the files on the mount (again, use the correct word), but they do not show up in the tv and movie virtual directories? If that is the case, then this is due to the fact that when Sapphire create the virtual directories on startup, it only adds files which exist to the virtual directories. A restart of Front Row with the mount mounted will correct this situation.

comment:4 follow-up: ↓ 5 Changed 6 years ago by anonymous

It seems I may have described the situation incorrectly in my previous comment.

Woke the machine up from sleep, and the mount was not connected. Quit Front Row, remounted, launched Front Row then Sapphire. The mountpoint shows up in Sapphire, but all the metadata in the UI is gone (TV Shows and Movies are empty).

Taking a look at the metaData.plist file, There are entries for all the shows and their seasons, however when you get down to a child node of a show, for instance The Wire/Dirs/Season? 4/Files, there are no entries in the dictionary.

Based on your reply to the original bug description, seems there is no way to recover from this?

comment:5 in reply to: ↑ 4 ; follow-up: ↓ 6 Changed 6 years ago by gbooker

Replying to anonymous:

Quit Front Row

Most likely, you didn't actually quit Front Row, but instead just hid it. Leaving Front Row on normal circumstances does not quit it; it just hides itself. You can quit it by hitting Cmd-Opt-Esc (it will not bring up a force quit dialog, just will quit it outright), or enable the UI Close option in Sapphire which gives you another menu option that will quit Front Row.

comment:6 in reply to: ↑ 5 ; follow-up: ↓ 7 Changed 6 years ago by anonymous

Replying to gbooker:

Replying to anonymous:

Quit Front Row

Most likely, you didn't actually quit Front Row, but instead just hid it.

I terminated the process from the command-line.

comment:7 in reply to: ↑ 6 ; follow-up: ↓ 8 Changed 6 years ago by anwnn

Replying to anonymous:

Replying to gbooker:

Replying to anonymous:

Quit Front Row

Most likely, you didn't actually quit Front Row, but instead just hid it.

I terminated the process from the command-line.

I checked out the Sapphire source and have been poking at it for a bit. Turned on some logging in the -pruneMetaData: message to see what I could figure out.

If I have all the files populated in Sapphire correctly, back out of front row (not quit), and disconnect the mount, the data is not pruned. However, when I reconnect the mount, I see /Volumes come up as the path in pruneMetaData. It's at this point that Sapphire seems to clear the metadata, on re-mount.

I added a check at the top of that message: if([path isEqualToString:@"/Volumes"]) {

return ret;

}

Which seems to do the trick. If I disconnect the mount, Sapphire correctly shows nothing in the TV Shows or Movies category. When I re-mount it and browse Sapphire, all the metadata is in-tact.

Also, this is all on Leopard rather than an AppleTV, so fsevents is in play here.

comment:8 in reply to: ↑ 7 ; follow-up: ↓ 9 Changed 6 years ago by gbooker

Replying to anwnn:

However, when I reconnect the mount, I see /Volumes come up as the path in pruneMetaData. It's at this point that Sapphire seems to clear the metadata, on re-mount.

What's the contents of /Volumes at that point?

Also, this is all on Leopard rather than an AppleTV, so fsevents is in play here.

That could be responsible for some of it.

The next major version will track which directories are mounts, and thus will know when to not prune metadata due to a missing mount.

comment:9 in reply to: ↑ 8 Changed 6 years ago by anwnn

Replying to gbooker:

Replying to anwnn:

However, when I reconnect the mount, I see /Volumes come up as the path in pruneMetaData. It's at this point that Sapphire seems to clear the metadata, on re-mount.

What's the contents of /Volumes at that point?

It seems when the notification is posted, /Volumes just has the root/boot volume. Then the network share is mounted and appears in /Volumes. I'd need to do some more testing to confirm.

Also, this is all on Leopard rather than an AppleTV, so fsevents is in play here.

That could be responsible for some of it.

The next major version will track which directories are mounts, and thus will know when to not prune metadata due to a missing mount.

Glad to hear it. The small fix I applied is working for now, but an official one will be great.

comment:10 follow-up: ↓ 11 Changed 5 years ago by squidlet@…

How soon will the new version be fixed? What would it take to have it fixed today?

comment:11 in reply to: ↑ 10 ; follow-up: ↓ 12 Changed 5 years ago by gbooker

Replying to squidlet@optusnet.com.au:

How soon will the new version be fixed?

When it's ready.

What would it take to have it fixed today?

Considering how busy I am right now, I'd say about $200 an hour; or fix it yourself.

comment:12 in reply to: ↑ 11 ; follow-up: ↓ 13 Changed 5 years ago by anonymous

Replying to gbooker:

Replying to squidlet@optusnet.com.au:

How soon will the new version be fixed?

When it's ready.

What would it take to have it fixed today?

Considering how busy I am right now, I'd say about $200 an hour; or fix it yourself.

Please send me your contact details.

comment:13 in reply to: ↑ 12 Changed 5 years ago by gbooker

Replying to anonymous:

Please send me your contact details.

I was outright serious; were you? You replied as anonymous, which makes me doubt your sincerity.

comment:14 Changed 4 years ago by gbooker

  • Status changed from new to closed
  • Resolution set to fixed

Changed long ago.

Note: See TracTickets for help on using tickets.