Bug 11899 - Migration from Power PC to Intel Mac chokes on Strings.bin
: Migration from Power PC to Intel Mac chokes on Strings.bin
Status: RESOLVED FIXED
Product: Logitech Media Server
Classification: Unclassified
Component: Mac Preference Pane
: 7.3.2
: Macintosh MacOS X 10.5
: -- major (vote)
: ---
Assigned To: Michael Herger
http://forums.slimdevices.com/showthr...
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2009-04-24 12:58 UTC by William Cattey
Modified: 2009-09-08 09:32 UTC (History)
1 user (show)

See Also:
Category: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description William Cattey 2009-04-24 12:58:20 UTC
I just migrated to an Intel Mac from a Power PC Mac.
Squeeze Center would not start.
The root cause is: Byte order dependency in the strings cache.

Diagnosing this problem is complicated by the following which could also be enhanced:

1. The Wiki page on clean install for Mac at:
http://wiki.slimdevices.com/index.php/MacInstallationGuide
says to remove/Users/fred/Library/Caches/SqueezeCenter/
but it's not called SqueezeCenter yet. It's called SlimServer still.

The file name should probably be changed in the code, and the Wiki
page should give both names.

2. The error message displayed is a perl crash:
[09-04-24 14:30:23.3141] Slim::Utils::Strings::loadStrings (135) Warning: Can't use an undefined value as an ARRAY reference at /Library/PreferencePanes/SqueezeCenter.prefPane/Contents/server/Slim/Utils/Strings.pm line 135.

The perl code should be enhanced to give better error messages.
Indeed, when I followed instructions to:

cd /Library/PreferencePanes/SqueezeCenter.prefPane/Contents/server
and run:
"perl slimserver.pl --debug server=debug" 

The debug output was IMMEDIATELY helpful:

[09-04-24 15:20:40.5093] Slim::Utils::Strings::loadStrings (111) Retrieving string data from string cache: /Users/wdc/Library/Caches/SlimServer/strings.bin
[09-04-24 15:20:40.5109] Slim::Utils::Strings::loadStrings (115) Tried loading string: Byte order is not compatible at ../../lib/Storable.pm (autosplit into ../../lib/auto/Storable/_retrieve.al) line 331, at /Library/PreferencePanes/SqueezeCenter.prefPane/Contents/server/Slim/Utils/Strings.pm line 113

I immediately realized I had byte-order problem with my cache and it was happening because when I thought I'd deleted my cache, I had not.

Perhaps this diagnostic should be always run instead of only when server debug is set?

The Forum thread:
http://forums.slimdevices.com/showthread.php?t=60440&highlight=Mac+clean+install

Was VERY helpful. mherger deserves high praise for working on this issue with the various people.

Y'all might want to fatten up the Mac FAQ to contain some of the lore from that thread.

Thanks for a GREAT product.  I hope this report makes it easier for others to migrate from their older Macs to newer ones.
Comment 1 William Cattey 2009-04-24 12:59:25 UTC
OOPS!  THe title should say "Caches/SlimServer/strings.bin" not Strings.db.
Oh well.  :-(
Comment 2 James Richardson 2009-04-25 09:50:47 UTC
William: The WIKI page is user supported, feel free to "fatten up the Mac FAQ" as needed.  Please modify the page in question with the proper location for PowerPC

Michael: Is this yours to handle or do you need QA to do anything.
Comment 3 Michael Herger 2009-04-28 06:57:12 UTC
change 26256 - don't try to read strings from cache if strings.bin isn't a  
valid perl storable file
Comment 4 Michael Herger 2009-04-28 06:58:46 UTC
The above change should force SC to re-build the strings cache whenever an invalid cache file is detected.
Comment 5 William Cattey 2009-05-03 19:13:20 UTC
I just registered on the wiki so that I could update the clean install doc, but I'm not getting the email address verification.
Is it possible that the wiki's sendmail queue is clogged?
Comment 6 William Cattey 2009-05-11 18:27:44 UTC
Over the weekend I tried a fourth time to get the Wiki to send me a confirmation email, and this time it succeeded.

I just now updated the Wiki to name the additional directory "SlimServer" in the user's Library/Cache directory along with a caveat that the directory may not be present for all versions of Squeeze Center.

That should tidy up that loose end.

-Bill