Message-ID: <1858888116.8463.1711664960520.JavaMail.confluence@host3.pipelinefx.com> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_8462_2064286143.1711664960520" ------=_Part_8462_2064286143.1711664960520 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html Qube 6.5 Complete Release Notes

Qube 6.5 Complete Release Notes

#################################################

@RELEASE: 6.5-3

#################################################

=3D=3D=3D=3D CL 12442 =3D=3D=3D=3D

@FIX: Fixed a corner-case MySQL permission problem with OSX/Linux superv= isor and the qube_readonly user.

Fixed by adding a "GRANT SELECT" with an explicit hostname (fe= tched via
"SELECT @@hostname"), as in:

GRANT SELECT ON *.* TO 'qube_readonly'@'mysqlserverhostname'

JIRA: QUBE-438

=3D=3D=3D=3D CL 12358 =3D=3D=3D=3D
@FIX:Fixed example python script= s so import of qb module will work in most cases.

=3D=3D=3D=3D CL 12347 =3D=3D=3D=3D
@FIX: pyCmd* jobtypes report all= subsequent frames as failing when a 'regex_error' is matched and a frame i= s marked as failed

=3D=3D=3D=3D CL 12339 =3D=3D=3D=3D
@FIX: fixed inaccurate worker ho= st memory reporting on Windows platforms

ZD: 11367

=3D=3D=3D=3D CL 12333 =3D=3D=3D=3D
@FIX: worker shutdown code (QbWo= rker::hostShutdown() and sendHostReport()) will now give up a lot quicker w= hen being unable to contact the supervisor, instead of retrying for a long = time.

=3D=3D=3D=3D CL 12322 =3D=3D=3D=3D
@FIX: issue where job instances = don't terminate properly when very early kill/interrupt orders come in.

Sometimes interrupts and kills can come in before the worker has a chanc= e to properly complete the launching process of the proxy.exe process and i= ts main thread, causing unexpected behavior, such as a never-dying job inst= ance.

ZD: 11409

=3D=3D=3D=3D CL 12315 =3D=3D=3D=3D
@FIX: bug in initialization code= of the QbJob class that messed up comparisons of jobs when sorting, which,= among other things, prevented FIFO/FCFS ordering to be compromised. Now FI= FO dispatching behavior should be more closely followed by jobs of equal pr= iority (although not 100% strictly, due to the nature of the multithreaded = architecture of the supervisor).

ZD: 11259

@INTERNAL TWEAK: added more debugging code to QbSupervisorQueue module.<= /p>

=3D=3D=3D=3D CL 12311 =3D=3D=3D=3D
@FIX: adding in ubuntu support: = use bash explicitly rather than sh, specify 'awk' in location found on all = OS's

=3D=3D=3D=3D CL 12306 =3D=3D=3D=3D
@FIX: issue where auto-expanded = subjobs (instances) don't inherit the "retrysubjob" value set in = the parent job, causing them NOT to auto-retry properly on failure.

ZD: 11292

=3D=3D=3D=3D CL 12298 =3D=3D=3D=3D
@FIX: Python API routines, such = as qb.retrywork(), expecting workID as input would behave erroneously (such= as retrying ALL agenda items on ALL jobs) when input a subjobID instead. V= ice versa for routines expecting subjobIDs, such as qb.retry().
These<= /p>

ZD: 11372

=3D=3D=3D=3D CL 12295 =3D=3D=3D=3D
@NEW: add support for new 'exiti= ng' status

=3D=3D=3D=3D CL 12272 =3D=3D=3D=3D
@FIX: unreliable behavior when f= requently modifying "cpus" of jobs up and down.
ZD: 11288

=3D=3D=3D=3D CL 12257 =3D=3D=3D=3D
@FIX: bug where auto-expand subj= obs are incorrectly auto-retired, and in turn caused them NOT to expand any= more.

ZD: 11217

=3D=3D=3D=3D CL 12255 =3D=3D=3D=3D
@FIX: issue where, if some inter= mediate job processes crash and die unexpectedly, other job processes may b= e missed by the cleanup code and left behind as zombies.

ZD: 11236

=3D=3D=3D=3D CL 12250 =3D=3D=3D=3D
@FIX: WorkerConfigFile makes a b= etter effort at finding the worker config file, previously would save to de= fault location when the file is actually in a non-default location as speci= fied by supervisor_worker_configfile.

=3D=3D=3D=3D CL 12237 =3D=3D=3D=3D
@FIX: avoid inserting duplicated= values into the 'outputPaths' for a frame when retried

=3D=3D=3D=3D CL 12232 =3D=3D=3D=3D
@FIX: "UnboundLocalError: l= ocal variable 'qb' referenced before assignment" - issue experienced b= y single customer on linux, re-importing qb module in main() resolves the i= ssue. ZD# 11218

=3D=3D=3D=3D CL 12230 =3D=3D=3D=3D
@FIX: additional fixes to remedy= "retrywork" issue with maya (and possibly other Perl-API based) = jobs. See also the previous CL12228

=3D=3D=3D=3D CL 12228 =3D=3D=3D=3D
@FIX: automatic retry of agenda = via "retrywork" not working properly in perl-based backends.

ZD: 11167

=3D=3D=3D=3D CL 12226 =3D=3D=3D=3D
@FIX:Fix issue where job_cleanup= script would fail if run on a supervisor that did not have the MySQLdb pyt= hon module installed.

=3D=3D=3D=3D CL 12219 =3D=3D=3D=3D
@FIX: "sre_constants.error:= bogus escape (end of line)" - python-based jobs can crash on Windows = at startup if path wrapped in QB_CONVERT_PATH() ends with a fwd-slash and h= as being converted to a back-slash

=3D=3D=3D=3D CL 12177 =3D=3D=3D=3D
@FIX: Additional changes to supp= ort proper Windows privilege enabling, added in CL12176

=3D=3D=3D=3D CL 12176 =3D=3D=3D=3D
@FIX: Add call to Windows' Adjus= tTokenPrivileges() to explicitly enabled required privileges before launchi= ng job instance (proxy) process

=3D=3D=3D=3D CL 12098 =3D=3D=3D=3D
@FIX: support negative frame ran= ge in QB_* token parsing

=3D=3D=3D=3D CL 12082 =3D=3D=3D=3D
@FIX: issue where "modify&q= uot;-ing the "cpus" value of a running job may incorrectly retire= more instances than asked for.

This was due to race conditions of supe threads, and in extreme cases, w= as
prematurely retire-ing ALL instances of a job while there are still= pending
agendas, resulting in the job's instances to be all "com= plete" but the job
itself to become "failed" since ther= e are still pending agendas.

ZD: 10868

=3D=3D=3D=3D CL 12065 =3D=3D=3D=3D
@INTERNAL TWEAK: added/modified/= corrected comments and symbol names for readability

 

#################################################

@RELEASE: 6.5-2

#################################################

=3D=3D=3D=3D CL 12016 =3D=3D=3D=3D

@FIX: worker and supervisor install do not register for all users on Win= dows

=3D=3D=3D=3D CL 12006 =3D=3D=3D=3D
@FIX: ERROR 1146 (42S02) at line= 87 in file: './create_job_fact.sql': Table 'pfx_stats.memusage' doesn't ex= ist - swap order of table assignment and creation, some versions of MySQL a= re error'ing

=3D=3D=3D=3D CL 11989 =3D=3D=3D=3D
@FIX: worker_drive_map and worke= r_path_map not correctly saved via "Configure local host", format= to match API updatelocalconfig expectations

=3D=3D=3D=3D CL 11987 =3D=3D=3D=3D
@FIX: localized the _user_duties= and _prgp_duties IntHash variables to the queuereject() routine for thread= -safety, from being data members of the supervisor class.

ZD: 10342

=3D=3D=3D=3D CL 11986 =3D=3D=3D=3D

@FIX: added code to appropriately handle timing issues where a command,<= br />such as preemption, can be issued multiple times by different threads = on
the same running subjob, leaving those jobs to be in odd states. On= e common
symptom was seeing the "aberrant report" message in= the supelog, and those
jobs getting stuck in the "running" = state despite all the frames being 100%
done.

=3D=3D=3D=3D CL 11985 =3D=3D=3D=3D

@FIX: converseWorkerWithRetries() and converseSubSupervisorWithRetries()=
routines were fixed so that they properly return success when there a= re no
communication errors. These routines were retrying when the serv= er
responded with a rpy.tag() of QB_MESSAGE_ERROR, which doesn't mean = there
was a communication error, but rather means that the server enco= untered
some general internal error, causing unwanted retries.

ZD: 10527

=3D=3D=3D=3D CL 11982 =3D=3D=3D=3D
@FIX: contradictory job log entr= ies saying a failed frame is being reported as complete when a few lines ag= o it was actually (correctly) reported as failed.

=3D=3D=3D=3D CL 11980 =3D=3D=3D=3D
@FIX: QB_CONVERT_PATH() not gett= ing evaluated when worker_path_map is undefined or empty

=3D=3D=3D=3D CL 11963 =3D=3D=3D=3D
@FIX: catch jobs with package da= ta the cause _qb.packageStrToDict to raise an exception

=3D=3D=3D=3D CL 11961 =3D=3D=3D=3D
@CHANGE: add additional sanity c= hecks to cleanup script, limit number of log directory deletions to a fract= ion of total jobs in qube, can be overridden by option flag.

=3D=3D=3D=3D CL 11931 =3D=3D=3D=3D
@CHANGE: create the backfill_fac= t (supervisor dispatch efficiency) dataWarehouse "12-hour" table = every 5 minutes rather than every 15 to keep the chart data more current - = full-range table is small enough to support this

=3D=3D=3D=3D CL 11915 =3D=3D=3D=3D
@FIX: fixed cross-dependency cre= ated in CL11893.

JIRA: QUBE-176

=3D=3D=3D=3D CL 11908 =3D=3D=3D=3D
@CHANGE: changed/added code to s= et up the following default my.cnf parameters

all OSs:
-------------------
query_cache_size =3D 0 # disable = the query cache, hit rate is almost 0% due to qube being very write-intensi= ve
thread_cache_size =3D 16 # acts like supervisor_idle_threads
L= inux-only
-------------------
table_open_cache =3D 2500 # mysql w= ill cache the file handles necessary to hold this number of tables f/h'sopen_files_limit =3D 50000 # table_open_cache will drive the number of o= pen files, MyISAM needs a max of 2 per table, but MySQL can also open other= files past the table_open_cache*2 value - refer to:http://dev.mysql.com/doc/refman/5.1/en/table-cache.html

JIRA: QUBE-175

=3D=3D=3D=3D CL 11899 =3D=3D=3D=3D
@FIX: made the path map translat= ions case-insensitive on OSX and Windows platforms.

@NEW: added 3rd optional parameter to QbString::replace(), which specifi= es the case-sensitivity, which defaults to TRUE.

JIRA: QUBE-177

=3D=3D=3D=3D CL 11895 =3D=3D=3D=3D
@NEW: exposed the C API routine = "qbisadmin()" as "qb.isadmin()" in Python API and "= ;qb::isadmin()" in Perl API.

JIRA: QUBE-174

=3D=3D=3D=3D CL 11893 =3D=3D=3D=3D
@CHANGE: "qbadmin {s|w} -co= nfiguration" now displays both the integer AND string values of all &q= uot;*_flags" (such as "supervisor_flags") parameters for rea= dability

JIRA: QUBE-176

=3D=3D=3D=3D CL 11856 =3D=3D=3D=3D
@FIX: added code to fix jobs get= ting stuck in the "dying" state, that can occur due to race condi= tions.

Dispatched instances of jobs that were requested to be "killed"= ; before they
properly finished starting up on the workers were ending= up getting stuck
in the "dying" state.

ZD: 10369

=3D=3D=3D=3D CL 11850 =3D=3D=3D=3D
@FIX: C4D AppFinder jobs crash w= hen paths or filenames wrapped in QB_CONVERT_PATH() start with a number

=3D=3D=3D=3D CL 11829 =3D=3D=3D=3D
@FIX: Issue with grid jobs where= some instances would start running multiple times on the dispatched host, = causing the job to eventually fail.

ZD: 10325

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

ZD: 5445 5236
BUGZID: 63683

See also CL9234

=3D=3D=3D=3D CL 11815 =3D=3D=3D=3D
@FIX: on Linux in the /etc/init.= d/worker script, we're now allowing a longer timeout (15 seconds) for the w= orker to shutdown cleanly before forcefully killing (i.e. "kill -9&quo= t;) the processes.

The default short timeout of 3 seconds was not sufficient on many system= s for all child worker threads to exit and the main thread to release the r= unning subjobs and report to the supervisor that it's "down".

JIRA: QUBE-90

=3D=3D=3D=3D CL 11807 =3D=3D=3D=3D
@FIX: added dependency ("re= quires") on the "expat" package for qube-core RPM packages.<= /p>

JIRA: QUBE-68
ZD: 8499

=3D=3D=3D=3D CL 11801 =3D=3D=3D=3D
@FIX: fixed qbjoborder() routine= so that it respects the queuing algorithm's job-host pair rejection routin= e, queuereject().

This bug, for example, was causing the routine to return jobs that shoul= dn't qualify to run on
the given host because of the "worker_rest= rictions" settings of the worker.

ZD: 10231
JIRA: QUBE-158

=3D=3D=3D=3D CL 11795 =3D=3D=3D=3D
@FIX: issue where the python API= qb.convertpath() will cause a bus error (crash) in the caller, if called w= ith no args.

@FIX: issue where the 2-argument invocation of qb.convertpath() was not<= br />working, and may cause a bus error. Turned out to be a bug in the
internal conversion routine _qb_py_dict_pathmap().

=3D=3D=3D=3D CL 11793 =3D=3D=3D=3D
@FIX: bug with modifying user an= d group permissions.

Operations such as adding or deleting a group or users would generate an=
error message in the supelog, like the following:

[Sep 20, 2013 11:39:35] HOSTNAME[25107]: group permissions modified for = user foobar by user USERNAME
[Sep 20, 2013 11:39:35] HOSTNAME[25107]: = ERROR: database query error: 127.0.0.1 via TCP/IP - You have an error in yo= ur SQL syntax; check the manual that corresponds to your MySQL server versi= on for the right syntax to use near ') =3D 'test' AND LOWER(user) =3D 'foob= ar'' at line 1 (1064)
[Sep 20, 2013 11:39:35] HOSTNAME[25107]: SELECT = access FROM grp WHERE valid =3D 1 AND LOWER(name)) =3D 'test' AND LOWER(use= r) =3D 'foobar'


JIRA: QUBE-157

=3D=3D=3D=3D CL 11790 =3D=3D=3D=3D
@FIX: fixed inaccurately reporte= d host.processor_speed (CPU frequency in MHz) property on OSX workers.

JIRA: QUBE-153

=3D=3D=3D=3D CL 11788 =3D=3D=3D=3D
@CHANGE: added "GRANT"= statement to "GRANT SELECT ON *.*" to the qube_readonly user on = "localhost".

JIRA: QUBE-105

=3D=3D=3D=3D CL 11771 =3D=3D=3D=3D
@FIX: problem where it was impos= sible to undefine worker_properties and worker_resources once they were def= ined in qbwrk.conf or qb.conf, even if the lines were removed from the conf= ig files.

JIRA: QUBE-85
ZD: 10227

=3D=3D=3D=3D CL 11767 =3D=3D=3D=3D
@FIX: Setting "worker_cpus= =3D0" or removing a "worker_cpus=3DN" line from qbwrk.conf h= ad no effect, and the previous setting would get stuck.

JIRA: QUBE-80, QUBE-112

=3D=3D=3D=3D CL 11748 =3D=3D=3D=3D
@FIX: helloWorld example jobtype= can't create job archive file job.qja below QBDIR/examples, area is read-o= nly, write to a temp directory

=3D=3D=3D=3D CL 11740 =3D=3D=3D=3D
@CHANGE: remove dependencies bet= ween Windows MSI installers, any qube component can be installed or uninsta= lled independent of the others

=3D=3D=3D=3D CL 11733 =3D=3D=3D=3D
@FIX:qbtail.py now prints out th= e help screen if run without arguments.

 

#################################################

@RELEASE: 6.5-1

#################################################

=3D=3D=3D=3D CL 11687 =3D=3D=3D=3D

@NEW: add support for Adobe's Creative Cloud 'CC' version numbering sche= me

=3D=3D=3D=3D CL 11685 =3D=3D=3D=3D
@FIX: erroneous "timecumula= tive" of instances (subjobs)

JIRA: QUBE-148

=3D=3D=3D=3D CL 11682 =3D=3D=3D=3D
@FIX: removed "Configure Qu= be" menu item from workertray.exe

=3D=3D=3D=3D CL 11654 =3D=3D=3D=3D
@NEW: added worker_boot_delay to= qb.conf.template

=3D=3D=3D=3D CL 11631 =3D=3D=3D=3D
@CHANGE: modified the new worker= _boot_delay (CL11605) to default to 0 seconds on ALL platforms.

ZD: 9386
JIRA: QUBE-118

=3D=3D=3D=3D CL 11614 =3D=3D=3D=3D
@FIX: The "Administrator&qu= ot; user didn't properly get permissions to manipulate others' jobs, due to= case sensitivity.

JIRA: QUBE-142

=3D=3D=3D=3D CL 11605 =3D=3D=3D=3D
@FIX: added worker_boot_delay to= qb.conf, which specifies the number of seconds to artificially delay (i.e.= sleep) before the worker boots.

This was added in order to work around a boot-time timing issue with net= working/hostname assignment on the Mac OS X platform, where many machines a= re incorrectly identified as "localhost".

As such, by default, worker_boot_delay is set to 30 seconds on the Mac, = and 0 (i.e., no delay) on other platforms.

To override the default, worker_boot_delay *must* be set in the local qb= .conf file on each worker-- setting it in qbwrk.conf won't work.

ZD: 9386
JIRA: QUBE-118

=3D=3D=3D=3D CL 11484 =3D=3D=3D=3D
@FIX: appFinder jobs error out a= t setup with "raise error, v # invalid expression, bad group name"= ; exception raised by python re module

=3D=3D=3D=3D CL 11470 =3D=3D=3D=3D
@FIX: random Worker crashes on W= indows DU mode-- worker "commiting suicide", i.e. killing it's ow= n worker.exe process when removing job processes.

=3D=3D=3D=3D CL 11460 =3D=3D=3D=3D
@FIX: added code to "genera= te movie" jobs, to support frame ranges that don't start at 1 with con= versions using ffmpeg

@FIX: also added a leading "." to the movie_ext choice strings= , which is required.

ZD: 9745

=3D=3D=3D=3D CL 11428 =3D=3D=3D=3D
@CHANGE: large re-write, not bac= kward-compatible with previous argument spec
@CHANGE: will only delete= jobs where all jobs in the job's pgrp completed more than X days ago
= @CHANGE: added --removeOrphanedLogs functionality, will delete log director= ies for jobs no longer present in Qube
@CHANGE: does not require MySQL= db module, but runs faster with it.

=3D=3D=3D=3D CL 11424 =3D=3D=3D=3D
@FIX: patched crash bug in super= visor (QbSupervisorQueue::_subjobProcReservation())

ZD: 9654

=3D=3D=3D=3D CL 11394 =3D=3D=3D=3D
@CHANGE: add deprecation warning= s to python qb module accessor method, prints once per location

=3D=3D=3D=3D CL 11390 =3D=3D=3D=3D
@FIX: Global resource collector = error occurs on MySQL servers running in STRICT mode: "Field 'total' d= oesn't have a default value"

 

#################################################

@RELEASE: 6.5-0

#################################################

=3D=3D=3D=3D CL 11260 =3D=3D=3D=3D

@NEW: add Python/Perl API access to the new "timecumulative" s= ubjob and work data

=3D=3D=3D=3D CL 11257 =3D=3D=3D=3D
@NEW: add support to the data wa= rehouse for the new "cumulative time" instance and work columns

=3D=3D=3D=3D CL 11254 =3D=3D=3D=3D
@NEW: added ReadMe.rtf for the o= sx supervisor installer, so that the person installing the supervisor is ma= de aware of the upgrade potentially taking a long time to complete.

=3D=3D=3D=3D CL 11247 =3D=3D=3D=3D
@NEW: add tracking of cumulative= time spent in the "running" state for subjobs (instances) and wo= rk (agenda items), stored as an additional DB field in the Nsubjob and Nwor= k tables.

These values are computed by taking the elapsed number of seconds since = the last start time of the instance/work, and then multiplying it by the nu= mber of actual job slots occupied by the instance, as dictated by the "= ;host.processors" reservation.

JIRA: QUBE-124, QUBE-125

=3D=3D=3D=3D CL 11240 =3D=3D=3D=3D
@NEW: add support for job tags t= o the data warehouse schema

=3D=3D=3D=3D CL 11237 =3D=3D=3D=3D
@NEW:qb.query module's jobinfo f= unction now accepts a "where" argument that will pass through a m= ysql "where" statement (without the "where" word). Exam= ple: where=3D"name like 'foo' OR user like 'foo'"

=3D=3D=3D=3D CL 11219 =3D=3D=3D=3D
@FIX: issue with automount in de= sktop user mode.

@INTERNAL: also cleaned up some Win32 automount code.

ZD: 9434

=3D=3D=3D=3D CL 11217 =3D=3D=3D=3D
@CHANGE:Python API change: all p= ython classes can now be constructed without data. In other words, one can = create empty objects.

=3D=3D=3D=3D CL 11216 =3D=3D=3D=3D
@NEW: add support for real-time = log parsing and progess percentages to job instances for non-agenda-based j= obtypes, currently only supported by python-based jobtypes

=3D=3D=3D=3D CL 11208 =3D=3D=3D=3D
@NEW: label text for worker para= meter widget changes colour to indicate a value which will be saved
@F= IX: properly support worker_path_map and worker_drive_map in new qbwrk.conf= configuration dialog
@FIX: properly indicate when the value for a giv= en parameter varies between workers, even if it's not defined for a worker = but defined for others
@FIX: support greater than 5 mapping definition= s for worker_path_map and worker_drive_map

=3D=3D=3D=3D CL 11201 =3D=3D=3D=3D
@NEW: add DB conversion scripts = (to add new subjob table columns introduced in 6.5, DB version 32) that run= when the rpm/pkg/msi supe installer runs, to provide forward-compatibility= for old (pre-6.5) job/subjob data

JIRA: QUBE-119

=3D=3D=3D=3D CL 11200 =3D=3D=3D=3D
@TWEAK:Minor Python API change: = You can now create an empty qb.Job()

=3D=3D=3D=3D CL 11190 =3D=3D=3D=3D
@CHANGE: added "enable_wind= ows_job_object" flag, and deprecated "disable_windows_job_object&= quot;

The "disable_windows_job_object" flag is silently ignored. Win= dows Job
Objects are always disabled now, unless the job explictly spe= cifies
otherwise with the new "enable_windows_job_object" fl= ag.

JIRA: QUBE-117

=3D=3D=3D=3D CL 11185 =3D=3D=3D=3D
@CHANGE: modified user name and = group name authentications to be case-insensitve

JIRA: QUBE-98

=3D=3D=3D=3D CL 11183 =3D=3D=3D=3D
@NEW: add supervisor_default_hos= torder parameter to qb.conf

JIRA: QUBE-113

=3D=3D=3D=3D CL 11178 =3D=3D=3D=3D
@CHANGE: Added "post" = to the default callback language list, supervisor_language_flags

=3D=3D=3D=3D CL 11175 =3D=3D=3D=3D
@NEW: advanced worker resource r= eservations, including N-M, N+M and N* reservation specifiers, and live tra= cking of resource "allocations" and "slots" (actually a= llocated host.processor value) of running job instances.

JIRA: QUBE-91

=3D=3D=3D=3D CL 11174 =3D=3D=3D=3D
@NEW: add new worker DB table sc= hema, QbTableVersion8

=3D=3D=3D=3D CL 11155 =3D=3D=3D=3D
@NEW: Add QB_JOBSLOTS and QB_ALL= OCATIONS environment variables to be set, indicating the initial jobslot al= location and the more general initial resource allocations, respectively, w= hen jobs execute.

=3D=3D=3D=3D CL 11127 =3D=3D=3D=3D
@FIX: editing supevisor config w= ith WranglerView->Admin->Configure causes the 'submit_job' privilege = to be removed from supervisor_default_security
@CHANGE: Admin->Disp= lay Config (local) changed to Admin->Display Running Config, shows super= visor and/or worker running config if these services are running locally@CHANGE: Admin->Configure (Local) changed to Admin->Configure Loca= l Host
@INTERNAL: add all supervisor and worker flag values to qb.util= s.flags, now used directly by configuration dialog, instead of the config d= lg items being order-dependent. Allows for sorting configuratin dialog item= s alphabetically for ease of use.
@NEW: Admin->Configure Local Host= now creates a timestamped backup of the qb.conf file in the same location = as the original
@NEW: Admin->Configure Local Host is now disabled o= n Windows and Linux if not invoked by root (linux) or Admin-equivalent (Win= dows)
@COSMETIC: File->Install AppUI menu items now sorted alphabet= ically

=3D=3D=3D=3D CL 11122 =3D=3D=3D=3D
@NEW:New utility qbtail.py in $Q= BDIR/utils. This is a *nix tail-like utility implemented in Python that run= s on OS X, Linux, and Windows.

=3D=3D=3D=3D CL 11096 =3D=3D=3D=3D
@NEW:Updated and cleaned up all = Python API examples in QBDIR/examples/python

=3D=3D=3D=3D CL 11088 =3D=3D=3D=3D
@INTEG: dev-supervisor-additiona= l-job-params>main,CL11087
----
@NEW: added prod_{show,shot,seq= ,client,dept,custom[1-5]} fields to the job object.

The C++, Python, and Perl APIs have been updated.
The qbsub, qbjobs= , and qbmodify commands and their online help text have been updated.

JIRA: QUBE-79

=3D=3D=3D=3D CL 11024 =3D=3D=3D=3D
@NEW: supervisor reread qb.conf = file feature.

The qbadmin command has been updated with a "-reread" option, = to be called as in "qbadmin s -reread" to 
instruct the= supervisor to reread its qb.conf file and update the dynamically modifiabl= e parameters, which are
as of this writing:

* qb_domain
* supervisor_default_group_security
* supervisor_d= efault_p_agenda_priority
* supervisor_default_pgrp_subjob_limit
*= supervisor_default_priority
* supervisor_default_security
* supe= rvisor_default_user_subjob_limit
* supervisor_flags
* supervisor_= global_resources
* supervisor_highest_user_priority
* supervisor_= job_flags
* supervisor_max_priority
* supervisor_p_agenda_max
* supervisor_pgrp_subjob_limits
* supervisor_user_subjob_limits
* supervisor_verbosity
* supervisor_worker_configfile

(Note: DB schema change was involved, and QbTableVersion32 was added)

JIRA: QUBE-92

=3D=3D=3D=3D CL 10972 =3D=3D=3D=3D
@CHANGE: modified qbworkerpathma= p() to return the localhost's worker_path_map when called outside of a jobt= ype back-end environment.

JIRA: QUBE-95

=3D=3D=3D=3D CL 10953 =3D=3D=3D=3D
@FIX: remove digit/number from w= orker's journal file name (worker6.jnl -> worker.jnl)

=3D=3D=3D=3D CL 10946 =3D=3D=3D=3D
@TWEAK: error code now prints wh= en QbTrackOSX in trackAssignment() encounters an error.

=3D=3D=3D=3D CL 10945 =3D=3D=3D=3D
@FIX: fix yet another issue with= previous CL, concerning graceful worker shutdown.

Also swithced a couple of calls to qbvcout to qbvout so that more useful= info such as timestamp and pid print.

=3D=3D=3D=3D CL 10943 =3D=3D=3D=3D
@INTERNAL TWEAK: added/corrected= comments, and removed unneeded #ifdef/endif macro, while working on previo= us CL

=3D=3D=3D=3D CL 10942 =3D=3D=3D=3D
@CHANGE: modified worker shutdow= n code so that it immediately returns all running subjobs to the supe, and = report a status of "down", so the supervisor marks it "down&= quot; promptly.

JIRA: QUBE-90

=3D=3D=3D=3D CL 10927 =3D=3D=3D=3D
@FIX: changed the initial state = of a newly dispatched instance on a worker to "running" instead o= f "pending", so that early calls to qbjobobject() in the back-end= code will return "running" as the job's status

JIRA: QUBE-45
=3D=3D=3D=3D CL 10827 =3D=3D=3D=3D
@NEW: a new i= nterface for configuring multiple workers and writing out the qbwrk.conf@FIX: add "convert_path" flag to client_ and supervisor_job_fl= ags control
@FIX: default value in config UI for worker_max_threads wa= s 8, now 256
@FIX: "Confgure on Supervisor" worker menu item= is only enabled if user has the qube "admin" privilege AND is on= the supervisor
@COSMETIC: all checkbox lists from "Choices"= buttons are now sorted alphabetically

=3D=3D=3D=3D CL 10667 =3D=3D=3D=3D
@CHANGE:Python API-level change:= QBObject is now simply a python dictionary. It no longer re-implements any= functions
@CHANGE:Python API-level change: qb.updatelocalconfig now u= ses the subprocess module rather than the depricated popen2.Popen4.

=3D=3D=3D=3D CL 10589 =3D=3D=3D=3D
@FIX: job list not updating when= switching supervisors, always show jobs from the default supervisor.
= =3D=3D=3D=3D CL 10255 =3D=3D=3D=3D
@INTEG: rel-6.4 -> main
---= --
@NEW: pyCmdline and pyCmdrange do run-time path translation

=3D=3D=3D=3D CL 10061 =3D=3D=3D=3D
@CHANGE: index all datawarehouse= fact tables on time_sk column, since it's so frequently accessed.

=3D=3D=3D=3D CL 10056 =3D=3D=3D=3D
@FIX: PFX_CREATE_DATASUBSET_TABL= E doesn't use an indexed column for the WHERE clause, now does an INNER JOI= N to the time dimension table
=3D=3D=3D=3D CL 10037 =3D=3D=3D=3D
= @FIX: allow qube-core to be repaired if other qube products are already ins= talled

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

 

------=_Part_8462_2064286143.1711664960520--