Oliver Deakin wrote:
Hi all,

I was taking a look at HARMONY-4006 and thought I'd try creating a simple launcher as a test. I updated my federated build checkout and rebuilt everything, giving me the usual hdk structure under the target directory (drlvm+classlib). I can successfully use the Harmony launcher to run simple classes (i.e. HelloWorld) but when I try to run HelloWorld using my own launcher I get the following message:

 EM: Can't read configuration from './client.emconf'

and an assertion pop-up window appears giving me the following information:

 Debug Assertion Failed!
 Program: C:\harmony\temp\jnitest\simpleLaunchFederated.exe
 File: dbgheap.c
 Line: 1132
 Expression: _CrtIsValidHeapPointer(pUserData)

The stack trace windbg shows me at the point of assertion is:

 ntdll!DbgBreakPoint
 ntdll!RtlpBreakPointHeap+0x28
 ntdll!RtlpValidateHeapEntry+0x113
 ntdll!RtlValidateHeap+0xe0
 kernel32!HeapValidate+0x14
em!_CrtIsValidHeapPointer+0xa4 [f:\vs70builds\3077\vc\crtbld\crt\src\dbgheap.c @ 1807] em!_free_dbg_lk+0x102 [f:\vs70builds\3077\vc\crtbld\crt\src\dbgheap.c @ 1132]
 em!_free_dbg+0x41 [f:\vs70builds\3077\vc\crtbld\crt\src\dbgheap.c @ 1070]
em!operator delete+0xaa [f:\vs70builds\3077\vc\crtbld\crt\src\dbgdel.cpp @ 54] em!std::allocator<char>::deallocate+0x17 [c:\program files\microsoft visual studio .net 2003\vc7\include\xmemory @ 132] em!std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Tidy+0x66 [c:\program files\microsoft visual studio .net 2003\vc7\include\xstring @ 1519] em!std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >+0x1a [c:\program files\microsoft visual studio .net 2003\vc7\include\xstring @ 458] em!LogParams::~LogParams+0x44 [c:\harmony\svn-checkouts\federated\working_vm\vm\port\include\logparams.h @ 54] em!readFile+0x54b [c:\harmony\svn-checkouts\federated\working_vm\vm\em\src\drlemimpl.cpp @ 332] em!DrlEMImpl::readConfiguration+0x366 [c:\harmony\svn-checkouts\federated\working_vm\vm\em\src\drlemimpl.cpp @ 355] em!DrlEMImpl::init+0x48 [c:\harmony\svn-checkouts\federated\working_vm\vm\em\src\drlemimpl.cpp @ 364] em!DrlEMFactory::createAndInitEMInstance+0xa9 [c:\harmony\svn-checkouts\federated\working_vm\vm\em\src\drlemimpl.cpp @ 55] em!CreateInstance+0x3c [c:\harmony\svn-checkouts\federated\working_vm\vm\em\src\em_intf.cpp @ 132] harmonyvm!CmCreateInstance+0xac [c:\harmony\svn-checkouts\federated\working_vm\vm\vmstart\src\compmgr\component_manager_impl.cpp @ 584] harmonyvm!process_properties_dlls+0x1bd [c:\harmony\svn-checkouts\federated\working_vm\vm\vmcore\src\init\vm_init.cpp @ 135]


I can successfully use exactly the same launcher to create the RI and J9 VMs and run simple classes, so was surprised to hit this problem with the Harmony vm. Am I missing something?

This stack trace looks similar to stack in HARMONY-3772. There is a patch there which changes localized logging output to plain and solves the problem with log4cxx destructors in this way. The main problem however is that EM cannot find client.emconf file and tries to print an error message.

--
Gregory

Reply via email to