##############################################################################
@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