Series Editor not bulk updating profiles

Hi,

I’m trying to use Series Editor to change the profile for 141 shows. I select them all, change the profile and hit save, at which point the profile flag changes as you’d expect.

If I refresh the page however, or click on one of the shows, the profile hasn’t actually changed. I left it a while to see if it was processing in the background, but it still doesn’t appear to have worked.

I’m on 2.0.0.3017.

EDIT: Ok, it’s weird, I can’t quite work it out. It seems if I change the profiles in Series Editor, then click out to a different view (so Calendar, Activity etc, ANYTHING but Series) the changes persist. I can click on a show and in the details it shows the correct profile. As soon as I click on the Series page though, it reverts.

Which OS in Sonarr running on?

It’s on OSX 10.10.2

It’s interesting. I’ve left it around an hour and a half since bulk changing the profiles. I can click on any show in the Calendar and they all show the proper profile, but as soon as I click on the Series page they all revert back :smile:

Not sure if there’s a wider issue at play. Checking the logs there are a few weird things:

    15-3-23 13:27:24.3|Warn|ArgumentValidator|value [/Volumes/NAS/TV/Crisis]  is not a valid *nix path. paths must start with /
15-3-23 13:27:24.4|Fatal|NzbDroneErrorPipeline|Request Failed

System.ArgumentException: value [/Volumes/NAS/TV/Crisis]  is not a valid *nix path. paths must start with /
Parameter name: path
at NzbDrone.Common.EnsureThat.EnsureStringExtensions.IsValidPath (NzbDrone.Common.EnsureThat.Param`1<string>) [0x00050] in m:\BuildAgent\work\6c3239faf2b92630\src\NzbDrone.Common\EnsureThat\EnsureStringExtensions.cs:109
at NzbDrone.Common.Disk.DiskProviderBase.GetPathRoot (string) [0x0000d] in m:\BuildAgent\work\6c3239faf2b92630\src\NzbDrone.Common\Disk\DiskProviderBase.cs:349
at NzbDrone.Core.DiskSpace.DiskSpaceService.<GetSeriesFreeSpace>b__2 (NzbDrone.Core.Tv.Series) [0x00000] in m:\BuildAgent\work\6c3239faf2b92630\src\NzbDrone.Core\DiskSpace\DiskSpaceService.cs:44
at System.Linq.Enumerable/<CreateSelectIterator>c__Iterator10`2<NzbDrone.Core.Tv.Series, string>.MoveNext () <0x00126>
at System.Linq.Enumerable/<CreateDistinctIterator>c__Iterator3`1<string>.MoveNext () <0x00227>
at NzbDrone.Core.DiskSpace.DiskSpaceService/<GetDiskSpace>d__4.MoveNext () [0x0013c] in m:\BuildAgent\work\6c3239faf2b92630\src\NzbDrone.Core\DiskSpace\DiskSpaceService.cs:66
at System.Collections.Generic.List`1<NzbDrone.Core.DiskSpace.DiskSpace>.AddEnumerable (System.Collections.Generic.IEnumerable`1<NzbDrone.Core.DiskSpace.DiskSpace>) <0x00096>
at System.Collections.Generic.List`1<NzbDrone.Core.DiskSpace.DiskSpace>.AddRange (System.Collections.Generic.IEnumerable`1<NzbDrone.Core.DiskSpace.DiskSpace>) <0x00067>
at NzbDrone.Core.DiskSpace.DiskSpaceService.GetFreeSpace () [0x00006] in m:\BuildAgent\work\6c3239faf2b92630\src\NzbDrone.Core\DiskSpace\DiskSpaceService.cs:35
at NzbDrone.Api.NzbDroneRestModule`1<NzbDrone.Api.DiskSpace.DiskSpaceResource>.ToListResource<NzbDrone.Core.DiskSpace.DiskSpace> (System.Func`1<System.Collections.Generic.IEnumerable`1<NzbDrone.Core.DiskSpace.DiskSpace>>) <0x00014>
at NzbDrone.Api.DiskSpace.DiskSpaceModule.GetFreeSpace () [0x00000] in m:\BuildAgent\work\6c3239faf2b92630\src\NzbDrone.Api\DiskSpace\DiskSpaceModule.cs:19
at NzbDrone.Api.REST.RestModule`1<NzbDrone.Api.DiskSpace.DiskSpaceResource>.<set_GetResourceAll>b__c (object) <0x00020>
at (wrapper dynamic-method) object.CallSite.Target (System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Func`2<object, object>,object) <IL 0x00038, 0x00085>
at Nancy.Routing.Route/<>c__DisplayClass4.<Wrap>b__3 (object,System.Threading.CancellationToken) <IL 0x0005f, 0x00108>

I’ve since deleted Crisis (wasn’t going to watch it anyway) to get rid of that error, but I’ve no idea why that show was singled out when it’s in the same structure as everything else (and it’s been there, fine, for a long time).

Also getting this:

15-3-23 13:36:58.1|Fatal|NzbDroneErrorPipeline|Request Failed

Newtonsoft.Json.JsonReaderException: Bad JSON escape sequence: \. Path '[41].overview', line 1, position 653370.
  at Newtonsoft.Json.JsonTextReader.ReadStringIntoBuffer (Char quote) [0x00000] in <filename unknown>:0 
  at Newtonsoft.Json.JsonTextReader.ParseString (Char quote) [0x00000] in <filename unknown>:0 
  at Newtonsoft.Json.JsonTextReader.ParseValue () [0x00000] in <filename unknown>:0 
  at Newtonsoft.Json.JsonTextReader.ReadInternal () [0x00000] in <filename unknown>:0 
  at Newtonsoft.Json.JsonReader.ReadAsStringInternal () [0x00000] in <filename unknown>:0 
  at Newtonsoft.Json.JsonTextReader.ReadAsString () [0x00000] in <filename unknown>:0 
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.ReadForType (Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Serialization.JsonContract contract, Boolean hasConverter) [0x00000] in <filename unknown>:0 
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject (System.Object newObject, Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Serialization.JsonObjectContract contract, Newtonsoft.Json.Serialization.JsonProperty member, System.String id) [0x00000] in <filename unknown>:0 

15-3-23 13:37:04.5|Fatal|NzbDroneErrorPipeline|Request Failed

Newtonsoft.Json.JsonReaderException: Could not convert string to DateTime: 0001-01-01T00:00:00Z. Path '[5].added', line 1, position 42057.
  at Newtonsoft.Json.JsonReader.ReadAsDateTimeInternal () [0x00000] in <filename unknown>:0 
  at Newtonsoft.Json.JsonTextReader.ReadAsDateTime () [0x00000] in <filename unknown>:0 
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.ReadForType (Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Serialization.JsonContract contract, Boolean hasConverter) [0x00000] in <filename unknown>:0 
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject (System.Object newObject, Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Serialization.JsonObjectContract contract, Newtonsoft.Json.Serialization.JsonProperty member, System.String id) [0x00000] in <filename unknown>:0

Maybe DB corruption? https://trello.com/c/ulbTdXu6/832-sqlite-on-osx-prone-to-corruption

I work with SQL a bit for work so I can have a poke around in the DB on my machine to see if anything looks out of place. Anything specific to look for?

Which version of mono are you running? There were issues with mono 3.4, but could still be present from then,

DB corruption usually results in the entire DB not working (at least thats the most common on OS X).

Right OK, fair enough :smile:

My mono version appears to be 3.10.0 ((detached/47db868 Thu Oct 2 22:04:39 EDT 2014)

I actually went through this morning and manually changed every show myself, which appears to have worked fine, so it’s Series Editor specific it seems.

I’m having the same problem.

Debian jessie with mono 3.10.0

When I open the developer tools, and press save, I see a 500 error, which corresponds to following log entry:

Message
> Request Failed: Could not convert string to DateTime: 2015-05-22T16:35:17.682527Z. Path ‘[46].added’, line 1, position 135941.

Exception
> Newtonsoft.Json.JsonReaderException: Could not convert string to DateTime: 2015-05-22T16:35:17.682527Z. Path ‘[46].added’, line 1, position 135941.

at Newtonsoft.Json.JsonReader.ReadAsDateTimeInternal () [0x00000] in :0
at Newtonsoft.Json.JsonTextReader.ReadAsDateTime () [0x00000] in :0
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.ReadForType (Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Serialization.JsonContract contract, Boolean hasConverter) [0x00000] in :0
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject (System.Object newObject, Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Serialization.JsonObjectContract contract, Newtonsoft.Json.Serialization.JsonProperty member, System.String id) [0x00000] in :0

Might not end up being the solution, but I think trimming down what we send back to the server when manually editing will help, especially when one property fails like this.

You can also try doing the change in smaller batches as that has helped in other cases.

Smaller batches indeed work, thanks markus101!

Some more information:

  • after receiving one 500 error you need to reload for any other operation to succeed (after one 500 even selecting just one series won’t save anymore)
  • batches of 20 usually work
  • when they don’t, hitting refresh and retrying the exact same batch usually does work (so there’s no hard and fast limit to the size it seems, unless the size can vary even when the same batch is selected?)

And thank you so much for integrating shift-click! It probably saved me a case of RSI :smile: