I have a Proxy/Proxied configuration that I'm running integration testing on. I have two tests whereby the Proxy is terminated. One of them behaves as expected but the other one doesn't. Here are the cases.
1. If I do a kill -9 on the Proxy process it goes away but is immediately restarted by AMF. My Proxy then reconnects with the Proxied component (which has been running all along) and everyone is fine. This test case is good. 2. If I enter on the command line amf-adm lock <Proxy's DN> followed by amf-adm lock-in <Proxy's DN> the Proxy is terminated gracefully but then a few seconds later (7 seconds to be exact) I get an error log from AMF stating : osafamfnd[3470]: NO 'safComp=MyProxiedComp,safSu=SU1,safSg=MyProxiedSG,safApp=MyApp' faulted due to 'prxRegTimeout' : Recovery is 'suFailover' osafamfnd[3470]: NO 'safSu=SU1,safSg=MyProxiedSG,safApp=MyApp' Presence State INSTANTIATED => TERMINATING Followed by a cleanup of the Proxied Component. Now, according to the AMF B.04.01 spec, section 5.3, page 219, the Proxied component should enter the UNPROXIED state: "If a proxy component fails, the Availability Management Framework may perform a fail-over if fail-over is allowed by the redundancy model of the service group to which the proxy belongs. During the proxy component fail-over procedure, the Availability Management Framework implicitly unregisters all registered proxied components associated with the failing proxy component. However, this implicit unregistration should not be considered by the Availability Management Framework as a sign of a proxied component failure. The implicit unregistration simply indicates that the proxy component is unable to continue the "proxying" work, and the Availability Management Framework should find another proxy component to take over the "proxying" work." A bit further on in that section it states: "If the Availability Management Framework is unable to find another proxy component to "proxy" a given proxied component, the given proxied component shall enter the SA_AMF_PROXY_STATUS_UNPROXIED status (defined in Section 7.4.4.8), and an appropriate alarm shall be issued by the Availability Management Framework (see Section 11.2.1.5 on page 427) to indicate this situation. Whenever a proxied component enters the SA_AMF_PROXY_STATUS_PROXIED status (defined in Section 7.4.4.8), an appropriate notification (see Section 11.2.2.7 on page 434) will be issued to indicate the change in the status of the proxied component." My interpretation of these paragraphs (especially the parts highlighted in red) is that the Proxied component should never be terminated, but it is in this scenario. Now, perhaps this has to do with how I've configured my Proxy and Proxied components. I have 2 redundant nodes running these Proxy/Proxied component pairs. The Proxy's on both nodes are members of separate SG's that are configured as no redundancy (so both Proxy's are ACTIVE all the time). But the two Proxied components are members of just one SG which is configured for 2N redundancy (so one Proxied component is ACTIVE and the other is STANDBY). If what I'm doing is correct but OpenSAF is reacting incorrectly then perhaps a ticket should be raised on this issue. If this has already been addressed then please tell me in which release it has been corrected (4.4 or 4.5). If, however, I have configured the SG's of the components incorrectly or I'm interpreting the spec incorrectly then please, someone slap me up the side of my head and show me the error of my ways. Cheers, Mark Garstin Sr. SW Developer Ericsson ------------------------------------------------------------------------------ HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions Find What Matters Most in Your Big Data with HPCC Systems Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. Leverages Graph Analysis for Fast Processing & Easy Data Exploration http://p.sf.net/sfu/hpccsystems _______________________________________________ Opensaf-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/opensaf-users
