Skip to content

Error with large document #5172

@juliozambonin

Description

@juliozambonin

var max = StringEncoding.UTF8.GetMaxByteCount(value.Length) + 2;

Hello. I'm using the Ingest Attachment plugin to index documents. Indexing is failing with large documents, such as a 750mb txt.
In this line mentioned, the value.length is greater than the type int can support, causing an exception: "The resulting number of bytes is greater than the maximum number that can be returned as an integer."

DebugInformation:

FailureReason: Unrecoverable/Unexpected BadRequest while attempting PUT on http://localhost:9200/busca/_doc/10213?pipeline=attachments

Audit exception in step 1 BadRequest:

System.ArgumentOutOfRangeException: Número excessivo de caracteres. O número de bytes resultante é maior do que pode ser retornado como int.
Nome do parâmetro: charCount
em System.Text.UTF8Encoding.GetMaxByteCount(Int32 charCount)
em Elasticsearch.Net.Utf8Json.JsonWriter.WriteString(String value)
em Serialize(Byte[][] , Object[] , JsonWriter& , DocumentoBuscaInfo , IJsonFormatterResolver )
em Elasticsearch.Net.Utf8Json.Resolvers.DynamicMethodAnonymousFormatter1.Serialize(JsonWriter& writer, T value, IJsonFormatterResolver formatterResolver) em Elasticsearch.Net.Utf8Json.JsonSerializer.SerializeUnsafe[T](T value, IJsonFormatterResolver resolver) em Elasticsearch.Net.Utf8Json.JsonSerializer.Serialize[T](Stream stream, T value, IJsonFormatterResolver resolver) em Elasticsearch.Net.DiagnosticsSerializerProxy.Serialize[T](T data, Stream stream, SerializationFormatting formatting) em Nest.ProxyRequestFormatterBase2.Serialize(JsonWriter& writer, TRequestInterface value, IJsonFormatterResolver formatterResolver)
em Elasticsearch.Net.Utf8Json.JsonSerializer.SerializeUnsafe[T](T value, IJsonFormatterResolver resolver)
em Elasticsearch.Net.Utf8Json.JsonSerializer.Serialize[T](Stream stream, T value, IJsonFormatterResolver resolver)
em Elasticsearch.Net.DiagnosticsSerializerProxy.Serialize[T](T data, Stream stream, SerializationFormatting formatting)
em Elasticsearch.Net.SerializableData1.Write(Stream writableStream, IConnectionConfigurationValues settings) em Elasticsearch.Net.HttpWebRequestConnection.Request[TResponse](RequestData requestData) em Elasticsearch.Net.RequestPipeline.CallElasticsearch[TResponse](RequestData requestData) em Elasticsearch.Net.Transport1.Request[TResponse](HttpMethod method, String path, PostData data, IRequestParameters requestParameters)

Inner Exception: Número excessivo de caracteres. O número de bytes resultante é maior do que pode ser retornado como int.

Nome do parâmetro: charCount
System.ArgumentOutOfRangeException: Número excessivo de caracteres. O número de bytes resultante é maior do que pode ser retornado como int.
Nome do parâmetro: charCount
em System.Text.UTF8Encoding.GetMaxByteCount(Int32 charCount)
em Elasticsearch.Net.Utf8Json.JsonWriter.WriteString(String value)
em Serialize(Byte[][] , Object[] , JsonWriter& , DocumentoBuscaInfo , IJsonFormatterResolver )
em Elasticsearch.Net.Utf8Json.Resolvers.DynamicMethodAnonymousFormatter1.Serialize(JsonWriter& writer, T value, IJsonFormatterResolver formatterResolver) em Elasticsearch.Net.Utf8Json.JsonSerializer.SerializeUnsafe[T](T value, IJsonFormatterResolver resolver) em Elasticsearch.Net.Utf8Json.JsonSerializer.Serialize[T](Stream stream, T value, IJsonFormatterResolver resolver) em Elasticsearch.Net.DiagnosticsSerializerProxy.Serialize[T](T data, Stream stream, SerializationFormatting formatting) em Nest.ProxyRequestFormatterBase2.Serialize(JsonWriter& writer, TRequestInterface value, IJsonFormatterResolver formatterResolver)
em Elasticsearch.Net.Utf8Json.JsonSerializer.SerializeUnsafe[T](T value, IJsonFormatterResolver resolver)
em Elasticsearch.Net.Utf8Json.JsonSerializer.Serialize[T](Stream stream, T value, IJsonFormatterResolver resolver)
em Elasticsearch.Net.DiagnosticsSerializerProxy.Serialize[T](T data, Stream stream, SerializationFormatting formatting)
em Elasticsearch.Net.SerializableData1.Write(Stream writableStream, IConnectionConfigurationValues settings) em Elasticsearch.Net.HttpWebRequestConnection.Request[TResponse](RequestData requestData) em Elasticsearch.Net.RequestPipeline.CallElasticsearch[TResponse](RequestData requestData) em Elasticsearch.Net.Transport1.Request[TResponse](HttpMethod method, String path, PostData data, IRequestParameters requestParameters)

Exception:

Elasticsearch.Net.UnexpectedElasticsearchClientException: Número excessivo de caracteres. O número de bytes resultante é maior do que pode ser retornado como int.
Nome do parâmetro: charCount ---> System.ArgumentOutOfRangeException: Número excessivo de caracteres. O número de bytes resultante é maior do que pode ser retornado como int.
Nome do parâmetro: charCount
em System.Text.UTF8Encoding.GetMaxByteCount(Int32 charCount)
em Elasticsearch.Net.Utf8Json.JsonWriter.WriteString(String value)
em Serialize(Byte[][] , Object[] , JsonWriter& , DocumentoBuscaInfo , IJsonFormatterResolver )
em Elasticsearch.Net.Utf8Json.Resolvers.DynamicMethodAnonymousFormatter1.Serialize(JsonWriter& writer, T value, IJsonFormatterResolver formatterResolver) em Elasticsearch.Net.Utf8Json.JsonSerializer.SerializeUnsafe[T](T value, IJsonFormatterResolver resolver) em Elasticsearch.Net.Utf8Json.JsonSerializer.Serialize[T](Stream stream, T value, IJsonFormatterResolver resolver) em Elasticsearch.Net.DiagnosticsSerializerProxy.Serialize[T](T data, Stream stream, SerializationFormatting formatting) em Nest.ProxyRequestFormatterBase2.Serialize(JsonWriter& writer, TRequestInterface value, IJsonFormatterResolver formatterResolver)
em Elasticsearch.Net.Utf8Json.JsonSerializer.SerializeUnsafe[T](T value, IJsonFormatterResolver resolver)
em Elasticsearch.Net.Utf8Json.JsonSerializer.Serialize[T](Stream stream, T value, IJsonFormatterResolver resolver)
em Elasticsearch.Net.DiagnosticsSerializerProxy.Serialize[T](T data, Stream stream, SerializationFormatting formatting)
em Elasticsearch.Net.SerializableData1.Write(Stream writableStream, IConnectionConfigurationValues settings) em Elasticsearch.Net.HttpWebRequestConnection.Request[TResponse](RequestData requestData) em Elasticsearch.Net.RequestPipeline.CallElasticsearch[TResponse](RequestData requestData) em Elasticsearch.Net.Transport1.Request[TResponse](HttpMethod method, String path, PostData data, IRequestParameters requestParameters)
--- Fim do rastreamento de pilha de exceções internas ---
em Elasticsearch.Net.Transport1.Request[TResponse](HttpMethod method, String path, PostData data, IRequestParameters requestParameters) em Nest.ElasticClient.Index[TDocument](IIndexRequest1 request)
em Docspider.Busca.ElasticSearchDL.IndexacaoBusca.IncluirDocumento(DocumentoBuscaInfo documentoBusca)
em Docspider.Busca.BL.IndexacaoBusca.IncluirDocumento(DocumentoBuscaInfo documentoBusca, Boolean indexacaoCompleta)
em Docspider.Busca.BL.IndexacaoBusca.ObterDocumentosParaIndexacao(Nullable1 dataBaseParaBuscaDeDocumentos, List1 idsDeDocumentosNaoIndexadosAnteriormente, ModoDeIndexacao modoDeIndexacao, Boolean& ocorreramErrosNaIndexacao)

exception

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions