[
https://issues.apache.org/jira/browse/HADOOP-11494?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14296438#comment-14296438
]
Benoy Antony commented on HADOOP-11494:
---------------------------------------
Can we synchronize the method instead of synchronized block ?
This will avoid the creation of an object, just for locking. The synchronized
block contains the whole method body anyway.
> Lock acquisition on WrappedInputStream#unwrappedRpcBuffer may race with
> another thread
> --------------------------------------------------------------------------------------
>
> Key: HADOOP-11494
> URL: https://issues.apache.org/jira/browse/HADOOP-11494
> Project: Hadoop Common
> Issue Type: Bug
> Reporter: Ted Yu
> Priority: Minor
> Attachments: hadoop-11494-001.patch
>
>
> In SaslRpcClient, starting at line 576:
> {code}
> public int read(byte[] buf, int off, int len) throws IOException {
> synchronized(unwrappedRpcBuffer) {
> // fill the buffer with the next RPC message
> if (unwrappedRpcBuffer.remaining() == 0) {
> readNextRpcPacket();
> }
> {code}
> readNextRpcPacket() may assign another ByteBuffer to unwrappedRpcBuffer,
> making the lock on previous ByteBuffer not useful.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)