Hi Alan, Below is the response we got from the AIX team.
===>what happens if pthread_kill(thread, SGRTMAX-1) is called and the target thread is NOT in the read/write syscalls The expected behavior is thread will get interrupted and it will call the signal handler. in the case of this process it has a special signal handler for the signal 56. It will continue from the instruction it was in after returning back from the signal handler. Thanks Shruthi ________________________________ From: Shruthi . <shruthi.shrut...@ibm.com> Sent: Saturday, February 22, 2025 11:05 AM To: Alan Bateman <alan.bate...@oracle.com>; net-dev@openjdk.org <net-dev@openjdk.org> Cc: Syed Moinudeen <smoin...@in.ibm.com> Subject: Re: [EXTERNAL] Re: Suggestion needed to port the fix to JDK17 and JDK11S Hi Alan, We have reached out to the AIX team regarding your query and we are waiting their response. Meanwhile, we are also investigating the issue. Based on the logs, it appears that the block is occurring between the close and preClose() calls, ans poll() in a parked state. Thanks Shruthi ________________________________ From: Alan Bateman <alan.bate...@oracle.com> Sent: Friday, February 14, 2025 2:14 PM To: Shruthi . <shruthi.shrut...@ibm.com>; net-dev@openjdk.org <net-dev@openjdk.org> Cc: Syed Moinudeen <smoin...@in.ibm.com> Subject: [EXTERNAL] Re: Suggestion needed to port the fix to JDK17 and JDK11S This Message Is From an External Sender This message came from outside your organization. Report Suspicious<https://us-phishalarm-ewt.proofpoint.com/EWT/v1/AdhS1Rd-!99FRGBbSkiWx1TbZ5KTKMrLTSRtWg0uRPhJQ9gyMzN2en9jnS860BbMMokSeYtQbELmk-cTHRf_7dCL17AOuY030w9uiJjlEIL4sog$> On 14/02/2025 08:18, Shruthi . wrote: Hi Alan, Reordering preClose() in AIX resolves the customer issue. We have validated the fix, and the customer has confirmed it as well. It may have resolved your customer issue but I'm not yet convinced it's a robust workaround for the AIX issue. Can you check with your AIX team on how happens if pthread_kill(thread, SGRTMAX-1) is called and the target thread is in not in the read/write syscalls. It looks to me that the signal won't be handled and the thread may continue on and block in read/write. With your patch then thread calling the close method will do the dup2 and hang as before. It's the window between setting readerThread/writerThread and blocking in the read/write syscalls that you need to look at. -Alan