Chuck Ritter wrote: > On Fri, Aug 6, 2010 at 6:42 PM, Patrick Nolan > <patrick.no...@stanford.edu> wrote: >> With a lot of help from some of you, I have finished setting up a >> cluster with a head and 4 nodes. However, when I run step 7 of the >> OSCAR 5.1 setup (Complete cluster setup) it finds some errors. I think >> I can deal with some of them, but others are puzzling: >> >> > --> Update Wizard Env (as needed) >> > Use of uninitialized value in scalar assignment at >> > /opt/oscar/lib/OSCAR/WizardEnv.pm line 181 >> >> This has something to do with parsing the command-line arguments >> passed to WizardEnv. >> > > vi +181 /opt/oscar/lib/OSCAR/WizardEnv.pm >
I don't understand. Here's the relevant (?) section: # Convert multi-line EnvVars to single-line, noticed b/c of # TERMCAP when using screen. We also ignore TERMCAP but need # all on one line to actually get it out of the way. ;) @rslt = multi2singleline(@rslt); foreach my $r (@rslt) { my ($key, $val) = split(/=/, $r, 2); # Limit to 2 tokens! if( ! $ENV_IGNORE{$key} ) { next if( defined($ENV{$key}) && $ENV{$key} eq $val ); print "Update environment: ENV{$key}\n" if( $DEBUG >= DBG_LOW ); print " $key=$val\n\n" if( $DEBUG >= DBG_MED ); # To see actual differential (for the paranoid among us) if( $DEBUG >= DBG_HIGH ) { # To avoid unintialized warnings when not prev. exist my $orig = (defined($ENV{$key}))? $ENV{$key} : ""; print " ORIG: $key=$orig\n"; print " NEW: $key=$val\n\n"; } $ENV{$key} = $val; # <-- This is line 181. push @modified_env, $key; } } return @modified_env; } So it appears that the split(/=/, $r, 2) returns with one of its tokens undefined. That means the "env" command returns a bad value. Just running "env | grep -v =" turns up a line which contains only the single character "}". The line before it is module=() { eval `/usr/bin/modulecmd bash $*` This is probably related to the sh syntax errors. The function multi2singleline() deals only with strings that end with \. I will have to dig to figure out what to do about this. >> > Need an explicit source and target >> > Couldn't push /etc/hosts to all nodes at ./post_install line 43 >> >> That line is >> system(". /etc/profile.d/c3.sh && cpush /etc/hosts") and carp("Couldn't >> push /etc/hosts to all nodes"); >> There are a couple of problems there. The script c3.sh refers to a >> directory /opt/c3-4, which doesn't exist. Also cpush wants an argument >> list with at least 2 items. > > Hmm. If you don't have an /opt/c3-4 that would seem to big important. > It should have been installed with one of the server packages. > > What do you get when you type "which cexec" > On the head node it's in /usr/bin! Digging further I find that on the clients it's in /opt/c3-4. The head node has version 5.0.1-1 of c3, while the clients have version 4.0.1-5. This inspired me to look deeper for the missing updateclient. Its name is now si_updateclient. It lives in /usr/sbin. Both head and clients have version 4.0.2-1 of systemimager-client. I still don't know what cpush is griping about. ------------------------------------------------------------------------------ This SF.net email is sponsored by Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev _______________________________________________ Oscar-users mailing list Oscar-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oscar-users