##############################################################################
@RELEASE: 6.4-5
##############################################################################
==== CL 11108 ====
@FIX: supe's built-in perl library's C++ host object to Perl hash conversion routine to properly include "properties", "stats", "reason", "locks", "flags", "flagsstring", "groups", "description", "jobtypes", "address", "macaddress", "lastupdate"
@FIX: typo in Perl API's _qb_host_hash() routine when converting the "description" field.
==== CL 11093 ====
@NEW: add various helper functions to qb.utils; addToSysPath(), getModulePath(), pyVerAsFloat(), formatExc()
==== CL 11067 ====
@FIX: timing issue where a subjob of an agenda-based job can be incorrectly left in the "blocked" or "pending" state even though there are no more agenda items to be processed.
@INTERNAL: Checker code was added to the statusJob() routine to force the status to "complete" of such jobs.
ZD: 9190
==== CL 11066 ====
@INTEG:main>rel-6.4,rel-6.3,CL11024, CL11056, CL11057
----
This is a partial integration of CL11024,11056,andCL11057. Namely, the "const"-ness fix in the
QbDatabase* classes are being integrated into rel-6.3 and rel-6.4 so they will compile cleanly.
Also, the change in the logging behavior (so that MySQL logs are timestamped) is integrated.
==== CL 11062 ====
@FIX: fixed unreliable "modify" behavior. Multiple modifies (for example, up then down) were behaving oddly.
@CHANGE: added code to automatically retire pending/blocked/running jobs when "modify" reduces the "cpus" ("instances") count.
ZD: 9205
@FIX: fixed a subtle off-by-one error in auto-retire code in assignJob()
==== CL 11058 ====
@FIX: patched a timing issue where the requestWork() handler can sometimes put a running subjob back to "pending" (because it's marked to be passively preempted) even if there are no more agenda items left to process.
ZD: 9132
==== CL 11054 ====
@CHANGE: made all error messages from the QbDatabaseMySQL class prints with a timestamp.
==== CL 11016 ====
@FIX: fixed return data type of qb.submit() to be a list of job objects
ZD: 9314
==== CL 11008 ====
@FIX: issue where modifying a job to reduce the number of instances can sometimes incorrectly retire ALL instances.
==== CL 10984 ====
@FIX: control-characters in C4D Windows paths can break path translation, get evaluated as tabs/newLines/etc. This is due to C4D needing to be run via "start" instead of "cmd.exe /C"
==== CL 10963 ====
@FIX: random worker crash issue on Windows
ZD: 8620
==== CL 10934 ====
@FIX: suppress printing of "Malformed env in parsing" and environment listing when environment values are other than simple strings and "Query SQL" is enabled in the WranglerView prefs