##############################################################################
    @RELEASE: 6.3.6
    ##############################################################################

    ==== CL 10514 ====
    @FIX: another patch for out-of-order issue. Fixed unexpected short-circuit evaluation that was happening in the startResources() routine

    ==== CL 10513 ====
    @FIX: another patch for out-of-order issue. Fixed unexpected short-circuit evaluation that was happening in the startHost() routine

    ==== CL 10512 ====
    @INTERNAL: QbJob object's _subjobswaiting data was not being initialized or copied correctly, causing some job comparisons based on subjobs waiting counts to unexpectedly fail.

    ==== CL 10504 ====
    @INTERNAL: added more log output for debugging builds, added more comments while working on out-of-order issue.

    ZD: 8198

    ==== CL 10477 ====
    @FIX: Another out-of-order fix. Jobs at the same numerical and cluster priority should dispatch in the correct FIFO order now.

    The FIFO enforcing should work most of the time, but there still will be
    occasional out-of-order behavior, due to the multi-threaded nature of the
    supervisor. ("qbshove"-ing the older job should correct it, when it's seen)

    ZD: 8198

    ==== CL 10462 ====
    @FIX: yet yet another fix for out-of-order dispatch behavior-- eliminate race-condition that would allow lower priority jobs that were just preempted to get workers before higher-priority jobs.
    See also CL10440 10452

    ZD: 8198

    ==== CL 10461 ====
    @CHANGE: modified/compacted the multi-line "found a duty to replace" logging to be a single line.

    ==== CL 10452 ====
    @FIX: yet another fix for out-of-order dispatch behavior-- eliminate race-condition that would allow lower priority jobs that were just preempted to get workers before higher-priority jobs.
    See also CL10440

    ZD: 8198

    ==== CL 10441 ====
    @FIX: killing an already finished (complete, failed, killed) job leaves the job in the "dying" state.

    ==== CL 10440 ====
    @FIX: another fix for out-of-order dispatch behavior-- eliminate race-condition that would allow lower priority jobs that were just preempted to get workers before higher-priority jobs.

    ZD: 8198

    ==== CL 10429 ====
    @FIX: out-of-order job dispatching issue with jobs using the "+" sign with the "host.processors" reservations.

    ZD: 8198 8261 8229 8233 8228

    ==== CL 10189 ====
    @FIX: timing issue where some worker resources (host.xyz) would disappear after the worker received a remote config.

    @FIX: issue where supervisor tries to dispatch a subjob to a worker with
    insufficient resources (reduced the likeliness of that from happening)

    @FIX: the above 2 fixes combined should now prevent some of the
    out-of-priority-order dispatch issues, especially in environments where
    worker resources are deployed.

    ZD: 7885

    ==== CL 10118 ====
    @FIX: fixed issue where agenda timeouts don't work properly on the first agenda item processed by a subjob, on Unix (Linux/OSX) workers

    ==== CL 10117 ====
    @FIX: fixed issue where agenda items that fail because of timeout don't get automatically retried via retrywork
    ZD: 7763

    ==== CL 10022 ====
    @FIX: modified the worker to only report to the supe of its host status when subjobs are completely done and removed, and NOT when they are only marked/scheduled for removal.

    This was causing jobs to sometimes run out-of-order, especially when there
    are many subjobs to each job (such as one subjob per frame), since that
    situation tends to increase the chance of the supervisor dispatching the
    same subjob to the same worker. The subjob will be dispatched to the same
    worker, but rejected since the worker thinks it's a duplicate assignment of
    a subjob that's being removed (and consequently a lower priority job will
    get the worker's slot, causing out-of-order job execution)

    ZD: 7601

    ==== CL 9903 ====
    @FIX: better message from worker when it rejects a dispatched subjob because it's a duplicate (being preempted or migrated on the same worker)

    ==== CL 9838 ====
    @CHANGE: upped the default value for supervisor_max_threads to 100, and worker_max_threads to 32

     

     

     

    ##############################################################################
    @RELEASE: 6.3.5
    ##############################################################################

    ==== CL 9785 ====
    @FIX: worker issue where desktop worker would randomly crash.

    ZD: 6778

    ==== CL 9730 ====
    @TWEAK: modified so that worker name and IP print when job is accepted by worker, in assignJob()

    ==== CL 9729 ====
    @INTERNAL: changed all calls to qbvcout to qbout in the QbDaemon, QbPreforkDaemon and QbDatabaseMysql code, so that the timestamp, hostname and pid, are always printed.

    ==== CL 9698 ====
    @FIX: fixed false-negative warning message pertaining to "select() in checkpoint()" seen in supelog.

    Examples of these messages:

    select() in checkpoint(): Operation timed out
    select() in checkpoint(): Interrupted system call

    ==== CL 9694 ====
    @FIX: fixed issue with the supe threads getting tied up on "subjob X seems to be already assigned" message.

    On a farm with busy workers, the time between the supe dispatching a sub
    job to the worker via assignJob() and the worker reporting that the "subjob
    is running" can be several seconds to sometimes even several minutes, which
    was causing many supe threads to attempt dispatching the same subjob over
    and over. All of those threads end up hitting the "subjob X seems to be
    already assigned... retrying" message, and get tied up for 3 seconds while
    they retry.

    BUGZID:
    ZD: 6760 7125

    ==== CL 9689 ====
    @FIX: fixed bug in clustering algorithm where it incorrectly gave more
    weight to a job when the only difference was the last letter in the cluster
    specification.

    For example, if:
    host cluster: /3D/projA
    job1 cluster: /3D/projB
    job2 cluster: /3D

    job1 was getting more weight than job2, which is incorrect.

    BUGZID: 63740
    ZD: 7043

    ==== CL 9686 ====
    @FIX: using deprecated "waitfor" attribute with Python api causes qb.submit() to raise a KeyError
    @FIX: properly convert "waitfor" value (jobid integer) to proper "dependency" string of "link-done-job-<id>"

    ==== CL 9676 ====
    @FIX: update documentation and GUI help text to show correct "||" syntax for job restrictions list.

    ==== CL 9662 ====
    @FIX: supervisor was failing postflight upgrade scripts on OSX Server, expliclty set the mysql socket to /tmp/mysql.sock in /etc/my.cnf and /etc/qb.conf to avoid conflicting with the factory-installed default of /var/lib/mysql/mysql.sock

    ==== CL 9615 ====

    @FIX: Added code to properly log frames (to supelog and job log) when they go back to "pending" after the processing subjob/worker is found dead.

    @FIX: Added code in the supervisor to retry a failed worker connection
    after a random 5-10 sec sleep/delay, to alleviate network hiccups during
    network commands (kill, preempt, etc. of running subjobs).

    ZD: 6760

    ==== CL 9614 ====
    @INTERNAL: fixed a small cosmetic bug introduced in CL 9606

    ==== CL 9607 ====
    @INTERNAL: added converseWorkerWithRetries() and also fixed small bug in the retry loop of converseSubSupervisorWithRetries()

    ==== CL 9585 ====
    @FIX: issue where some jobs get stuck in the "dying" state when attempted to be killed

    ZD: 6616

    ==== CL 9570 ====
    @FIX: improvements to the handling of GET_LOCK (aka"reserveJob()") timeout situations.

    ZD: 6617

    ==== CL 9500 ====
    @FIX: Windows Vista/7/2008-R2 installer - don't error out when installing the worker or supervisor as an Admin-equivalent account during creation of scheduled tasks. Properly remove scheduled tasks during uninstall.

     

     

     

    ##############################################################################
    @RELEASE: 6.3.4
    ##############################################################################

    ==== CL 9550 ====
    @FIX: qbwrk.conf files that had any commented-lines before the first valid template was encountered would cause an exception to be raised, QubeGUI->worker->RMB->Configure (which uses qb.updateworkerconfig()) would fail silently

    ==== CL 9535 ====
    @NEW: add submit-agenda-timeout-job.py example python script, to demonstrate submission of a job with frame-level timeouts.

    ZD: 6099

    ==== CL 9530 ====
    @FIX:Submitting paths to shotgun no longer depends on the visibility of output paths to the supervisor.
    @FIX:Shotgun submission script fails gracefully & logs a reason as to why it can't generate a thumbnail when thumbnail creation fails.

    ==== CL 9523 ====
    @FIX: fixed issue where the supervisor fails to correctly track the host assignment for subjobs.

    Symptom for this included seeing in the supelog, messages like "statusJob(): aberrant report from worker...", then followed by "subjob[xxxx] is assinged to worker[] with mac address[00:00:00:00:00:00]".

    These subjobs would then be in the "running" state, but not assigned to a worker.

    ==== CL 9522 ====
    @FIX: removed code that skipped code that made local decision on the supe to test for resource reservations, for jobs with host.processors set to > 1, delegating the decision-making to the workers and resulting in more network traffic and latency.

    ZD: 6141

    ==== CL 9507 ====
    @FIX: added more robust code that talks to the SMTP server when sending out email,
    to support some email servers with non-standard response behavior.
    ZD: 6209

    ==== CL 9504 ====
    @FIX: catch case where sg_path_to_frames is part of the Shotgun versionName, but the job has no outputPaths for the first frame; fallback to naming the version "job id: 123 jobName: ..."

    ==== CL 9496 ====
    @FIX: catch case when inserting in a new cluster into cluster_dim when more than 1 worker exists in the new cluster; occurs during run of regular_slotcount.sql, doesn't prevent new record from being added, just generates line noise and error emails from cron...

    ==== CL 9494 ====
    @CHANGE: make explanation of "+ | *" in job/host restrictions less ambiguous

    ==== CL 9484 ====
    @FIX: calculate cpu-seconds for agenda-based jobs by summing up work times, not subjobs. Better support for resetting of the start times for retried work.

    ==== CL 9467 ====
    @NEW: add a random offset to the startup so that all workers don't report at the same time if they've started up at the same time.
    @CHANGE: don't retrieve job name, it's extraneous and not reported; cuts down the query count by one.
    @CHANGE: set workname for subjob to job.subid, not subid; easier to detect case where an agenda-based job falsely reports not having an agenda, so subjob id won't conflict with a frame number

    ==== CL 9463 ====
    @FIX: don't report memory usage in the case where MySQL fails to return a valid agenda name, usually caused by timeouts or maxed out connections.

    ==== CL 9456 ====
    @FIX: moved the location of QbTableVersion29.cpp (rel-6.3) inside the upgrade_supervisor.vcproj file from the incorrect "Resouces Files" folder to the proper "Source Files" folder.

    It appeared as though the file was missing from the build.
    (probably mostly only cosmetic, but was also was confusing).

    ==== CL 9449 ====
    @FIX: fixed issue with removal of workers using the mac address (i.e. "qbadmin -worker remove <macaddr>") not working properly.

    BUGZID: 63447

    ==== CL 9446 ====
    @FIX: added "pgrp" modifying support to the supervisor code and the qbmodify() C++ API, qb.modify() Python API, and qb::modify() Perl API routines, and added a "-mpgrp <int>" option to the qbmodify command-line tool.

    BUGZID: 63680

    ==== CL 9442 ====
    @FIX: modified to raise exception when parameter "fields" is not of type list.

    BUGZID: 63627
    ZD: 3998

    ==== CL 9440 ====
    @FIX: variables such as $qb::jobid not working in callbacks on Windows

    BUGZID: 63686
    ZD: 5240

    ==== CL 9427 ====
    @FIX: added code to make sure all end-of-line in email data are CRLF (not just LF) in accordance to RFC2822.

    This was causing notification emails to not work with some email servers, as they will not responding, and the communicating supe thread would just stall.

    ZD: 5752

    ==== CL 9411 ====
    @FIX: added code to chmod and open up the file permission of .out and .err files in the job log folder.

    This was causing subjobs to fail on systems with "mounted" job log path, as the supervisor will initially create these files when when a subjob that previouly never started is retried (the supe writes "qube! - retry/requeue on blahblah...") under the "root" user's ownership with mode 644, and the workers who get the subjobs can't write to it.

    ZD: 5965

    ==== CL 9402 ====
    @FIX: adding "qbhash" command to windows.

    ==== CL 9395 ====
    @FIX: fixed issue causing the supervisor to crash at initialization, right after "finding other supes..." was printed in the supelog.

    The fix was in one of the base commuinication library routines QbConnection::receiveUdp().

    Sometimes, unknown/malformed data would be received on the UDP socket, and was causing the code to attempt to access beyond the buffer array (index out-of-bounds error).

    ZD: 5638
    BUGZID: 63305

     

     

     

    ##############################################################################
    @RELEASE: 6.3.3
    ##############################################################################

    ==== CL 9370 ====
    @FIX: recreate the pfx_dw stored procedures and functions on Windows, as the MSI installer wipes them out during an upgrade.

    ==== CL 9342 ====
    @FIX: fixed a supe thread crashing issue, when global_host or license_host resource tracking is used.

    ZD: 5749

    ==== CL 9334 ====
    @FIX: add error handler for MySQL error 1146 "Table 'x' doesn't exist" for work and cpu time calculations for job data collector script
    @NEW: increment datawarehouse version to 10 to allow for installing this patch into existing databases

    ==== CL 9325 ====
    @FIX: add qbhash program to be included in qube-core RPM package.

    BUGZID: 63693
    ZD: 5744

    ==== CL 9318 ====
    @FIX: fixed crash bugs that were introduce when the "dying" state was implemented for 6.3.1.

    ZD: 5794

    ==== CL 9311 ====
    @FIX: add mail template for auto-wrangling emails to the installers

     

     

    ##############################################################################
    @RELEASE: 6.3.2
    ##############################################################################

    ==== CL 9265 ====
    @FIX: fixed job-level history not being recorded into .hst file.

    (Bug was introduced in CL9145, 9146)

    ZD: 5609

    ==== CL 9261 ====
    @CHANGE: cut down on the cmdline & cmdrange jobtypes' stdout; don't print 'LOG: ...' lines, make regex summaries much clearer, change printing or regex's to stderr to make it clearer that they're not actual errors, but rather things being searched for in the stderr stream.

    ==== CL 9252 ====
    @FIX: properly find qb.conf on Windows versions Vista and later when unable to contact the supervisor directly.

    ==== CL 9245 ====
    @FIX: GUI changes to be able to handle when supervisor host goes down, and both supervisor and MySQL server are unavailable. Also fix jobList not refreshing on down supervisor.

    ==== CL 9241 ====
    @FIX: fix GUI crashbug in MySQLConnect when supervisor does not answer a qb.ping

    ==== CL 9239 ====
    @FIX: global resource tables were not getting created in new instances of the datawarehouse db, only on upgrades.

    ==== CL 9234 ====
    @FIX: disable permission check of worker_logpath, as it was creating false-alarms and putting the worker to be in panic mode unnecessarily.

    ZD: 5445 5236
    BUGZID: 63683

    ==== CL 9232 ====
    @FIX: fixed example python code (jobSubmit06.py) to work on Windows too.

    ==== CL 9211 ====
    @FIX: added code to prevent the QbQueue::getSubjobReadyfindReady() routine from returning the same subjob to be dispatched over and over.

    This was causing the findSubjobAndReserveJob() and startJob() routines to
    hit the "subjob [N] seems to be already assigned" situation, and cause
    threads to enter a long, sometimes semi-infinite, sleep-and-retry loop.

    Fixed by adding code in the startJob() routine to quickly update the subjob
    status when the the assignJob() returns QB_ASSIGN_OK (i.e., worker says it
    has accepted the subjob), instead of waiting until the worker later reports
    that the subjob is "running" via the STATUS_JOB message, which can take
    more than several seconds on a busy farm.

    Also reduced the number of maximum retries to 3 (MAX_ATTEMPTS), in the
    situations where a subjob "seems to be already assigned" or when a worker
    host says it's busy (QB_ASSIGN_BUSY). This prevents the threads to get
    stuck for 10 or more seconds in a sleep-retry loop, and allow them to give
    up quickly and move on.

    ZD: 5449

    ==== CL 9198 ====
    @FIX: fixed issue with non-node-locked licenses ("FF:FF:...") not working (since 6.3.0)

    ==== CL 9173 ====
    @FIX: ensure that mail sent by qbamdin --emailtest is RFC2822-compliant (no bare LF's, only CRLF)

     

     

     

    ##############################################################################
    @RELEASE: 6.3.1
    ##############################################################################

    =================

    @NEW: Add CentOS/RHEL 6 x64 support

    ==== CL 9150 ====
    @INTERNAL: QbDebug::filename(QbString) took if statement out, so resetting _filename is allowed

    ==== CL 9145 ====
    @FIX: disabled logging to /var/spool/qube/{host,user}, as it was creating large log files and causing sluggish performance.

    An option to enable these logs may be made available in the future.

    ==== CL 9142 ====
    @FIX: fixed issue where global resources tracking drift sand more subjobs than can be accomodated by the actual global resource count is dispatched.

    ZD: 5074

    ==== CL 9133 ====
    @INTERNAL: CentOS support for "buildpyc" in rpm/quberpm.pm

    ==== CL 9105 ====
    @NEW: A new transitional "dying" state for jobs that have been ordered to be "killed", but still being processed by the system

    ==== CL 9085 ====
    @INTEG: main -> rel-6.[0,1,2,3] CL 9083, 9084
    -----
    @CHANGE: increase MySQL wait_timeout value from default of 8 hours to 36 hours to decrease frequency of "MySQL server has gone away (2006)" error messages.
    @CHANGE: increase MySQL max_allowed_packet value from default of 1MB to 64MB to decrease frequency of "MySQL server has gone away (2006)" error messages.

    ==== CL 9084 ====
    @CHANGE: increase MySQL max_allowed_packet value from default of 1MB to 64MB to decrease frequency of "MySQL server has gone away (2006)" error messages.

    ==== CL 9066 ====
    @FIX: fixed "cpus" (subjob) count inaccuracy when a job's "cpus" was modifed down and then up.

    For example, if a job with initially 10 "cpus" was reduced to 5, then
    subsequently increased to 6, the system had inaccurately recomputed the
    subjob count to be 10.

    ==== CL 9058 ====
    @FIX: renaming logs during rotation would fail on Windows

    ==== CL 8939 ====
    @FIX: fixed another small "hole" that could cause race-conditions to dispatch a single subjob more than once

    ZD: 4783
    BUGZID: 63657

    ==== CL 8937 ====
    @FIX: supe issue where the same subjob can be dispatched more than once to worker(s).

    ZD: 4783
    BUGZID: 63657

     

     

     

    ##############################################################################
    @RELEASE: 6.3.0
    ##############################################################################

    ==== CL 9013 ====
    @NEW: added description of supervisor_job_flags in the qb.conf.template file

    ==== CL 9010 ====
    @FIX: fixed memory bloat issue in supervisor threads on start up, on farms with many jobs.
    In some cases, it had been reported that each supe thread was taking up 500+ MB.

    ==== CL 8975 ====
    @NEW: add section (8.7) for "externally updatable worker resources and properties" to Administration.doc

    ==== CL 8957 ====
    @NEW: add user name to print to supelog when a worker lock is updated

    BUGZID: 63661
    ZD: 4860

    ==== CL 8949 ====
    @FIX: fix datawarehouse crontab so that 7-day tables are rebuilt twice a day

    ==== CL 8948 ====
    @NEW: add global_resource tracking to the datawarehouse

    ==== CL 8935 ====
    @FIX: update qb.conf templates to show the correct default value for supervisor_default_security
    @INTERNAL: previous setting was an hex value, which seems to be unsupported now.

    ==== CL 8910 ====
    @NEW: add C++ examples for using the qbupdateworkerresource(), qbupdateworkerproperties(), qbdeleteworkerresources(), and qbdeleteworkerproperties() routines

    ==== CL 8909 ====
    @NEW: add Perl API routines for externally updated worker resources/properties

    * add bindings to perl
    ** add qb::updateworkerresources() and updateworkerproperties() to perl api
    qb::updateworkerresources("shinyambp.local", "host.ooga=2/3,host.extern=0/10")
    qb::updateworkerrproperties("shinyambp.local", "host.oogaprop=3,host.oogaextprop2=11")

    ** add deleteworkerresources() and deleteworkerproperties() to perl
    qb::deleteworkerresources($host, @resources);
    qb::deleteworkerresources("shinyambp.local", "host.extenres", "host.ooga");

    ==== CL 8901 ====
    @FIX: fixed bug where subjobs will be retried indefinitely when retrysubjob is set.

    BUGZID: 63517
    ZD: 2950 4661

    ==== CL 8889 ====
    @FIX: fixed issue where the supervisor kept adding duplicate auto-wrangling and mail callbacks when jobs are resubmitted

    BUGZID: 63655
    ZD: 4661

    ==== CL 8886 ====
    @INTEG: rel-6.2 -> main
    ----
    @FIX: properly remove datawarehouse scheduled tasks for round-robin tables

    ==== CL 8885 ====
    @FIX: properly remove datawarehouse scheduled tasks for round-robin tables

    ==== CL 8872 ====
    @FIX: issue introduced in 6.2.1 that broke callbacks (not being triggered)

    ==== CL 8859 ====
    @FIX: add bookmarks (TOC) to Admin docs, update section for qblock to refer to "Users guide" instead of non-existent "Command Reference"

    ==== CL 8857 ====
    @NEW: add externally-updatable worker resources and properties

    BUGZID:

    ==== CL 8847 ====
    @CHANGE: upgrade_config tool no longer comments out some of the customized paths in qb.conf

    ZD: 4470

    ==== CL 8846 ====
    @FIX: supe and worker RPMs now correctly "require" specific qube-core version (like "6.2-1")

    BUGZID: 63644
    ZD: 4470

    ==== CL 8841 ====
    @FIX: issue with supervisor threads stalling, waiting for NFS I/O on the "mounted" job logs, when NFS latency is large.

    ==== CL 8840 ====
    @UPDATE: "Use" doc with p-agenda documentation
    @UPDATE: also added/updated some qbsub examples

    BUGZID: 63636

    ==== CL 8837 ====
    @NEW: add example scripts to demonstrate submission of p-agenda jobs in perl and python

    BUGZID: 63636

    ==== CL 8836 ====
    @NEW: adding docs for retryworkdelay (qbsub option)

    ==== CL 8811 ====
    @FIX: fixed worker installer to start the worker service iff the system has not already turned it OFF via chkconfig.

    ZD: 4286

    ==== CL 8798 ====
    @NEW: optimization when submitting big groups of jobs via qbsubmit() loaded with callbacks and dependencies
    Fixed reported issue where submission performance will degrade linearly proportional to the number of jobs in the queue.

    ==== CL 8795 ====
    @UPDATE: added descriptions of new/missing qb.conf parameters to the qb.conf.template file, which is used to build the default qb.conf.

    * added p-agenda params (supe and client)
    * added auto-wrangling params (supe)
    * added per-user/pgrp subjob limit params (supe)
    * added mail setup params (supe)
    * added database setup params (supe)

    ==== CL 8794 ====
    @NEW: add p-agenda submission options to qbsub (p_agenda, p_priority, and p_cpus), and updated online help text.

    ==== CL 8790 ====
    @CHANGE: Python API qb.reportjob() now takes a subjob object (dict). It can still take just the status (string).

    This should enable the custom jobtype back-end programmer to pass back subjob-level "resultpackage" data to the supe, for example.

    ==== CL 8783 ====
    @NEW: add supervisor_p_agenda_max qb.conf parameter, for the site-admin to control the maximum number of p-agenda any job can have.

    ==== CL 8782 ====
    @NEW: add p_agenda_cpus to enable control of the number of "cpus" used for the p-agenda jobs. Defaults to number of p-agenda items.

    @CHANGE: removed code that automatically makes a job to become a p-agenda job when
    p_agenda_priority() is set. The "p_agenda" list or the "p_agenda" job flag must be explicitly
    set for a job to be a p-agenda job.

    ==== CL 8781 ====
    @CHANGE: if an agenda-based job specifies the p_agenda_priority, then automatically add the p_agenda flag.

    @CHANGE: added code to check that the job being submitted is an agenda-based one, before doing the p-agenda magic

    ==== CL 8775 ====
    @UPDATE: doc update w/ "qbhash" and encrypted DB password descriptions

    @UPDATE: Added section for qbhash, and updated section for qblogin.
    @UPDATE: section for database_password

    BUGZID: 63383 63628 39741

    ==== CL 8769 ====
    @NEW: add "qbhash" tool, used to generate/display encrypted passwords

    @NEW: add "-password" option to qblogin, to specify password in a command-line option instead of on the stdin

    BUGZD: 63383

    ==== CL 8767 ====
    @FIX: install datawarehouse plists on OSX (missing from installer package)

    ==== CL 8764 ====
    @NEW: add p-agenda (p-frames, "p" stands for Priority/Preview/Poster) support, where a select few agenda items of a job can be sent at a higher priority for quicker turn around for previewing purposes.

    To use in API: set the "p_agenda" job flag when submitting an agenda-based job.

    Optionally attach a list, job['p_agenda'] in python API, to the job on submission to explicitly specify the p-agenda items. If not set explicitly, the system will automatically choose the 1st, last, and middle items to be rendered at a higher priority.

    The priority of the p-agenda items may also be specified on submission, by setting the job's p_agenda_priority parameter.

    p-agenda job support for the standard submission tools (GUI, qbsub) coming shortly.

    @NEW: qb.conf parameters: client_p_agenda_priority, supervisor_default_p_agenda_priority (default 1)

    ==== CL 8760 ====
    @UPDATE: Administration.doc with details about the new worker_boot_diagnostic_retries and worker_boot_diagnostics_retry_interval parameters

    BUGZID: 63600

    ==== CL 8755 ====
    @FIX: Added worker_boot_diagnostics_retries and worker_boot_diagnostics_retry_interval

    These new configuration parameters tell the worker to automatically retry the boot-time
    diagnostic routines for "worker_boot_diagnostics_retries" times, with
    "worker_boot_diagnostics_retry_interval" seconds of sleep time inbetween the retries.
    By default, they are set to 1 and 30 (seconds) respectively. These values may be
    set in the local qb.conf file, or in the qbwrk.conf file.

    @FIX: issue where worker will "panic" when proxy settings are set in the remote qbwrk.conf file.

    BUGZID: 63600 63422 63407
    ZD: 3650 1638 2035

    ==== CL 8743 ====
    @NEW: add qb.frontend package, will serve as base class for constructing jobs for new python jobtypes

    ==== CL 8727 ====
    @CHANGE: database_password is now expected to be encrypted.

    Plain text password still works, but if a password has been set up to access the MySQL db, site administrators are
    recommended, but not required, that they use "qblogin -display" to generate the encrypted password, and set
    database_password in qb.conf to the encrypted string for more security.

    BUGZID: 63628

    ==== CL 8722 ====
    @NEW: add optional artificial delay before auto-retry of agenda items via "retrywork"

    When a failed frame is automatically retried via "retrywork", an artificial delay may be inserted before the subjob starts processing it.
    Requested by customers to work around issues with, for example, application license contentions.

    Submission APIs (C++, Perl, Python) and clients (qbsub, QubeGUI) modified to allow specifying "retrywork_delay" when submitting jobs.


    ==== CL 8717 ====
    @FIX: logs written into a "hidden" file, in "log/user/.hst", which grows very large

    Actions initiated by the supe (as opposed to a particular user), such as
    "starting a subjob on worker", were logged into this hidden ".hst"
    file. Fixed it so the file has a special folder/name,
    "__QUBE_SYSTEM__/__QUBE_SYSTEM__.hst".

    Also modified code so that if the "user" flag was ommitted from the
    "supervisor_log_flags", then this user action logging is disabled
    altogether.

    BUGZID: 62030

    ==== CL 8713 ====
    @FIX: turned off worker debug-level logging that accidentally made it into the 6.2.0 release.

    ==== CL 8712 ====
    @FIX: issue where worker processes will stall when a config field, such as "worker_description" has quotes in them.

    ==== CL 8704 ====
    @FIX: support bash exported function definitions, which are saved as multi-line environment variable values

    BUGZID: 63624
    ZD: 4100

    ==== CL 8702 ====
    @NEW: add perl 5.12 and 5.14 support for windows x64 and 32-bit.
    BUGZID: 63631

    ==== CL 8695 ====
    @FIX: export_environment now works properly with built-in cmd* jobtypes

    @FIX: cmd* jobtype backends will run jobs in a non-login shell if
    export_environment flag is set on the job, to avoid overriding of
    environment variables set by the job's submission environment.

    @NEW: QbApi::qbsystem() now optionally takes a boolean to specify
    commands to be run in a login shell.

    @CHANGE: By default now, QbApi::qbsystem() will run the given command in a
    non-login shell.

    @NEW: added optional "shell" parameter to QbEnv::setToEnv(user, [shell])
    method, so the user environment for a non-default shell can be fetched.
    This new method is called from QbWorker::QbUnix.cpp now.

    BUGZID: 63625
    ZD: 4100

    ==== CL 8693 ====
    @FIX: fix "ERROR 1290 (HY000) at line 31 in file: '.\create_stored_programs.sql'" on new Windows installations
    @FIX: fix Windows 5.15-beta version specific SQL syntax error (does not exhibit in later versions of MySQL)

    ==== CL 8676 ====
    @FIX: add code to license check routine to validate hostid against all mac addresses on the host, as opposed to just the primary one.

    Note: this involves changes to the base library (utils/QbList, utils/QbServer)

    BUGZID: 63621
    --
    @CHANGE: modify license verification code to only run when the license file had been changed, or a new day has arrived, or on boot.

    The code still checks to modification time of the license file everytime that a license access is required but most of the logic is now short-circuited, if no mod was made to the file.

    It turns out to be rather tricky to, say, add a "reread" option to "qbadmin" to only read the license on demand, since all supe thread must be told to read the file (for quick access, license data is kept in memory of each thread/proc), and such "broadcast" type of instruction to go out to all threads is not supported at the moment.

    The optimization being checked in, however, should significantly reduce the overhead in license-checking nontheless, especially with the new code where each license key's hostid is checked against all mac addresses for validation.

    BUGZID: 63622

    ==== CL 8668 ====
    @FIX: fix "/etc/rc.d/init.d/supervisor: line 139: [: /var/spool/qube/user/jburk/jburk.hst: binary operator expected" error message in supervisor startup

    BUGZID:63618

    ==== CL 8662 ====
    @UPDATE: update doc with mail_from parameter description.
    BUGZID: 63591

    ==== CL 8654 ====
    @FIX: Made the qube-core RPM "obsolete" the "qube" package, to
    accomodate the change in RPM package name.

    BUGZID: 63611
    ZD: 3950

    ==== CL 8641 ====
    @FIX: added more details to default qb.conf template's description of proxy_nice_value, and also included explanation for Windows.
    Also corrected the commented-out default proxy_account to "qubeproxy" (from "proxyuser") in the same qb.conf.template.

    @DOC: update proxy_nice_value doc accordingly.

    ==== CL 8610 ====
    @FIX: issue where supe will install but not run, due to missing python25.dll file.

    ==== CL 8606 ====
    @FIX: The "Start Time" parameter for SCHTASKS.EXE (/ST option) must be in hh:mm:ss format for earlier versions of Windows (notably winxp 32).

    ==== CL 8598 ====
    @NEW: add sample perl-based submit script that submits jobs with per-work email notification callbacks.
    ZD: 3854

    ==== CL 8550 ====
    @FIX: rolling back to linking supe against python 2.5 for its embedded interpreter instead of 2.7 to avoid runtime linkage issues with 2.7

    BUGZID:

    ==== CL 8547 ====
    @FIX: added "post" as possible supervisor_language_flags
    @FIX: default for supervisor_manifest_flags should be empty

    ==== CL 8535 ====
    @CHANGE:Enhanced shotgun integration in job submission.

    ==== CL 8503 ====
    @CHANGE: grant access to the PFX_*QBTIME* functions to MySQL user "qube_readonly"
    @CHANGE: grant the pfx_dw user all rights to the pfx_stats DB

    ==== CL 8483 ====
    @CHANGE: add support for non-cmdrange type backends, don't require qbTokens

    ==== CL 8482 ====
    @NEW: a framework for python-based jobtype backends, as well as a base class for jobtypes which use an application's embedded python terminal prompt
    * for use by the Nuke python jobtype (dynamic allocation)
    * used by the intra-frame progress in pycmdrange
    * can be used for Houdini jobytpe dynamic allocation (not mantra cmd-line renderer though)

    ==== CL 8480 ====
    @FIX: fixed issue with perl API where the system won't respect the "retrywork" specified in jobs processed with a perl-based custom jobtype back-end.

    @CHANGE: added some useful logging message to print to supelog when retrywork is being considered

    ==== CL 8472 ====
    @FIX: issue where perl-based custom policy didn't work on some systems.

    Embedded perl interpreter had to be initialized much earlier than it was, before the supervisor goes into multi-proc, and
    before initializing customizable modules (algorithm, policy) that rely on it.

    ZD: 3718
    BUGZID: 63603

    ==== CL 8468 ====
    @FIX: (Windows) modified worker memory tracking to store values in KB instead of bytes, to avoid buffer overflow.

    ZD: 3308

    ==== CL 8466 ====
    @FIX: (OSX) modified worker memory tracking to store values in KB instead of bytes, to avoid buffer overflow.

    ZD: 3308

    ==== CL 8465 ====
    @FIX: (Linux) modified worker memory tracking to store values in KB instead of bytes, to avoid buffer overflow.

    BUGZID: 3308
    ZD:

    ==== CL 8458 ====
    @NEW: add documentation for the "Get Next n Jobs" jobList pagination, document the new behavior of the User filterCtrl, since it now serves as both a display and request filter.

    ==== CL 8453 ====
    @NEW: implement the ability to parse the logs on the fly to determine intra-chunk progress
    @INTERNAL: clean up backend base class and backendUtils in preparation of more wide-spread use

    ==== CL 8449 ====
    @NEW: a pure-python implementation of the cmdrange jobtype; it implements intra-chunk progress by parsing the output stream from the command as it's being written to disk during the course of the job, not after the job completes. Progess calculation works on both single- and multiple-item agenda jobs.

    ==== CL 8436 ====
    @NEW: add doc for per-user/pgrp subjobs limits

     

     

    • No labels