Bug 2505 - Web error: There is no ":" skin, try http://server:9000/ instead.
: Web error: There is no ":" skin, try http://server:9000/ instead.
Status: RESOLVED FIXED
Product: Logitech Media Server
Classification: Unclassified
Component: Web Interface
: 6.2.0
: Macintosh MacOS X 10.4
: P2 normal (vote)
: ---
Assigned To: Dan Sully
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2005-11-06 12:07 UTC by Paul Forgey
Modified: 2009-09-08 09:26 UTC (History)
2 users (show)

See Also:
Category: ---


Attachments
d_http output (8.52 KB, text/plain)
2005-11-06 20:51 UTC, Paul Forgey
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Paul Forgey 2005-11-06 12:07:13 UTC
While the server is rescanning, the current playlist frame shows the following error only in Safari:

404 Not Found:
There is no ":" skin, try http://server:9000/ instead.
(where "server" is actually the server name in the requested url)

My Safari version is 2.0.2 (416.12).  This problem does not occur in IE or Firefox from either MacOS or 
Windows XP.  The server itself is running on Windows XP.
Comment 1 KDF 2005-11-06 15:38:31 UTC
Which skin are you using? Default and fishbone seem ok, but I only have access
to safari 1.3
Comment 2 Paul Forgey 2005-11-06 19:13:21 UTC
Default skin.  I haven't tried others.  When it does happen, it keeps happening even after the server has completed its rescan until I quit and restart Safari (and not just dump it's cache).  In fact when I just reproduced it again this time the upper left frame gives the error:

404 Not Found: setup.html
Try adding page=server.

While this points to a Safari error, it's curious that it is only triggered during a rescan.
Comment 3 Blackketter Dean 2005-11-06 20:39:43 UTC
I have seen this error before, but haven't been able to reproduce it.  I don't think it's specific to rescanning and I've seen it in Omniweb too.  If you can reproduce it, Paul, can you run the server with the d_http debugging  flag turned on and then trigger the bug?  The log output would probably be very revealing.
Comment 4 Paul Forgey 2005-11-06 20:51:57 UTC
Created attachment 996 [details]
d_http output
Comment 5 Blackketter Dean 2005-11-06 21:13:23 UTC
Hm, the log indicates that the bogus URL is in the request:

GET HTTP/1.1 /:///&d=1131338871674

I can see this get created in common.js:

		var plloc = top.frames.playlist.location;
		var newloc = plloc.protocol + '//' + plloc.host + plloc.pathname
			+ plloc.search.replace(/&d=\d+/, '') + '&d=' + new Date().getTime() + plloc.hash;
		plloc.replace(newloc);

which implies that the top.frames.playlist.location might be bogus in some way, possibly due to Safari or could be in the source.  Speculation at this point, since I can't reproduce it, but somebody who knows more about that script might have some insight.  KDF?

Also, Paul, can you reproduce this in Firefox, if you have that installed?


Comment 6 Paul Forgey 2005-11-06 21:25:21 UTC
Firefox I have installed on XP.  Cannot reproduce it using that browser, nor can I using IE.
Comment 7 KDF 2005-11-06 22:31:35 UTC
I think this script came from jacob, to add some sort of timestamp to the playlist url so that safari would actually refresh when the status pane refreshed
Comment 8 Blackketter Dean 2005-11-10 12:17:24 UTC
jacob: do you have an idea of what's going on here with safari?
Comment 9 Jacob Potter 2005-11-10 21:21:55 UTC
I think I found it...

There was a race condition such that if the onLoad() function fires before Safari fills in the frame location data, the location would be read as null; the check against that was looking at the wrong value. This would be more likely to happen during rescanning, when the server is slow in general.

I caught Safari returning an empty location object, but didn't see it actually redirecting to the invalid URL; change 5138 should fix things.
Comment 10 Blackketter Dean 2005-12-16 10:22:04 UTC
I've also merged this into the 6.2.x branch for tonight's nightly build.  Please give that a shot and reopen the bug if you can reproduce the problem.