##############################################################################
@RELEASE: 6.7-3
##############################################################################
==== CL 15531 ====
@NEW: add run_program_and_convert_encoding.pl script, which is a wrapper to run any given program and convert its stdout from and to specified encodings (like UTF-16le to UTF-8).
Added to support 3dsmax batch (i.e., "cmdrange") submissions.
JIRA: QUBE-1210
==== CL 15380 ====
@CHANGE: modification now allowed on "done" jobs
ZD: 15281
==== CL 15077 ====
@NEW: add bin/qbdeleteworkerresources and qbdeleteworkerproperties programs
##############################################################################
@RELEASE: 6.7-2
##############################################################################
==== CL 14581 ====
@CHANGE: changed ("new") worker behavior when auto-mount drives are unmountable due to duplicate drives.
Now, failed attempts to auto-mount a drive due to the drive letter already
being in use will only generate a WARNING message in the workerlog, instead
of rejecting the job and sending it back to the supe as "pending".
==== CL 14579 ====
@CHANGE: add more useful info to print to the workerlog when a job is rejected due to duplicate drive mounting (attempt to mount to a drive letter that's already mounting something else)
==== CL 14574 ====
@FIX: Secondary jobs were being dispatched even when supervisor_smart_share_mode is set to NONE
ZD: 14613
==== CL 14528 ====
@FIX: issue when modifying job's "env": "cwd", "umask", and "drivemap" are wiped-- additional fix to allow "env" modification of multiple jobs with a single call to qbmodify()
See also CL14516.
JIRA: QUBE-1161
ZD: 14549
==== CL 14523 ====
@CHANGE: upgraded supervisor's embedded Python to version 2.7.2 on Windows
JIRA: QUBE-1164
==== CL 14518 ====
@CHANGE: worker_boot_delay defaults to 10 seconds on workers running in service mode, on ALL platforms.
JIRA: QUBE-989
==== CL 14516 ====
@FIX: issue when modifying job's "env": "cwd", "umask", and "drivemap" are wiped
JIRA: QUBE-1161
ZD: 14549
==== CL 14514 ====
@FIX: add agenda item (aka "work") status to print properly to the job's history log when it's recalled, because of the instance that's processing being migrated, interrupted, failed, killed, or blocked.
There will be a line like the following in the .hst history log:
[Sep 15, 2015 17:09:05] 495670145 work 45765 1 __QUBE_SYSTEM__@supervisor recalled in supervisor by user[] from host[supervisor] on host[shinyambp] (127.0.0.1)
Note that this will also show, as expected, when a job instance reaches timeout (if specified) and "failed" by the system.
JIRA: QUBE-829
ZD: 13521
==== CL 14507 ====
@FIX: issue where subst mounted local drives will disappear from Explorer after a job finishes on DU mode workers.
@FIX: also fixed a bug where an already-mounted network/subst drives weren't being detected properly
ZD: 14009
JIRA: QUBE-1030
==== CL 14500 ====
@FIX: issue where cmd* jobtype jobs fail when paths given to QB_CONVERT_PATH() include parentheses
Note: problem was with the command-line tokenizer, QbExpressions::commandtokenize() routine, commonly used by all cmd* jobtypes, not respecting double-quoted and single-quoted strings.
JIRA: QUBE-1139
==== CL 14479 ====
@FIX: QB_CONVERT_PATH() runtime path conversion fails when the path to be converted contains parentheses
==== CL 14473 ====
@FIX: Allow custom algorithms to decide how to preempt SmartShare secondary instances, or just default to using value set in supervisor_smart_share_preempt_policy.
Custom algorithms may define a qb_preemptcmp_secondary() routine to control how secondary jobs are preempted.
ZD: 14472
JIRA: QUBE-1145
==== CL 14397 ====
@FIX: performance tweak, cut down on the number of times backends and automated scripts fetch the supervisor config
==== CL 14360 ====
@CHANGE: agenda-based job instance is immediately interrupted, even if the global preemption policy is set to passive, if it hasn't started processing an agenda item
JIRA: QUBE-1077
ZD: 14109
==== CL 14352 ====
@FIX: added QB_FRAME_NUMBER, QB_FRAME_START, QB_FRAME_END, QB_FRAME_STEP, and QB_FRAME_RANGE to be defined in the environment just before a frame is processed
ZD: 14203
==== CL 14326 ====
@FIX: make appropriate invocation of approvemodify (qb_approvemodify() perl routine) for Custom Policy
ZD: 14173
JIRA: QUBE-1082
==== CL 14320 ====
@FIX: catch case in checkUserPermission where traceback error "e" is not defined and an attempt is made to report the error message - occurs when user running the script is not a qube admin
==== CL 14305 ====
@TWEAK: print queuing policy (Internal or custom/Perl) message to supelog
==== CL 14273 ====
@FIX: properly report back failing status when an regex_error is matched early on, but then not found in the last pass through the logs.
==== CL 14207 ====
@FIX: log sections that match an error regex from before an auto-retry are being scanned and matching for errors; now either "'qube! - retry/requeue" or "auto-retry" messages trigger a reset
==== CL 14204 ====
@NEW: a script and modules to sync external 3rd-party license server counts with Qube's global resources
@NEW: first external license server modules are for FLEXlm and sesinetd servers
##############################################################################
@RELEASE: 6.7-1
##############################################################################
==== CL 14162 ====
@FIX: issue where the supervisor, when starting secondary instances for a job, can preempt more instances than necessary-- i.e., preempt more instances than there are agenda items for the job.
ZD: 13969
JIRA: QUBE-1007
==== CL 14064 ====
@FIX: issue where global time-based callbacks (i.e., "dummy-time-self" callbacks) sometimes not triggering
ZD 13366
JIRA: QUBE-807
##############################################################################
@RELEASE: 6.7-0
##############################################################################
==== CL 13971 ====
@CHANGE: add job "name" and "lastupdate" columns to be added at time of job ID creation (available while job is still in "registering" state).
==== CL 13959 ====
@CHANGE:More efficient job refresh. Less tax on the supervisor during refresh
==== CL 13871 ====
@FIX: all cmds are passed to subprocess.Popen as raw strings now, no longer attempt to trap escape characters in Windows cmdlines,
==== CL 13870 ====
@NEW: add support for new 'registering' job status to data warehouse
==== CL 13869 ====
@NEW: add support for new 'registering' status to WranglerView
==== CL 13845 ====
@FIX: the upgrade_supervisor upgrade/pre-install DB converter program (pre-6.5 to 6.5) was incorrectly addeing the subjobN table's "allocations" column with the type set to "integer", where it should have been "long text".
JIRA: QUBE-804
==== CL 13843 ====
@FIX: fixing newly discovered malloc/free (delete) error (essentially a segfault) when handling job submissions of jobs with "children" jobs.
==== CL 13840 ====
@TWEAK: added code to print, for each submission, what mode of table creation was requested (deferred or immediate), and how many jobs were submitted, into the supelog.
==== CL 13839 ====
@CHANGE: Python API: merged the "len" and "pos" features of qb.stdout_len() and qb.stderr_len() functions into the original qb.stdout() and qb.stderr() functions.
* Python API: merged the features of qb.stdout_len() and qb.stderr_len() functions into the original qb.stdout() and qb.stderr() functions.
* Python API: removed qb.stdout_len() and qb.stderr_len()
* Python API: refactored and cleaned up some code
JIRA: QUBE-655
==== CL 13834 ====
@NEW: add new job status "registering" for jobs submitted with "deferTableCreation" qbsubmit() API option.
Jobs are initially assigned this status when they are submitted with the "defer table creation" option enabled in the call to the qbsubmit() API routine. A job will be in this status until the system finishes creating all DB tables for it in the background, which is when the job finally comes into being.
JIRA: QUBE-743
==== CL 13828 ====
@NEW: modify supervisor to allow deferring DB table creation when handling job submissions, to speed up response time to the caller/submitter.
JIRA: QUBE-743
==== CL 13805 ====
@NEW:For 6.8 - ArtistView Submission UI now works with central preferences server. Submission parameters can have their values set, values mandated, label changed, or be hidden via central prefs.
==== CL 13776 ====
@NEW: slight improvements to the utility of the new "len" and "pos" parameters for stdout/stderr log querying APIs (C++ API's qbstdout() and qbstderr(), and Python API's qb.stdout_len() and qb.stderr_len())
* an empty 'data' is returned when len=0 (used to return all data-- that is now achieved by specifying a negative len)
* "len" defaults to -1 (which means "get me untruncated data"). ("pos" still defaults to 0, which means the beginning of the log file)
* When a negative value is specified for "pos", the file seek is done backwards from the end of the file. (QbFile::loadpos())
==== CL 13774 ====
@NEW: add "fullsize" to QbLog object, so the full size of the stdout/err log file for a job instance is always returned on qbstdout/err queries. (and consequently on Python API's qb.stdout_len and stderr_len calls also).
==== CL 13758 ====
@CHANGE: Qube-installed version of MySQL is now stopped and started by launchctl, allows for the installation of a supervisor on OS X Yosemite and later.
==== CL 13751 ====
@FIX: infinite-loop bug in C++ core API when "pos" value given to qbstdout/err() is negative.
==== CL 13750 ====
@NEW: add "qb.stdout_len()" and "qb.stderr_len()" routines where the position to start reading the job's stdout/err log file, as well as how many bytes to read, may optionally be specified.
Example:
>>> qb.stdout_len("1234.0", pos=0, len=20)
{'subid': 0, 'data': '[Apr 3, 2015 15:34:4', 'jobid': 1234}
@FIX: also fixed a minor bug in an error message that gets printed
JIRA: QUBE-655
==== CL 13737 ====
@FIX: add code to prevent premature retiring of running instances in requestwork(), due to the system incorrectly determining that a job has decreased the "cpus" count.
ZD: 13452
==== CL 13736 ====
@TWEAK: Adding comments and slightly better logging messages for worker heartbeat related areas of code.
==== CL 13735 ====
@CHANGE: V-Ray DBR jobs in 3dsMax can now start immediately, hosts can join in as they become available
==== CL 13717 ====
@FIX: Sketchup 2015 on Windows is now a 64-bit application, don't just look in C:\Program Files (x86) for Sketchup executable
==== CL 13698 ====
@INTEG: rel-6.6>main,CL13694
----
@NEW: add modify capability for job's "env".
* qbmodify() C++ API
* qb.modify() Python API
Python example:
import qb
jobID = 1234
modJobProps = {}
modJobProps['env'] = {"MYVAR":"MYVAL", "MYVAR2":"OOGA"}
qb.modify(modJobProps, jobID)
QUBE-221
==== CL 13667 ====
@INTERNAL FIX: fixed const-ness of some method arguments in QbPolicy and QbPolicyPerl modules
==== CL 13666 ====
@NEW: add perl 5.18 support for platforms that come preloaded with it (i.e., MacOS X 10.10 "Yosemite")
QUBE-756
==== CL 13658 ====
@FIX: problem with custom queuing algorithms where the qb_jobcmp, qb_hostcmp, and qb_reject perl routines are not properly being invoked when necessary.
ZD: 13231
==== CL 13598 ====
@CHANGE: starting up a pythonChildHandler to manage a "LoadOnce" application does not implicitly start the application, must now call the handler's start(), and pass server port number to the subprocess args.