Skip to content

Deserialization exception on index with refresh_interval set to -1 #1860

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
devodo opened this issue Feb 23, 2016 · 1 comment
Closed

Deserialization exception on index with refresh_interval set to -1 #1860

devodo opened this issue Feb 23, 2016 · 1 comment

Comments

@devodo
Copy link

devodo commented Feb 23, 2016

I'm getting an exception calling IElasticClient.GetIndex on an index with refresh_interval set to -1.

It looks like Elasticsearch is returning the value as a string with value "-1" and the Time(string timeUnit) constructor fails to parse this.

I'm running Elasticsearch 2.1.1 and Nest 2.0.2

The get index response from server is as follows:

{
  "unittests_202f924a92ce4f6cbf2e03c0a4dbf780_936eef1face8435783905d3ed8a039fa" : {
    "aliases" : { },
    "mappings" : { },
    "settings" : {
      "index" : {
        "creation_date" : "1456226507873",
        "refresh_interval" : "-1",
        "number_of_shards" : "5",
        "number_of_replicas" : "1",
        "uuid" : "A0RI04jfQMODn-nmX8hknQ",
        "version" : {
          "created" : "2010199"
        }
      }
    },
    "warmers" : { }
  }
}

Stack trace is as follows:

Elasticsearch.Net.UnexpectedElasticsearchClientException : Time expression '-1' string is invalid
Parameter name: timeUnit
  ----> System.ArgumentException : Time expression '-1' string is invalid
Parameter name: timeUnit`

   at Elasticsearch.Net.Transport.Request[TReturn](HttpMethod method, String path, PostData data, IRequestParameters requestParameters) in c:\code\elasticsearch-net\src\Elasticsearch.Net\Transport\Transport.cs:line 88
   at Elasticsearch.Net.ElasticLowLevelClient.IndicesGet[T](String index, Func requestParameters) in c:\code\elasticsearch-net\src\Elasticsearch.Net\ElasticLowLevelClient.Generated.cs:line 2910
   at Nest.LowLevelDispatch.IndicesGetDispatch[T](IRequest p) in c:\code\elasticsearch-net\src\Nest\_Generated\_LowLevelDispatch.generated.cs:line 1398
   at Nest.ElasticClient.Nest.IHighLevelToLowLevelDispatcher.Dispatch[TRequest,TQueryString,TResponse](TRequest request, Func responseGenerator, Func dispatch) in c:\code\elasticsearch-net\src\Nest\ElasticClient.cs:line 56
   at Kastr.Domain.Search.IndexAdmin.GetIndices(String indexName) in C:\dev\Kastr\backend\src\Kastr.Domain.Search\IndexAdmin.cs:line 314
   at Kastr.Domain.Tests.Search.IndexAdminTests.CanSetRefreshInterval() in C:\dev\Kastr\backend\src\Kastr.Domain.Tests\Search\IndexAdminTests.cs:line 175
--ArgumentException
   at Nest.Time..ctor(String timeUnit) in c:\code\elasticsearch-net\src\Nest\CommonOptions\TimeUnit\Time.cs:line 63
   at Nest.TimeJsonConverter.ReadJson(JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer) in c:\code\elasticsearch-net\src\Nest\CommonOptions\TimeUnit\TimeJsonConverter.cs:line 19
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.DeserializeConvertable(JsonConverter converter, JsonReader reader, Type objectType, 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.Linq.JToken.ToObject(Type objectType, JsonSerializer jsonSerializer)
   at Newtonsoft.Json.Linq.JToken.ToObject(Type objectType)
   at Newtonsoft.Json.Linq.JToken.ToObject[T]()
   at Nest.IndexSettingsConverter.Set[T](IIndexSettings s, IDictionary settings, String key, Action assign, JsonSerializer serializer) in c:\code\elasticsearch-net\src\Nest\IndexModules\IndexSettings\Settings\IndexSettingsConverter.cs:line 211
   at Nest.IndexSettingsConverter.SetKnownIndexSettings(JsonReader reader, JsonSerializer serializer, IIndexSettings s) in c:\code\elasticsearch-net\src\Nest\IndexModules\IndexSettings\Settings\IndexSettingsConverter.cs:line 121
   at Nest.IndexSettingsConverter.ReadJson(JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer) in c:\code\elasticsearch-net\src\Nest\IndexModules\IndexSettings\Settings\IndexSettingsConverter.cs:line 108
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.DeserializeConvertable(JsonConverter converter, JsonReader reader, Type objectType, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Populate(JsonReader reader, Object target)
   at Nest.FromJson.ReadAs[T](JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer) in c:\code\elasticsearch-net\src\Nest\CommonAbstractions\SerializationBehavior\GenericJsonConverters\FromJson.cs:line 15
   at Nest.ReadAsTypeJsonConverter.ReadJson(JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer) in c:\code\elasticsearch-net\src\Nest\CommonAbstractions\SerializationBehavior\GenericJsonConverters\ReadAsTypeJsonConverter.cs:line 19
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.DeserializeConvertable(JsonConverter converter, JsonReader reader, Type objectType, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateDictionary(IDictionary dictionary, JsonReader reader, JsonDictionaryContract contract, JsonProperty containerProperty, 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 Nest.JsonNetSerializer.Deserialize[T](Stream stream) in c:\code\elasticsearch-net\src\Nest\CommonAbstractions\SerializationBehavior\JsonNetSerializer.cs:line 90
   at Nest.ElasticClient.DeserializeGetIndexResponse(IApiCallDetails response, Stream stream) in c:\code\elasticsearch-net\src\Nest\Indices\IndexManagement\GetIndex\ElasticClient-GetIndex.cs:line 56
   at Elasticsearch.Net.ResponseBuilder.SetBody(ElasticsearchResponse response, Stream stream) in c:\code\elasticsearch-net\src\Elasticsearch.Net\Transport\Pipeline\ResponseBuilder.cs:line 70
   at Elasticsearch.Net.ResponseBuilder.ToResponse() in c:\code\elasticsearch-net\src\Elasticsearch.Net\Transport\Pipeline\ResponseBuilder.cs:line 31
   at Elasticsearch.Net.RequestPipeline.CallElasticsearch[TReturn](RequestData requestData) in c:\code\elasticsearch-net\src\Elasticsearch.Net\Transport\Pipeline\RequestPipeline.cs:line 382
   at Elasticsearch.Net.ExceptionExtensions.RethrowKeepingStackTrace(Exception exception) in c:\code\elasticsearch-net\src\Elasticsearch.Net\Extensions\ExceptionExtensions.cs:line 18
   at Elasticsearch.Net.RequestPipeline.CallElasticsearch[TReturn](RequestData requestData) in c:\code\elasticsearch-net\src\Elasticsearch.Net\Transport\Pipeline\RequestPipeline.cs:line 394
   at Elasticsearch.Net.Transport.Request[TReturn](HttpMethod method, String path, PostData data, IRequestParameters requestParameters) in c:\code\elasticsearch-net\src\Elasticsearch.Net\Transport\Transport.cs:line 68
@gmarz
Copy link
Contributor

gmarz commented Mar 8, 2016

@devodo Thanks for reporting. I've incorporated a fix as part of PR #1881.

@gmarz gmarz mentioned this issue Mar 8, 2016
@gmarz gmarz closed this as completed in d103a6b Mar 14, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants