[
https://issues.apache.org/jira/browse/HADOOP-14451?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16023448#comment-16023448
]
Bibin A Chundatt edited comment on HADOOP-14451 at 5/24/17 7:32 PM:
--------------------------------------------------------------------
Thank you [~ajithshetty] .Analysis makes sense to me. The same could cause dead
lock.
Tried a sample program to simulate.
{code}
Thread one=new Thread(){
@Override
public void run() {
NativeIO.isAvailable();
}
};
Thread two=new Thread(){
@Override
public void run() {
NativeIO.POSIX.isAvailable();
}
};
two.start();
one.start();
one.join();
two.join();
{code}
*stack trace*
{code}
"Thread-1" #9 prio=5 os_prio=0 tid=0x00007f1b90c5f000 nid=0x6843 in
Object.wait() [0x00007f1b80ba3000]
java.lang.Thread.State: RUNNABLE
at org.apache.hadoop.io.nativeio.NativeIO.initNative(Native Method)
at org.apache.hadoop.io.nativeio.NativeIO.<clinit>(NativeIO.java:644)
at org.apache.hadoop.io.nativeio.TestNative$1.run(TestNative.java:8)
"Thread-2" #10 prio=5 os_prio=0 tid=0x00007f1b90c58000 nid=0x6842 in
Object.wait() [0x00007f1b80ca4000]
java.lang.Thread.State: RUNNABLE
at
org.apache.hadoop.io.nativeio.NativeIO$POSIX.<clinit>(NativeIO.java:184)
at org.apache.hadoop.io.nativeio.TestNative$2.run(TestNative.java:15)
{code}
Affected versions are *2.8.0 and hadoop3*
Another solution could be to check {{if(NativeIO.isAvailable())}} in
{{FadvisedFileRegion#transferSuccessful}} before
{code}NativeIO.POSIX.getCacheManipulator().posixFadviseIf
Possible(identifier,
fd, getPosition(), getCount(), POSIX_FADV_DONTNEED);} {code}
cc/ [~cmccabe_impala_fa3f]
was (Author: bibinchundatt):
Thank you [~ajithshetty] .Analysis makes sense to me. The same could cause dead
lock.
Tried a sample program to simulate.
{code}
Thread one=new Thread(){
@Override
public void run() {
NativeIO.isAvailable();
}
};
Thread two=new Thread(){
@Override
public void run() {
NativeIO.POSIX.isAvailable();
}
};
two.start();
one.start();
one.join();
two.join();
{code}
*stack trace*
{code}
"Thread-1" #9 prio=5 os_prio=0 tid=0x00007f1b90c5f000 nid=0x6843 in
Object.wait() [0x00007f1b80ba3000]
java.lang.Thread.State: RUNNABLE
at org.apache.hadoop.io.nativeio.NativeIO.initNative(Native Method)
at org.apache.hadoop.io.nativeio.NativeIO.<clinit>(NativeIO.java:644)
at org.apache.hadoop.io.nativeio.TestNative$1.run(TestNative.java:8)
"Thread-2" #10 prio=5 os_prio=0 tid=0x00007f1b90c58000 nid=0x6842 in
Object.wait() [0x00007f1b80ca4000]
java.lang.Thread.State: RUNNABLE
at
org.apache.hadoop.io.nativeio.NativeIO$POSIX.<clinit>(NativeIO.java:184)
at org.apache.hadoop.io.nativeio.TestNative$2.run(TestNative.java:15)
{code}
Affected versions are 2.8.0 and hadoop3.
cc /[~cmccabe_impala_fa3f]
> Deadlock in NativeIO
> --------------------
>
> Key: HADOOP-14451
> URL: https://issues.apache.org/jira/browse/HADOOP-14451
> Project: Hadoop Common
> Issue Type: Bug
> Affects Versions: 2.8.0, 3.0.0-alpha1
> Reporter: Ajith S
> Assignee: Ajith S
> Priority: Blocker
> Attachments: Nodemanager.jstack
>
>
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]