harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gregory Shimansky <gshiman...@gmail.com>
Subject Re: [drlvm][em64t] drlvm broken on em64t?
Date Tue, 12 Dec 2006 21:01:47 GMT
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


Mime
View raw message