[ 
https://issues.apache.org/jira/browse/BEAM-6052?focusedWorklogId=176031&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-176031
 ]

ASF GitHub Bot logged work on BEAM-6052:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 17/Dec/18 14:12
            Start Date: 17/Dec/18 14:12
    Worklog Time Spent: 10m 
      Work Description: echauchot commented on a change in pull request #7206: 
[BEAM-6052] Fix the bug for checkForErrors of ElasticsearchIO in case of updates
URL: https://github.com/apache/beam/pull/7206#discussion_r242144077
 
 

 ##########
 File path: 
sdks/java/io/elasticsearch-tests/elasticsearch-tests-2/src/test/java/org/apache/beam/sdk/io/elasticsearch/ElasticsearchIOTest.java
 ##########
 @@ -193,6 +193,19 @@ public void testWritePartialUpdate() throws Exception {
     elasticsearchIOTestCommon.testWritePartialUpdate();
   }
 
+  @Test
+  public void testWritePartialUpdateWithErrors() throws Exception {
 
 Review comment:
   Ah, yes, right, Elastic removed the ability to drop a mapping in the latest 
versions. To generate an error in update I also tested :
   
   - inserting a doc that does not comply with the auto-detected mapping of a 
previously inserted doc => does not fail
   - updating an existing doc with data that does not comply with the previous 
auto-detected mapping => does not fail
   - update a doc with an invalid json => fails at parsing time, not updating 
time.
   => So I guess defining the mapping is the only way to make it fail on 
update. So, fair enough to change the structure of the tests for that only test 
to be able to override the index definition
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


Issue Time Tracking
-------------------

    Worklog Id:     (was: 176031)

> elasticsearchIO checkForErrors method bug
> -----------------------------------------
>
>                 Key: BEAM-6052
>                 URL: https://issues.apache.org/jira/browse/BEAM-6052
>             Project: Beam
>          Issue Type: Bug
>          Components: io-java-elasticsearch
>         Environment: beam-sdk-java-io-elasticsearch-2.8.0
>            Reporter: Fred k
>            Assignee: Etienne Chauchot
>            Priority: Minor
>              Labels: easyfix
>          Time Spent: 4h 20m
>  Remaining Estimate: 0h
>
> When i use Write to write update bulk request to elasticsearch, it appear the 
> exception below:
> {code:java}
> Caused by: java.io.IOException: Error writing to Elasticsearch, some elements 
> could not be inserted:
>     at 
> org.apache.beam.sdk.io.elasticsearch.ElasticsearchIO.checkForErrors(ElasticsearchIO.java:215)
>     at 
> org.apache.beam.sdk.io.elasticsearch.ElasticsearchIO$Write$WriteFn.flushBatch(ElasticsearchIO.java:1235)
>     at 
> org.apache.beam.sdk.io.elasticsearch.ElasticsearchIO$Write$WriteFn.processElement(ElasticsearchIO.java:1199)
> {code}
> I check the method of checkForErrors, found out that can not parse the 
> response include update contents. So i add the logic for parse update, i can 
> see the output like below:
> {code:java}
> Caused by: java.io.IOException: Error writing to Elasticsearch, some elements 
> could not be inserted:
> Document id 1465285334751e039cc4883a8a270191: rejected execution of 
> org.elasticsearch.transport.TransportService$7@6c8edc37 on 
> EsThreadPoolExecutor[name = gjzx159-node2/write, queue capacity = 200, 
> org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor@56b9faa3[Running,
>  pool size = 40, active threads = 40, queued tasks = 198, completed tasks = 
> 10324166]] (es_rejected_execution_exception)
> Document id e2722c653c65a4cb119e9b8dc44e37ad: rejected execution of 
> org.elasticsearch.transport.TransportService$7@6c8edc37 on 
> EsThreadPoolExecutor[name = gjzx159-node2/write, queue capacity = 200, 
> org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor@56b9faa3[Running,
>  pool size = 40, active threads = 40, queued tasks = 198, completed tasks = 
> 10324166]] (es_rejected_execution_exception)
> Document id b25472e3665695c49861f6eceee5531a: rejected execution of 
> org.elasticsearch.transport.TransportService$7@6c8edc37 on 
> EsThreadPoolExecutor[name = gjzx159-node2/write, queue capacity = 200, 
> org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor@56b9faa3[Running,
>  pool size = 40, active threads = 40, queued tasks = 198, completed tasks = 
> 10324166]] (es_rejected_execution_exception)
> Document id 022c1accdae82f6fe4108ba7989732fc: rejected execution of 
> org.elasticsearch.transport.TransportService$7@6c8edc37 on 
> EsThreadPoolExecutor[name = gjzx159-node2/write, queue capacity = 200, 
> org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor@56b9faa3[Running,
>  pool size = 40, active threads = 40, queued tasks = 198, completed tasks = 
> 10324166]] (es_rejected_execution_exception)
>     at 
> org.apache.beam.sdk.io.elasticsearch.ElasticsearchIO.checkForErrors(ElasticsearchIO.java:215)
>     at 
> org.apache.beam.sdk.io.elasticsearch.ElasticsearchIO$Write$WriteFn.flushBatch(ElasticsearchIO.java:1235)
>     at 
> org.apache.beam.sdk.io.elasticsearch.ElasticsearchIO$Write$WriteFn.processElement(ElasticsearchIO.java:1199)
> {code}
> the reponse content is like below:
> {
>     "took": 293,
>     "errors": true,
>     "items": [
>     {
>         "update": {
>             "_index": "test_kevin_2018-11",
>             "_type": "kevin",
>             "_id": "8d7664286c0887c637229166c7c613bc",
>             "_version": 1,
>             "result": "noop",
>             "_shards": {
>                 "total": 1,
>                 "successful": 1,
>                 "failed": 0
>             },
>             "status": 200
>         }
>     },                
>     {
>         "update": {
>             "_index": "test_kevin_2018-11",
>             "_type": "kevin",
>             "_id": "49952be98f4fc160f56bcdb33b1dbf7e",
>             "status": 429,
>             "error": {
>                 "type": "es_rejected_execution_exception",
>                 "reason": "rejected execution of 
> org.elasticsearch.transport.TransportService$7@3f70bbe7 on 
> EsThreadPoolExecutor[name = gjzx159-node2/write, queue capacity = 200, 
> org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor@56b9faa3[Running,
>  pool size = 40, active threads = 40, queued tasks = 200, completed tasks = 
> 10034174]]"
>             }
>         }
>     }
> }



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to