github-code-scanning[bot] commented on code in PR #13967:
URL: https://github.com/apache/druid/pull/13967#discussion_r1167416954
##########
server/src/main/java/org/apache/druid/client/MetadataSegmentView.java:
##########
@@ -186,16 +316,53 @@
query =
"/druid/coordinator/v1/metadata/segments?includeOvershadowedStatus&" + sb;
}
- return SystemSchema.getThingsFromLeaderNode(
+ return coordinatorClient.getThingsFromLeaderNode(
query,
new TypeReference<SegmentWithOvershadowedStatus>()
{
},
- coordinatorClient,
jsonMapper
);
}
+ @Nullable
+ private ChangeRequestsSnapshot<DataSegmentChange> getChangedSegments(
+ DruidLeaderClient coordinatorClient,
+ ObjectMapper jsonMapper,
+ Set<String> watchedDataSources
+ )
+ {
+ StringBuilder queryBuilder = new StringBuilder();
+ queryBuilder.append("/druid/coordinator/v1/metadata/changedSegments?");
+
+ if (watchedDataSources != null && !watchedDataSources.isEmpty()) {
+ log.debug(
+ "filtering datasources in published segments based on broker's
watchedDataSources[%s]", watchedDataSources);
+ for (String ds : watchedDataSources) {
+ queryBuilder.append("datasources=").append(ds).append("&");
+ }
+ }
+
+ if (null == counter) {
+ queryBuilder.append("counter=-1");
+ } else {
+ queryBuilder.append(StringUtils.format("counter=%s&hash=%s",
counter.getCounter(), counter.getHash()));
+ }
+
+ ChangeRequestsSnapshot<DataSegmentChange> changeRequestsSnapshot;
+
+ try {
+ changeRequestsSnapshot = jsonMapper.readValue(
+ coordinatorClient.getThingsFromLeaderNode(queryBuilder.toString()),
+ new TypeReference<ChangeRequestsSnapshot<DataSegmentChange>>() {});
+ }
+ catch (IOException e) {
+ throw new ISE("Unable to parse ChangeRequestSnapshot.", e);
Review Comment:
## Unused format argument
This format call refers to 0 argument(s) but supplies 1 argument(s).
[Show more
details](https://github.com/apache/druid/security/code-scanning/4823)
##########
server/src/main/java/org/apache/druid/client/CachingClusteredClient.java:
##########
@@ -456,14 +466,42 @@
}
for (PartitionChunk<ServerSelector> chunk : filteredChunks) {
ServerSelector server = chunk.getObject();
+ if (brokerSegmentWatcherConfig.isDetectUnavailableSegments() &&
!server.isQueryable()) {
+ log.info("ServerSelector is not queryable [%s]", server);
Review Comment:
## Use of default toString()
Default toString(): ServerSelector inherits toString() from Object, and so
is not suitable for printing.
[Show more
details](https://github.com/apache/druid/security/code-scanning/4826)
##########
server/src/test/java/org/apache/druid/client/BrokerServerViewTest.java:
##########
@@ -594,7 +832,78 @@
private void setupViews(Set<String> watchedTiers, Set<String> ignoredTiers,
boolean watchRealtimeTasks) throws Exception
{
- baseView = new BatchServerInventoryView(
+ baseView = getBaseView();
+
+ brokerServerView = getBrokerServerView(
+ ignoredTiers,
+ baseView,
+ getBrokerSegmentWatcherConfig(watchedTiers, ignoredTiers,
watchRealtimeTasks, false),
+ EasyMock.mock(MetadataSegmentView.class),
+ EasyMock.mock(SegmentMetadataCacheConfig.class)
+ );
+
+ baseView.start();
+ brokerServerView.start();
+ }
+
+ private BrokerSegmentWatcherConfig getBrokerSegmentWatcherConfig(
+ Set<String> watchedTiers,
+ Set<String> ignoredTiers,
+ boolean watchRealtimeTasks,
+ boolean detectUnavailableSegments)
+ {
+ return new BrokerSegmentWatcherConfig()
+ {
+ @Override
+ public Set<String> getWatchedTiers()
+ {
+ return watchedTiers;
+ }
+
+ @Override
+ public boolean isWatchRealtimeTasks()
+ {
+ return watchRealtimeTasks;
+ }
+
+ @Override
+ public Set<String> getIgnoredTiers()
+ {
+ return ignoredTiers;
+ }
+
+ @Override
+ public boolean isDetectUnavailableSegments()
+ {
+ return detectUnavailableSegments;
+ }
+ };
+ }
+
+ private BrokerServerView getBrokerServerView(
+ Set<String> ignoredTiers,
Review Comment:
## Useless parameter
The parameter 'ignoredTiers' is never used.
[Show more
details](https://github.com/apache/druid/security/code-scanning/4825)
##########
server/src/main/java/org/apache/druid/client/BrokerServerView.java:
##########
@@ -97,7 +104,9 @@
final FilteredServerInventoryView baseView,
final TierSelectorStrategy tierSelectorStrategy,
final ServiceEmitter emitter,
- final BrokerSegmentWatcherConfig segmentWatcherConfig
+ final BrokerSegmentWatcherConfig segmentWatcherConfig,
+ final MetadataSegmentView metadataSegmentView,
+ final SegmentMetadataCacheConfig segmentMetadataCacheConfig
Review Comment:
## Useless parameter
The parameter 'segmentMetadataCacheConfig' is never used.
[Show more
details](https://github.com/apache/druid/security/code-scanning/4824)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]