File tree Expand file tree Collapse file tree 2 files changed +16
-1
lines changed
main/java/org/elasticsearch/ingest
test/java/org/elasticsearch/ingest Expand file tree Collapse file tree 2 files changed +16
-1
lines changed Original file line number Diff line number Diff line change @@ -52,7 +52,8 @@ void preIngest() {
5252 * @param ingestTimeInNanos The time it took to perform the action.
5353 */
5454 void postIngest (long ingestTimeInNanos ) {
55- ingestCurrent .decrementAndGet ();
55+ long current = ingestCurrent .decrementAndGet ();
56+ assert current >= 0 : "ingest metric current count double-decremented" ;
5657 this .ingestTimeInNanos .inc (ingestTimeInNanos );
5758 ingestCount .inc ();
5859 }
Original file line number Diff line number Diff line change @@ -31,4 +31,18 @@ public void testIngestTimeInNanos() {
3131 assertThat (1L , equalTo (metric .createStats ().getIngestTimeInMillis ()));
3232 }
3333
34+ public void testPostIngestDoubleDecrement () {
35+ IngestMetric metric = new IngestMetric ();
36+
37+ metric .preIngest ();
38+ assertThat (1L , equalTo (metric .createStats ().getIngestCurrent ()));
39+
40+ metric .postIngest (500000L );
41+ assertThat (0L , equalTo (metric .createStats ().getIngestCurrent ()));
42+
43+ // the second postIngest triggers an assertion error
44+ expectThrows (AssertionError .class , () -> metric .postIngest (500000L ));
45+ assertThat (-1L , equalTo (metric .createStats ().getIngestCurrent ()));
46+ }
47+
3448}
You can’t perform that action at this time.
0 commit comments