Please report new issues athttps://github.com/DOCGroup
When we try to run executables (our application, executables in the TAO distribution) we get the error below. We noticed this in TAO 1.5.8 and TAO 1.5.9. Yet, things work fine under TAO 1.4.a patch 10. In the example below (from the distribution) we try to run the Name Service and get get an error: -> ld < Naming_Service.out (-1|52540960) ERROR: ORBInitializer Registry unable to find the ORBInitializer Registry instance: S_errno_ENOTSUP 0x321b620 (tShell0): memPartAlloc: block too big 2087928743 bytes (0x10 aligned) in partition 0x498a68 0x321b620 (tShell0): memPartAlloc: block too big 2087191463 bytes (0x10 aligned) in partition 0x498a68 0x321b620 (tShell0): memPartAlloc: block too big 2087191463 bytes (0x10 aligned) in partition 0x498a68 0x321b620 (tShell0): memPartAlloc: block too big 1012924440 bytes (0x10 aligned) in partition value = 0x498a68 52574320 = 0x3223870 Thanks, Abdul
VxWorks 6.3 and 6.4 Kernel mode might have the same problem as well.
mine
not fixed yet on svn head
Problem seems related to Service Config/Service Gestalt, the ORBInitializerRegistry is added to one registry, then we try to retrieve it from another one. -> cd "/nfsace/galadriel/VxWorks/ppc604/ACE_wrappers/TAO/tests/Portable_Interceptors/Recursive_ORBInitializer" value = 0 = 0x0 -> putenv("TMPDIR=/nfsace/galadriel/VxWorks/ppc604/ACE_wrappers/TAO/tests/Portable_Interceptors/Recursive_ORBInitializer") value = 0 = 0x0 -> putenv("ACE_DEBUG=1") value = 0 = 0x0 -> ld < client.out ACE (-1|41472320) SG::ctor - this = 0x27e3f04, pss = 0x0 ACE (-1|41472320) SG::process_directive_i, repo=0x27e4000 - ClientRequestInterceptor_Adapter_Factory, dll=<null>, force=0 ACE (-1|41472320) SR::insert - repo=0x27e4000 [0] (1024), name=ClientRequestInterceptor_Adapter_Factory, type=0x32609d0, object=0x3260910, active=0 ACE (-1|41472320) SG::add_processed_static_svc, repo=0x27e4000 - ClientRequestInterceptor_Adapter_Factory ACE (-1|41472320) SG::process_directive_i, repo=0x27e4000 - PICurrent_Loader, dll=<null>, force=0 ACE (-1|41472320) SR::insert - repo=0x27e4000 [1] (1024), name=PICurrent_Loader, type=0x3260c40, object=0x3260b80, active=0 ACE (-1|41472320) SG::add_processed_static_svc, repo=0x27e4000 - PICurrent_Loader ACE (-1|41472320) SG::process_directive_i, repo=0x27e4000 - ORBInitializer_Registry, dll=<null>, force=0 ACE (-1|41472320) SR::insert - repo=0x27e4000 [2] (1024), name=ORBInitializer_Registry, type=0x3260ed0, object=0x3260d80, active=0 ACE (-1|41472320) SG::add_processed_static_svc, repo=0x27e4000 - ORBInitializer_Registry ACE (-1|41472320) SG::ctor - this = 0x32621b0, pss = 0x0 ACE (-1|41472320) DSB::instance, repo=0x32621f0, name=ORBInitializer_Registry type=0x0 => 0x0 (-1|41472320) ERROR: ORBInitializer Registry unable to find the ORBInitializer Registry instance: OK ACE (-1|41472320) SG::process_directive_i, repo=0x32621f0 - CodecFactory_Loader, dll=<null>, force=0 ACE (-1|41472320) SR::insert - repo=0x32621f0 [0] (1024), name=CodecFactory_Loader, type=0x3261010, object=0x32647d0, active=0 ACE (-1|41472320) SG::add_processed_static_svc, repo=0x32621f0 - CodecFactory_Loader ACE (-1|41472320) SG::process_directive_i, repo=0x32621f0 - PolicyFactory_Loader, dll=<null>, force=0 ACE (-1|41472320) SR::insert - repo=0x32621f0 [1] (1024), name=PolicyFactory_Loader, type=0x3264a30, object=0x3264970, active=0 ACE (-1|41472320) SG::add_processed_static_svc, repo=0x32621f0 - PolicyFactory_Loader ACE (-1|41472320) SG::process_directive_i, repo=0x32621f0 - ClientRequestInterceptor_Adapter_Factory, dll=<null>, force=0 ACE (-1|41472320) SR::insert - repo=0x32621f0 [2] (1024), name=ClientRequestInterceptor_Adapter_Factory, type=0x3264c30, object=0x3264b70, active=0 ACE (-1|41472320) SG::add_processed_static_svc, repo=0x32621f0 - ClientRequestInterceptor_Adapter_Factory ACE (-1|41472320) SG::process_directive_i, repo=0x32621f0 - PICurrent_Loader, dll=<null>, force=0 ACE (-1|41472320) SR::insert - repo=0x32621f0 [3] (1024), name=PICurrent_Loader, type=0x3264e60, object=0x3264da0, active=0 ACE (-1|41472320) SG::add_processed_static_svc, repo=0x32621f0 - PICurrent_Loader ACE (-1|41472320) SG::process_directive_i, repo=0x32621f0 - ORBInitializer_Registry, dll=<null>, force=0 ACE (-1|41472320) SR::insert - repo=0x32621f0 [4] (1024), name=ORBInitializer_Registry, type=0x32650f0, object=0x3264fa0, active=0 ACE (-1|41472320) SG::add_processed_static_svc, repo=0x32621f0 - ORBInitializer_Registry ACE (-1|41472320) DSB::instance, repo=0x32621f0, name=ORBInitializer_Registry type=0x32650f0 => 0x3264fa0 ACE (-1|41472320) DSB::instance, repo=0x32621f0, name=ORBInitializer_Registry type=0x32650f0 => 0x3264fa0 ACE (-1|41472320) DSB::instance, repo=0x32621f0, name=ORBInitializer_Registry type=0x32650f0 => 0x3264fa0 ACE (-1|41472320) DSB::instance, repo=0x32621f0, name=ORBInitializer_Registry type=0x32650f0 => 0x3264fa0 ACE (-1|41472320) DSB::instance, repo=0x32621f0, name=ORBInitializer_Registry type=0x32650f0 => 0x3264fa0 ACE (-1|41472320) DSB::instance, repo=0x32621f0, name=ORBInitializer_Registry type=0x32650f0 => 0x3264fa0 ACE (-1|41472320) SG::process_directive_i, repo=0x32621f0 - TAO_Codeset, dll=<null>, force=0 ACE (-1|41472320) SR::insert - repo=0x32621f0 [5] (1024), name=TAO_Codeset, type=0x32656d0, object=0x3265810, active=0 ACE (-1|41472320) SG::add_processed_static_svc, repo=0x32621f0 - TAO_Codeset ACE (-1|41472320) DSB::instance, repo=0x32621f0, name=ORBInitializer_Registry type=0x32650f0 => 0x3264fa0 ACE (-1|41472320) DSB::instance, repo=0x32621f0, name=ORBInitializer_Registry type=0x32650f0 => 0x3264fa0 ACE (-1|41472320) DSB::instance, repo=0x32621f0, name=ORBInitializer_Registry type=0x32650f0 => 0x3264fa0 ACE (-1|41472320) DSB::instance, repo=0x32621f0, name=ORBInitializer_Registry type=0x32650f0 => 0x3264fa0 ACE (-1|41472320) DSB::instance, repo=0x32621f0, name=ORBInitializer_Registry type=0x32650f0 => 0x3264fa0 ACE (-1|41472320) DSB::instance, repo=0x32621f0, name=ORBInitializer_Registry type=0x32650f0 => 0x3264fa0 ACE (-1|41472320) DSB::instance, repo=0x32621f0, name=ORBInitializer_Registry type=0x32650f0 => 0x3264fa0 ACE (-1|41472320) DSB::instance, repo=0x32621f0, name=ORBInitializer_Registry type=0x32650f0 => 0x3264fa0 ACE (-1|41472320) DSB::instance, repo=0x32621f0, name=ORBInitializer_Registry type=0x32650f0 => 0x3264fa0 ACE (-1|41472320) DSB::instance, repo=0x32621f0, name=ORBInitializer_Registry type=0x32650f0 => 0x3264fa0 ACE (-1|41472320) DSB::instance, repo=0x32621f0, name=ORBInitializer_Registry type=0x32650f0 => 0x3264fa0 ACE (-1|41472320) DSB::instance, repo=0x32621f0, name=ORBInitializer_Registry type=0x32650f0 => 0x3264fa0 ACE (-1|41472320) DSB::instance, repo=0x32621f0, name=ORBInitializer_Registry type=0x32650f0 => 0x3264fa0 ACE (-1|41472320) DSB::instance, repo=0x32621f0, name=ORBInitializer_Registry type=0x32650f0 => 0x3264fa0 ACE (-1|41472320) DSB::instance, repo=0x32621f0, name=ORBInitializer_Registry type=0x32650f0 => 0x3264fa0 ACE (-1|41472320) DSB::instance, repo=0x32621f0, name=ORBInitializer_Registry type=0x32650f0 => 0x3264fa0 ACE (-1|41472320) DSB::instance, repo=0x32621f0, name=ORBInitializer_Registry type=0x32650f0 => 0x3264fa0 ACE (-1|41472320) DSB::instance, repo=0x32621f0, name=TAO_ORB_Core_Static_Resources type=0x0 => 0x0 ACE (-1|41472320) SG::process_directive_i, repo=0x32621f0 - TAO_ORB_Core_Static_Resources, dll=<null>, force=0 ACE (-1|41472320) SR::insert - repo=0x32621f0 [6] (1024), name=TAO_ORB_Core_Static_Resources, type=0x3266be0, object=0x3266a90, active=0 ACE (-1|41472320) SG::add_processed_static_svc, repo=0x32621f0 - TAO_ORB_Core_Static_Resources ACE (-1|41472320) DSB::instance, repo=0x32621f0, name=TAO_ORB_Core_Static_Resources type=0x3266be0 => 0x3266a90 ACE (-1|41472320) DSB::instance, repo=0x27e4000, name=TAO_ORB_Core_Static_Resources type=0x0 => 0x0
added depends, this is all related to service config/service gestalt
The problem seems to be related to service config/gestalt. When the image is downloaded the static initializers fill a service repository. At the moment PortableInterceptor::register_orb_initializer is called we do an init of the TAO_Singleton_Manager and after that the services are registered to a different registry. When we then try to retrieve the ORBInitializer_Registry we get a 0 pointer back because we only look in the registry that is created during the TAO_Singleton_Manager::init call. At the moment we change the PortableInterceptor::register_orb_initializer to look at the global registry it works a little bit better, but still we have services in one registry that aren't in the global one. We could get some other tests running by adding the TAO_Singleton_Manager::init call to more static initializers so that we do it before we register any service but that seems more a hack then a real solution. This code worked with x.5.7 but now seems to fail on svn head
Problem seems to be related to the ACE_Object_Manager. The SC::process_directive call uses the current, which is stored in TSS. But on VxWorks we have TSS emulation which is initialized from the ACE_Object_Manager, but this is done as part of the TAO_Singleton_Manager::init. At the moment I do call ACE_Object_Manager::init() before the process_directive it seems to work. Using TSS during static initialization seems tricky at this moment
TSS problem has been resolved. During SG construction we call a new Object_Manager::init_tss which just initializes the TSS. We just can't call OM::init because that again calls SG, which calls OM::init, etc, etc. Only thing to check is that in PortableInterceptor::register_orb_initializer we do need to check the global repository, the loader thread has a different sg then the main thread. Maybe we have a guard we can use, or just use false with the retrieval of the ORBInitializer_Registry Doing a build on the test system and will run the TAO tests first before merging changes to head
mine. most changes are in svn now, rebuilding for a new test
Fixed. Naming Service runs again on VxWorks 6.4 PPC604 kernel mode, svn 79964