Hi Anders Widell,
On 9/17/2015 4:19 PM, Anders Widell wrote:
> Ack from me, with the minor comment that it looks like you have
> forgotten to remove the TIPC kernel module in the following part of
> the code:
>
> + if [ $# -eq 1 ] ; then
> + ################ Address config and check #########
> + ${tipc_config} -a=1.1.$TIPC_MAX_NODES
> + ret_z1=$?
> + if [ $ret_z1 -ne 0 ] ; then
> + echo "Unable to Configure TIPC address, Please try
> again, exiting"
> + modprobe -r tipc
> + exit 1
> + fi
> + else
>
> / Anders Widell
This looks like existing bug, this bug even in existing function
`tipc_configure ()` , I coped the same bug in to new
function `tipc_duplicate_node_detect ()` .
Basically we need to record whether we did initially `insmod
tipc.ko` or `modprobe tipc`
at starting, while exiting on error , based on recorded value we need
to do remove `rmmod tipc.ko` or `modprobe -r tipc`
-AVM
>
> On 09/03/2015 10:37 AM, [email protected] wrote:
>> 00-README.conf | 8 +-
>> osaf/services/infrastructure/nid/scripts/configure_tipc.in | 83
>> +++++++++++++-
>> 2 files changed, 87 insertions(+), 4 deletions(-)
>>
>>
>> Issue :
>> ---------
>> Currently in Opensaf duplicate tipc-id is identified on network and
>> eventually both controllers crashing
>> and Cluster is going for reboot.
>>
>> steps to reproduce:
>> ----------------------------
>> 1. Both controllers SC-1,SC-2 are up and running with SC-1 active
>> and SC-2 standby.
>> 2. Wrongly configure the slot_id of PL-3 with value 3 (same value
>> as SC-2)
>> 3. Start the opensaf on PL-3.
>>
>> Fix :
>> ------
>> Added verify duplicate TIPC node_id check before configuring
>> TIPC/starting Opensaf
>>
>> This fix is done using tipc toos Usage:
>> tipc-config command [command ...]
>>
>> valid commands:
>> -addr [=<addr>] Get/set node address
>> -b [=<bearerpat>] Get bearers
>> -bd =<bearerpat> Disable bearer
>> -be =<bearer>[/<domain>[/<priority>]]] Enable bearer
>> -dest =<addr> Command destination node
>> -help This usage list
>> -i Interactive set operations
>> -l [=<domain>|<linkpat>] Get links to domain
>> -log [=<size>] Dump/resize log
>> -lp =<linkpat>|<bearer>|<media>/<value> Set link priority
>> -ls [=<linkpat>] Get link statistics
>> -lsr =<linkpat> Reset link statistics
>> -lt =<linkpat>|<bearer>|<media>/<value> Set link tolerance
>> -lw =<linkpat>|<bearer>|<media>/<value> Set link window
>> -m Get media
>> -max_clusters [=<value>] Get/set max clusters in
>> own zone
>> -max_nodes [=<value>] Get/set max nodes in
>> own cluster
>> -max_ports [=<value>] Get/set max number of
>> ports
>> -max_publ [=<value>] Get/set max publications
>> -max_remotes [=<value>] Get/set max non-cluster
>> neighbors
>> -max_subscr [=<value>] Get/set max subscriptions
>> -max_zones [=<value>] Get/set max zones in
>> own network
>> -mng [=enable|disable] Get/set remote management
>> -n [=<domain>] Get nodes in domain
>> -netid[=<value>] Get/set network id
>> -nt [=[<depth>,]<type>[,<low>[,<up>]]] Get name table
>> where <depth> = types|names|ports|all
>> -p Get port info
>> -r [=<domain>] Get routes to domain
>> -s Get TIPC status info
>> -v Verbose output
>> -V Get tipc-config version
>> info (tipc-config -nt option ) and
>> with in the scope of Opensaf startup scripts.
>> Note : This bug can alos fixed TIPC code , once it is available we
>> can remove this code.
>>
>> We wishes to check whether the duplicate nodes are present in the
>> cluster
>> before adding Opensaf newel configured node, this is accomplished by
>> adding a dummy node to the TIPC topology and this node has very
>> short time limit but will not match
>> any other Opensaf Node configuration.
>>
>> The use of a dummy Node having the name sequence {1,1,2000} , this
>> allows the
>> Opensaf to find the information at start-up by getting existing
>> name table of cluster
>> by using TIPC module not installed command.
>>
>> diff --git a/00-README.conf b/00-README.conf
>> --- a/00-README.conf
>> +++ b/00-README.conf
>> @@ -128,13 +128,17 @@ Notes:
>> as: $ configure_tipc start <interface name> <TIPC netid>
>> For eg:- $ configure_tipc start eth0 9859
>> -(f) Setting MDS_TIPC_MCAST_ENABLED to 1 or 0, allows OpenSAF to
>> enable or
>> +(h) Setting MDS_TIPC_MCAST_ENABLED to 1 or 0, allows OpenSAF to
>> enable or
>> disable TIPC Multicast Messaging and this configuration is valid
>> when
>> MDS_TRANSPORT is set to TIPC. By Default TIPC Multicast
>> Messaging is Enabled.
>> Note: In case of TIPC Multicast Messaging disabled (0), the
>> performance
>> of OpenSAF will be considerably lower compared to Enabled (1).
>> -
>> +
>> +(i) To use TIPC duplicate node address detection in cluster, while
>> starting Opensaf
>> + we needs to enabled TIPC_DUPLICATE_NODE_DETECT=YES in
>> + `/usr/lib(64)/opensaf/configure_tipc` script.
>> +
>> *******************************************************************************
>> nodeinit.conf.<node_type>
>> diff --git
>> a/osaf/services/infrastructure/nid/scripts/configure_tipc.in
>> b/osaf/services/infrastructure/nid/scripts/configure_tipc.in
>> --- a/osaf/services/infrastructure/nid/scripts/configure_tipc.in
>> +++ b/osaf/services/infrastructure/nid/scripts/configure_tipc.in
>> @@ -35,6 +35,16 @@ SUBSLOT_ID_FILE=$pkgsysconfdir/subslot_i
>> # of the address and the slot ID is shifted up 4 bits.
>> USE_SUBSLOT_ID=${TIPC_USE_SUBSLOT_ID:-"NO"}
>> +# Currently supported max nodes for Opensaf
>> +TIPC_MAX_NODES=2000
>> +
>> +# Support for enable disable duplicate node verification.
>> +# When TIPC_DUPLICATE_NODE_DETECT is set to "YES" (the default is
>> "YES"),
>> +# at Opensaf start-up , it is per-verified whether any duplicate node
>> +# exist in the cluster, set TIPC_DUPLICATE_NODE_DETECT set to NO to
>> disable
>> +# per-verification of duplicate node.
>> +DUPLICATE_NODE_DETECT=${TIPC_DUPLICATE_NODE_DETECT:-"YES"}
>> +
>> # constants
>> SHIFT4=4
>> @@ -112,6 +122,72 @@ else
>> TIPC_NODEID=$SLOT_ID
>> fi
>> +function tipc_duplicate_node_detect ()
>> +{
>> + logger -t opensaf -s "Checking for duplicate Node: $TIPC_NODEID
>> in Cluster..."
>> + if ! test -f "$TIPC_MODULE" ; then
>> + modprobe tipc
>> + else
>> + insmod "$TIPC_MODULE"
>> + fi
>> +
>> + ret_val=$?
>> + if [ $ret_val -ne 0 ] ; then
>> + logger -p user.err " TIPC Module could not be loaded "
>> + exit 1
>> + fi
>> +
>> + # max_nodes is not supported in TIPC 2.0
>> + if ${tipc_config} -max_nodes 2> /dev/null; then
>> + ${tipc_config} -max_nodes=$TIPC_MAX_NODES
>> + ret_val=$?
>> + if [ $ret_val -ne 0 ] ; then
>> + modprobe -r tipc
>> + exit 1
>> + fi
>> + fi
>> +
>> + if [ $# -eq 1 ] ; then
>> + ################ Address config and check #########
>> + ${tipc_config} -a=1.1.$TIPC_MAX_NODES
>> + ret_z1=$?
>> + if [ $ret_z1 -ne 0 ] ; then
>> + echo "Unable to Configure TIPC address, Please try
>> again, exiting"
>> + modprobe -r tipc
>> + exit 1
>> + fi
>> + else
>> + ${tipc_config} -netid=$TIPC_NETID -a=1.1.$TIPC_MAX_NODES
>> + ret_z2=$?
>> + if [ $ret_z2 -ne 0 ] ; then
>> + echo "Unable to Configure TIPC address, Please try
>> again, exiting"
>> + modprobe -r tipc
>> + exit 1
>> + fi
>> + ${tipc_config} -be=$(echo $ETH_NAME | sed
>> 's/^/eth:/;s/,/,eth:/g')
>> + ret_z3=$?
>> + if [ $ret_z3 -ne 0 ] ; then
>> + echo "Unable to Configure TIPC bearer interface, Please
>> try again, exiting"
>> + modprobe -r tipc
>> + exit 1
>> + else
>> + ${tipc_config} -nt | grep cluster | grep
>> "1.1.$TIPC_NODEID:" > /dev/null
>> + ret_z4=$?
>> + if [ $ret_z4 -eq 0 ] ; then
>> + logger -t opensaf -s "Unable to Configure TIPC Node,
>> Duplicate Node $TIPC_NODEID exist in cluster, exiting..."
>> + modprobe -r tipc
>> + exit 1
>> + else
>> + if ! test -f "$TIPC_MODULE" ; then
>> + modprobe -r tipc
>> + else
>> + rmmod "$TIPC_MODULE"
>> + fi
>> + fi
>> + fi
>> + fi
>> +}
>> +
>> function tipc_configure ()
>> {
>> echo "Inserting TIPC mdoule..."
>> @@ -130,10 +206,10 @@ function tipc_configure ()
>> # max_nodes is not supported in TIPC 2.0
>> if ${tipc_config} -max_nodes 2> /dev/null; then
>> - ${tipc_config} -max_nodes=2000
>> + ${tipc_config} -max_nodes=$TIPC_MAX_NODES
>> ret_val=$?
>> if [ $ret_val -ne 0 ] ; then
>> - echo "Unable to set the Max_nodes to 2000, exiting ....."
>> + echo "Unable to set the Max_nodes to $TIPC_MAX_NODES,
>> exiting ....."
>> modprobe -r tipc
>> exit 1
>> fi
>> @@ -177,6 +253,9 @@ function tipc_configure ()
>> # Consider that TIPC could be statically linked
>> if ! grep TIPC /proc/net/protocols >& /dev/null; then
>> + if [ "$DUPLICATE_NODE_DETECT" = "YES" ]; then
>> + tipc_duplicate_node_detect
>> + fi
>> tipc_configure
>> else
>> # TIPC is already present, is it configured properly?
>>
>> ------------------------------------------------------------------------------
>>
>>
>> Monitor Your Dynamic Infrastructure at Any Scale With Datadog!
>> Get real-time metrics from all of your servers, apps and tools
>> in one place.
>> SourceForge users - Click here to start your Free Trial of Datadog now!
>> http://pubads.g.doubleclick.net/gampad/clk?id=241902991&iu=/4140
>> _______________________________________________
>> Opensaf-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/opensaf-devel
>>
>
------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel