Jump to content

Potential issue with shared accounts across an extender


jfarre20
Go to solution Solved by ebr,

Recommended Posts

jfarre20

A family member came up to me today and said that their movie kept going to a black screen at random intervals. 

 

I investigated the issue and found out that media browser seems to be having issues determining what is playing on that device. It thinks multiple shows are being played at once. 

 

 

Let me explain why the system thinks this, my system is set up as follows:

 

There is the main HTPC with Media Browser Classic, 

 

4 - Xbox 360 Extenders are connected to the htpc

 

There is 1 mediabrowser account on the HTPC set to auto-login.

 

Everyone uses this one account for everything mediabrowser related.

 

 

 

Under active devices in the server control panel, I noticed that the HTPC device listed is changing:

 

Sometimes its labeled:

 

"DVR-DNSTR-001/Admin"

"3.0.214.0"

 

or sometimes its

 

"DVR-DNSTR-001/MCX4-DVR-DNSTR-001"

"3.0.214.0"

 

etc.

 

Now the playback shown in the panel is switching between the active shows on the extenders. This seems to be causing the playback to fail on some of the connected extenders, and crash the media browser app and sometimes crash media center to xbox guide. Sometimes it pairs the wrong account with the wrong show. MCX4 is playing a movie, while MCX3 is watching a show - yet sometimes its switched on the server active device display.

 

 

I assume if I set the extenders to log into their own accounts, the issue will be solved - but I wanted to bring this issue to your attention first. 

 

You may need to change the way the server software handles active devices.

 

 

Server Info:

 

Media Browser Server Version 3.0.5395.0

Edited by jfarre20
Link to comment
Share on other sites

techywarrior

You are correct in that having each extender use it's own account will fix the problem. Someone else reported this exact issue but there were some issues trying to get his assistance to track down the problem. If you are able post logs while multiple Xboxes are playing different content that may help. Unfortunately there isn't anyone on the dev team who has multiple Xboxes, and this is a weird issue, so community help is required in order to track the root issue down.

Link to comment
Share on other sites

I remember from MB2 plugin development, that the extender libraries do not provide any way for a developer to uniquely identify a device. So that's the reason that multiple user accounts will fix it.

Link to comment
Share on other sites

techywarrior

Luke, isn't the MCX1,2,3,4, etc. a method of identification? It shows up in the log like that so can't that be used? The same xbox won't have the same identifier each time but at least while multiple are connected they won't be switching.

 

Or is that oversimplifying the issue? I tried to help the last person that had this problem and I noticed that the Xboxes at least identified themselves separately in the log. I was expecting to see MCX1 listed twice playing different things but it was MCX1 playing A and MCX2 playing B.

Link to comment
Share on other sites

Mcx1-System Name, Mcx2-System Name is exactly how they are identified, even Ceton's My Media Center app allows a user to assign a custom id to each of these through its app to make them have an easier identification names for remote control functionality. It doesnt change the name on the PC or anywhere else but in their app I can easily identify Mcx-1 as my Ceton Echo, Mcx-2 as Basement 360 etc.

 

So what log do you need? Someone needs to sign in on multiple extenders with the same MB3 user account and play on each box?

  • Like 1
Link to comment
Share on other sites

The problem here may be the deviceId that I'm using.  Luke, is that value going to be the determining factor for identifying a unique session?

 

I think I can change the way that is generated to be sure it is unique for each 360.  Right now it probably isn't.

Link to comment
Share on other sites

jfarre20

Im not sure what logs you need, but I think this is related:

 

 

It repeats throughout the logs:

 

2014-11-04 22:29:02.0464 Info - App: Udp message sent to 192.168.1.37:55692
2014-11-04 22:29:03.0064 Info - ServerManager: Sending web socket message UserUpdated
2014-11-04 22:29:03.0064 Info - UserManager: Authentication request for Admin has succeeded.
2014-11-04 22:29:04.3615 Error - ServerManager: SessionWebSocketListener failed processing WebSocket message Context
	Value cannot be null.
	Parameter name: id
	System.ArgumentNullException
	   at MediaBrowser.Server.Implementations.Library.LibraryManager.GetItemById(Guid id)
	   at MediaBrowser.Server.Implementations.Session.SessionManager.ReportNowViewingItem(String sessionId, String itemId)
	   at MediaBrowser.Server.Implementations.Session.SessionWebSocketListener.ProcessContextMessage(WebSocketMessageInfo message)
	   at MediaBrowser.Server.Implementations.Session.SessionWebSocketListener.ProcessMessage(WebSocketMessageInfo message)
	   at MediaBrowser.Server.Implementations.ServerManager.ServerManager.<>c__DisplayClass3.<>c__DisplayClass5.<<ProcessWebSocketMessageReceived>b__2>d__7.MoveNext()
	
2014-11-04 22:29:04.4835 Error - ServerManager: SessionWebSocketListener failed processing WebSocket message Context
	Value cannot be null.
	Parameter name: id
	System.ArgumentNullException
	   at MediaBrowser.Server.Implementations.Library.LibraryManager.GetItemById(Guid id)
	   at MediaBrowser.Server.Implementations.Session.SessionManager.ReportNowViewingItem(String sessionId, String itemId)
	   at MediaBrowser.Server.Implementations.Session.SessionWebSocketListener.ProcessContextMessage(WebSocketMessageInfo message)
	   at MediaBrowser.Server.Implementations.Session.SessionWebSocketListener.ProcessMessage(WebSocketMessageInfo message)
	   at MediaBrowser.Server.Implementations.ServerManager.ServerManager.<>c__DisplayClass3.<>c__DisplayClass5.<<ProcessWebSocketMessageReceived>b__2>d__7.MoveNext()
	
2014-11-04 22:29:12.6584 Error - ServerManager: SessionWebSocketListener failed processing WebSocket message Context
	Value cannot be null.
	Parameter name: id
	System.ArgumentNullException
	   at MediaBrowser.Server.Implementations.Library.LibraryManager.GetItemById(Guid id)
	   at MediaBrowser.Server.Implementations.Session.SessionManager.ReportNowViewingItem(String sessionId, String itemId)
	   at MediaBrowser.Server.Implementations.Session.SessionWebSocketListener.ProcessContextMessage(WebSocketMessageInfo message)
	   at MediaBrowser.Server.Implementations.Session.SessionWebSocketListener.ProcessMessage(WebSocketMessageInfo message)
	   at MediaBrowser.Server.Implementations.ServerManager.ServerManager.<>c__DisplayClass3.<>c__DisplayClass5.<<ProcessWebSocketMessageReceived>b__2>d__7.MoveNext()
	
2014-11-04 22:29:12.7024 Error - ServerManager: SessionWebSocketListener failed processing WebSocket message Context
	Value cannot be null.
	Parameter name: id
	System.ArgumentNullException
	   at MediaBrowser.Server.Implementations.Library.LibraryManager.GetItemById(Guid id)
	   at MediaBrowser.Server.Implementations.Session.SessionManager.ReportNowViewingItem(String sessionId, String itemId)
	   at MediaBrowser.Server.Implementations.Session.SessionWebSocketListener.ProcessContextMessage(WebSocketMessageInfo message)
	   at MediaBrowser.Server.Implementations.Session.SessionWebSocketListener.ProcessMessage(WebSocketMessageInfo message)
	   at MediaBrowser.Server.Implementations.ServerManager.ServerManager.<>c__DisplayClass3.<>c__DisplayClass5.<<ProcessWebSocketMessageReceived>b__2>d__7.MoveNext()
	
2014-11-04 22:29:53.8255 Info - Dlna: DLNA Session created for Bedroom - Xbox 360
2014-11-04 22:30:41.0249 Error - App: Error getting response from http://192.168.1.37:2869/upnphost/udhisapi.dll?control=uuid:af4d19b5-046f-4548-88cb-451e2a2c9cf1+urn:upnp-org:serviceId:AVTransport
	The remote server returned an error: (500) Internal Server Error.
	System.Net.WebException
	   at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
	   at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
	--- End of stack trace from previous location where exception was thrown ---
	   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
	   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
	   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
	   at MediaBrowser.Common.Implementations.HttpClientManager.HttpClientManager.<SendAsyncInternal>d__1e.MoveNext()
	
2014-11-04 22:30:41.0249 Error - Dlna: Error updating device info for Xbox 360 Media Center Extender
	The remote server returned an error: (500) Internal Server Error.
	MediaBrowser.Model.Net.HttpException
	   at MediaBrowser.Common.Implementations.HttpClientManager.HttpClientManager.<SendAsyncInternal>d__1e.MoveNext()
	--- End of stack trace from previous location where exception was thrown ---
	   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
	   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
	   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
	   at MediaBrowser.Common.Implementations.HttpClientManager.HttpClientManager.<SendAsync>d__7.MoveNext()
	--- End of stack trace from previous location where exception was thrown ---
	   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
	   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
	   at MediaBrowser.Dlna.PlayTo.SsdpHttpClient.<SendCommandAsync>d__0.MoveNext()
	--- End of stack trace from previous location where exception was thrown ---
	   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
	   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
	   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
	   at MediaBrowser.Dlna.PlayTo.Device.<GetPositionInfo>d__a8.MoveNext()
	--- End of stack trace from previous location where exception was thrown ---
	   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
	   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
	   at MediaBrowser.Dlna.PlayTo.Device.<TimerCallback>d__51.MoveNext()
	InnerException: System.Net.WebException
	The remote server returned an error: (500) Internal Server Error.
	   at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
	   at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
	--- End of stack trace from previous location where exception was thrown ---
	   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
	   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
	   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
	   at MediaBrowser.Common.Implementations.HttpClientManager.HttpClientManager.<SendAsyncInternal>d__1e.MoveNext()
	
2014-11-04 22:30:41.0249 Error - HttpServer: Error receiving web socket message
	An internal WebSocket error occurred. Please see the innerException, if present, for more details. 
	System.Net.WebSockets.WebSocketException
	   at System.Net.WebSockets.WebSocketBase.ThrowIfConvertibleException(String methodName, Exception exception, CancellationToken cancellationToken, Boolean aborted)
	   at System.Net.WebSockets.WebSocketBase.<ReceiveAsyncCore>d__1.MoveNext()
	--- End of stack trace from previous location where exception was thrown ---
	   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
	   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
	   at MediaBrowser.Server.Implementations.HttpServer.NativeWebSocket.<ReceiveBytesAsync>d__4.MoveNext()
	--- End of stack trace from previous location where exception was thrown ---
	   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
	   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
	   at MediaBrowser.Server.Implementations.HttpServer.NativeWebSocket.<Receive>d__0.MoveNext()
	InnerException: System.Net.HttpListenerException
	The I/O operation has been aborted because of either a thread exit or an application request
	   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
	   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
	   at System.Net.WebSockets.WebSocketHttpListenerDuplexStream.<ReadAsyncCore>d__0.MoveNext()
	--- End of stack trace from previous location where exception was thrown ---
	   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
	   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
	   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
	   at System.Net.WebSockets.WebSocketBase.WebSocketOperation.<Process>d__47.MoveNext()
	--- End of stack trace from previous location where exception was thrown ---
	   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
	   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
	   at System.Net.WebSockets.WebSocketBase.<ReceiveAsyncCore>d__1.MoveNext()
	
 

I'll keep sifting thru the logs to see if anything sticks out.

Edited by jfarre20
Link to comment
Share on other sites

i may not be considered part of the dev team anymore but I have 3 360's and a ceton echo still in use on my setup, you need a classic log and a server log from me signed in as same user on 3 different extenders playing content on each?

Link to comment
Share on other sites

jfarre20

 The same xbox won't have the same identifier each time but at least while multiple are connected they won't be switching.

 

Actually, I think it has the same identifier every time, unless you redo the extender setup. 

 

The MCX identifiers seem to be accounts on the windows system. So \admin was the local account on the HTPC, but \mcx1 is an extender account - but it is present on the local system. I can actually log into it over rdp If I change some registry settings, but then its no longer an extender.

 

One good way to test this, is to do the Concurrent RDP session patch, Remote into the same pc multiple times under different accounts, and launch media center in each one and playback video - and see if the server software can differentiate the video. 

 

However, media center may not work under RDP without RemoteFX, which is only available on windows server under hyper v. 

Edited by jfarre20
Link to comment
Share on other sites

i may not be considered part of the dev team anymore but I have 3 360's and a ceton echo still in use on my setup, you need a classic log and a server log from me signed in as same user on 3 different extenders playing content on each?

 

Thanks but I think I know what the issue is and I'll have a dev version of MBC up in a few minutes for people to test with.

 

jfarre - Those errors are unrelated.

Link to comment
Share on other sites

  • Solution

Okay, anyone with this issue please try out dev build 228 of MBC and see if the issue goes away.  Thanks.

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...