Date: Mon, 25 Nov 2002 14:26:33 +0200 From: Alexey Zelkin <phantom@FreeBSD.org.ua> To: Achilleus Mantzios <achill@matrix.gatewaynet.com> Cc: Bill Huey <billh@gnuppy.monkey.org>, Mantzios Achilleus <mantzios@softlab.ece.ntua.gr>, freebsd-java@FreeBSD.ORG Subject: Re: Jboss, -Xss with hotspot on -release 4.7p2 Message-ID: <20021125142633.A77963@phantom.cris.net> In-Reply-To: <Pine.LNX.4.44.0211251336380.24204-100000@matrix.gatewaynet.com>; from achill@matrix.gatewaynet.com on Mon, Nov 25, 2002 at 01:37:20PM %2B0200 References: <Pine.LNX.4.44.0211251323190.24204-100000@matrix.gatewaynet.com> <Pine.LNX.4.44.0211251336380.24204-100000@matrix.gatewaynet.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Nov 25, 2002 at 01:37:20PM +0200, Achilleus Mantzios wrote:
> On Mon, 25 Nov 2002, Achilleus Mantzios wrote:
>
> > On Mon, 25 Nov 2002, Bill Huey wrote:
> >
> > > On Mon, Nov 25, 2002 at 11:45:05AM +0200, Mantzios Achilleus wrote:
> > > > I have (i think) built hotspot (core) on stable 4.7.
> > > >
> > > > When i run jboss 3.0.1 with -Xss30m i get:
> > > >
> > > > Stack size of 30720 Kb exceeds current limit of 1024 Kb.
> > > > (Stack sizes are rounded up to a multiple of the system page size.)
> > > >
> > > > I then try to use this limit with -Xss1m.
> > > >
> > > > When i run jboss with hotspot (core)
> > > > i get sigbus (10).
> > >
> > > Yeah, sounds like a stack limit problem, fairly trivial to fix. Those are
> > > reentrant C functions being called if I remember correctly and I wonder
> > > what's going with it and I was the person that commited that logic to the
> > > core JVM library itself. I'll get at it after the all reworking that I'm
> > > currently doing. I'm in the process of reading stuff both in the HotSpot
> > > source tree, libc_r, and stuff outside of this project, so it's going to
> > > be a bit before I can get at it.
> >
> > Also hotspot compiler1 fails in the exact same fashion.
> >
> > Note that compiler2 doesnt build:
> >
> > a bunch of compiler options e.g
> > cc1plus: Invalid option `-fssa'
> > give errors.
> >
> > BTW is there something "fast" i could do to start working
> > with jboss (that is having worked around -Xss flag issue that Bill
> > commnted on and Java_java_net_InetAddressImpl_getHostByAddr issue
> > that Andrey commnted on)??
> ^^^^^^
> I MEANT ALEXEY!!!
> SORRY!!
:-)
I have attached a patch against jdk1.4 sources, but I think it would
be trivial to do same for 1.3.
PS: It was supposed to be a hack :) So, if it'll fix your problem -- I'll
go with clean it up and propose to commit to 1.3 tree also.
Index: Inet4AddressImpl.c
===================================================================
RCS file: /home/Java/CVS/JDK2/javasrc_1_4_scsl/j2se/src/solaris/native/java/net/Inet4AddressImpl.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -u -r1.2 -r1.3
--- Inet4AddressImpl.c 16 Aug 2002 06:50:27 -0000 1.2
+++ Inet4AddressImpl.c 21 Oct 2002 16:51:50 -0000 1.3
@@ -27,10 +27,10 @@
#define HENT_BUF_SIZE 1024
#define BIG_HENT_BUF_SIZE 10240 /* a jumbo-sized one */
-#ifndef __GLIBC__
-/* gethostname() is in libc.so but I can't find a header file for it */
-extern int gethostname(char *buf, int buf_len);
-#endif
+//#ifndef __GLIBC__
+///* gethostname() is in libc.so but I can't find a header file for it */
+//extern int gethostname(char *buf, int buf_len);
+//#endif
/* reentrant BIND includes --billh */
@@ -41,11 +41,11 @@
/* forward declarations --billh */
HOST_R_RETURN
-gethostbyname_r(const char *name, struct hostent *hptr,
+JDK_gethostbyname_r(const char *name, struct hostent *hptr,
HOST_R_ARGS);
HOST_R_RETURN
-gethostbyaddr_r(const char *addr, int len, int type,
+JDK_gethostbyaddr_r(const char *addr, int len, int type,
struct hostent *hptr,
HOST_R_ARGS);
@@ -85,16 +85,16 @@
int h_error=0;
#ifdef __GLIBC__
- gethostbyname_r(hostname, &res, buf, sizeof(buf), &hp, &h_error);
+ JDK_gethostbyname_r(hostname, &res, buf, sizeof(buf), &hp, &h_error);
#else
- hp = gethostbyname_r(hostname, &res, buf, sizeof(buf), &h_error);
+ hp = JDK_gethostbyname_r(hostname, &res, buf, sizeof(buf), &h_error);
#endif
if (hp) {
#ifdef __GLIBC__
- gethostbyaddr_r(hp->h_addr, hp->h_length, AF_INET,
+ JDK_gethostbyaddr_r(hp->h_addr, hp->h_length, AF_INET,
&res2, buf2, sizeof(buf2), &hp, &h_error);
#else
- hp = gethostbyaddr_r(hp->h_addr, hp->h_length, AF_INET,
+ hp = JDK_gethostbyaddr_r(hp->h_addr, hp->h_length, AF_INET,
&res2, buf2, sizeof(buf2), &h_error);
#endif
if (hp) {
@@ -157,9 +157,9 @@
/* Try once, with our static buffer. */
#ifdef __GLIBC__
- gethostbyname_r(hostname, &res, buf, sizeof(buf), &hp, &h_error);
+ JDK_gethostbyname_r(hostname, &res, buf, sizeof(buf), &hp, &h_error);
#else
- hp = gethostbyname_r(hostname, &res, buf, sizeof(buf), &h_error);
+ hp = JDK_gethostbyname_r(hostname, &res, buf, sizeof(buf), &h_error);
#endif
/* With the re-entrant system calls, it's possible that the buffer
@@ -170,10 +170,10 @@
if (hp == NULL && errno == ERANGE) {
if ((tmp = (char*)malloc(BIG_HENT_BUF_SIZE))) {
#ifdef __GLIBC__
- gethostbyname_r(hostname, &res, tmp, BIG_HENT_BUF_SIZE,
+ JDK_gethostbyname_r(hostname, &res, tmp, BIG_HENT_BUF_SIZE,
&hp, &h_error);
#else
- hp = gethostbyname_r(hostname, &res, tmp, BIG_HENT_BUF_SIZE,
+ hp = JDK_gethostbyname_r(hostname, &res, tmp, BIG_HENT_BUF_SIZE,
&h_error);
#endif
}
@@ -255,10 +255,10 @@
addr |= (caddr[3] & 0xff);
addr = htonl(addr);
#ifdef __GLIBC__
- gethostbyaddr_r((char *)&addr, sizeof(addr), AF_INET, &hent,
+ JDK_gethostbyaddr_r((char *)&addr, sizeof(addr), AF_INET, &hent,
buf, sizeof(buf), &hp, &h_error);
#else
- hp = gethostbyaddr_r((char *)&addr, sizeof(addr), AF_INET, &hent,
+ hp = JDK_gethostbyaddr_r((char *)&addr, sizeof(addr), AF_INET, &hent,
buf, sizeof(buf), &h_error);
#endif
/* With the re-entrant system calls, it's possible that the buffer
@@ -269,10 +269,10 @@
if (hp == NULL && errno == ERANGE) {
if ((tmp = (char*)malloc(BIG_HENT_BUF_SIZE))) {
#ifdef __GLIBC__
- gethostbyaddr_r((char *)&addr, sizeof(addr), AF_INET,
+ JDK_gethostbyaddr_r((char *)&addr, sizeof(addr), AF_INET,
&hent, tmp, BIG_HENT_BUF_SIZE, &hp, &h_error);
#else
- hp = gethostbyaddr_r((char *)&addr, sizeof(addr), AF_INET,
+ hp = JDK_gethostbyaddr_r((char *)&addr, sizeof(addr), AF_INET,
&hent, tmp, BIG_HENT_BUF_SIZE, &h_error);
#endif
} else {
@@ -309,7 +309,7 @@
copy_hostent(struct hostent *, struct hostent *, HOST_R_COPY_ARGS);
HOST_R_RETURN
-gethostbyname_r(const char *name, struct hostent *hptr, HOST_R_ARGS) {
+JDK_gethostbyname_r(const char *name, struct hostent *hptr, HOST_R_ARGS) {
struct hostent *he = gethostbyname(name);
HOST_R_ERRNO;
@@ -321,7 +321,7 @@
}
HOST_R_RETURN
-gethostbyaddr_r(const char *addr, int len, int type,
+JDK_gethostbyaddr_r(const char *addr, int len, int type,
struct hostent *hptr, HOST_R_ARGS) {
struct hostent *he = gethostbyaddr(addr, len, type);
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-java" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021125142633.A77963>
