Code Review Request: 8020498: Crash when both libnet.so and libmawt.so are loaded
Chris Hegarty
chris.hegarty at oracle.com
Thu Jul 18 02:44:42 PDT 2013
On 18/07/2013 01:19, Kurchi Hazra wrote:
>
> Hi,
>
> We are seeing a crash when both libmawt.so and libnet.so are loaded, and
> the init()
> method in src/share/native/java/net/net_util.c is called, but an init()
> method in
> libmawt.so gets invoked instead. Although it is difficult to reproduce
> the problem,
> declaring the init() in net_util.c can resolve the issue.
Thanks Kurchi,
I have seen this, what appears to be a bizarre linking issue, a few
times now over the past year but was unable to get to the bottom of it.
Snipped of a stacktrace and comment from 8005450 ( I was unable to get
the bottom of it, or reproduce ).
---
This looks like a strange linking issue. Relevant part of the stack below.
...
C [libmawt.so+0x26c12] init+0x8e;; init+0x8e
C [libnet.so+0x8b53] NET_SockaddrToInetAddress+0x23;;
NET_SockaddrToInetAddress+0x23
C [libnet.so+0xc388]
Java_java_net_PlainSocketImpl_socketAccept+0x41c;;
Java_java_net_PlainSocketImpl_socketAccept+0x41c
j java.net.PlainSocketImpl.socketAccept(Ljava/net/SocketImpl;)V+0
...
NET_SockaddrToInetAddress is somehow triggering libmawt init() to be
called. NET_SockaddrToInetAddress does call a local init() function,
that is defined within net_util.c, but it is as if the linker has
decided to call libmawt init().
---
I think your fix is probably ok, but I wonder if we should air on the
side of caution and maybe give this function a unique name, say
initInetAddrs ( or something similar ).
-Chris.
>
> This low-risk fix will hopefully be going into 7u40.
>
>
> Bug: http://bugs.sun.com/view_bug.do?bug_id=8020498
> Webrev: http://cr.openjdk.java.net/~khazra/8020498/webrev.00/
>
> Thanks,
> Kurchi
>
>
>
More information about the net-dev
mailing list