Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 26 May 2006 13:07:06 -0400
From:      Kurt Miller <kurt@intricatesoftware.com>
To:        freebsd-java@freebsd.org
Cc:        Vadim Goncharov <vadimnuclight@tpu.ru>
Subject:   Re: diablo 1.5 died after 5 day uptime
Message-ID:  <200605261307.06671.kurt@intricatesoftware.com>
In-Reply-To: <ops950gvf34fjv08@nuclight.avtf.net>
References:  <ops931hxox17d6mn@nuclight.avtf.net> <200605260932.19449.kurt@intricatesoftware.com> <ops950gvf34fjv08@nuclight.avtf.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Friday 26 May 2006 11:39 am, Vadim Goncharov wrote:
> 26.05.06 @ 20:32 Kurt Miller wrote:
> 
> >> >> I have an SMP (HTT) machine with 5.5-PRERELEASE, using official >>  
> >> diablo 1.5 jdk
> >> >> binaries from beginning of April. As suggested, I now run java with
> >> >> -XX:+UseMembar cmdline switch, that resolved problem with crashing
> >> >> application after startup.
> >> >> But today after 5 days uptime now-debugged-and-set-to-long-run server
> >> >> process
> >> >> have crashed, with 100M coredump file. What happened? Below are log  
> >> and
> >> >> gdb backtrace.
> >> >> As some additional info: I have limits in login.conf, 32M for  
> >> resident
> >> >> size
> >> >> and 256M for virtual mem size; yesterday when I looked at process  
> >> stats
> >> >> it was about 10M resident and 250M virtual - could be a reason?..
> >> >
> >> > Hi,
> >> >
> >> > It does appear that you've run out of vm.
> >> >
> >> > <snip>
> >> >> #21 0x0a3fceda in vm_exit_out_of_memory ()
> >> >>     from /usr/local/diablo-jdk1.5.0/jre/lib/i386/client/libjvm.so
> >>
> >> But so why it dies on signal 11 with scary logs and coredump, instead of
> >> descriptive out-of-memory diagnostics and graceful shutdown? Isn't that
> >> a bug ?
> >
> >> From what I can gather from the stack trace, the jvm was
> > in the process of a graceful shutdown but there wasn't enough
> > memory for it to pull it off. There is only so much you can
> > do to protect against out-of-memory errors when you need more
> > to report it nicely to the user.
> 
> Hmm, OK. Is there any way to tell Java that memory is about to end
> before killing ? Or may be a way to make GC to free some memory
> periodically? May be outside from java, undocumeted external
> signaling to diablo-jdk ? At last, does it respect login.conf limits
> at all, doing graceful shutdown before / trying to raise to hard limit ?
> 

If your goal is to limit the amount of memory the jvm uses,
I would recommend using the standard command line arguments
that control the heap size (-Xmx & -Xms) and leave your limits
high. Note that the jvm uses more memory then is controlled
by the -Xmx arg. You need to leave some head room for that if
your going to be setting your limits lower.

-Kurt



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200605261307.06671.kurt>