PROBLEM: (QAR 47021, QAR 58632) (Patch ID: OSF375-167) ******** This patch fixes the following problems with the "at -t" command: - the command did not work with user id's that were not in the password file. - the command did not work on the leap year of 2000. - This patch fixes a problem that occurs on multiprocessor machines in which the at command causes extra batch jobs to be executed. Sometimes temporary files are created and not removed, causing the queue limit to be exceeded. - This patch fixes a problem in which cron jobs will not run if there is an unfinished job in another queue. This problem occurs even if the queue for the job is empty. PROBLEM: (HPAQ40CCC) (Patch ID: OSF375-350233) ******** This patch fixes a problem in which cron jobs will not run if there is an unfinished job in another queue. This problem occurs even if the queue for the job is empty. Typically, a long job is the only job scheduled from cron. After that job terminates, another cron job starts executing. This results in several "MAXRUN procs reached" messages getting displayed to the error log. The /var/adm/cron/FIFO file, which should only exist while jobs remain queued, remains around much longer than expected. This problem can be reproduced by running the following test. To do this, you need three windows running the following commands: truss -p You might want to script tail -f /var/cron/log the truss and batch_two.ksh batch_two.ksh processes. The batch_two.ksh file is: #!/bin/ksh echo "sleep 9999" | batch integer COUNT=1 while [ COUNT -lt 60 ] ; do echo "sleep 15" | batch (( COUNT = COUNT + 1 )) done ( sleep 222 echo "sleep 700" | at -qr now +1 minute echo "sleep 750" | at -qr now +1 minute echo "sleep 800" | at -qs now +1 minute echo "sleep 14" | batch ) & integer STOP=0 PS while [ $STOP -eq 0 ] ; do atq | tee /tmp/atq.out ps -ef|grep sleep | tee /tmp/ps.out ls -l /etc/cron.d/FIFO date PS=`cat /tmp/ps.out | wc -l` AT=`cat /tmp/atq.out` [ $PS -le 1 -a "$AT" = "no files in queue." ] && STOP=1 || sleep 10 done echo "$0 finished." rm -f /tmp/atq.out /tmp/ps.out integer STOP=0 PS while [ $STOP -eq 0 ] ; do atq | tee /tmp/atq.out ps -ef|grep sleep | tee /tmp/ps.out ls -l /etc/cron.d/FIFO date PS=`cat /tmp/ps.out | wc -l` AT=`cat /tmp/atq.out` [ $PS -le 1 -a "$AT" = "no files in queue." ] && STOP=1 || sleep 10 done echo "$0 finished." rm -f /tmp/atq.out /tmp/ps.out The previous test shows that a long running job will prevent cron from scheduling jobs from any queue until one of the following events occur: 1) The long running job exits, or 2) Cron exhausts the FIFO list of already completed jobs (one minute per job) Either of these conditions may take a very long time. For a long running job, such as a part14 report, it may be hours. It could take cron a very long time to exhaust the FIFO list at one minute per job (200 completed jobs = 3.3 hours). The intertesting part of the test occurs when the background sleep 222 completes and places the four new jobs in queues r, s, and b. These jobs will wait for a long time when they do not need to wait at all. PROBLEM: (QAR 47149, UVO104578CBR) (Patch ID: OSF375-350291) ******** This patch fixes a problem that occurs on multiprocessor machines in which the at command causes extra batch jobs to be executed. Sometimes temporary files are created and not removed, causing the queue limit to be exceeded. PROBLEM: (QAR 52197) (Patch ID: OSF375-199) ******** Fixes a problem in which the "at" command does not reject illegal time specifications. PROBLEM: (QAR 53239) (Patch ID: OSF375-199) ******** Fixes a problem in which the "at" command does not accept dates for years 2001-2037. PROBLEM: (QAR 58635) (Patch ID: OSF375-199) ******** Fixes a problem in which the "at -t" command does not default to zero seconds when the "ss" field is not specified. PROBLEM: (QAR 49235) (Patch ID: OSF375-199) ******** Fixes a problem in which the "cron" daemon terminates when an "at" job is submitted to a remote system with the "rsh" command. PROBLEM: (QAR 47529, STLQ70084) (Patch ID: OSF375-199) ******** Fixes a problem in which the "cron" command does not log a message when it is terminated by a SIGTERM signal. PROBLEM: (QAR 59526) (Patch ID: OSF375-199) ******** Fixes a problem in which the "cron" command does not correctly schedule jobs specified in the crontab file to run at more than one minute. PROBLEM: (QAR 56560, HPAQA2134) (Patch ID: OSF375-199) ******** Fixes a problem in which the "cron" command does not schedule jobs correctly after a Daylight Savings Time change. The Release Notes contain the man page update for crontab(1). PROBLEM: (QAR 59433, QAR 59434, HPAQ303K0, SQO100438) (Patch ID: OSF375-199) ******** Fixes a problem in which the "cron" command terminates with a core dump sometime after a "crontab -r" command is executed. PROBLEM: (QAR 47531, QAR 51333, QAR 51676, UTO101072, MCPM70EEQ, MCGMB0H7C) (Patch ID: OSF375-199) ******** Fixes a problem in which the "at" command may generate messages similar to "at: queue full" or "MAXRUN (25) procs reached". Also implements a more advanced batch facility with user-definable limits. Included here is a short high level description of the new cron features. The Release Notes contain the man page updates for cron(8) and queuedefs(4). Cron used to use a constant MAXRUN (set to 25) to limit the number of jobs Also implements a more advanced batch facility with user-definable limits. Included here is a short high level description of the new cron features. The Release Notes contain the man page updates for cron(8) and queuedefs(4). Cron used to use a constant MAXRUN (set to 25) to limit the number of jobs running at any given time. This limit is now user definable and is defined by adding a line "max_jobs = x" to the queuedefs file, where "x" is the maximum number of jobs allowed to be run at any given time. Now cron reads "max_jobs" from the queuedefs file, if it is available, and uses it in place of the constant MAXRUN. If a user submits a large number of at/batch/cron jobs, increasing the maximum allowable number of jobs may result in a huge log file. If some or all of these jobs run for a long time then all the other jobs waiting in different queues will be rescheduled every minute resulting in excessive logging of "rescheduled" messages. This can now be controlled by adding another line "log = x" to the queuedefs file, where "x" is the level of logging to be done by the cron daemon. PROBLEM: (SSRT0487U, QAR 54187) (Patch ID: OSF375-105) ******** A potential security vulnerability has been discovered, where under certain circumstances, system integrity may be compromised. This may be in the form of improper file or privilege management. Digital has corrected this potential vulnerability.