How did I create a _mget id item?


(Serge Aluker) #1

We are running 1.7.3 on 3 nodes, 2 of which are data nodes. Index in question has 2 shards and 2 replicas.

We use POST /index/type/_mget with body {ids:[...]} on almost every request to our app and have never had issues. Today we had 3 cases where this exact request actually created a doc with id of "_mget". Instead of getting the expected "docs" key we got (on the 3rd case):

{
    "_id": "_mget",
    "_index": "main_exelon",
    "_type": "series",
    "_version": 3, 
    "created": False
}

We can't GET the resulting doc directly, but doing this search:

{
    "query": {"ids": {"values": ["_mget"]}}
}

returns:

  "hits": [
     {
        "_index": "index",
        "_type": "type",
        "_id": "_mget",
        "_score": 1,
        "_source": {
           "ids": [
              "ki1ZMZPoPgMIQpe"
           ]
        }
     }

How is making this _id even possible? We can't replicate this, but it has happened in production 3 times now.


(Mark Walkom) #2

I'd use GET instead of PUT to stop the creation of the documents. The docs also reference the use of GET.


(system) #3