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.
Utilities complain about the following missing packages on the new Linux systems:
The following use cases that used to work no longer work on both cpu-solaris.student.cs and linux006.student.cs.
> ~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.
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.
The following use cases have one type of behaviour on cpu-solaris.student.cs but a different behaviour on linux006.student.cs.
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
**** 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).
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.
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.
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.
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.
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.
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.
These packages are available via the new software installations on the cs_build
account:
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.