Jump to content

Reports broken in 3.0.5818


Recommended Posts

Posted

[i opened a new issue in Github, but Github currently thinks I'm a new user robot so it doesn't look like it actually shows up yet so I'm also posting it here.]

With the 3.0.5818 release, the Reports page is broken. When /emby/Reports/Items is called to load items filtered/sorted/whatever a server error is returned.

Request URL:

http://localhost:8096/emby/Reports/Items?StartIndex=0&Limit=100&IncludeItemTypes=Movie&HasQueryLimit=true&GroupBy=None&ReportView=ReportData&DisplayType=Screen&UserId=4aab1ca0204b41d693d66b434a2507c6&SortOrder=Ascending&ReportColumns=Status%7CName%7CDateAdded%7CReleaseDate%7CYear%7CGenres%7CParentalRating%7CCommunityRating%7CRuntime%7CVideo%7CResolution%7CAudio%7CSubtitles%7CTrailers%7CSpecials&SortBy=SortName

Response:

{"ResponseStatus":{"ErrorCode":"ArgumentException","Message":"Illegal characters in path.","StackTrace":" at System.IO.Path.GetExtension(String path)\r\n at MediaBrowser.Server.Implementations.HttpServer.SocketSharp.WebSocketSharpListener.LogRequest(ILogger logger, HttpListenerRequest request)\r\n at MediaBrowser.Server.Implementations.HttpServer.SocketSharp.WebSocketSharpListener.InitTask(HttpListenerContext context)"}}

It looks like with the last set of changes in WebSocketSharpListener.cs some changes were made with regards to logging. LogRequest looks like the below now, however request.Url.ToString() returns the URL that's been URLDecoded.

private static void LogRequest(ILogger logger, HttpListenerRequest request)
{
    var url = request.Url.ToString();
    var extension = Path.GetExtension(url);
    ...

In the original url the %7C decode into a pipe character | which is an invalid character in a path on a Windows-based system (not sure on Linux or OSX). It throws an error when Path.GetExtension() is called being an invalid character. Replacing the request.Url.ToString() with request.Url.OriginalString looks like it fixes the issue. OriginalString is probably a better choice anyways with respect to logging what the actual called URL was.

private static void LogRequest(ILogger logger, HttpListenerRequest request)
{
    var url = request.Url.OriginalString;
    var extension = Path.GetExtension(url);
moviemadnessman
Posted

I've also noticed that reports seem to be slow/unresponsive when switching parameters (like selecting/unselecting filter options), but have found that going to another screen (like to metadata manager) then back to reports has sometimes helped to fix this.  Shouldn't have to, but at least it is something.

 

However, when trying to export the report (that's fun to say), it throws up the same bunch of errors.  Here is a screenshot to hopefully aid the devs:

56a6559e39ed1_20160125at115937onMonitor_

Posted

I've also noticed that reports seem to be slow/unresponsive when switching parameters (like selecting/unselecting filter options), but have found that going to another screen (like to metadata manager) then back to reports has sometimes helped to fix this.  Shouldn't have to, but at least it is something.

 

Anything that has multiple columns with the column names separated with a pipe/%7C should throw the error and not return results. If you set the filter to just a single column, the report works correctly although of limited usefulness at that point.  Going to another page and then back resets the report to the initial view which does not require passing in column names, so data shows up.  Paging, sorting, filtering from that point on will fail.

 

If you inspect network requests within the browser's developer tools, you can easily see the requests that result in the status 500 errors.

Posted

I have noticed the same error occurring with the | character when selecting multiple genre filters.
 
Request url:

https://localhost:8920/emby/Users/73d546068ff74bffbdef48ce94f0a9d3/Items?SortBy=SortName&SortOrder=Ascending&IncludeItemTypes=Series&Recursive=true&Fields=PrimaryImageAspectRatio%2CSortName%2CSyncInfo&ImageTypeLimit=1&EnableImageTypes=Primary%2CBackdrop%2CBanner%2CThumb&StartIndex=0&Limit=100&ParentId=ed711cece30f2d4f4c4831a4955de235&Genres=Family%7CDrama& 

Response

{"ResponseStatus":{"ErrorCode":"ArgumentException","Message":"Illegal characters in path.","StackTrace":"   at System.IO.Path.GetExtension(String path)\r\n   at MediaBrowser.Server.Implementations.HttpServer.SocketSharp.WebSocketSharpListener.LogRequest(ILogger logger, HttpListenerRequest request)\r\n   at MediaBrowser.Server.Implementations.HttpServer.SocketSharp.WebSocketSharpListener.InitTask(HttpListenerContext context)"}}

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...