[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: (ITS#4915) Syncrepl task exits are not logged



unix.gurus@gmail.com wrote:
> Full_Name: Sean Burford
> Version: 2.3.32
> OS: Linux
> URL: ftp://ftp.openldap.org/incoming/
> Submission from: (NULL) (65.57.245.11)
> 
> 
> It is hard to tell when the syncrepl task has exited.  The attached patch adds
> logging of syncrepl hard and soft failures.
> 
> Using this patch, it is easier to spot unfortunate conditions where recoverable
> failures are treated as hard failures, for example the third line below shows
> that a (temporarily) unavailable kerberos credential cache causes a hard
> failure:
> GSSAPI Error: Miscellaneous failure (No credentials cache found)
> do_syncrep1: rid 123 ldap_sasl_interactive_bind_s failed (-2)
> do_syncrepl: rid 123 hard failure

Looks like a good idea, thanks. I think I'd just change the messages to
"giving up" or "quitting", and "retrying".

That final else clause in your patch should never occur, there is no 3rd 
outcome.
> 
> Hmm, no attachment because the FTP server returns:
> 200 PORT command successful.
> 150 Opening ASCII mode data connection for
> 'openldap-2.3.32-syncrepl-log-failure.patch'.
> ##
> 452 Error writing file: No space left on device.
> 1104 bytes sent in 0.00011 seconds (1e+04 Kbytes/s)
> 
> The patch was:
> *** openldap-2.3.32.orig/servers/slapd/syncrepl.c       Wed Apr  4 17:21:31
> 2007
> --- openldap-2.3.32/servers/slapd/syncrepl.c    Wed Apr  4 17:55:58 2007
> ***************
> *** 1147,1159 ****
> --- 1147,1169 ----
>                 }
>   
>                 if ( !si->si_retrynum || si->si_retrynum[i] == RETRYNUM_TAIL )
> {
> +                       Debug( LDAP_DEBUG_ANY,
> +                               "do_syncrepl: rid %03d hard failure\n",
> +                               si->si_rid, 0, 0 );
>                         ldap_pvt_runqueue_remove( &slapd_rq, rtask );
>                 } else if ( RETRYNUM_VALID( si->si_retrynum[i] ) ) {
>                         if ( si->si_retrynum[i] > 0 )
>                                 si->si_retrynum[i]--;
> +                       Debug( LDAP_DEBUG_ANY,
> +                               "do_syncrepl: rid %03d soft failure,
> rescheduling (retries left: %d)\n",
> +                               si->si_rid, si->si_retrynum[i], 0 );
>                         rtask->interval.tv_sec = si->si_retryinterval[i];
>                         ldap_pvt_runqueue_resched( &slapd_rq, rtask, 0 );
>                         slap_wake_listener();
> +               } else {
> +                       Debug( LDAP_DEBUG_ANY,
> +                               "do_syncrepl: rid %03d soft failure,
> rescheduling\n",
> +                               si->si_rid, 0, 0 );
>                 }
>         }
> 
> 
> 


-- 
   -- Howard Chu
   Chief Architect, Symas Corp.  http://www.symas.com
   Director, Highland Sun        http://highlandsun.com/hyc/
   Chief Architect, OpenLDAP     http://www.openldap.org/project/