Jean-Marc,

Thanks for the additional information.  Yes, it's a bug.  Here's a patch
that should fix it.

Craig

--- bin/BackupPC 2018-10-22 19:03:33.327873033 -0700
+++ bin/BackupPC 2018-10-26 09:18:50.178239319 -0700
@@ -1803,7 +1803,7 @@
             if ( defined($Status->{$host}{backoffTime})
                   && $Status->{$host}{backoffTime} < time );
     return 1 if ( $BgQueueOn{$host} || $UserQueueOn{$host} );
-    if ( $Hosts->{$host}{dhcp} ) {
+    if ( defined($Hosts->{$host}) && $Hosts->{$host}{dhcp} ) {
         $Status->{$host}{dhcpCheckCnt}++;
         if ( $RunNightlyWhenIdle ) {
             #


On Fri, Oct 26, 2018 at 1:17 AM Jean-Marc <doc....@orange.fr> wrote:

> Hello Craig,
>
> Thanks for your help.
>
> Le 26/10/2018 à 07:05, Craig Barratt via BackupPC-users a écrit :
> > Does "nmblookup HOSTNAME" return the correct IP address for that
> > host?  See comments for the $Conf{NmbLookupFindHostCmd} option for
> > arguments you might need to add.
> My clients are in another subnet. I can't ping "name" nor nmblook "name"
> or nmblookup -B "broadcast"
> >
> > If so, then its IP address should be discovered correctly without the
> > dhcp flag.  (In almost all cases it's not necessary to use the dhcp
> flag.)
> >
> I'm afraid i'm in this special case, i need to use dhcp discovery loop.
>
> btw, dhcp flag works as intended, but only in the first wake up loop
> after service start.
>
> Like i said earlier, i suspect a sort of corruption of $host array by
> dhcp datas.
>
> Something like this :
>
> 1st QueueAllPC after service start :
>
> {
>
>      $host loop is clean and run only with non-dhcp flags clients,
> adding tasks to @BGQueue;
>
>       $dhcp loop run and adds BackupPC_dump -d (ip address) to @BGQueue;
>
>      something fills $host with dhcp flagged clients ?
>
> }
>
>
> Others QueueAllPC :
>
> {
>
>      $host loop is perhaps corrupted and adds _all_ clients, including
> dhcp ones, adding tasks BackupPC_dump (ip address) to @BGQueue;
>
>       $dhcp loop run and adds BackupPC_dump -d (ip address) to @BGQueue,
> but create duplicates jobs of $host loop who are canceled later in
> @BGQueue processing loop;
>
>    }
>
>
> I mostly understand perl code, but i need to dump $host array to log
> between the two loops and dont know how to print full $host array to LOG
> (or elsewhere) to be sure there is a bug. (will try print
> join("\n",$host),"\n";   monday)
>
> I think it's essential to note that dhcp backup is ok if QueueAllPC
> loops are switched ($dhcp loop first, then $host loop), except if there
> is an ip address in machines list who's part of dhcp range. (problem
> inverted, jobs in the first loop deny duplicates in the second loop)
>
> I suspect a bug in dhcp stuff.
>
> Thanks
>
> JM
>
>
>
> _______________________________________________
> BackupPC-users mailing list
> BackupPC-users@lists.sourceforge.net
> List:    https://lists.sourceforge.net/lists/listinfo/backuppc-users
> Wiki:    http://backuppc.wiki.sourceforge.net
> Project: http://backuppc.sourceforge.net/
>
_______________________________________________
BackupPC-users mailing list
BackupPC-users@lists.sourceforge.net
List:    https://lists.sourceforge.net/lists/listinfo/backuppc-users
Wiki:    http://backuppc.wiki.sourceforge.net
Project: http://backuppc.sourceforge.net/

Reply via email to