Hi Boaz,
               We are using 0.90.2 and run into this issue. As i 
understand, one option is to upgrade to 0.90.3. If we continue using 0.90.2 
and use (increase) retry_on_conflict, we will not see the problem? Please 
clarify.
 
Thanks,
Rohit
On Wednesday, August 7, 2013 9:39:56 AM UTC-7, Boaz Leskes wrote:

> HI Eric,
>
> OK. Based on the gist you sent, i tracked down a problem at fixed it: 
> https://github.com/elasticsearch/elasticsearch/issues/3448 . Thanks!! The 
> fix is part of 0.90.3, so I'd recommend upgrading. This is a secondary 
> problem which occurs when two requests try to update the same document at 
> exactly the same time. One of them succeeds and the other fails with a 
> version conflict (that error was masked by the error you were seeing). You 
> can use (or increase) the retry_on_conflict parameter to make the failing 
> request try again.
>
> I'm still curious about your reporting of loosing replicas. Can you 
> elaborate more about what happens? Do you see anything in the logs?
>
> Cheers,
> Boaz
>
> On Tuesday, August 6, 2013 5:09:26 AM UTC+2, Eric Sites wrote:
>>
>> Boaz,
>>
>> Sorry but I no longer have those logs, I upgraded to 0.90.2 from 0.90.0 
>> and wiped the logs when I did.
>> I did the upgrade to use the _bulk api for my update.
>>
>> Basically the "lang", "js" was not the issue. 
>>
>> I was using different scripts with the same set of params and an upcert. 
>> The fix was to use a different param name for different scripts, about 10 
>> unique scripts in total.
>>
>> I was losing replicated shards about every 10,000 to 30,000 updates, 
>> never the primary shard.
>>
>> I have 185 million + large json documents, with 100 shards in 1 index 
>> with 1 replication, so 200 shards total over 6 servers. Each shard is about 
>> 10.4 GB in size.
>> About 2 TB of data, 1 TB primary, 1 TB replicated.
>>
>> Cheers,
>> Eric Sites
>>
>> From: Boaz Leskes <[email protected]>
>> Reply-To: <[email protected]>
>> Date: Monday, August 5, 2013 5:38 PM
>> To: <[email protected]>
>> Subject: Re: 0.90.2 _update or _bulk update causing NullPointerException 
>> in logs and I start losing shards
>>
>> Hi Eric,
>>
>> Glad to hear you solved it. It would be great if you can share the failed 
>> logs from the _update (non bulk call). A failed script shouldn't cause 
>> shards to drop so I would like to research it some more.
>>
>> Cheers,
>> Boaz
>>
>>
>> On Mon, Aug 5, 2013 at 6:40 PM, Eric Sites <[email protected]> wrote:
>>
>>> Boaz,
>>>
>>> I found and fixed the problem.
>>>
>>> I added the "lang", "js" to the update json, that was not needed before 
>>> in es 0.90.0.
>>> I also changed the name of new_tracking to match the name of the action 
>>> in the params section.
>>> So for example the script now looks like this:
>>>
>>> if (ctx._source['tracking'] != null) {
>>>     if (ctx._source.tracking['some_action'] != null) {
>>>         ctx._source.tracking.some_action += param1;
>>>     } else {
>>>         ctx._source.tracking['some_action'] = 1;
>>>     }
>>> } else {
>>>     ctx._source.tracking = new_some_action;
>>> }
>>>
>>> "params" : { "param1" : 1, "new_some_action" : { "some_action" : 1 } }
>>>
>>> Cheers,
>>> Eric Sites
>>>
>>> From: Boaz Leskes <[email protected]>
>>> Reply-To: <[email protected]>
>>> Date: Monday, August 5, 2013 10:35 AM
>>> To: <[email protected]>
>>> Subject: Re: 0.90.2 _update or _bulk update causing 
>>> NullPointerException in logs and I start losing shards
>>>
>>> Hi Eric,
>>>
>>> This is interesting. The log stack trace from the gist comes from the 
>>> bulk calls. Can you also post one from a failed _update? Cross checking 
>>> them might help pin pointing the issue.
>>>
>>> Cheers,
>>> Boaz
>>>
>>> On Monday, August 5, 2013 1:34:16 AM UTC+2, [email protected] wrote:
>>>>
>>>> I am getting java.lang.NullPointerException exception in my 
>>>> ElasticSearch cluster logs when I am doing a _bulk update or just an 
>>>> _update.
>>>> I am sending a lot of data to my clusters. After I get this error I 
>>>> lose a shard and it has to be recreated.
>>>>
>>>> version 0.90.2
>>>>
>>>> gist: https://gist.github.com/EricSites/6152468
>>>>
>>>> I get this using the _bulk api or just normal _update api.
>>>>
>>>> My update script is a little complicated.
>>>> I am adding a tracking object to my document if it does not exists. 
>>>> There should only be one of these and it should not be an array of these.
>>>> If the object does exists, I am trying to add a new field to the 
>>>> tracking object to keep track on counts.
>>>> So if the field does not exists I create it, else just += to it.
>>>>
>>>> if (ctx._source['tracking'] != null) {
>>>>     if (ctx._source.tracking['some_action'] != null) {
>>>>         ctx._source.tracking.some_action += param1;
>>>>     } else {
>>>>         ctx._source.tracking['some_action'] = 1;
>>>>     }
>>>> } else {
>>>>     ctx._source.tracking = new_tracking;
>>>> }
>>>>
>>>>
>>>> Here is my mapping for this:
>>>> {
>>>>    "sample" : {
>>>>       "index_options" : "docs",
>>>>       "properties" : {
>>>>          "tracking" : {
>>>>              "type" : "object",
>>>>              "dynamic" : true
>>>>          }
>>>>       }
>>>>    }
>>>> }
>>>>
>>> -- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "elasticsearch" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to [email protected].
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>  
>>>  
>>>
>>> -- 
>>> You received this message because you are subscribed to a topic in the 
>>> Google Groups "elasticsearch" group.
>>> To unsubscribe from this topic, visit 
>>> https://groups.google.com/d/topic/elasticsearch/yk7HvjqCgOg/unsubscribe.
>>> To unsubscribe from this group and all its topics, send an email to 
>>> [email protected].
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>  
>>>  
>>>
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "elasticsearch" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected].
>> For more options, visit https://groups.google.com/groups/opt_out.
>>  
>>  
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/ecf3d1cf-8b21-44cb-8b17-76f818805a7d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to