On the 0x1E9 day of Apache Harmony Geir Magnusson, Jr. wrote:
> On Sep 19, 2006, at 7:13 AM, Egor Pasko wrote:
> 
> > On the 0x1E9 day of Apache Harmony Geir Magnusson, Jr. wrote:
> >> On Sep 19, 2006, at 6:34 AM, Egor Pasko wrote:
> >>
> >>> On the 0x1E9 day of Apache Harmony Geir Magnusson, Jr. wrote:
> >>>> For grins, can you set JAVA_HOME to the deploy/jre directory and
> >>>> PATH to
> >>>>  include jre/bin?
> >>>
> >>> lots of grins here :)
> >>> I set them, it runs well (with my patches, but, anyway), this
> >>> problem
> >>
> >> What are you patches?
> >
> > nothing special:
> > * launcher debug mode (O0, -g)
> > * libhysig.so included in
> >   modules/luni/src/main/native/launcher/linux/makefile
> > * hymem_free_memory commented out in
> >   modules/luni/src/main/native/common/shared/strhelp.c
> >   (this one is rather experimantal, the root cause was incorrect
> >    handling of JAVA_HOME)
> 
> Ah - that's a good hint.  I'll see if I can work it out from that.
> 
> >
> > BTW, I was pointing JAVA_HOME to RI by mistake. Resulting in SIGSEGV
> > in this case is not the best idea. Can we overcome it in some way?
> 
> LOL.  Yes - lets figure out the root cause :)

good news :P

the root cause is: the launcher fails to find
$JAVA_HOME/lib/boot/bootclasspath.properties and crashes

if $JAVA_HOME/lib exists,
luniglob.c:216:readClassPathFromPropertiesFile(...) is invoked (which
contains the bug).

if there is no "bootclasspath.properties" file, the local variable
"props" stays uninitialized during the "properties_load" call and
results in a crash here:

luniglob.c:297:
if (props) {
    properties_free(PORTLIB, props);
}

the proposed solution is simple:

--- working_classlib/modules/luni/src/main/native/luni/shared/luniglob.c        
(revision 447819)
+++ working_classlib/modules/luni/src/main/native/luni/shared/luniglob.c        
(working copy)
@@ -222,7 +222,7 @@
     char *bootstrapClassPath = NULL;
     vmiError rcGetProperty;
     jint returnCode;
-    key_value_pair * props;
+    key_value_pair *props = NULL;
     U_32 number;

     /* Extract the port library */


P.S.: did anybody try to valgrind DRLVM?

-- 
Egor Pasko, Intel Managed Runtime Division


---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to