This page is meant for feedback about ISG's scripts at the end of Winter 2010
to help ensure that the modified versions are ready to go in Spring 2010.
The goal is to catch any potential errors now before they manifest after the
start of the Spring term.
Outstanding errors
Missing packages on linux006.student.cs
Utilities complain about the following missing packages on the new Linux systems:
- perl-5.8.1
- bzip2-1.0
- cups-1.2.X
- javajdk-1.5
- lynx-2.8.5
- mfcf-misc
- mutt-1.4
- python-2.5
- tar-1.19
- tetex-1.0
- wget-1.8
- xfig-3.2
Run errors
The following use cases that used to work no longer work on both cpu-solaris.student.cs
and linux006.student.cs.
RST family of commands no lo"> The RST family of commands no longer accepts whitespace-delimited glob patterns
> ~isg/test/distrst a05 m 0 'bc2cui m66zhang binzhou' isg1
Reading configuration files........ completed.
>
This just hangs for a while and then terminates without even producing a results directory.
The
rst
command instead appears only to execute test the first of the specified ids.
This should be fixable, but it is nontrivial.
The distrst
command fails when given a -s
option with RSTVersionTwo semantics
Unfortunately, there is insufficient time to track down this error.
The default ("test all students") still functions correctly.
Unexpected cross-system behaviour
The following use cases have one type of behaviour on cpu-solaris.student.cs
but a different behaviour on linux006.student.cs.
Login cannot differentiate users on linux
Another consequence of rsh vs. ssh; ssh does not provide the
REMOTEUSERS
environment variable.
This is both good and bad; for relatively novice users, auto-personalized configuration would be good.
A discussion of how to provide this via an alternate command is taking place at RT #72227:
https://www.cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?72227
Errors presumed fixed
RST dies when trying to run tests
Phase 1: rsh is ssh on linux
**** bc2cui ********************************************************************
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
31:46:98:f6:bd:d0:ee:7f:c1:f1:ca:71:04:48:bb:92.
Please contact your system administrator.
Add correct host key in /u3/cs135/.ssh/known_hosts to get rid of this message.
Offending key in /u3/cs135/.ssh/known_hosts:1
RSA host key for localhost has changed and you have requested strict checking.
Host key verification failed.
ERROR: aborting on line 404 of rst
This is an artifact of the way
rst
connects to the testing account by default:
rsh localhost -l test-ac ...
Recent modifications making this configurable mean that it should be safe to change the default from
rsh
to
ssh
,
explicitly passing the flag that tells ssh not to care about RSA keys on
localhost
(which will not be available via
rsh
on Solaris).
Phase 2: Linux rejects ssh keys of new testing accounts
PLEASE NOTE THAT Solaris machines should not be used for connecting to course accounts as of Spring 2011.
The ssh-key distribution mechanism that CSCF supplies should be helping to ensure a smooth transition from using
rsh
to using
ssh
.
However, while Solaris is capable of using ssh to connect to course accounts:
[cs135@cpu18]:~$ ssh -o NoHostAuthenticationForLocalhost=yes -o NumberOfPasswordPrompts=0 localhost -l cs135t
Last login: Fri Apr 23 13:17:31 2010 from localhost
Terminal type is xterm-color
cpu18:~> hostname
cpu18.student.cs
it appears that, for some reason, the Linux machines are
not:
[cs135@linux006]:~$ ssh -o NoHostAuthenticationForLocalhost=yes -o NumberOfPasswordPrompts=0 localhost -l cs135t
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
[cs135@linux006]:~$ hostname
linux006.student.cs
There is no clear reason for this at the present time. Fixing this issue is critical to allowing testing to happen on Linux servers.
If
ssh
cannot be used, another option that would provide stability improvements is
sudo
; however, this would have to be managed by CSCF on every single server instead of globally like
ssh
is.
NB: This problem may only be isolated to the new testing accounts. If the following lines are added to the
.rstrc
file of the
cs115
account:
testac=cs115-t
testgrp=cs115-t
then
RST functions correctly.
Test account access via rsh denied on Solaris machines
For example, running rst on the cs135 account:
Reading configuration files........ completed.
Using run_id isg1
**** bc2cui ********************************************************************
rshd: cpu08.student.cs: cs135: Permission denied to become cs135t; using
jqpublic
cpu08.student.cs: jqpublic shell:
/u2/isg/test/rst-files/testacc/testSubmission
/tmp/.cs135.a10.t.0.isg1/bc2cui/11253QtaO.v
/u3/cs135/marking/a10/test.0/runTests /u3/cs135/marking/a10/test.0
/tmp/.cs135.a10.t.0.isg1/bc2cui/11220niaG6v
/tmp/.cs135.a10.t.0.isg1/bc2cui/11215g5a45v bc2cui a10 cs135: Permission
denied
ERROR: aborting on line 235 of /u2/isg/test/rst-files/rst-common (via line
50 of rst_impl) with exit status 204
The likely explanation is that
localhost cs135 is not in the
.rhosts
file of
cs135t
,
which is a requirement for
RST to operate in the traditional fashion.
$ rsh localhost -l cs135-t whoami
cs135-t
$ rsh localhost -l cs135t whoami
rshd: cpu18.student.cs: cs135: Permission denied to become cs135t; using jqpublic
cpu18.student.cs: jqpublic shell: whoami: Permission denied
$ rsh localhost -l cs135-t fgrep cs135 /u/cs135-t/.rhosts
localhost cs135
$
The auto-propagation tool discussed at
CourseAccountSshKeyAccess should then be run on
userids from
.rhosts
, allowing ssh access from course accounts to testing accounts as
well. This ssh access is
required from Linux systems, as rsh is really ssh.
moss_makereadable perl errors
From
~cs136/mossoutput/test.sh
:
#!/bin/sh
# This will confuse(?) makereadable
perl -e '$count=0; while (1) { print "r\nRENAMED" . ++$count . "\n"; }' | /u/isg/test/runMoss pA10P1 "-l c -d"
# Seems like this does not
# yes d | /u/isg/test/runMoss pA10P1 "-l c -d"
cd html
/u/isg/test/moss_makereadable ./index.html 5 > readableIndex.html
The errors from the
moss_makereadable
line are:
Use of uninitialized value $person2 in concatenation (.) or string at /org/cs/u2/isg/test/moss_scripts/moss_fixuseridshelper.pl line 65, <> line 44.
Use of uninitialized value $person2 in concatenation (.) or string at /org/cs/u2/isg/test/moss_scripts/moss_fixuseridshelper.pl line 65, <> line 63.
Use of uninitialized value $person2 in concatenation (.) or string at /org/cs/u2/isg/test/moss_scripts/moss_fixuseridshelper.pl line 65, <> line 75.
Use of uninitialized value $person2 in concatenation (.) or string at /org/cs/u2/isg/test/moss_scripts/moss_fixuseridshelper.pl line 65, <> line 89.
Use of uninitialized value $person2 in concatenation (.) or string at /org/cs/u2/isg/test/moss_scripts/moss_fixuseridshelper.pl line 65, <> line 139.
Use of uninitialized value $person2 in concatenation (.) or string at /org/cs/u2/isg/test/moss_scripts/moss_fixuseridshelper.pl line 65, <> line 186.
Use of uninitialized value $person2 in concatenation (.) or string at /org/cs/u2/isg/test/moss_scripts/moss_fixuseridshelper.pl line 65, <> line 215.
Use of uninitialized value $person2 in concatenation (.) or string at /org/cs/u2/isg/test/moss_scripts/moss_fixuseridshelper.pl line 65, <> line 244.
Public test runners fail to parse filenames properly on linux systems
This appears to be a backward-incompatibility with
bash-3.0
; the Linux systems run v4 flavours of bash.
An installation of
bash-3.0
has fixed this problem.
RST dies when generating postscripts on linux006
This is due to a difference in the behaviour of the version of dvips in the
tetex-1.0
package and the default on linux006.
An installation of
tetex-1.0
should fix this problem. There is no such package on Linux for now, so a very unstable hackaround has been concocted that allows it to appear to be working properly on both Solaris 8 and Ubuntu 9.10.
Errors appear at the end of an RST run
Running Scheme computeMarks postprocessor from directory /u2/isg/bittersuite3/languages/scheme/intermediate-lambda
computeMarks complete.
sh: /tmp/.cs135.a10.t.0.isg1/bc2cui/9038CEaWPr/OUTPUT.txt: cannot create
sh: /tmp/.cs135.a10.t.0.isg1/bc2cui/9038CEaWPr/OUTPUT.txt: cannot create
sh: /tmp/.cs135.a10.t.0.isg1/bc2cui/9038CEaWPr/OUTPUT.txt: cannot create
sh: /tmp/.cs135.a10.t.0.isg1/bc2cui/9038CEaWPr/OUTPUT.txt: cannot create
sh: /tmp/.cs135.a10.t.0.isg1/bc2cui/9038CEaWPr/OUTPUT.txt: cannot create
However, the
OUTPUT.txt
file still appears in the save directory.
The problem was that this was a bad mix of assumptions in
RST,
BitterSuite, and
MarkUs;
the
OUTPUT.txt
was a
previously generated output file instead of something up to date.
This has now been corrected.
Packages now on Ubuntu 9.10 systems
These packages are available via the new software installations on the
cs_build
account:
Issues that are not errors
Distrst cannot run because there is no test_servers
array
> ~isg/test/distrst a05 m 0 '[ bc2cui m66zhang binzhou ]' isg1
Reading configuration files........ completed.
Error: distrst cannot be run
The test_servers array must be populated in an appropriate .rstrc file
/u2/isg/test/rst-files/distributed-rst/distrst_impl: line 144: [: -ne: unary operator expected
Usage: distrst-master.py [...
] [...]
ERROR: aborting on line 149 of /u2/isg/test/rst-files/distributed-rst/distrst_impl with exit status 255
In an environment with multiple architectures with multiple versions of software, the
distrst
command cannot make any assumptions about which servers it should run on and which it should avoid.
As a result, it requires the specification of the
test_servers
array in the course/assignment/suite-specific
.rstrc
file.
This array is also read by the public test runners to determine where code should be run.