Locks shall not fail, so don't insert any retry loop. If lock fails, it 
is due to a programming error, so just abort().

/ Anders Widell

On 08/29/2014 10:10 AM, Anders Björnerstedt wrote:
> Nack.
>
> Just returning on failure to obtain the lock does not seem like a good 
> solution.
> The stale marking of the clients will then just silently be skipped.
> This will cause unpredicatable behavior towards the user.
>
> Instead you need a retry loop with small delay and if *that* fails then I 
> suggest
> Go ahead and stale mark anyway.
>
> The alternative is to assert and crash the user process.
>
> /AndersBj
>
> -----Original Message-----
> From: Hans Feldt
> Sent: den 29 augusti 2014 10:02
> To: Anders Björnerstedt
> Cc: [email protected]
> Subject: [PATCH 1 of 1] imma: add missing lock when traversing client db from 
> mds thread [#1033]
>
>   osaf/libs/agents/saf/imma/imma_db.c |  8 +++++++-
>   1 files changed, 7 insertions(+), 1 deletions(-)
>
>
> diff --git a/osaf/libs/agents/saf/imma/imma_db.c 
> b/osaf/libs/agents/saf/imma/imma_db.c
> --- a/osaf/libs/agents/saf/imma/imma_db.c
> +++ b/osaf/libs/agents/saf/imma/imma_db.c
> @@ -676,13 +676,17 @@ void imma_mark_clients_stale(IMMA_CB *cb  
> ******************************************************************************/
>   void imma_process_stale_clients(IMMA_CB *cb)  {
> -     /* We are LOCKED already */
>       IMMA_CLIENT_NODE  * clnode;
>       SaImmHandleT *temp_ptr=0;
>       SaImmHandleT temp_hdl=0;
>   
>       TRACE_ENTER();
>   
> +     if (m_NCS_LOCK(&cb->cb_lock, NCS_LOCK_WRITE) != NCSCC_RC_SUCCESS) {
> +             TRACE_3("Lock failure");
> +             return;
> +     }
> +
>       /* scan the entire handle db & check each record */
>       while ((clnode = (IMMA_CLIENT_NODE *)
>                      ncs_patricia_tree_getnext(&cb->client_tree, (uint8_t 
> *)temp_ptr))) @@ -707,6 +711,8 @@ void imma_process_stale_clients(IMMA_CB
>               }
>       }
>   
> +     m_NCS_UNLOCK(&cb->cb_lock, NCS_LOCK_WRITE);
> +
>       TRACE_LEAVE();
>   }
>           
>
> ------------------------------------------------------------------------------
> Slashdot TV.
> Video for Nerds.  Stuff that matters.
> http://tv.slashdot.org/
> _______________________________________________
> Opensaf-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/opensaf-devel
>
>



------------------------------------------------------------------------------
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to