RUSH - RELEASE NOTES
(C) Copyright 1995,2007 Greg Ercolano. All rights reserved.

Green -- Nice features
Orange -- Useful bug fixes
Red -- Critical bug fixes

 
Release Notes for 102.42a9                               Fixes/Features: 06/09/08
---------------------------------------------------------------------------------
> RUSH
  o RUSH: OPTIMIZE NETWORK MESSAGES
    Optimized an unusual condition that caused unnecessary rush network chatter
    when cpus were available for rendering but ram was not.
    Added rush.conf 'optimizeramsched' flag which can be set to '0' to disable
    this new optimization. (AURYN/LAIKA)

  o RUSH: Added FIFO scheduling
    Added new 'sched fifo' command to rush.conf.
    When enabled, jobs use FIFO order when priorities are otherwise equal.
    If used, must be enabled on ALL machines.
    To use FIFO scheduling, uncomment this line in the rush.conf:
        sched fifo
    ..and push the modified rush.conf file to all machines: rush -push rush.conf +any
    (SOHOVFX/ARRI/SCANLINE/PIXELMAGIC/BSGVFX)

  o RUSH: logdir pathname conversion
    Added new logdir_convert "from" "to" option to rush.conf file
    to allow log directories to be converted on the fly for non-homogenous
    configurations where drive mappings are required, such as SAN mappings
    as "local" drives where S: may be the only way to access a SAN drive
    on windows machines in a mixed unix/windows network config.

  o RUSH: Large frame requeues (Select All|Que on a 7000 frm job) optimized
    Large requeues when many frames were running at the time backlogged UDP buffers
    with 'kill' notices. Now threads UDP/TCP message handling in while operation runs. (TURNER)

  o [WINDOWS] Fixed 49 day wrap around timer (again)
    Keeps track of 'seconds since boot' timer wraps correctly now.
    This fixes problem where after 49 days of uptime, the Rushd on Windows 
    machines would stop doing its 30 second checks for changes to the 
    license.dat, hosts and rush.conf file.

  o RUSH: Fixed problem with 'change priority' error recovery
    During TCP errors caused by premature peer connection closure was
    not being abandoned correctly. This caused rushd to continue try to
    talk over dead link for each priority value being changed with long
    timeouts, causing rushd to appear unresponsive during that time.
    Dan had particularly large list of cpus to change, so rushd was
    offline for a long time during the command's continued execution
    (dan@sohovfx 11/30/07) Workaround: don't interrupt a 'change priority'
    operation while in progress.  This problem has been fixed in 102.42a9,
    such that the operation can be interrupted without side effects.

  o RUSH: Fixed problem with 'change priority' error recovery

  o RUSH: Fixed problem with using rsh(1) to remotely restart rushd
    On Macs, using rsh(1) to restart rushd could cause the rsh to hang if the local shell
    is /bin/sh (not an issue if shell is /bin/tcsh)
    
    rsh(1) passes pipes and sockets to the child processes, causing rsh not
    to return properly when a program like rushd backgrounds itself.

    Solution was to have rushd close all file descriptors above stdin/out/err
    during daemonization to ensure none of rsh's pipes get inherited by the 
    daemon.

  o Re-instated 'rush -jobremarks' (was lost due to a source code regression)
    and submit command 'jobremarks' (REG.TESTED/OK)

  o Added 'rush -exitnotes' (REG.TESTED/OK)
    This is a low-latency way for jobs to set the 'NOTES' field of the 'Frames' report
    when a render is exiting. (as opposed to using 'rush -notes', which uses TCP and
    can negatively affect the job server's response if run too frequently)

  o 'rush -push': preserves file modes of existing file before overwriting
    Allows distributing the S99rush file (which is executable)

  o cpu.acct file: added online/offline state to 'r' (rotate) field (MINSK/CIS)

  o cpu.acct file: new 's' (state) field shows timestamps for online/offline state changes. (MINSK/CIS)

  o cpu.acct file: added rush.conf 'cpuacct_usetabs' flag; if set to '1', cpu.acct fields
    will be tab delimited instead of space delimited. (Lessens size of file)

  o rush/etc/hosts: detects too few fields

  o rush/etc/hosts file now allows comments at end of data lines. (ORPHANAGE)

  o [MICROSOFT] reports new 'log on failure' messages with newer compiler

  o Fixed improper hostname reporting:
    % rush -ping router
    rush: 'fe.erco.x' [router]: valid host is NOT in rush hostlist (/usr/local/rush/etc/hosts)
           ---------
  	   This is the last host in the rush hosts file.
	   Also should be showing the IP address in the brackets.

  o 'Ram unvailable (x>y)' messages in 'rush -lc' reports; value for 'y'
    could sometimes go below zero, which is reasonable during calculations
    (due to TASK_START states). Reports now have value clamped to zero 
    for clarity.

> IRUSH

   o Added Edit -> Preferences -> Themes.
     First loads $RUSHDIR/rush/etc/.irush-themes (if it exists)
     Then tries to load user's own ~/.irush-themes (if it exists)
     Contents are merged, and will appear in Preferences -> 'Themes' menu.

       

   o Frame range optimizations weren't enabled.
     This speeds up changing the state of many frames at once, such
     as doing a Frames -> Select All -> Que.
     Code that optimized large lists of frames (eg. 7000 frames)
     to convert 'rush -que 1 2 3 .. 7000' into a single 'rush -que 1-7000' command
     was accidentally disabled due to a simple > vs >= bug. (TURNER)
  
   o Added 'usetheme' to .irushrc file, to allow saving of user's Theme preference setting.
     Also allows admin to define default theme in $RUSHDIR/rush/etc/.irushrc

   o License warnings update automatically

   o Added 'jobremarks' to "Job Edit" (TESTED, OK)

   o Added 'irush -fu' command line flag, updated 'irush -help' (TESTED, OK)

   o Fixed problem with auto-scrolling frames report when sorting enabled
     (FATIMA @ HAMMERHEAD)
     One line fix:
             tty_browser->topline() == 1)	// OLD
             tty_browser->topline() <= 1)	// NEW

   o Fixed 'Edit -> Select All' option
     (JEREMEY@BSGVFX 11/15/07)

   o 'All Cpus' report: larger buttons under 'Hosts' section

> SUBMIT SCRIPTS:

    o submit-3delight -- added new submit script

    o submit-dependon and submit-dependon.bat demo: 
      removed unix-specific /bin/sleep commands.

    o .common.pl prevents chdir() to tmpdir

    o submit-fusion.pl -- Released with support for ConsoleSlave

    o submit-animo.pl -- Added more "Alpha Channel" and Pixel Aspect Ratio options.

    o submit-maya*.pl -- Added REPORTERROR=0 env variable setting to prevent senddmp.exe
                         (See rush.general posting from Greg on 01/29/2008)

    o submit-maya-and-mray-tile -- removed old maya 'exit 128 license error' code

    o submit-maya-tile -- added layers support

    o submit-maya.pl -- added 'default' and 3delight Renderer: prompt options
    	> maya2008 mods (32bit and 64bit)
	> 3delight plugin additions
	> Removed old maya 'exit 128 license error' code
	> added license pause ability, Licpause+Retry (DADO/WILDBRAIN)
	> Warns about spaces in pathnames

    o submit-harmony -- doc modifications

    o submit-nuke -- numerous modifications for consistency

    o submit-renderman -- numerous modifications for consistency

    o submit-shake-quicktime -- numerous fixes to support codecs

    o submit-softimage -- added -continue flag

    o Added -presets and -help command line flags to:
	> submit-3dsmax.pl
	> submit-afterfx.pl
	> submit-cinema4d.pl
	> submit-combustion.pl
	> submit-generic.pl
	> submit-houdini.pl
	> submit-mray-tile.pl
	> submit-nuke.pl
	> submit-rayz.pl
	> submit-realflow.pl
	> submit-renderman.pl
	> submit-shake-quicktime.pl
	> submit-turtle.pl

> RUSHADMIN:
   > Added 'Scheduling' tab to adjust new rush.conf fifo scheduling flag

   > Some minor onscreen documentation mods, small GUI improvements

> INPUT:

    o added 'updatecommand' to 'choice'

> INTERNAL:

   o String Library: fixed problem with String::ExpandEnvironmentVariable()
     when expanding variables at the end of string. (Found when irush Hotkey
     was set to e.g. "echo LOGNAME IS $LOGNAME", the $LOGNAME would be empty,
     but using "echo LOGNAME IS ${LOGNAME}" would work.

   o Updated TCP/UDP iface bind() error messages to include port number

   o [INTERNAL] Back ported MicrosoftDeprecate.H

   o [INTERNAL] Back ported MyMalloc.C exit callback

   o Makefile: linux lib64 specifics

   o Makefile: Mac now builds universal binaries by default

   o FrameType: operator- and operator+ converted to const

   o IRUSH: Converted frame optimization from doubles to FrameType,
     to support large floating point frame numbers (10000.005),
     avoiding suffering limitations of floating point precision.