RFR 8252248: __SIGRTMAX is not declared in musl libc

Alexander Scherbatiy alexander.scherbatiy at bell-sw.com
Fri Aug 28 11:25:25 UTC 2020


Hello,

Could you review the updated fix:
   http://cr.openjdk.java.net/~alexsch/8252248/webrev.01/

  - moving shared code to net_util_md.h is avoided
  - INTERRUPT_SIGNAL is defined as SIGRTMAX - 2 instead of __SIGRTMAX - 
2 for Linux in NativeThread.c
  - "#include <pthread.h>" is moved out from "#ifdef" in NativeThread.c
  - sigWakeup is changed to "#define WAKEUP_SIGNAL (SIGRTMAX - 2)" in 
linux_close.c

At least test/jdk/java/net/Socket/asyncClose/AsyncClose.java touches all 
four methods where the signal changes are used:
NativeThread.c
- Java_sun_nio_ch_NativeThread_init(JNIEnv *env, jclass cl)
- Java_sun_nio_ch_NativeThread_signal(JNIEnv *env, jclass cl, jlong thread)
linux_close.c
-  __attribute((constructor)) init()
- closefd(int fd1, int fd2)

I run test/jdk/java/net tests on Ubuntu 18.04.4 and Alpine Linux 3.11.6 
with musl libc 1.1.24.
There are 10 failed tests but they fail without the fix as well. I 
believe that it is because of some network settings of  my machine.

   java/net/MulticastSocket/IPMulticastIF.java
   java/net/MulticastSocket/NoSetNetworkInterface.java
   java/net/MulticastSocket/Promiscuous.java
   java/net/MulticastSocket/PromiscuousIPv6.java
   java/net/MulticastSocket/SetGetNetworkInterfaceTest.java
   java/net/MulticastSocket/SetLoopbackMode.java
   java/net/MulticastSocket/SetOutgoingIf.java
   java/net/MulticastSocket/Test.java
   java/net/NetworkInterface/NetworkInterfaceRetrievalTests.java
   java/net/ipv6tests/UdpTest.java

Thanks,
Alexander.

On 26.08.2020 13:42, Alan Bateman wrote:
> On 25/08/2020 18:00, Alexander Scherbatiy wrote:
>>
>> Hello,
>>
>> Could your review the fix for the issue:
>>   Bug: https://bugs.openjdk.java.net/browse/JDK-8252248
>>   Fix: http://cr.openjdk.java.net/~alexsch/8252248/webrev.00/
>>
>> :
>>
>> The fix has been discussed on the portola-dev alias [2] where it was 
>> pointed out that the fix can be reviewed in the mainline and it was 
>> suggested to rename the INTERRUPT_SIGNAL and move its definition to 
>> net_util_md.h.
>>
> The xxx_close.c sources are for the old SocketImpl and 
> DatagramSocketImpl implementations; they are aren't used by default 
> and will eventually go away. Maybe an option for the musl port is to 
> just not compile in the old socket implementations? It might be best 
> to start a discussion on nio-dev and net-dev about this as we 
> shouldn't be changing NativeThread.c (which is used for signalling in 
> the FileChannel implementation) to include net_util.h.
>
> -Alan


More information about the nio-dev mailing list