The error is given because the nodes are not in the same subnet as the 
service node, the script did not check for routing. 
The code uses this function to set up MASTER environmental variable for 
the node when calling postscripts. If it is not set up correctly some of 
the postscripts such as syslog will fail. When you say "it works fine even 
with that error". Can you xdsh to the nodes that has the error?

Ling 

Ling Gao
Poughkeepsie Unix Development Lab
IBM Systems and Technology Group
Internal: T/L 293-5692 
External: [email protected], 845-433-5692

"I never worry about the future. It comes soon enough." --- Albert 
Einstein 



From:   Russell Jones <[email protected]>
To:     [email protected]
Date:   12/07/2012 02:06 PM
Subject:        Re: [xcat-user] Cannot find master for the node $node



Thanks!

DNS is working properly, both forward and reverse... this seems to occur 
mostly when entire clusters are booted at the same time.

The nodes are not within the same subnet, all of these nodes are on 
different subnets from the service nodes (and routed of course).  The 
other strange thing is again, it works fine even with that error:


[root@service03-hc log]# grep c25n37 messages
Dec  7 09:05:02 service03 xCAT: xCAT: Allowing getpostscript from c25n37
Dec  7 09:05:03 service03 xCAT: Cannot find master for the node c25n37
Dec  7 09:05:14 service03 xCAT: xCAT: Allowing getcredentials from c25n37
Dec  7 09:05:24 service03 xCAT: xCAT: Allowing getcredentials from c25n37
Dec  7 09:05:32 service03 xCAT: xCAT: Allowing getcredentials from c25n37


Could this message manifest itself if a service node is very busy? IE, not 
really an error, just took too long to respond to the request? Or is this 
literally sending the error because the compute nodes are not on the same 
subnet as the service nodes?



On 12/7/2012 12:18 PM, Ling Gao wrote:
Hi, 
   The error is from getFacingIP function. This function takes a node name 
as an input. Then it 
find out the ip of the given node. Then it call "ifconfig" on the local 
host. Then it try to see if the node ip and local host is within the same 
subnet or not. (Please see the code below). The error usually happens when 
the name resolution on the local host cannot resolve the given node.  Hope 
it helps. 


#-------------------------------------------------------------------------------
 


=head3   getFacingIP 
       Gets the ip address of the adapter of the localhost that is facing 
the 
    the given node. 
    Arguments: 
       The name of the node that is facing the localhost. 
    Returns: 
       The ip address of the adapter that faces the node. 

=cut 

#-------------------------------------------------------------------------------
 

sub getFacingIP 
{ 
    my ($class, $node) = @_; 
    my $ip; 
    my $cmd; 
    my @ipaddress; 

    my $nodeip = inet_ntoa(inet_aton($node)); 
    unless ($nodeip =~ /\d+\.\d+\.\d+\.\d+/) 
    { 
        return 0;    #Not supporting IPv6 here IPV6TODO 
    } 

    $cmd = "ifconfig" . " -a"; 
    $cmd = $cmd . "| grep \"inet \""; 
    my @result = xCAT::Utils->runcmd($cmd, 0); 
    if ($::RUNCMD_RC != 0) 
    { 
        xCAT::MsgUtils->message("S", "Error from $cmd\n"); 
        exit $::RUNCMD_RC; 
    } 

    # split node address 
    my ($n1, $n2, $n3, $n4) = split('\.', $nodeip); 

    foreach my $addr (@result) 
    { 
        my $ip; 
        my $mask; 
        if (xCAT::Utils->isLinux()) 
        { 
            my ($inet, $addr1, $Bcast, $Mask) = split(" ", $addr); 
            if ((!$addr1) || (!$Mask)) { next; } 
            my @ips   = split(":", $addr1); 
            my @masks = split(":", $Mask); 
            $ip   = $ips[1]; 
            $mask = $masks[1]; 
        } 
        else 
        {    #AIX 
            my ($inet, $addr1, $netmask, $mask1, $Bcast, $bcastaddr) = 
              split(" ", $addr); 
            if ((!$addr1) && (!$mask1)) { next; } 
            $ip = $addr1; 
            $mask1 =~ s/0x//; 
            $mask = 
              `printf "%d.%d.%d.%d" \$(echo "$mask1" | sed 's/../0x& 
/g')`; 
        } 

        if ($ip && $mask) 
        { 

            # split interface IP 
            my ($h1, $h2, $h3, $h4) = split('\.', $ip); 

            # split mask 
            my ($m1, $m2, $m3, $m4) = split('\.', $mask); 

            # AND this interface IP with the netmask of the network 
            my $a1 = ((int $h1) & (int $m1)); 
            my $a2 = ((int $h2) & (int $m2)); 
            my $a3 = ((int $h3) & (int $m3)); 
            my $a4 = ((int $h4) & (int $m4)); 

            # AND node IP with the netmask of the network 
            my $b1 = ((int $n1) & (int $m1)); 
            my $b2 = ((int $n2) & (int $m2)); 
            my $b3 = ((int $n3) & (int $m3)); 
            my $b4 = ((int $n4) & (int $m4)); 

            if (($b1 == $a1) && ($b2 == $a2) && ($b3 == $a3) && ($b4 == 
$a4)) 
            { 
                return $ip; 
            } 
        } 
    } 

    xCAT::MsgUtils->message("S", "Cannot find master for the node 
$node\n"); 
    return 0; 
} 

Ling Gao
Poughkeepsie Unix Development Lab
IBM Systems and Technology Group
Internal: T/L 293-5692 
External: [email protected], 845-433-5692

"I never worry about the future. It comes soon enough." --- Albert 
Einstein 



From:        Russell Jones <[email protected]> 
To:        xCAT Users Mailing list <[email protected]> 
Date:        12/07/2012 11:05 AM 
Subject:        [xcat-user] Cannot find master for the node $node 



Hi all,

What circumstances have to be present for an xCAT 2.3 service node (old 
I know, but upgrade is not an option at this time) to write to the logs:

Dec  7 09:16:33 service03 xCAT: Cannot find master for the node c25n25


All of our service nodes have been doing this for at least over a month 
now, and we have just never noticed it before as nodes are 
netbooting/installing fine. Just curious what the logic is in the code 
that has this message being written out, just so that if it turns out to 
be something we need to track down we know where to start.

Thanks!

------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
xCAT-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xcat-user




------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d


_______________________________________________
xCAT-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xcat-user

------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
xCAT-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xcat-user

------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
xCAT-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xcat-user

Reply via email to