fix defect #4525 [DEV] ubuntu 14.04.1 ppc64el hierarchy stateless provision hang on wget: bad address 'c910f03c05k07'
This commit is contained in:
parent
cddf0ba309
commit
17b29dcd17
@ -830,20 +830,25 @@ sub getlibs {
|
||||
my $liblist = `chroot $rootimg_dir ldd $file`;
|
||||
my @libs = split/\n/,$liblist;
|
||||
my @return;
|
||||
foreach (@libs) {
|
||||
unless (/=>/) {
|
||||
(my $wjnk, my $lib,my $jnk) = split /\s+/,$_,3;
|
||||
$lib =~ s/^\///;
|
||||
$libhash{$lib}=1;
|
||||
next;
|
||||
}
|
||||
(my $temp1,my $temp2) = split />/,$_,2;
|
||||
(my $whitespace,$temp1,$temp2) = split /\s+/,$temp2,4;
|
||||
unless ($temp1 =~ /\//) {
|
||||
next;
|
||||
}
|
||||
$temp1 =~ s/^\///;
|
||||
$libhash{$temp1}=1;
|
||||
foreach (@libs) {
|
||||
if(/statically linked/){
|
||||
return;
|
||||
}
|
||||
unless (/=>/) {
|
||||
(my $wjnk, my $lib,my $jnk) = split /\s+/,$_,3;
|
||||
$lib =~ s/^\///;
|
||||
$libhash{$lib}=1;
|
||||
getlibs($lib);
|
||||
next;
|
||||
}
|
||||
(my $temp1,my $temp2) = split />/,$_,2;
|
||||
(my $whitespace,$temp1,$temp2) = split /\s+/,$temp2,4;
|
||||
unless ($temp1 =~ /\//) {
|
||||
next;
|
||||
}
|
||||
$temp1 =~ s/^\///;
|
||||
$libhash{$temp1}=1;
|
||||
getlibs($temp1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1180,12 +1185,20 @@ for i in `cat /proc/cmdline`; do
|
||||
#NOTE needs FT retry code to scale
|
||||
#NOTE: should prob have max count
|
||||
FILENAME=`echo \$VALUE|awk -F/ '{print \$NF}'`
|
||||
|
||||
MAXTRIES=5
|
||||
ITER=0
|
||||
while [ ! -r "\$FILENAME" ]; do
|
||||
echo Getting \$VALUE...
|
||||
if ! wget \$VALUE; then
|
||||
if ! /usr/bin/wget \$VALUE; then
|
||||
ST=`expr \$RANDOM % 5`
|
||||
sleep \$ST
|
||||
rm -f \$FILENAME
|
||||
ITER=\$(expr \$ITER + 1 )
|
||||
if [ "\$ITER" == "\$MAXTRIES" ]; then
|
||||
/bin/busybox telnetd -l /bin/sh
|
||||
shell
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
@ -1420,7 +1433,7 @@ EOMS
|
||||
print $inifile "fi\n";
|
||||
print $inifile "cd /\n";
|
||||
print $inifile "cp /etc/hostname \$NEWROOT/etc/hostname\n";
|
||||
print $inifile "cp /etc/resolv.conf \$NEWROOT/etc/resolv.conf\n";
|
||||
print $inifile "rm -f \$NEWROOT/etc/resolv.conf; cp /etc/resolv.conf \$NEWROOT/etc/resolv.conf\n";
|
||||
print $inifile "mount --move /dev \$NEWROOT/dev \n";
|
||||
print $inifile "mount --move /proc \$NEWROOT/proc \n";
|
||||
print $inifile "mount --move /sys \$NEWROOT/sys \n";
|
||||
@ -1525,7 +1538,7 @@ EOMS
|
||||
}
|
||||
}
|
||||
# add rsync for statelite
|
||||
foreach ("bin/busybox","bin/bash", "sbin/mount.nfs", "usr/bin/rsync", "sbin/insmod", "sbin/udevd", "sbin/udevadm", "sbin/modprobe", "sbin/blkid", "sbin/depmod") {
|
||||
foreach ( "usr/bin/dig","bin/busybox","bin/bash", "sbin/mount.nfs", "usr/bin/rsync", "sbin/insmod", "sbin/udevd", "sbin/udevadm", "sbin/modprobe", "sbin/blkid", "sbin/depmod","usr/bin/wget") {
|
||||
getlibs($_);
|
||||
push @filestoadd,$_;
|
||||
}
|
||||
@ -1541,6 +1554,10 @@ EOMS
|
||||
if ($arch =~ /x86_64/) {
|
||||
push @filestoadd,"lib64/libnss_dns.so.2";
|
||||
push @filestoadd,"lib64/libresolv.so.2";
|
||||
} elsif ($arch =~ /ppc64el/) {
|
||||
push @filestoadd,"lib/powerpc64le-linux-gnu/libnss_files.so.2";
|
||||
push @filestoadd,"lib/powerpc64le-linux-gnu/libnss_dns.so.2";
|
||||
|
||||
} else {
|
||||
push @filestoadd,"lib/libnss_dns.so.2";
|
||||
}
|
||||
@ -1583,6 +1600,11 @@ EOMS
|
||||
system("cp $rootimg_dir/lib/modules/$kernelver/modules.order /tmp/xcatinitrd.$$/lib/modules/$kernelver/modules.order");
|
||||
}
|
||||
|
||||
|
||||
# if (-d "$rootimg_dir/lib/powerpc64le-linux-gnu/"){
|
||||
# system("cp -rf $rootimg_dir/lib/powerpc64le-linux-gnu/* /tmp/xcatinitrd.$$/lib/powerpc64le-linux-gnu/");
|
||||
# }
|
||||
|
||||
system("chroot /tmp/xcatinitrd.$$/ depmod $kernelver");
|
||||
# Copy udev and network scripts into initrd for s390x, which also works for other platforms
|
||||
# udev
|
||||
|
Loading…
Reference in New Issue
Block a user