Hi Hoang,

Can you please re-send the patch ,  some compilation error  with gcc 
version 4.8.3 (GCC)

====================================================================================

ector -DINTERNAL_VERSION_ID='""' -O2 -g -m64 -fmessage-length=0 
-D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables 
-fasynchronous-unwind-tables -MT osafckptd-cpd_proc.o -MD -MP -MF 
.deps/osafckptd-cpd_proc.Tpo -c -o osafckptd-cpd_proc.o `test -f 
'cpd_proc.c' || echo './'`cpd_proc.c
cpd_proc.c: In function ‘cpd_proc_unlink_set’:
cpd_proc.c:1065:22: error: incompatible types when assigning to type 
‘SaConstStringT’ from type ‘SaNameT’
    key_info.node_name = cluster_node.nodeName;
                       ^
cpd_proc.c:1066:22: error: assignment makes pointer from integer without 
a cast [-Werror]
    key_info.ckpt_name = *ckpt_name;
                       ^
cc1: all warnings being treated as errors
make[8]: *** [osafckptd-cpd_proc.o] Error 1
make[8]: Leaving directory 
`/avm/staging-publish/rpms/BUILD/opensaf-5.2.M0/osaf/services/saf/cpsv/cpd'

====================================================================================

-AVM

On 12/8/2016 12:40 PM, Vo Minh Hoang wrote:
> Dear Mahesh,
>
> Sorry for late reply when others tickets have higher priority.
>
> I manually tested your case with collocated/non-collocated checkpoint and
> found that it work normally following expected scenario
>
> Thank you and best regards,
> Hoang
>
> -----Original Message-----
> From: A V Mahesh [mailto:mahesh.va...@oracle.com]
> Sent: Thursday, October 13, 2016 1:44 PM
> To: Nhat Pham <nhat.p...@dektech.com.au>; anders.wid...@ericsson.com
> Cc: opensaf-devel@lists.sourceforge.net; Hoang Vo
> <hoang.m...@dektech.com.au>
> Subject: Re: [PATCH 1 of 1] cpsv: Update ckpt_reploc_tree when unlinking a
> checkpoint [#1655]
>
> Hi Nhat Pham/Hoang,
>
> Can you please clarify following :
>
>>> Solution:
>>> ---------
>>> The solution is to remove replica location node of that checkpoint
>> >from the ckpt_reploc_tree  when unlinking the checkpoint.
> If replica location node of that checkpoint from the ckpt_reploc_tree remove
> how will be existing application still accessing will behave ?
>
> say for example :
>
> Cpa-1 on node-A  did unlinking a ckpt-1
> Cpa-2 on node-A still accessing reading/writing/creating sections/ect .. for
> the unlinked ckpt-1
>
> Can you please test this case
>
> -AVM
>
> On 1/6/2016 9:42 AM, Nhat Pham wrote:
>>    osaf/services/saf/cpsv/cpd/cpd_db.c   |   4 ++++
>>    osaf/services/saf/cpsv/cpd/cpd_proc.c |  30
> ++++++++++++++++++++++++++++++
>>    2 files changed, 34 insertions(+), 0 deletions(-)
>>
>>
>> Problem:
>> --------
>> The replica IMM objects are not created after opening a checkpoint in
> following scenario:
>> 1. Open a checkpoint with flag SA_CKPT_CHECKPOINT_CREATE 2. Unlink the
>> checkpoint ( the checkpoint is still being used) 3. Open a checkpoint
>> with flag SA_CKPT_CHECKPOINT_CREATE with same name as the one in 1.
>>
>> After step 3. although the checkpoint is opened successfully, the
>> replica IMM objects are not created.
>>
>> The problem happens because the CPD does not delete relating nodes
>> from ckpt_reploc_tree when it unlinks the checkpoint in step 2.
>>
>> Solution:
>> ---------
>> The solution is to remove replica location node of that checkpoint
>> from the ckpt_reploc_tree when unlinking the checkpoint.
>>
>> diff --git a/osaf/services/saf/cpsv/cpd/cpd_db.c
>> b/osaf/services/saf/cpsv/cpd/cpd_db.c
>> --- a/osaf/services/saf/cpsv/cpd/cpd_db.c
>> +++ b/osaf/services/saf/cpsv/cpd/cpd_db.c
>> @@ -420,6 +420,8 @@ uint32_t cpd_ckpt_reploc_node_delete(CPD
>>    {
>>      uint32_t rc = NCSCC_RC_SUCCESS;
>>    
>> +    TRACE_ENTER();
>> +
>>      if (cb->ha_state == SA_AMF_HA_ACTIVE) {
>>    
>>              rc = cpd_ckpt_reploc_imm_object_delete(cb, ckpt_reploc_node,
>> is_unlink_set); @@ -441,6 +443,7 @@ uint32_t
> cpd_ckpt_reploc_node_delete(CPD
>>                      TRACE_4("cpd db node add failed ");
>>              }
>>    
>> +            TRACE_LEAVE();
>>              return NCSCC_RC_FAILURE;
>>      }
>>    
>> @@ -448,6 +451,7 @@ uint32_t cpd_ckpt_reploc_node_delete(CPD
>>      if (ckpt_reploc_node)
>>              m_MMGR_FREE_CPD_CKPT_REPLOC_INFO(ckpt_reploc_node);
>>    
>> +    TRACE_LEAVE();
>>      return rc;
>>    }
>>    
>> diff --git a/osaf/services/saf/cpsv/cpd/cpd_proc.c
>> b/osaf/services/saf/cpsv/cpd/cpd_proc.c
>> --- a/osaf/services/saf/cpsv/cpd/cpd_proc.c
>> +++ b/osaf/services/saf/cpsv/cpd/cpd_proc.c
>> @@ -1021,6 +1021,36 @@ uint32_t cpd_proc_unlink_set(CPD_CB *cb,
>>      (*ckpt_node)->attributes = map_info->attributes;
>>      /* Delete the MAP Info */
>>      rc = cpd_ckpt_map_node_delete(cb, map_info);
>> +
>> +    /* Delete replica location of the unlinked checkpoint from the
> ckpt_reploc_tree */
>> +    CPD_NODE_REF_INFO *nref_info = (*ckpt_node)->node_list;
>> +
>> +    while (nref_info) {
>> +            SaClmNodeIdT node_id =
> m_NCS_NODE_ID_FROM_MDS_DEST(nref_info->dest);
>> +            SaClmClusterNodeT cluster_node;
>> +            CPD_REP_KEY_INFO key_info;
>> +            CPD_CKPT_REPLOC_INFO *reploc_info = NULL;
>> +            
>> +            memset(&cluster_node, 0, sizeof(SaClmClusterNodeT));
>> +            memset(&key_info, 0, sizeof(CPD_REP_KEY_INFO));
>> +
>> +            if (saClmClusterNodeGet(cb->clm_hdl, node_id,
> CPD_CLM_API_TIMEOUT, &cluster_node) != SA_AIS_OK) {
>> +                    LOG_ER("cpd unlink set - saClmClusterNodeGet failed
> for node_id %u",node_id);
>> +                    rc = SA_AIS_ERR_LIBRARY;
>> +                    break;
>> +            }
>> +
>> +            key_info.node_name = cluster_node.nodeName;
>> +            key_info.ckpt_name = *ckpt_name;
>> +
>> +            cpd_ckpt_reploc_get(&cb->ckpt_reploc_tree, &key_info,
> &reploc_info);
>> +            if (reploc_info) {
>> +                    cpd_ckpt_reploc_node_delete(cb, reploc_info,
> (*ckpt_node)->is_unlink_set);
>> +            }
>> +
>> +            nref_info = nref_info->next;
>> +    }
>> +
>>      TRACE_LEAVE();
>>      return rc;
>>    }
>


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to