Skip to content
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

'IllegalArgumentException: No type mapped for [105]' on get document #6665

Closed
Zazik opened this issue Jul 1, 2014 · 4 comments
Closed

'IllegalArgumentException: No type mapped for [105]' on get document #6665

Zazik opened this issue Jul 1, 2014 · 4 comments
Assignees

Comments

@Zazik
Copy link

Zazik commented Jul 1, 2014

Hi!

I have updated elasticsearch from 1.1.0 to 1.2.1 and faced with a strange issue. I'm not sure, but it can be related to the thread #6441

Preconditions:

  1. Elasticsearch 1.2.1 is newly installed. All settings have default values.
  2. Index is newly created.
  3. Index mapping created via API:
{
   "elasticbug": {
      "mappings": {
         "filesetdata": {
            "properties": {
               "fileContent": {
                  "type": "string",
                  "include_in_all": false
               },
               "format": {
                  "type": "integer",
                  "include_in_all": false
               },
               "metadata": {
                  "properties": {
                     "Fil_1": {
                        "properties": {
                           "OriginalFileID_2": {
                              "type": "string",
                              "index": "not_analyzed"
                           },
                           "OriginalFileName_3": {
                              "type": "string",
                              "index": "not_analyzed"
                           }
                        }
                     }
                  }
               },
               "state": {
                  "type": "byte",
                  "include_in_all": false
               }
            }
         }
      }
   }
}

'fileContent' field is used for storing text extracted from .pdf files via Apache Tika.
4. All other index settings have default values.

Steps:
Index this huge document:
PUT elasticbug/filesetdata/54c87535-1baf-46d7-a6f9-2b0c914c7479 huge doc
Right after that try to GET this document:
GET elasticbug/filesetdata/54c87535-1baf-46d7-a6f9-2b0c914c7479

[Expected]

Document was successfully obtained

[Actual]

[2014-07-01 16:01:45,009][DEBUG][action.get] [Shard] [elasticbug][3]: failed to execute [[elasticbug][filesetdata][54c87535-1baf-46d7-a6f9-2b0c914c7479]: routing [null]]
java.lang.IllegalArgumentException: No type mapped for [105]
    at org.elasticsearch.index.translog.Translog$Operation$Type.fromId(Translog.java:223)
    at org.elasticsearch.index.translog.TranslogStreams.readSource(TranslogStreams.java:59)
    at org.elasticsearch.index.engine.internal.InternalEngine.get(InternalEngine.java:340)
    at org.elasticsearch.index.shard.service.InternalIndexShard.get(InternalIndexShard.java:469)
    at org.elasticsearch.index.get.ShardGetService.innerGet(ShardGetService.java:195)
    at org.elasticsearch.index.get.ShardGetService.get(ShardGetService.java:106)
    at org.elasticsearch.action.get.TransportGetAction.shardOperation(TransportGetAction.java:109)
    at org.elasticsearch.action.get.TransportGetAction.shardOperation(TransportGetAction.java:43)
    at org.elasticsearch.action.support.single.shard.TransportShardSingleOperationAction$AsyncSingleAction$1.run(TransportShardSingleOperationAction.java:163)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

NOTE:

  1. After a while (about 30m) GET works fine and obtains document without any problems. As far as i understand it depends on index.translog.flush_threshold_period setting.
  2. I also noticed that refresh parameter set to true in index command (?refesh=true) fixes this issue. Interesting that force _refresh via api DOES NOT help.
  3. As was mentioned in ElasticsearchIllegalArgumentException No version type match #6441, to work around the problem you can trigger a _flush
    before the get.
  4. This issue was not reproduced in 1.1.0.

Thanks!

@clintongormley
Copy link

Thanks for the detailed bug report. This does sound like the same issue as #6441.

@bleskes close this in favour of #6441?

@uschindler
Copy link
Contributor

This is the same issue like #6441: This happens after indexing a large document and then get it from the translog.

To check if this is really the same issue do the following:

  • Index the large document
  • Don't flush and shutdown ES
  • Restart ES

After that ES will no lomger come up, because it cannot apply the translog, which will show the same error messages.

The difference is only: Here we just cannot get the document until flush, but if we shutdown, ES has to replay the translog after shutdown and this fails to replay, so the index no longer comes up.

@bleskes
Copy link
Contributor

bleskes commented Jul 2, 2014

@Zazik it looks indeed very much like #6441 which was solved with #6576 . I think we can close this as resolved. If you want, you can verify it was fixed by checking out the 1.x branch and giving it a spin. Thx for the detailed report.

@bleskes bleskes closed this as completed Jul 2, 2014
@Zazik
Copy link
Author

Zazik commented Jul 2, 2014

I performed all steps described by @uschindler and made sure that this is the same issue like #6441.

Thanks a lot to all of you. Looking forward to the new version.

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

4 participants