You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "Hui Fei (Jira)" <ji...@apache.org> on 2021/07/06 01:34:00 UTC

[jira] [Commented] (HADOOP-17749) Remove lock contention in SelectorPool of SocketIOWithTimeout

    [ https://issues.apache.org/jira/browse/HADOOP-17749?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17375092#comment-17375092 ] 

Hui Fei commented on HADOOP-17749:
----------------------------------

Could not access gitbox, cherrypick to branch-3.2 branch-3.3 later

> Remove lock contention in SelectorPool of SocketIOWithTimeout
> -------------------------------------------------------------
>
>                 Key: HADOOP-17749
>                 URL: https://issues.apache.org/jira/browse/HADOOP-17749
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: common
>            Reporter: Xuesen Liang
>            Assignee: Xuesen Liang
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 3.4.0
>
>          Time Spent: 4h 10m
>  Remaining Estimate: 0h
>
> *SelectorPool* in hadoop-common/src/main/java/org/apache/hadoop/net/*SocketIOWithTimeout.java* is a point of lock contention.
> For example: 
> {code:java}
> $ grep 'waiting to lock <0x00007f7d94006d90>' 63692.jstack | uniq -c
>  1005 - waiting to lock <0x00007f7d94006d90> (a org.apache.hadoop.net.SocketIOWithTimeout$SelectorPool)
> {code}
> and the thread stack is as follows:
> {code:java}
> "IPC Client (324579982) connection to /100.10.6.10:60020 from user_00" #14139 daemon prio=5 os_prio=0 tid=0x00007f7374039000 nid=0x85cc waiting for monitor entry [0x00007f6f45939000]
>  java.lang.Thread.State: BLOCKED (on object monitor)
>  at org.apache.hadoop.net.SocketIOWithTimeout$SelectorPool.get(SocketIOWithTimeout.java:390)
>  - waiting to lock <0x00007f7d94006d90> (a org.apache.hadoop.net.SocketIOWithTimeout$SelectorPool)
>  at org.apache.hadoop.net.SocketIOWithTimeout$SelectorPool.select(SocketIOWithTimeout.java:325)
>  at org.apache.hadoop.net.SocketIOWithTimeout.doIO(SocketIOWithTimeout.java:157)
>  at org.apache.hadoop.net.SocketInputStream.read(SocketInputStream.java:161)
>  at org.apache.hadoop.net.SocketInputStream.read(SocketInputStream.java:131)
>  at java.io.FilterInputStream.read(FilterInputStream.java:133)
>  at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
>  at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
>  - locked <0x00007fa818caf258> (a java.io.BufferedInputStream)
>  at java.io.DataInputStream.readInt(DataInputStream.java:387)
>  at org.apache.hadoop.hbase.ipc.RpcClientImpl$Connection.readResponse(RpcClientImpl.java:967)
>  at org.apache.hadoop.hbase.ipc.RpcClientImpl$Connection.run(RpcClientImpl.java:568)
> {code}
> We should remove the lock contention.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: common-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-issues-help@hadoop.apache.org