RFR 8237858: PlainSocketImpl.socketAccept() handles EINTR incorrectly

Daniel Fuchs daniel.fuchs at oracle.com
Mon Jun 29 16:51:53 UTC 2020


Hi Vyom,


On 29/06/2020 08:03, Vyom Tiwari wrote:
> Hi Alan,Daniel,
> 
> Please find the latest 
> webrev(http://cr.openjdk.java.net/~vtewari/8237858/webrev0.7/index.html). I 
> have added a new native method and removed the hardcoding(SIGPIPE).

That fails to build on windows:

[2020-06-29T15:26:16,899Z] ERROR: Build failed for target 'default 
(product-bundles test-bundles static-libs-bundles)' in configuration 
'windows-x64' (exit code 2)
[2020-06-29T15:26:17,587Z] * For target 
support_test_jdk_jtreg_native_support_libNativeThread_libNativeThread.obj:
[2020-06-29T15:26:17,649Z] libNativeThread.c
[2020-06-29T15:26:17,649Z] 
./open/test/jdk/java/net/Socket/libNativeThread.c(26): fatal error 
C1083: Cannot open include file: 'pthread.h': No such file or directory
[2020-06-29T15:26:17,743Z]    ... (rest of output omitted)

I'll suggest to put the content of the native file under:

#ifndef _WIN32

or maybe

#ifndef _WINDOWS

You can probably use the `submit` repo to verify that there is no
build break.

> I gave a thought on creating a separate thread and sending a signal but 
> it will further increase the complexity of the test. If tests send 
> signals in separate threads  then  tests have to make sure that server 
> thread is alive and running.

You can probably send from the main thread - just bail out if the
server has closed ?

while (!ss.isClosed() && i < 20) {
    ... send SIGPIPE and sleep  10ms ...
}

best regards,

-- daniel

> 
> Thanks,
> Vyom



More information about the net-dev mailing list