ShokoAnime / ShokoServer

Repository for Shoko Server.
https://shokoanime.com/
MIT License
407 stars 74 forks source link

Keeps trying to update one and episode again and again + error when editing that same show #530

Closed Kezxo closed 7 years ago

Kezxo commented 7 years ago

JMM Server Version: v3.6.1.0 JMM Desktop Version: v3.6.1.0

I keep seeing this thing in my logs: Info|CommandProcessorGeneral.workerCommands_DoWork => CommandRequest_RefreshAnime.ProcessCommand => AnimeSeries.UpdateStats Starting Updating STATS for SERIES Series: Cowboy Bebop (25) (True - True - True) This happens about 30-50 times a day. Always that show and always that episode. Same exact message. Never saw any errors or anything like that until now. I searched for for cowboy bebop under collections in JMM Desktop and clicked Edit, didn't change anything and clicked Finish editing and this happened:

cbbb error

This is what the JMM Server log said:

[2016-12-16 13:02:54:721] Error|SyncMethodInvoker.Invoke => <no type>.SyncInvokeSaveSeries => JMMServiceImplementation.SaveSeries Newtonsoft.Json.JsonReaderException: Could not convert string to DateTime: 2016-12-01T17;40:42.0251516+01:00. Path 'DateTimeUpdated', line 1, position 226.
   at Newtonsoft.Json.JsonReader.ReadDateTimeString(String s)
   at Newtonsoft.Json.JsonTextReader.ReadStringValue(ReadType readType)
   at Newtonsoft.Json.JsonTextReader.ReadAsDateTime()
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.ReadForType(JsonReader reader, JsonContract contract, Boolean hasConverter)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
   at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
   at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
   at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
   at JMMServer.LZ4.CompressionHelper.DeserializeObject[T](Byte[] data, Int32 originalsize) in D:\My Files\Documents\GitHub\jmmserver\JMMServer\LZ4\CompressionHelper.cs:line 42
   at JMMServer.Entities.AnimeEpisode_User.get_Contract() in D:\My Files\Documents\GitHub\jmmserver\JMMServer\Entities\AnimeEpisode_User.cs:line 33
   at JMMServer.Entities.AnimeEpisode.GetUserContract(Int32 userid) in D:\My Files\Documents\GitHub\jmmserver\JMMServer\Entities\AnimeEpisode.cs:line 320
   at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer)
   at JMMServer.PlexAndKodi.Helper.GenerateFromSeries(Contract_AnimeSeries cserie, AnimeSeries ser, AniDB_Anime anidb, Int32 userid) in D:\My Files\Documents\GitHub\jmmserver\JMMServer\PlexAndKodi\Helper.cs:line 886
   at JMMServer.Repositories.AnimeSeries_UserRepository.UpdatePlexKodiContracts(AnimeSeries_User ugrp) in D:\My Files\Documents\GitHub\jmmserver\JMMServer\Repositories\AnimeSeries_UserRepository.cs:line 110
   at JMMServer.Repositories.AnimeSeries_UserRepository.Save(AnimeSeries_User obj) in D:\My Files\Documents\GitHub\jmmserver\JMMServer\Repositories\AnimeSeries_UserRepository.cs:line 77
   at JMMServer.Entities.AnimeSeries.UpdateStats(Boolean watchedStats, Boolean missingEpsStats, Boolean updateAllGroupsAbove) in D:\My Files\Documents\GitHub\jmmserver\JMMServer\Entities\AnimeSeries.cs:line 1026
   at JMMServer.JMMServiceImplementation.SaveSeries(Contract_AnimeSeries_Save contract, Int32 userID) in D:\My Files\Documents\GitHub\jmmserver\JMMServer\JMMServiceImplementation.cs:line 1133

This happens everytime do that for that show, works fine in others. Might be related to the thing with the constant updates above?

maxpiva commented 7 years ago

Did you change your windows language settings or something like that? seems a bad deserialization of time from the json.net component..

On Fri, Dec 16, 2016 at 9:44 AM, Kezxo notifications@github.com wrote:

JMM Server Version: v3.6.1.0 JMM Desktop Version: v3.6.1.0

I keep seeing this thing in my logs: Info|CommandProcessorGeneral.workerCommands_DoWork => CommandRequest_RefreshAnime.ProcessCommand => AnimeSeries.UpdateStats Starting Updating STATS for SERIES Series: Cowboy Bebop (25) (True - True - True) This happens about 30-50 times a day. Never saw any errors or anything like that until now. I searched for for cowboy bebop under collections in JMM Desktop and clicked Edit, didn't change anything and clicked Finish editing and this happened:

[image: cbbb error] https://cloud.githubusercontent.com/assets/4523551/21262926/2b634c3a-c394-11e6-8775-f81e4503a32c.jpg

This is what the JMM Server log said:

[2016-12-16 13:02:54:721] Error|SyncMethodInvoker.Invoke => .SyncInvokeSaveSeries => JMMServiceImplementation.SaveSeries Newtonsoft.Json.JsonReaderException: Could not convert string to DateTime: 2016-12-01T17;40:42.0251516+01:00. Path 'DateTimeUpdated', line 1, position 226. at Newtonsoft.Json.JsonReader.ReadDateTimeString(String s) at Newtonsoft.Json.JsonTextReader.ReadStringValue(ReadType readType) at Newtonsoft.Json.JsonTextReader.ReadAsDateTime() at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.ReadForType(JsonReader reader, JsonContract contract, Boolean hasConverter) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent) at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType) at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings) at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings) at JMMServer.LZ4.CompressionHelper.DeserializeObject[T](Byte[] data, Int32 originalsize) in D:\My Files\Documents\GitHub\jmmserver\JMMServer\LZ4\CompressionHelper.cs:line 42 at JMMServer.Entities.AnimeEpisode_User.get_Contract() in D:\My Files\Documents\GitHub\jmmserver\JMMServer\Entities\AnimeEpisode_User.cs:line 33 at JMMServer.Entities.AnimeEpisode.GetUserContract(Int32 userid) in D:\My Files\Documents\GitHub\jmmserver\JMMServer\Entities\AnimeEpisode.cs:line 320 at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable1 source, Func2 keySelector, Func2 elementSelector, IEqualityComparer1 comparer) at JMMServer.PlexAndKodi.Helper.GenerateFromSeries(Contract_AnimeSeries cserie, AnimeSeries ser, AniDB_Anime anidb, Int32 userid) in D:\My Files\Documents\GitHub\jmmserver\JMMServer\PlexAndKodi\Helper.cs:line 886 at JMMServer.Repositories.AnimeSeries_UserRepository.UpdatePlexKodiContracts(AnimeSeries_User ugrp) in D:\My Files\Documents\GitHub\jmmserver\JMMServer\Repositories\AnimeSeries_UserRepository.cs:line 110 at JMMServer.Repositories.AnimeSeries_UserRepository.Save(AnimeSeries_User obj) in D:\My Files\Documents\GitHub\jmmserver\JMMServer\Repositories\AnimeSeries_UserRepository.cs:line 77 at JMMServer.Entities.AnimeSeries.UpdateStats(Boolean watchedStats, Boolean missingEpsStats, Boolean updateAllGroupsAbove) in D:\My Files\Documents\GitHub\jmmserver\JMMServer\Entities\AnimeSeries.cs:line 1026 at JMMServer.JMMServiceImplementation.SaveSeries(Contract_AnimeSeries_Save contract, Int32 userID) in D:\My Files\Documents\GitHub\jmmserver\JMMServer\JMMServiceImplementation.cs:line 1133

This happens everytime do that for that show, works fine in others. Might be related to the thing with the constant updates above?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/japanesemediamanager/ShokoServer/issues/530, or mute the thread https://github.com/notifications/unsubscribe-auth/ABHDbV1f7tEluAsuvlFebKpzSLzuFDzbks5rIoekgaJpZM4LPJu1 .

maxpiva commented 7 years ago

Developers Note: ~~This might be a locale change, so from now on, we have to make sure we use invariant culture on json/xml serializations for storage. If we change it right now, we might broke every user with non en-us locale, so, we need to update probably db contracts version (but not recreate them), if the version is the current version deserialize with computer locale, if the new version deserialize with invariant locale. and change serialization to use invariant locale always.~~

Update: JSON.Net defaults to InvariantCulture !

da3dsoul commented 7 years ago

Is this fixed then?

Kezxo commented 7 years ago

I think I solved this by removing the show and adding it again.