Skip to content

Commit d7261c7

Browse files
committed
delete logging later
1 parent e755943 commit d7261c7

File tree

6 files changed

+63
-4
lines changed

6 files changed

+63
-4
lines changed

x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/AggregateMetricDoubleBlockBuilder.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,17 +45,20 @@ public AggregateMetricDoubleBlockBuilder(int estimatedSize, BlockFactory blockFa
4545

4646
@Override
4747
protected int valuesLength() {
48-
throw new UnsupportedOperationException("Not available on aggregate_metric_double");
48+
return minBuilder.valuesLength();
4949
}
5050

5151
@Override
5252
protected void growValuesArray(int newSize) {
53-
throw new UnsupportedOperationException("Not available on aggregate_metric_double");
53+
minBuilder.growValuesArray(newSize);
54+
maxBuilder.growValuesArray(newSize);
55+
sumBuilder.growValuesArray(newSize);
56+
countBuilder.growValuesArray(newSize);
5457
}
5558

5659
@Override
5760
protected int elementSize() {
58-
throw new UnsupportedOperationException("Not available on aggregate_metric_double");
61+
return minBuilder.elementSize() + maxBuilder.elementSize() + sumBuilder.elementSize() + countBuilder.elementSize();
5962
}
6063

6164
@Override

x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/Driver.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
package org.elasticsearch.compute.operator;
99

10+
import org.apache.logging.log4j.LogManager;
11+
import org.apache.logging.log4j.Logger;
1012
import org.elasticsearch.action.ActionListener;
1113
import org.elasticsearch.action.support.ContextPreservingActionListener;
1214
import org.elasticsearch.action.support.SubscribableListener;
@@ -15,6 +17,7 @@
1517
import org.elasticsearch.compute.Describable;
1618
import org.elasticsearch.compute.data.Page;
1719
import org.elasticsearch.compute.operator.exchange.ExchangeSinkOperator;
20+
import org.elasticsearch.compute.operator.topn.TopNOperator;
1821
import org.elasticsearch.core.Nullable;
1922
import org.elasticsearch.core.Releasable;
2023
import org.elasticsearch.core.Releasables;
@@ -248,6 +251,8 @@ public void abort(Exception reason, ActionListener<Void> listener) {
248251
}
249252
}
250253

254+
private static final Logger logger = LogManager.getLogger(Driver.class);
255+
251256
private IsBlockedResult runSingleLoopIteration() {
252257
driverContext.checkForEarlyTermination();
253258
boolean movedPage = false;
@@ -283,6 +288,7 @@ private IsBlockedResult runSingleLoopIteration() {
283288
page.releaseBlocks();
284289
throw e;
285290
}
291+
logger.warn("INPUTTING PAGE TO OPERATOR " + nextOp);
286292
nextOp.addInput(page);
287293
movedPage = true;
288294
}
@@ -327,13 +333,15 @@ private int closeEarlyFinishedOperators(ListIterator<Operator> operators) {
327333
while (finishedOperators.hasNext()) {
328334
Operator op = finishedOperators.next();
329335
statusOfCompletedOperators.add(new OperatorStatus(op.toString(), op.status()));
336+
logger.warn("CLOSING OPERATOR " + op);
330337
op.close();
331338
finishedOperators.remove();
332339
}
333340

334341
// Finish the next operator, which is now the first operator.
335342
if (activeOperators.isEmpty() == false) {
336343
Operator newRootOperator = activeOperators.get(0);
344+
logger.warn("FINISHING OPERATOR " + newRootOperator);
337345
newRootOperator.finish();
338346
}
339347
return index;

x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/topn/ResultBuilderForAggregateMetricDouble.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ public void decodeKey(BytesRef keys) {
3030

3131
@Override
3232
public void decodeValue(BytesRef values) {
33+
int count = TopNEncoder.DEFAULT_UNSORTABLE.decodeVInt(values);
34+
if (count == 0) {
35+
builder.appendNull();
36+
return;
37+
}
3338
for (BlockLoader.DoubleBuilder subBuilder : List.of(builder.min(), builder.max(), builder.sum())) {
3439
if (TopNEncoder.DEFAULT_UNSORTABLE.decodeBoolean(values)) {
3540
subBuilder.appendDouble(TopNEncoder.DEFAULT_UNSORTABLE.decodeDouble(values));
@@ -51,7 +56,7 @@ public Block build() {
5156

5257
@Override
5358
public String toString() {
54-
return "ValueExtractorForAggregateMetricDouble";
59+
return "ResultBuilderForAggregateMetricDouble";
5560
}
5661

5762
@Override

x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/topn/TopNOperator.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
package org.elasticsearch.compute.operator.topn;
99

10+
import org.apache.logging.log4j.LogManager;
11+
import org.apache.logging.log4j.Logger;
1012
import org.apache.lucene.util.Accountable;
1113
import org.apache.lucene.util.BytesRef;
1214
import org.apache.lucene.util.PriorityQueue;
@@ -47,6 +49,8 @@ public class TopNOperator implements Operator, Accountable {
4749
private static final byte SMALL_NULL = 0x01; // "null" representation for "nulls first"
4850
private static final byte BIG_NULL = 0x02; // "null" representation for "nulls last"
4951

52+
private static final Logger logger = LogManager.getLogger("TopNOperator");
53+
5054
/**
5155
* Internal row to be used in the PriorityQueue instead of the full blown Page.
5256
* It mirrors somehow the Block build in the sense that it keeps around an array of offsets and a count of values (to account for
@@ -122,15 +126,20 @@ public void clearRefCounters() {
122126
}
123127
}
124128

129+
125130
static final class BytesOrder implements Releasable, Accountable {
126131
private static final long BASE_RAM_USAGE = RamUsageEstimator.shallowSizeOfInstance(BytesOrder.class);
127132
private final CircuitBreaker breaker;
128133
final List<SortOrder> sortOrders;
129134
final int[] endOffsets;
135+
private static final Logger logger = LogManager.getLogger(BytesOrder.class);
136+
private boolean open = true;
130137

131138
BytesOrder(List<SortOrder> sortOrders, CircuitBreaker breaker, String label) {
132139
this.breaker = breaker;
133140
this.sortOrders = sortOrders;
141+
logger.warn("ADDED " + memoryUsed(sortOrders.size()));
142+
logger.warn("", new Throwable());
134143
breaker.addEstimateBytesAndMaybeBreak(memoryUsed(sortOrders.size()), label);
135144
this.endOffsets = new int[sortOrders.size()];
136145
}
@@ -160,6 +169,10 @@ public long ramBytesUsed() {
160169

161170
@Override
162171
public void close() {
172+
// assert open;
173+
open = false;
174+
logger.warn("REMOVING " + (-ramBytesUsed()));
175+
logger.warn("", new Throwable());
163176
breaker.addWithoutBreaking(-ramBytesUsed());
164177
}
165178
}
@@ -180,6 +193,10 @@ static final class RowFiller {
180193
page.getBlock(b)
181194
);
182195
}
196+
logger.warn("VALUE EXTRACTORS ARRAY LOOKS LIKE");
197+
for (var v : valueExtractors) {
198+
logger.warn("" + v);
199+
}
183200
keyFactories = new KeyFactory[sortOrders.size()];
184201
for (int k = 0; k < keyFactories.length; k++) {
185202
SortOrder so = sortOrders.get(k);
@@ -219,6 +236,7 @@ private void writeValues(int position, Row destination) {
219236
if (refCounted != null) {
220237
destination.setShardRefCountersAndShard(refCounted);
221238
}
239+
logger.warn("ENCODING VALUE FOR " + e + " AT OFFSET " + destination.values.length());
222240
e.writeValue(destination.values, position);
223241
}
224242
}
@@ -467,6 +485,11 @@ private Iterator<Page> toPages() {
467485
);
468486
}
469487
p = 0;
488+
489+
logger.warn("BUILDERS ARRAY LOOKS LIKE ");
490+
for (var b : builders) {
491+
logger.warn("" + b);
492+
}
470493
}
471494

472495
try (Row row = list.get(i)) {
@@ -479,6 +502,7 @@ private Iterator<Page> toPages() {
479502
}
480503
keys.offset++;
481504
keys.length--;
505+
logger.warn("DECODING KEY AT OFFSET " + keys.offset);
482506
builders[so.channel].decodeKey(keys);
483507
}
484508
if (keys.length != 0) {
@@ -488,6 +512,7 @@ private Iterator<Page> toPages() {
488512
BytesRef values = row.values.bytesRefView();
489513
for (ResultBuilder builder : builders) {
490514
builder.setNextRefCounted(row.shardRefCounter);
515+
logger.warn("DECODING VALUE FOR BUILDER " + builder + " AT OFFSET " + values.offset);
491516
builder.decodeValue(values);
492517
}
493518
if (values.length != 0) {
@@ -517,6 +542,9 @@ private Iterator<Page> toPages() {
517542
assert builders == null;
518543
success = true;
519544
return result.iterator();
545+
} catch (Throwable e) {
546+
logger.warn("THREW AN EXCEPTION: ", e);
547+
throw e;
520548
} finally {
521549
if (success == false) {
522550
List<Releasable> close = new ArrayList<>(list);

x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/topn/ValueExtractorForAggregateMetricDouble.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ public class ValueExtractorForAggregateMetricDouble implements ValueExtractor {
2424

2525
@Override
2626
public void writeValue(BreakingBytesRefBuilder values, int position) {
27+
TopNEncoder.DEFAULT_UNSORTABLE.encodeVInt(1, values);
2728
for (DoubleBlock doubleBlock : List.of(block.minBlock(), block.maxBlock(), block.sumBlock())) {
2829
if (doubleBlock.isNull(position)) {
2930
TopNEncoder.DEFAULT_UNSORTABLE.encodeBoolean(false, values);

x-pack/plugin/esql/qa/server/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/esql/qa/multi_node/GenerativeIT.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,13 @@
77

88
package org.elasticsearch.xpack.esql.qa.multi_node;
99

10+
import com.carrotsearch.randomizedtesting.annotations.Seed;
1011
import com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
1112

13+
import org.elasticsearch.common.settings.Settings;
1214
import org.elasticsearch.test.TestClustersThreadFilter;
1315
import org.elasticsearch.test.cluster.ElasticsearchCluster;
16+
import org.elasticsearch.test.rest.ESRestTestCase;
1417
import org.elasticsearch.xpack.esql.qa.rest.generative.GenerativeRestTest;
1518
import org.junit.ClassRule;
1619

@@ -35,6 +38,17 @@ protected String getTestRestCluster() {
3538
return cluster.getHttpAddresses();
3639
}
3740

41+
@Override
42+
protected final Settings restClientSettings() {
43+
return Settings.builder()
44+
.put(super.restClientSettings())
45+
// increase the timeout here to 90 seconds to handle long waits for a green
46+
// cluster health. the waits for green need to be longer than a minute to
47+
// account for delayed shards
48+
.put(ESRestTestCase.CLIENT_SOCKET_TIMEOUT, "10h")
49+
.build();
50+
}
51+
3852
@Override
3953
protected boolean supportsSourceFieldMapping() {
4054
return false;

0 commit comments

Comments
 (0)