GJL commented on a change in pull request #10255: [FLINK-14859][runtime] Avoid
leaking unassigned slots
URL: https://github.com/apache/flink/pull/10255#discussion_r348425294
##########
File path:
flink-runtime/src/test/java/org/apache/flink/runtime/scheduler/TestExecutionSlotAllocator.java
##########
@@ -126,4 +131,13 @@ public void cancel(final ExecutionVertexID
executionVertexId) {
public CompletableFuture<Void> stop() {
return CompletableFuture.completedFuture(null);
}
+
+ @Override
+ public void returnLogicalSlot(final LogicalSlot logicalSlot) {
+ returnedSlots.add(logicalSlot);
+ }
+
+ public List<LogicalSlot> getReturnedSlots() {
+ return new ArrayList<>(returnedSlots);
Review comment:
I don't think it's needed to rename the method because defensive copying in
accessors is a common pattern, e.g., see Effective Java by Josh Bloch Item 15
_"Minimize mutability"_
([summary](https://github.com/mgp/book-notes/blob/master/effective-java-2nd-edition.markdown#item-15-minimize-mutability)).
This is done to reduce shared state. Moreover, returning a list that reflects
the current state instead of being a snapshot can be unexpected to the client
as well – it can lead to concurrency bugs, which admittedly are not an issue
here.
Below there are a few examples from the Flink codebase where defensive
copying in accessors is employed:
https://github.com/apache/flink/blob/9706261d60045f882ce05a42f3bd255e47fa348e/flink-table/flink-table-common/src/main/java/org/apache/flink/table/api/TableSchema.java#L214
https://github.com/apache/flink/blob/1ce777f328e064d0b36627e68f3d0d1d174d5414/flink-table/flink-sql-client/src/main/java/org/apache/flink/table/client/gateway/local/ResultStore.java#L104
https://github.com/apache/flink/blob/9706261d60045f882ce05a42f3bd255e47fa348e/flink-runtime/src/main/java/org/apache/flink/runtime/checkpoint/StandaloneCompletedCheckpointStore.java#L81
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services