You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@zookeeper.apache.org by "Chris Nauroth (Jira)" <ji...@apache.org> on 2022/11/02 05:47:00 UTC
[jira] [Commented] (ZOOKEEPER-4460) QuorumPeer overrides Thread.getId with different semantics
[ https://issues.apache.org/jira/browse/ZOOKEEPER-4460?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17627475#comment-17627475 ]
Chris Nauroth commented on ZOOKEEPER-4460:
------------------------------------------
I've sent in a pull request and asked a few other committers for review. The approach is to rename {{QuorumPeer#getId()}} to {{{}QuorumPeer#getMyId(){}}}, which is consistent with ZooKeeper terminology. This is a server-side implementation detail, not a public API, so I expect the change is safe. To be cautious, I reviewed code in Apache Curator, where I suspected a tighter integration with ZooKeeper internals for testing infrastructure. I didn't find any calls into {{QuorumPeer#getId()}} there though.
> QuorumPeer overrides Thread.getId with different semantics
> ----------------------------------------------------------
>
> Key: ZOOKEEPER-4460
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-4460
> Project: ZooKeeper
> Issue Type: Bug
> Components: server
> Reporter: Alan Bateman
> Assignee: Chris Nauroth
> Priority: Major
> Labels: pull-request-available
> Time Spent: 40m
> Remaining Estimate: 0h
>
> In OpenJDK, Project Loom has significantly re-implemented java.lang.Thread. One part of this is using some of the bits in the thread identifier for non-exposed purposes. Sadly, Thread::getId is not final and it's possible that sub-classes of Thread have overridden getId to have different semantics. The JDK can defend against this but there may be 3rd party libraries that make use of Thread::getId. A corpus search of Maven central found only one class: org.apache.zookeeper.server.quorum.QuorumPeer. Does this project know why getId has been overridden to return something that is not the thread identifier?
--
This message was sent by Atlassian Jira
(v8.20.10#820010)