Geir Magnusson Jr. wrote:
This must be from the recent properties refactoring...

I've found out the reason of the change. It is r486100 in classlib. Previously there was no call to GetSystemProperty about org.apache.harmony.boot.class.path. I've fixed drlvm function GetSystemProperty to return VMI_ERROR_NOT_FOUND in case a property cannot be found and set valuePtr to NULL (or otherwise luniglob crashes).

This still doesn't work because org.apache.harmony.boot.class.path is not set anywhere, and then bootstrap class loader fails to initialize. I'm still trying to find out what else had changed.

Gregory Shimansky wrote:
Geir Magnusson Jr. wrote:
No one?

I think I've reproduced the same problem on ia32 fedora (on other linuxes everything works ok). I'm trying to investigate. The problem is in function GetSystemProperty in vm/vmi/src/vmi.cpp

146     vmiError JNICALL
147     GetSystemProperty(VMInterface *vmi, char *key, char **valuePtr)
148     {
149         char* value = get_property(key, JAVA_PROPERTIES);
150         *valuePtr = strdup(value);
151         destroy_property_value(value);
152         return VMI_ERROR_NONE;
153     }

called like this:

GetSystemProperty (vmi=0x97ca60, key=0x941e5c "org.apache.harmony.boot.class.path", valuePtr=0xbf98cd18)

The function get_property returns NULL, so strdup in line 150 crashes. I don't know yet why get_property("org.apache.harmony.boot.class.path", JAVA_PROPERTIES) returns NULL, but calling strdup unconditionally doesn't seem to be a good idea to me too.

Geir Magnusson Jr. wrote:
Trying to get the snapshots out... :)

I was trying r486163 and drlvm just crashes...

Anyone else seeing this? I'm on ubuntu 6 x86_64. I don't want to blame luni, but w/ strace, I see the following :

open("/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/build/deploy/jdk/jre/bin/libhyluni.so", O_RDONLY) = 3 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 i\0\0\0"..., 640) = 640
fstat(3, {st_mode=S_IFREG|0755, st_size=1238859, ...}) = 0
mmap(NULL, 1263224, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x2aaabf6e8000
mprotect(0x2aaabf71d000, 1046136, PROT_NONE) = 0
mmap(0x2aaabf81c000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x34000) = 0x2aaabf81c000
close(3)                                = 0
rt_sigaction(SIGPIPE, NULL, {SIG_DFL}, 8) = 0
rt_sigaction(SIGPIPE, {SIG_IGN}, {SIG_DFL}, 8) = 0
stat("/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/build/deploy/jdk/jre/lib/boot/bootclasspath.properties", {st_mode=S_IFREG|0644, st_size=6360, ...}) = 0 open("/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/build/deploy/jdk/jre/lib/boot/bootclasspath.properties", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=6360, ...}) = 0
mmap(NULL, 6360, PROT_READ|PROT_WRITE, MAP_PRIVATE, 3, 0) = 0x2aaabf81d000
close(3)                                = 0
munmap(0x2aaabf81d000, 6360)            = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
rt_sigaction(SIGSEGV, {SIG_DFL}, {0x2aaaac098530, [], SA_RESTORER|SA_STACK|SA_SIGINFO, 0x2aaaab8554d0}, 8) = 0
rt_sigreturn(0)                         = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++



geir






--
Gregory

Reply via email to