NLog.Targets.ElasticSearch icon indicating copy to clipboard operation
NLog.Targets.ElasticSearch copied to clipboard

not suport ElasticSearch.Net V7.17.2

Open EachShow opened this issue 2 years ago • 1 comments

NEST 7.17.1 works fine update the nuget NEST to 7.17.2, Nlog crashed.

Stack overflow.
   at System.Reflection.RuntimeAssembly.GetModules(System.Runtime.CompilerServices.QCallAssembly, Boolean, Boolean, System.Runtime.CompilerServices.ObjectHandleOnStack)
   at System.Reflection.RuntimeAssembly.GetModulesInternal(Boolean, Boolean)
   at System.Reflection.RuntimeAssembly.get_DefinedTypes()
   at DynamicClass.Serialize(Byte[][], System.Object[], Elasticsearch.Net.Utf8Json.JsonWriter ByRef, System.Reflection.Assembly, Elasticsearch.Net.Utf8Json.IJsonFormatterResolver)
   at Elasticsearch.Net.Utf8Json.Resolvers.DynamicMethodAnonymousFormatter`1[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Serialize(Elasticsearch.Net.Utf8Json.JsonWriter ByRef, System.__Canon, Elasticsearch.Net.Utf8Json.IJsonFormatterResolver)
   at DynamicClass.Serialize(Byte[][], System.Object[], Elasticsearch.Net.Utf8Json.JsonWriter ByRef, System.Reflection.ConstructorInfo, Elasticsearch.Net.Utf8Json.IJsonFormatterResolver)
   at Elasticsearch.Net.Utf8Json.Resolvers.DynamicMethodAnonymousFormatter`1[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Serialize(Elasticsearch.Net.Utf8Json.JsonWriter ByRef, System.__Canon, Elasticsearch.Net.Utf8Json.IJsonFormatterResolver)
   at Elasticsearch.Net.Utf8Json.Formatters.CollectionFormatterBase`4[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Elasticsearch.Net.Utf8Json.Internal.ArrayBuffer`1[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], Elasticsearch.Net, Version=7.0.0.0, Culture=neutral, PublicKeyToken=96c599bbe3e70f5d],[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Serialize(Elasticsearch.Net.Utf8Json.JsonWriter ByRef, System.__Canon, Elasticsearch.Net.Utf8Json.IJsonFormatterResolver)
   at DynamicClass.Serialize(Byte[][], System.Object[], Elasticsearch.Net.Utf8Json.JsonWriter ByRef, System.Reflection.TypeInfo, Elasticsearch.Net.Utf8Json.IJsonFormatterResolver)
   at Elasticsearch.Net.Utf8Json.Resolvers.DynamicMethodAnonymousFormatter`1[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Serialize(Elasticsearch.Net.Utf8Json.JsonWriter ByRef, System.__Canon, Elasticsearch.Net.Utf8Json.IJsonFormatterResolver)
   at Elasticsearch.Net.Utf8Json.Formatters.CollectionFormatterBase`4[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Elasticsearch.Net.Utf8Json.Internal.ArrayBuffer`1[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], Elasticsearch.Net, Version=7.0.0.0, Culture=neutral, PublicKeyToken=96c599bbe3e70f5d],[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Serialize(Elasticsearch.Net.Utf8Json.JsonWriter ByRef, System.__Canon, Elasticsearch.Net.Utf8Json.IJsonFormatterResolver)
   at DynamicClass.Serialize(Byte[][], System.Object[], Elasticsearch.Net.Utf8Json.JsonWriter ByRef, System.Reflection.Assembly, Elasticsearch.Net.Utf8Json.IJsonFormatterResolver)
   at Elasticsearch.Net.Utf8Json.Resolvers.DynamicMethodAnonymousFormatter`1[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Serialize(Elasticsearch.Net.Utf8Json.JsonWriter ByRef, System.__Canon, Elasticsearch.Net.Utf8Json.IJsonFormatterResolver)
   at DynamicClass.Serialize(Byte[][], System.Object[], Elasticsearch.Net.Utf8Json.JsonWriter ByRef, System.Reflection.Module, Elasticsearch.Net.Utf8Json.IJsonFormatterResolver)
   at Elasticsearch.Net.Utf8Json.Resolvers.DynamicMethodAnonymousFormatter`1[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Serialize(Elasticsearch.Net.Utf8Json.JsonWriter ByRef, System.__Canon, Elasticsearch.Net.Utf8Json.IJsonFormatterResolver)
   at DynamicClass.Serialize(Byte[][], System.Object[], Elasticsearch.Net.Utf8Json.JsonWriter ByRef, System.Reflection.ConstructorInfo, Elasticsearch.Net.Utf8Json.IJsonFormatterResolver)
   at Elasticsearch.Net.Utf8Json.Resolvers.DynamicMethodAnonymousFormatter`1[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Serialize(Elasticsearch.Net.Utf8Json.JsonWriter ByRef, System.__Canon, Elasticsearch.Net.Utf8Json.IJsonFormatterResolver)
   at Elasticsearch.Net.Utf8Json.Formatters.CollectionFormatterBase`4[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Elasticsearch.Net.Utf8Json.Internal.ArrayBuffer`1[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], Elasticsearch.Net, Version=7.0.0.0, Culture=neutral, PublicKeyToken=96c599bbe3e70f5d],[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Serialize(Elasticsearch.Net.Utf8Json.JsonWriter ByRef, System.__Canon, Elasticsearch.Net.Utf8Json.IJsonFormatterResolver)
   at DynamicClass.Serialize(Byte[][], System.Object[], Elasticsearch.Net.Utf8Json.JsonWriter ByRef, System.Reflection.TypeInfo, Elasticsearch.Net.Utf8Json.IJsonFormatterResolver)
   at Elasticsearch.Net.Utf8Json.Resolvers.DynamicMethodAnonymousFormatter`1[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Serialize(Elasticsearch.Net.Utf8Json.JsonWriter ByRef, System.__Canon, Elasticsearch.Net.Utf8Json.IJsonFormatterResolver)
   at Elasticsearch.Net.Utf8Json.Formatters.CollectionFormatterBase`4[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Elasticsearch.Net.Utf8Json.Internal.ArrayBuffer`1[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], Elasticsearch.Net, Version=7.0.0.0, Culture=neutral, PublicKeyToken=96c599bbe3e70f5d],[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Serialize(Elasticsearch.Net.Utf8Json.JsonWriter ByRef, System.__Canon, Elasticsearch.Net.Utf8Json.IJsonFormatterResolver)
   at DynamicClass.Serialize(Byte[][], System.Object[], Elasticsearch.Net.Utf8Json.JsonWriter ByRef, System.Reflection.Assembly, Elasticsearch.Net.Utf8Json.IJsonFormatterResolver)
   at Elasticsearch.Net.Utf8Json.Resolvers.DynamicMethodAnonymousFormatter`1[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Serialize(Elasticsearch.Net.Utf8Json.JsonWriter ByRef, System.__Canon, Elasticsearch.Net.Utf8Json.IJsonFormatterResolver)
   at DynamicClass.Serialize(Byte[][], System.Object[], Elasticsearch.Net.Utf8Json.JsonWriter ByRef, System.Reflection.Module, Elasticsearch.Net.Utf8Json.IJsonFormatterResolver)
   at Elasticsearch.Net.Utf8Json.Resolvers.DynamicMethodAnonymousFormatter`1[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Serialize(Elasticsearch.Net.Utf8Json.JsonWriter ByRef, System.__Canon, Elasticsearch.Net.Utf8Json.IJsonFormatterResolver)
   at DynamicClass.Serialize(Byte[][], System.Object[], Elasticsearch.Net.Utf8Json.JsonWriter ByRef, System.Reflection.RuntimeMethodInfo, Elasticsearch.Net.Utf8Json.IJsonFormatterResolver)
   at Elasticsearch.Net.Utf8Json.Resolvers.DynamicMethodAnonymousFormatter`1[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Serialize(Elasticsearch.Net.Utf8Json.JsonWriter ByRef, System.__Canon, Elasticsearch.Net.Utf8Json.IJsonFormatterResolver)
   at Elasticsearch.Net.Utf8Json.Formatters.DynamicObjectTypeFallbackFormatter.Serialize(Elasticsearch.Net.Utf8Json.JsonWriter ByRef, System.Object, Elasticsearch.Net.Utf8Json.IJsonFormatterResolver)
   at Elasticsearch.Net.Utf8Json.Formatters.DictionaryFormatterBase`5[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Collections.Generic.Dictionary`2+Enumerator[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Serialize(Elasticsearch.Net.Utf8Json.JsonWriter ByRef, System.__Canon, Elasticsearch.Net.Utf8Json.IJsonFormatterResolver)
   at Elasticsearch.Net.Utf8Json.Formatters.DynamicObjectTypeFallbackFormatter.Serialize(Elasticsearch.Net.Utf8Json.JsonWriter ByRef, System.Object, Elasticsearch.Net.Utf8Json.IJsonFormatterResolver)
   at Elasticsearch.Net.Utf8Json.JsonSerializer.SerializeUnsafe[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.__Canon, Elasticsearch.Net.Utf8Json.IJsonFormatterResolver)
   at Elasticsearch.Net.Utf8Json.JsonSerializer.Serialize[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.IO.Stream, System.__Canon, Elasticsearch.Net.Utf8Json.IJsonFormatterResolver)
   at Elasticsearch.Net.LowLevelRequestResponseSerializer.Serialize[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.__Canon, System.IO.Stream, Elasticsearch.Net.SerializationFormatting)
   at Elasticsearch.Net.DiagnosticsSerializerProxy.Serialize[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.__Canon, System.IO.Stream, Elasticsearch.Net.SerializationFormatting)
   at Elasticsearch.Net.PostData`1[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Write(System.IO.Stream, Elasticsearch.Net.IConnectionConfigurationValues)
   at Elasticsearch.Net.HttpConnection.SetContent(System.Net.Http.HttpRequestMessage, Elasticsearch.Net.RequestData)
   at Elasticsearch.Net.HttpConnection.Request[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](Elasticsearch.Net.RequestData)
   at Elasticsearch.Net.RequestPipeline.CallElasticsearch[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](Elasticsearch.Net.RequestData)
   at Elasticsearch.Net.Transport`1[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Request[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](Elasticsearch.Net.HttpMethod, System.String, Elasticsearch.Net.PostData, Elasticsearch.Net.IRequestParameters)
   at Elasticsearch.Net.ElasticLowLevelClient.DoRequest[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](Elasticsearch.Net.HttpMethod, System.String, Elasticsearch.Net.PostData, Elasticsearch.Net.IRequestParameters)
   at Elasticsearch.Net.ElasticLowLevelClient.Bulk[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](Elasticsearch.Net.PostData, Elasticsearch.Net.BulkRequestParameters)
   at NLog.Targets.ElasticSearch.ElasticSearchTarget.SendBatch(System.Collections.Generic.ICollection`1<NLog.Common.AsyncLogEventInfo>)
   at NLog.Targets.ElasticSearch.ElasticSearchTarget.Write(NLog.Common.AsyncLogEventInfo)
   at NLog.Targets.Target.WriteAsyncThreadSafe(NLog.Common.AsyncLogEventInfo)
   at NLog.Targets.Target.WriteAsyncLogEvent(NLog.Common.AsyncLogEventInfo)
   at NLog.LoggerImpl.WriteToTargetWithFilterChain(NLog.Targets.Target, NLog.Filters.FilterResult, NLog.LogEventInfo, NLog.Common.AsyncContinuation)
   at NLog.LoggerImpl.Write(System.Type, NLog.Internal.TargetWithFilterChain, NLog.LogEventInfo, NLog.LogFactory)
   at NLog.Logger.WriteToTargets(System.Type, NLog.LogEventInfo, NLog.Internal.TargetWithFilterChain)
   at NLog.Logger.Log(System.Type, NLog.LogEventInfo)
   at NLog.Extensions.Logging.NLogLogger.Log[[Microsoft.Extensions.Logging.LoggerMessage+LogValues`4[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]](Microsoft.Extensions.Logging.LogLevel, Microsoft.Extensions.Logging.EventId, LogValues`4<System.__Canon,System.__Canon,System.__Canon,System.__Canon>, System.Exception, System.Func`3<LogValues`4<System.__Canon,System.__Canon,System.__Canon,System.__Canon>,System.Exception,System.String>)

exception.txt

EachShow avatar Jun 06 '22 07:06 EachShow

The bug is in NEST / Elastic-Client and not in the NLog-target. You should report the bug elsewhere.

Alternative you can try and protect yourself from the very fragile Json-Serializer in NEST / Elastic-Client by specifying MaxRecursionLimit="1"

snakefoot avatar Aug 11 '22 15:08 snakefoot