Bug 2499 - PortableServer static initialization order issue on static build
Summary: PortableServer static initialization order issue on static build
Status: NEW
Alias: None
Product: TAO
Classification: Unclassified
Component: other (show other bugs)
Version: 1.5
Hardware: All All
: P3 normal
Assignee: DOC Center Support List (internal)
URL:
Depends on:
Blocks:
 
Reported: 2006-04-06 15:54 CDT by fields_t
Modified: 2006-04-10 12:30 CDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description fields_t 2006-04-06 15:54:59 CDT
On static builds, the order of initialization of
_TAO_Object_Proxy_Broker_Factory_function_pointer (From Object.cpp)

Expected initialization is for
Object.cpp sets to 0
Collocated_Object_Proxy_Broker sets to pointer to
_TAO_collocation_Object_Proxy_Broker_Factory;

On static builds, the _TAO_Object_Proxy_Broker_Factory_function_pointer is 0
after static initialization is complete.
Comment 1 fields_t 2006-04-10 12:30:41 CDT
How to view the problem
Change the TAO\tests\Portable_Interceptors\Processing_Mode_Policy\Collocated
test by removing the _is_a checks from interceptors.cpp

Build a static build.
The test will fail because the _is_a is called as a remote call by the
Remote_Object_Proxy_Broker.

The Collocated_Object_Proxy_Broker should have replaced the value of
_TAO_Object_Proxy_Broker_Factory_function_pointer but it has a value of 0(zero).

We believe the static build is initializing the Object.cpp after the
Collocated_Object_Proxy_Broker.cpp resulting in the 
_TAO_Object_Proxy_Broker_Factory_function_pointer being set to 0 after
Collocated_Object_Proxy_Broker.cpp initialized it to the factory pointer.