Changes To Generic NQS (GNQS)
Academic Computing Services , University of Sheffield
Stuart Herbert (S.Herbert@sheffield.ac.uk)Document copyright ©. All rights reserved.
Abstract
The University of Sheffield is supplying, and supporting, Generic
NQS to UK Higher Educational Sites as part of the New Technologies
Initiative of JISC, under grant NTI/48.2.
This document contains a summary of changes for each new release of
NQS.
Contents
Click here for a plain-text version of this paper. Click here for a copy of this document in Microsoft RTF format, suitable for printing (if available).
Introduction
Introduction
This is a summary of changes to Generic NQS as released by the
University of Sheffield.
We are most grateful for the contributions made by other individuals
and organisations.
Version 3.40.2
About This Release
Purpose
This is a maintenance release of Generic NQS v3.40, which includes
a small number of fixes for problems reported in v3.40.1. If you
use the following operating systems, then you should consider
using this release instead of any previous release.
If you use the following operating systems, and are already running
Generic NQS 3.40.x, then you do not need to upgrade at this time.
- AIX (all versions)
- Fujitsu
- HP-UX (all versions)
- IRIX (all versions)
- Linux
- NCR
- OSF/1
- Solaris
- SunOS
- UNICOS
- Generic BSD port
- Generic SysVr4 port
Status Changes
The following changes from 3.40.1 are now listed as having been
tested :
- Compilation fixes for OSF/1
- Defunct Processes Fix For HP-UX 9 And OSF/1
- Filesize Limits Fix For AIX 4.1
- Per-Process Limits Fix For UNICOS
- Destination IP Address Fix For UNICOS
- UNICOS Job Statistics Added
- Yet More Compiler Warnings Fixed
ULTRIX Port Fixes
Description
The ULTRIX port has been reworked to use the POSIX interface
rather than the BSD interface.
Status
Tested.
Platforms Affected
> [ ] AIX 3 [ ] AIX 4
> [ ] FUJITSU [ ] HPUX 8
> [ ] HPUX 9 [ ] HPUX 10
> [ ] IRIX 4 [ ] IRIX 5
> [ ] IRIX 6 [ ] LINUX
> [ ] NCR [ ] OSF/1
> [ ] SOLARIS 2 [ ] SUNOS 4
> [x] ULTRIX [ ] UNICOS
>
> [x] Generic BSD port [x] Generic SysVr4 port
Code Contributed By
David Billinghurst (billingd@crc.cra.com.au)
Compilation Fixes For IRIX
Description
All versions of Generic NQS (and Monsanto NQS before it) up to
v3.40.0, inclusive, used SG's malloc debugging library. In
v3.41.0, this library was removed from the linking options, but
code which relied on the library wasn't removed from qmgr.
This code has been removed.
Status
Tested.
Platforms Affected
> [ ] AIX 3 [ ] AIX 4
> [ ] FUJITSU [ ] HPUX 8
> [ ] HPUX 9 [ ] HPUX 10
> [x] IRIX 4 [x] IRIX 5
> [x] IRIX 6 [ ] LINUX
> [ ] NCR [ ] OSF/1
> [ ] SOLARIS 2 [ ] SUNOS 4
> [ ] ULTRIX [ ] UNICOS
>
> [ ] Generic BSD port [ ] Generic SysVr4 port
Code Contributed By
Dave Safford (saff@saff.tamu.edu)
Compilation Fixes For Linux
Description
Support for setting the per-process memory size (RLIMIT_VMEM) was
added in 3.40.1. Linux does not support this limit at this time,
and Generic NQS 3.40.1 did not compile on Linux as a result.
This has been fixed.
Status
Tested.
Platforms Affected
> [ ] AIX 3 [ ] AIX 4
> [ ] FUJITSU [ ] HPUX 8
> [ ] HPUX 9 [ ] HPUX 10
> [ ] IRIX 4 [ ] IRIX 5
> [ ] IRIX 6 [x] LINUX
> [ ] NCR [ ] OSF/1
> [ ] SOLARIS 2 [ ] SUNOS 4
> [ ] ULTRIX [ ] UNICOS
>
> [x] Generic BSD port [x] Generic SysVr4 port
Code Contributed By
Stu
Compilation Fixes For UNICOS
Description
Generic NQS v3.40.1 fails to compile on UNICOS v8, in src/nqs_enf.c.
This problem has been resolved.
Status
Tested.
Platforms Affected
> [ ] AIX 3 [ ] AIX 4
> [ ] FUJITSU [ ] HPUX 8
> [ ] HPUX 9 [ ] HPUX 10
> [ ] IRIX 4 [ ] IRIX 5
> [ ] IRIX 6 [ ] LINUX
> [ ] NCR [ ] OSF/1
> [ ] SOLARIS 2 [ ] SUNOS 4
> [ ] ULTRIX [x] UNICOS
>
> [ ] Generic BSD port [ ] Generic SysVr4 port
Code Contributed By
Dave Safford (saff@tamu.edu)
Default Resource Limit Fix
Description
Prior to this release, Generic NQS had compile-time defaults for
each of the kernel-based resource limits it supported. This
caused problems when a new limit was added for Generic NQS 3.40.1
running on IRIX, because the compile-time limit was too low.
Now, Generic NQS sets all of these limits to `unlimited' whenever
a new queue is created.
NOTE: If this code fails to compile because your operating system
doesn't have <limits.h> or ULONG_MAX, add -DHAS_NO_ANSI_LIMITS
to `FEATURES' in proto/Makefile, and try again (and let me know,
please!!!).
Status
Tested on Linux.
Platforms Affected
All
Code Contributed By
Stu
Process Table Full Fix For ULTRIX
Description
Generic NQS on ULTRIX was failing to prevent child processes from
becoming zombie processes (defunct processes). This has been
fixed.
Status
Tested.
Platforms Affected
> [ ] AIX 3 [ ] AIX 4
> [ ] FUJITSU [ ] HPUX 8
> [ ] HPUX 9 [ ] HPUX 10
> [ ] IRIX 4 [ ] IRIX 5
> [ ] IRIX 6 [ ] LINUX
> [ ] NCR [ ] OSF/1
> [ ] SOLARIS 2 [ ] SUNOS 4
> [x] ULTRIX [ ] UNICOS
>
> [x] Generic BSD port [x] Generic SysVr4 port
Code Contributed By
David Billinghurst
BSD And System 5 Release 4 Makefiles Added
Description
Makefiles have been added in order to compile Generic NQS using
the underlying generic ports to BSD 4.3 (or later), and System 5
release 4.
NOTE: The generic BSD port has not been thoroughly tested.
Status
Constantly under review.
Platforms Affected
> [ ] AIX 3 [ ] AIX 4
> [ ] FUJITSU [ ] HPUX 8
> [ ] HPUX 9 [ ] HPUX 10
> [ ] IRIX 4 [ ] IRIX 5
> [ ] IRIX 6 [ ] LINUX
> [ ] NCR [ ] OSF/1
> [ ] SOLARIS 2 [ ] SUNOS 4
> [ ] ULTRIX [ ] UNICOS
>
> [x] Generic BSD port [x] Generic SysVr4 port
Version 3.40.1
About This Release
Purpose
This is a maintenance release of Generic NQS v3.40, which includes
a small number of fixes for problems reported in v3.40.0. If you
use the following operating systems, then you should consider using
this release instead of any previous release.
- AIX 4.1
- IRIX 6.1
- OSF/1 v3.2
- HP-UX 9
- UNICOS
IRIX 6.1 Support Added
Description
Generic NQS now compiles on the new IRIX 6.1 operating system in
both 32-bit and 64-bit binaries.
Status
Tested.
Platforms Affected
> [ ] AIX 3 [ ] AIX 4
> [ ] FUJITSU [ ] HPUX 8
> [ ] HPUX 9 [ ] HPUX 10
> [ ] IRIX 4 [x] IRIX 5
> [x] IRIX 6 [ ] LINUX
> [ ] NCR [ ] OSF/1
> [ ] SOLARIS 2 [ ] SUNOS 4
> [ ] ULTRIX [ ] UNICOS
Code Contributed By
Dave Safford
Compilation Fixes For HP-UX v9
Description
Generic NQS v3.40.0 failed to compile on HP-UX v9. These problems
have now been resolved.
Status
Under testing.
Platforms Affected
> [ ] AIX 3 [ ] AIX 4
> [ ] FUJITSU [ ] HPUX 8
> [x] HPUX 9 [ ] HPUX 10
> [ ] IRIX 4 [ ] IRIX 5
> [ ] IRIX 6 [ ] LINUX
> [ ] NCR [ ] OSF/1
> [ ] SOLARIS 2 [ ] SUNOS 4
> [ ] ULTRIX [ ] UNICOS
Code Contributed By
Stu, based on correspondance with Dr Rafael R. Pappalardo, of the
Department of Physical Chemistry, University of Seville.
Compilation Fixes For OSF/1
Description
The OSF/1 port was completely re-written for Generic NQS v3.40.0,
but was untested prior to release. v3.40.0 failed to compile on
OSF/1 - this has now been fixed.
Note
The re-write of the OSF/1 port is reported to have cured
intermittent failures which some users have been experiencing.
Status
Under testing.
Platforms Affected
> [ ] AIX 3 [ ] AIX 4
> [ ] FUJITSU [ ] HPUX 8
> [x] HPUX 9 [ ] HPUX 10
> [ ] IRIX 4 [ ] IRIX 5
> [ ] IRIX 6 [ ] LINUX
> [ ] NCR [ ] OSF/1
> [ ] SOLARIS 2 [ ] SUNOS 4
> [ ] ULTRIX [ ] UNICOS
Code Contributed By
John Pedan (pdxjfp@evol.gene.nottingham.ac.uk)
Compilation Fixes For UNICOS
Description
The UNICOS support, added in Generic NQS v3.40.0, included a few small
typing mistakes, which prevented the code from compiling. These
have been fixed.
Status
Tested.
Platforms Affected
> [ ] AIX 3 [ ] AIX 4
> [ ] FUJITSU [ ] HPUX 8
> [ ] HPUX 9 [ ] HPUX 10
> [ ] IRIX 4 [ ] IRIX 5
> [ ] IRIX 6 [ ] LINUX
> [ ] NCR [ ] OSF/1
> [ ] SOLARIS 2 [ ] SUNOS 4
> [ ] ULTRIX [x] UNICOS
Code Contributed By
Dave Safford
SunOS 4.x Support Workaround
Description
Generic NQS v3.40.x appears to work on SunOS 4.x only with the Sun
SPARCworks 3.0.1 `acc' compiler + `-O' optimising switch. Why this
is the situation is, quite frankly, a mystery.
Platforms Affected
> [ ] AIX 3 [ ] AIX 4
> [ ] FUJITSU [ ] HPUX 8
> [ ] HPUX 9 [ ] HPUX 10
> [ ] IRIX 4 [ ] IRIX 5
> [ ] IRIX 6 [ ] LINUX
> [ ] NCR [ ] OSF/1
> [ ] SOLARIS 2 [x] SUNOS 4
> [ ] ULTRIX [ ] UNICOS
Workaround Contributed By
Mark Loveridge
Defunct Processes Fix For HP-UX 8 & OSF/1
Description
Contrary to its documentation, HP-UX 8 needs to use the BSD SIG_CHLD
in order to wait for child processes, to prevent them becoming
zombies.
Similarly, OSF/1 also requires the BSD SIG_CHLD. This switch can
be enabled by adding -DBSD_ZOMBIES to the FEATURES line in
proto/Makefile if anyone else requires this functionality.
Status
Tested.
Platforms Affected
> [ ] AIX 3 [ ] AIX 4
> [ ] FUJITSU [x] HPUX 8
> [ ] HPUX 9 [ ] HPUX 10
> [ ] IRIX 4 [ ] IRIX 5
> [ ] IRIX 6 [ ] LINUX
> [ ] NCR [x] OSF/1
> [ ] SOLARIS 2 [ ] SUNOS 4
> [ ] ULTRIX [ ] UNICOS
Code Contributed By
Liakakis Kostas (kostas@astro.auth.gr)
Filesize Limits Fix For AIX 4.1
Description
The DISK_LIMIT_GRAN for AIX 4.1 was incorrectly specified as 512 :
it is now specified as 1.
Platforms Affected
> [ ] AIX 3 [x] AIX 4
> [ ] FUJITSU [ ] HPUX 8
> [ ] HPUX 9 [ ] HPUX 10
> [ ] IRIX 4 [ ] IRIX 5
> [ ] IRIX 6 [ ] LINUX
> [ ] NCR [ ] OSF/1
> [ ] SOLARIS 2 [ ] SUNOS 4
> [ ] ULTRIX [ ] UNICOS
Code Contributed By
Gerhard Schneider (root@ilfb03.tuwien.ac.at)
Per-Process Limits Fix For UNICOS
Description
The setjob() system call is now used to register the correct owner
of a running NQS job. This ensures that any specified limits are
correctly enforced.
Status
Tested.
Platforms Affected
> [ ] AIX 3 [ ] AIX 4
> [ ] FUJITSU [ ] HPUX 8
> [ ] HPUX 9 [ ] HPUX 10
> [ ] IRIX 4 [ ] IRIX 5
> [ ] IRIX 6 [ ] LINUX
> [ ] NCR [ ] OSF/1
> [ ] SOLARIS 2 [ ] SUNOS 4
> [ ] ULTRIX [x] UNICOS
Code Contributed By
Dave Safford
Destination IP Address Fix For UNICOS
Description
The destination IP address for an IP connection on UNICOS
(lib/establish.c) was not being set correctly. This has been fixed.
Status
Tested
Platforms Affected
> [ ] AIX 3 [ ] AIX 4
> [ ] FUJITSU [ ] HPUX 8
> [ ] HPUX 9 [ ] HPUX 10
> [ ] IRIX 4 [ ] IRIX 5
> [ ] IRIX 6 [ ] LINUX
> [ ] NCR [ ] OSF/1
> [ ] SOLARIS 2 [ ] SUNOS 4
> [ ] ULTRIX [x] UNICOS
Code Contributed By
Dave Safford
Per Process Total Memory Size Limit Added For IRIX
Description
The UNIX limit RLIMIT_VMEM limits the total amount of memory a
single process may consume at any one time. Support for this
limit has been added for IRIX 5 & 6.
NOTE that Generic NQS 3.41.0 will feature a completely-rewritten
limit support, designed to autodetect which limits are supported
on which platforms.
Status
Tested
Platforms Affected
> [ ] AIX 3 [ ] AIX 4
> [ ] FUJITSU [ ] HPUX 8
> [ ] HPUX 9 [ ] HPUX 10
> [ ] IRIX 4 [ ] IRIX 5
> [ ] IRIX 6 [ ] LINUX
> [ ] NCR [ ] OSF/1
> [ ] SOLARIS 2 [ ] SUNOS 4
> [ ] ULTRIX [ ] UNICOS
Code Contributed By
Dave Safford
UNICOS Job Statistics Added
Description
Information about running jobs on Generic NQS under UNICOS is now
supplied by Generic NQS. This information includes the UNICOS
jobid, required for jstat and other UNICOS utilities.
Status
Tested
Platforms Affected
> [ ] AIX 3 [ ] AIX 4
> [ ] FUJITSU [ ] HPUX 8
> [ ] HPUX 9 [ ] HPUX 10
> [ ] IRIX 4 [ ] IRIX 5
> [ ] IRIX 6 [ ] LINUX
> [ ] NCR [ ] OSF/1
> [ ] SOLARIS 2 [ ] SUNOS 4
> [ ] ULTRIX [x] UNICOS
Code Contributed By
Dave Safford
Yet More Compiler Warnings Fixed
Description
The compilers on Fujitsu machines reported a number of warnings,
mainly relating to uninitialised variables. The majority of these
warnings have been fixed - the rest are being investigated.
Status
Not tested.
Platforms Affected
All.
Code Contributed By
Stu, based on correspondance with Thomas Eiffert.
Version 3.40.0
About This Release
Purpose
This is the full public release of Generic NQS v3.40.0. Generic NQS
was previously known as Monsanto-NQS.
Supported Platforms
This product has been compiled, and used, on the following
platforms prior to full release :
> ----------------------------------------------------------------
> Platform | Release | Compiler | Tested?
> | Used | Warnings? |
> ----------------------------------------------------------------
> AIX v3 | v3.40.0 #3 | Unknown | Yes
> AIX v4 | v3.40.0 #3 | Unknown | Yes
> Fujitsu | v3.40.0 #2 | Very few | Yes
> HP-UX 8.x | v3.40.0 #3 | Unknown | Yes
> IRIX 5.3 | v3.40.0 #3 | Unknown | Yes
> IRIX 6.0 (32) | v3.40.0 #3 | Unknown | Yes
> Linux/ELF | v3.40.0 #3 | No | Yes
> Solaris 2.3 | v3.40.0 #3 | No | Yes
> Solaris 2.4 | v3.40.0 #3 | No | Yes
> SunOS 4.1.3 | v3.40.0 #3 | Very few | Doesn't work
> ULTRIX 4.3a | v3.40.0 #1 | No | No
> UNICOS v8 | v3.40.0 #2 | Unknown | Yes
> ----------------------------------------------------------------
The following platforms are also supported, but we have been unable
to test this product on them prior to full release.
> ----------------------------------------------------------------
> Platform | Last Release We Know Which Worked
> ----------------------------------------------------------------
> HPUX 8.x | v3.37.1
> HPUX 9.x | v3.37.1
> IRIX 4 | v3.36.0
> IRIX 5.2 | v3.37.1
> IRIX 6.1 | v3.37.1
> NCR | v3.36.6
> OSF/1 v3.2 | v3.37.1
> SunOS v4.x | v3.37.1
> ----------------------------------------------------------------
If you successfully compile this release on other platforms, please
send me details, so that I can expand this section further.
Testing
Prior to release, there were three public pre-releases of Generic
NQS v3.40.0. These releases were made to allow the NQS user
community time to test Generic NQS, and to report any problems with
the changes which have been made.
It has not been possible to test all of the following changes on all
of the supported platforms. Each change includes a section,
`Status', which details what testing has been carried out.
Changes List
The following sections list the changes between Monsanto-NQS v3.37.1
and Generic NQS v3.40.0, in the following order :
- New Platforms Supported
- Compilation Fixes For Supported Platforms
- New Features
- Bug Fixes
- Anything Else
New Name
Monsanto-NQS was originally maintained by John Roman, of the
Monsanto Company. Since October, 1994, it has been maintained by
The University of Sheffield. By agreement with John, there will be
no more releases under the Monsanto-NQS name.
AIX 4.1 Support Added
Description
Generic NQS has been ported to v4.1 of IBM's AIX operating system.
Status
Pre-releases #2 and #3 were tested.
Platforms Affected
> [ ] AIX 3 [x] AIX 4
> [ ] FUJITSU [ ] HPUX 8
> [ ] HPUX 9 [ ] HPUX 10
> [ ] IRIX 4 [ ] IRIX 5
> [ ] IRIX 6 [ ] LINUX
> [ ] NCR [ ] OSF/1
> [ ] SOLARIS 2 [ ] SUNOS 4
> [ ] ULTRIX [ ] UNICOS
Code Contributed By
Mark Loveridge (markl@gatwick.geco-prakla.slb.com)
Fujitsu VP2200/20 UXP/M Support Added
Description
Generic NQS now compiles and functions on the Fujitsu VP2200/20
running UXP/M V10L20, compiled with /usr/ccs/bin/cc (NOT /usr/ucb/cc).
Platforms Affected
> [ ] AIX 3 [ ] AIX 4
> [x] FUJITSU [ ] HPUX 8
> [ ] HPUX 9 [ ] HPUX 10
> [ ] IRIX 4 [ ] IRIX 5
> [ ] IRIX 6 [ ] LINUX
> [ ] NCR [ ] OSF/1
> [ ] SOLARIS 2 [ ] SUNOS 4
> [ ] ULTRIX [ ] UNICOS
Status
Tested.
Code Contributed By
Mark Loveridge (markl@gatwick.geco-prakla.slb.com)
Experimental HP-UX 10 Support Added
Description
After discussions with users who have access to HP-UX v10, it appears
that HP-UX 10 is System 5, release 4 compatible - to be honest, I
don't actually know if this is true.
Based on this assumption, I've added a Makefile for HP-UX 10 which
I expect will compile Generic NQS on HP-UX 10. Because this port is
based entirely on this assumption, this support is experimental, and
feedback from HP-UX users would be most appreciated.
Status
Completely untested.
Platforms Affected
> [ ] AIX 3 [ ] AIX 4
> [ ] FUJITSU [ ] HPUX 8
> [ ] HPUX 9 [x] HPUX 10
> [ ] IRIX 4 [ ] IRIX 5
> [ ] IRIX 6 [ ] LINUX
> [ ] NCR [ ] OSF/1
> [ ] SOLARIS 2 [ ] SUNOS 4
> [ ] ULTRIX [ ] UNICOS
Code Contributed By
Stu
UNICOS 8 Support Added
Description
Generic NQS has been ported to v8 of Cray's UNICOS operating system.
Status
Pre-release #2, plus the UNICOS support patches, have been tested on
UNICOS v8.
Platforms Affected
> [ ] AIX 3 [ ] AIX 4
> [ ] FUJITSU [ ] HPUX 8
> [ ] HPUX 9 [ ] HPUX 10
> [ ] IRIX 4 [ ] IRIX 5
> [ ] IRIX 6 [ ] LINUX
> [ ] NCR [ ] OSF/1
> [ ] SOLARIS 2 [ ] SUNOS 4
> [ ] ULTRIX [x] UNICOS
Code Contributed By
Dave Safford (saff@tamu.edu)
Compilation Fixes For AIX 3
Description
Generic NQS now compiles without warnings on AIX 3.2.5.
Status
Tested.
Platforms Affected
> [x] AIX 3 [ ] AIX 4
> [ ] FUJITSU [ ] HPUX 8
> [ ] HPUX 9 [ ] HPUX 10
> [ ] IRIX 4 [ ] IRIX 5
> [ ] IRIX 6 [ ] LINUX
> [ ] NCR [ ] OSF/1
> [ ] SOLARIS 2 [ ] SUNOS 4
> [ ] ULTRIX [ ] UNICOS
Code Contributed By
Mark Loveridge
Compilation Fixes For Fujitsu
Description
The Fujitsu system libraries declare a global variable `Logfile',
which conflict with an interal NQS variable of the same name. The
NQS variable `Logfile' has been renamed `NetLogfile'.
Status
Tested.
Platforms Affected
> [ ] AIX 3 [ ] AIX 4
> [x] FUJITSU [ ] HPUX 8
> [ ] HPUX 9 [ ] HPUX 10
> [ ] IRIX 4 [ ] IRIX 5
> [ ] IRIX 6 [ ] LINUX
> [ ] NCR [ ] OSF/1
> [ ] SOLARIS 2 [ ] SUNOS 4
> [ ] ULTRIX [ ] UNICOS
Code Contributed By
Mark Loveridge
Compilation Fixes For ULTRIX
Description
Substantial work has been done to allow Generic NQS to work on Ultrix
4.3A. I have independant reports that this works well.
Platforms Affected
> [ ] AIX 3 [ ] AIX 4
> [ ] FUJITSU [ ] HPUX 8
> [ ] HPUX 9 [ ] HPUX 10
> [ ] IRIX 4 [ ] IRIX 5
> [ ] IRIX 6 [ ] LINUX
> [ ] NCR [ ] OSF/1
> [ ] SOLARIS 2 [ ] SUNOS 4
> [x] ULTRIX [ ] UNICOS
Status
Tested under ULTRIX. No further work apparently required.
Code Contributed By
David Billinghurst (billingd@crc.cra.com.au)
`Cost' Style Accounting Hook Added
Description
The empty function, nqs_checkbal(), can be modified to determine
whether a user has used up their budget, and if so, their jobs are
given a priority of zero.
Sites requiring `Larmouth'-type scheduling in particular may find
this to be of use in conjunction with the dynamic scheduling
support.
`Cost' Accounting is a compile-time optional extra.
Status
Tested
Platforms Affected
All.
Code Contributed By
Dave Safford (saff@tamu.edu)
Dynamic Scheduling Added
Description
The scheduler has been updated, so that queues are resorted just
before NQS tries to spawn a new request (ie, when a request is
queued, or a running job exits).
The supplied default comparison routine, bsc_compare() (source code
in src/nqs_bsc.c) lowers the priorities of jobs if a user has more
jobs queued than the current user_limit for the given queue. This
routine can be tailored to perform more detailed comparisons.
Support for dynamic scheduling is a compile-time optional extra.
Status
Tested.
Platforms Affected
All.
Code Contributed By
Dave Safford (saff@tamu.edu)
New Documentation
Description
The documentation `INSTALL', `README', and `PROBLEMS' has all been
substantially re-written.
Status
Done.
Contributed By
Stu
NIS Netgroup Support
Description
On platforms which use NIS, the file /etc/hosts.allow may contain
references to NIS netgroups. Generic NQS can now parse these
netgroup references correctly.
Support for NIS netgroups is a compile-time optional extra.
Status
Tested on many previous versions of Monsanto NQS.
Platforms Affected
All.
Code Contributed By
Thomas Richter (richter@chemie.fu-berlin.de)
Optional Features Now Available
Description
Generic NQS now includes a number of features which can be
considered optional - the file `FEATURES' provides full
documentation on these (this document is also available from our
WWW site).
The file `proto/Makefile' now provides a variable `FEATURES', to
which you can add switches to ensure that Generic NQS is compiled
with the optional features you require. By default, Generic NQS
currently ships with the `TAMU' featureset enabled, but this easily
changed.
Status
Tested.
Platforms Affected
All.
Code Contributed By
Stu.
Portability Fixes
Description
Adding support for a new platform to NQS is often a tedious task of
going around, editing the many source files to add `-Dplatform' to
ensure that the correct code is compiled in.
Generic NQS now allows those porting to new platforms to indicate
what type of platform they are porting to. The exising NQS code
has been broken up into three sets :
- Code which is POSIX.1 compliant.
- Code which is System V, r4 or later, compliant.
- Code which is BSD 4.3 or later compliant.
Most modern platforms are POSIX.1 complaint, and also SYSVr4
compliant, and the changes make porting to such platforms
significantly easier than it currently is, although not perfect
at this time.
For platforms which still `do their own thing' in places, support for
individual platforms can still be added to the source tree, as
before, but this now only needs to be done for exceptions, rather
than for everything.
While working on this modification, a number of inconsistencies came
to light, affecting support for ULTRIX, UNICOS, and OSF/1. I've
asked Dave about what's right for UNICOS, but for OSF/1, I've had to
guess (not having access to OSF/1 locally) and so OSF/1 users might
well find that this release is a complete no-go for them.
With a bit of luck, this will actually lead to the support for
existing platforms becoming more accurate, and hence more robust,
once the initial problems are ironed out. In the meantime, I've
probably been over-generous in marking code as POSIX, and so the
platforms which are neither SYSV nor BSD may well have problems.
Status
Tested on AIX 3 & 4, IRIX 5 & 6, Linux/ELF, SunOS 4, Solaris 2.
SunOS 4 support (generic BSD) is reportedly broken, and will be
fixed in the next release. OSF/1 support has NOT been tested, and
is of concern - the OSF/1 port was substantially re-written.
Platforms Affected
All.
Code Contributed By
Stu.
Processor Set Functionality Now Optional Extra
Description
The processor set support, currently for IRIX 5 & 6, was originally
added to Monsanto NQS v3.36.4 by Dave Safford.
This support is now a compile-time optional extra. It is not
enabled by default.
Status
Tested.
Platforms Affected
> [ ] AIX 3 [ ] AIX 4
> [ ] FUJITSU [ ] HPUX 8
> [ ] HPUX 9 [ ] HPUX 10
> [ ] IRIX 4 [x] IRIX 5
> [x] IRIX 6 [ ] LINUX
> [ ] NCR [ ] OSF/1
> [ ] SOLARIS 2 [ ] SUNOS 4
> [ ] ULTRIX [ ] UNICOS
Code Contributed By
Stu
Temporary Directory Functionality Now Optional Extra
Description
The TMPDIR temporary directory support was originally added to
Monsanto NQS v3.36.4 by Dave Safford.
This support is now a compile-time optional extra.
Platforms Affected
All.
Code Contributed By
Stu
ANSI C Cleanups
Description
More work has been done to ensure that NQS compiles cleanly under
ANSI C. If your native C compiler has trouble with these changes,
please try to compile NQS with the Free Software Foundation's GCC
before reporting any problems.
From now on, please report any compile-time warnings so that they
can be eliminated.
Platforms Affected
All platforms affected.
Status
Tested on Linux/ELF and Solaris 2.3 by Stu.
Code Contributed By
David Billinghurst, Mark Loveridge, and Stu.
More ANSI C Cleanups
Description
Pre-release #2 produced compiler warnings when compiled as a native
64-bit binary for IRIX 6. Many of these warnings were related to
unused variables, and unreachable code.
Warnings generated at compile time should have been eliminated - I'd
like to know if I've missed any. Warnings generated at link time
remain - the SGI compiler is somewhat noisy in this area.
Please note that, even with these fixes, the 64-bit version of NQS
reportedly still does not compile on IRIX 6 at this time. It is
*POSSIBLE* that this is a problem with older versions of the IRIX
6.0x compiler.
In addition, Mark has done numerous cleanups for SunOS 4.1.4_U1, and
general cleaning up of code I'd previously added myself.
Platforms Affected
All.
Status
Not tested - I don't have access to IRIX 6. Mark has tested his
patches by compiling on Solaris, SunOS, AIX 3 & 4, IRIX 5.3, and
Fujitsu UXP/M.
Code Contributed By
Stu, with thanks to Dr Jaume Farras, University of Barcelona.
Mark Loveridge
More ANSI C Fixes
Description
The declaration of function prototypes in the NQS source code was
previously of the form :
> #ifndef __CEXTRACT__
> #if __STDC__
>
> ANSI C Prototypes
>
> #else
>
> KnR C Prototypes
>
> #endif
> #endif
This has been reduced down to just ANSI C prototypes. This has the
following benefits :
- Remove a number of compile time warnings from Solaris 2
- Enable compilation on Fujitsu machines
Platforms Affected
All.
Status
Tested.
Code Contributed By
Stu
Email Messages Corrected
Description
If NQS_SPOOL was set to anything but the default value, email to
users once the output was spooled would contain an incorrect
directory name. Fixed.
Platforms Affected
All.
Status
Tested.
Code Contributed By
Mark Loveridge, and Stu.
Jobs No Longer Get Stuck In Routing State
Description
When a job is being moved from one pipe queue to another pipe queue,
the job is said to be in the `routing state'. While it is in this
state, the job cannot be deleted.
I consider this to be one of the three most important outstanding
problems reported for Generic NQS (the other two being unanticipated
transaction failures, fixed by David Billinghurst, and problems with
reading the nmap database, so far unfixed) because the only way to
recover from this is to delete the NQS spool space and reinstall.
This problem occurs when, for some reason, pipeclient fails to
establish communication with a remote host. If a pipe queue has
several destinations, and at least one of them successfully accepts
the transfer, there is no problem, but when all the destination(s)
fail, the request remains in the routing stage, where it cannot be
deleted at all.
The problem was caused by pipeclient failing to tell the NQS daemon
to reschedule the request correctly. Now, once pipeclient has
determined that all remote hosts are unavailable, the request is
requeued in the waiting state (where it can be deleted etc as
desired).
Status
Second implementation of solution. Tested on Solaris 2.3 and
Linux/ELF - no apparent side effects observed to date.
Platforms Affected
All.
Code Contributed By
Stu.
More Environment Variable Fixes
Description
When NQS builds an environment for processes, it now correctly
determines the length of all the strings in the environment.
Platforms Affected
All.
Status
Tested.
Code Contributed By
Mark Loveridge
NMAP Database Fixes
Description
Under pre-releases of Generic NQS v3.40.0, the `list' command of
nmapmgr failed to list any aliases defined for a machine. This was
caused by a previous fix to remove compile-time warnings, and has
been fixed.
Status
Tested.
Platforms Affected
All.
Code Contributed By
Stu.
qcat -u Fixed
Description
whompw was not initialised to NULL, and this prevented qcat -u
working on all platforms except Fujitsu. Fixed.
Platforms Affected
All except Fujitsu.
Status
Tested.
Code Contributed By
Mark Loveridge
Quota Support Improved
Description
The `quotas' (kernel-supported resource limits in UNIX parlance)
enforcing code has been reworked. For all SYSV-like platforms, a
resource limit of `unlimited' should now be correctly enforced,
while for BSD-like platforms, resource limits greater than
`unlimited' should now be correctly set to unlimited.
The `quotas' code is now the same for all platforms.
This change was introduced at this stage to fix problems encountered
on the IRIX 6 platform.
Status
Tested on Solaris 2.3 and Linux/ELF - a subset of the changes have
also been used at Exeter, on IRIX 6.
Platforms Affected
All.
Code Contributed By
Stu
Further Quota Fixes
Description
Code has been streamlined in Generic NQS, to ensure that the
implementation of BSD-like kernel-supported resources is correct.
This code may not work for platforms which do not support the ANSI C
CLK_TCK symbol.
Status
Tested.
Platforms Affected
All
Code Contributed By
Stu, based on discussions with Phil Chambers
(P.A.Chambers@exeter.ac.uk).
Removal of BSDish Code
Description
The amount of code which uses the BSD API has been reduced. Solaris 2
supplies a BSD-compatibility library which is notorious for being
buggy, while Linux + ELF doesn't seem to provide such a library at
all ...
NOTE that these changes have not been extensively tested, and may
result in broken functionality.
Platforms Affected
> [ ] AIX 3 [ ] AIX 4
> [ ] FUJITSU [ ] HPUX 8
> [ ] HPUX 9 [ ] HPUX 10
> [ ] IRIX 4 [ ] IRIX 5
> [ ] IRIX 6 [x] LINUX
> [ ] NCR [ ] OSF/1
> [x] SOLARIS 2 [ ] SUNOS 4
> [ ] ULTRIX [ ] UNICOS
Status
Tested under Solaris 2.3 and Linux/ELF.
Code Contributed By
Stu
Scheduling Fix On Startup
Description
When restarting NQS, pending jobs were not started up in a timely
fashion. This has been fixed.
Platforms Affected
All.
Status
Tested on Solaris 2.3 and Linux/ELF. No apparent side effects
observed.
Code Contributed By
Rob Creecy (rcreecy@census.gov)
Unanticipated Transaction Failure Fix
Description
Generic NQS currently uses inodes themselves to store information
about transactions - this is the way it was originally done back in
COSMIC NQS.
Generic NQS assumes that inodes are 32-bit unsigned integers - this
is not the case for all versions of UNIX (POSIX.1 does not define
the size of an inode). On systems which use 32-bit signed integers
for the inode, NQS generates `unanticipated transaction failures',
because negative values are not permitted.
This affects the timestamp for a transaction, which can no longer
fit into the inode correctly. The solution is to reduce the
granularity of the timestamp (so that it is accurate to every four
seconds) so that it will fit into the inode correctly.
Platforms Affected
All.
Status
Tested on Solaris 2.3, Linux/ELF, and ULTRIX. No apparent side
effects observed.
This change may make upgrading from Monsanto-NQS difficult under
certain circumstances.
Change Contributed By
David Billinghurst (billingd@crc.cra.com.au)
|