Skip to content

HIVE-28874 Incorrect comparison in LlapFixedRegistryImpl #5742

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jun 19, 2025

Conversation

dk2k
Copy link
Contributor

@dk2k dk2k commented Apr 2, 2025

No description provided.

Copy link

sonarqubecloud bot commented Apr 2, 2025

@@ -257,7 +257,7 @@ public List<LlapServiceInstance> getAllInstancesOrdered(boolean consistentIndexe
Collections.sort(list, new Comparator<LlapServiceInstance>() {
@Override
public int compare(LlapServiceInstance o1, LlapServiceInstance o2) {
return o2.getWorkerIdentity().compareTo(o2.getWorkerIdentity());
return o1.getWorkerIdentity().compareTo(o2.getWorkerIdentity());
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doesn't this change the sorting order? I think now you will see it in ascending order when compared to descending order.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Previously there was no order (and inconsistency instead) as o2 was compared to o2 and they are always equal.
Ascending Order (o1.compareTo(o2))
Descending Order (o2.compareTo(o1))
Please let me know if descending order is expected

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we really need this sorting then since it was working without it.

cc @abstractdog Do you think it makes sense to use sorting here?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Considering that the comparison was incorrect and FixedServiceInstanceSet failed to comply with any sorting requirements (unlike DynamicServiceInstanceSet, which uses a TreeMap to maintain order), it doesn't really matter whether we fix the sorting or remove it entirely.

However, since the interface implies that some ordering is expected, it's reasonable to fix it now using a simple ascending order, which aligns better with intuitive expectations and brings consistency to the implementation.

Copy link

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.
Feel free to reach out on the [email protected] list if the patch is in need of reviews.

@github-actions github-actions bot added the stale label Jun 14, 2025
@dk2k
Copy link
Contributor Author

dk2k commented Jun 14, 2025

dear maintainers, please review

@github-actions github-actions bot removed the stale label Jun 15, 2025
@abstractdog
Copy link
Contributor

dear maintainers, please review

left a comment above, this is fine to be merged, can you please rebase your patch on master to get a green build?

Copy link

@dk2k
Copy link
Contributor Author

dk2k commented Jun 19, 2025

@abstractdog please merge

@abstractdog abstractdog self-requested a review June 19, 2025 13:16
@abstractdog abstractdog merged commit 0c69f10 into apache:master Jun 19, 2025
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants