Qorus Integration Engine
3.0.4.p7
|
back to Release Notes
Issues Fixed
Bug ID | Severity | Description | Change |
499 | NORMAL | omq.system.skip-step() and omq.system.skip-step-without-retry() cannot be called on unbound subworkflow steps with an ERROR status | fixed in Qorus |
498 | NORMAL | parent workflows with many subworkflows could make info service unusable | fixed in Qorus |
497 | MAJOR | a reference-counting error with step statuses in array steps can cause an infinite loop that can only be broken by killing qorus | fixed in Qorus |
496 | MAJOR | log() calls do not work properly when called from objects exported from services | fixed in Qorus |
Issues Fixed
Bug ID | Severity | Description | Change |
495 | CRITICAL | Qorus uses a non-standard way of implementing daemon-mode which could account for some strange behavior in the server | fixed in Qorus |
494 | CRITICAL | qore's STACK GUARD feature is broken in recent builds of qore on Linux used with recent releases of Qorus | fixed in the qore library |
493 | CRITICAL | in certain situations uninitialized type pointers can be used leading to a crash | fixed in the qore library |
492 | CRITICAL | the PO_REQUIRE_TYPES parse option is being incorrectly inherited when parsing user module code | fixed in the qore library |
Bug ID | Severity | Description | Change |
489 | MINOR | oload issues a confusing error when a function object is loaded with no explicit name and no valid function definitions | fixed in oload |
Issues Fixed
Bug ID | Severity | Description | Change |
488 | CRITICAL | if an error happens in the array function the first time the step is executed, then it will never be possible to execute the step | fixed in Qorus |
Issues Fixed
Bug ID | Severity | Description | Change |
487 | CRITICAL | cannot reschedule an order due to a bug in the fix for bug 478 | fixed in Qorus |
Issues Fixed
Bug ID | Severity | Description | Change |
486 | CRITICAL | qorus cannot recover an order with a gap in the segment list | fixed in Qorus |
Bug ID | Severity | Description | Change |
485 | NORMAL | a segfault can result when Qorus exits if certain 3rd-party libraries have threads running and have exit handlers and the initial / main thread is killed | fixed in the qore library |
484 | MAJOR | if a job error instance cannot be written to the job_errors table due to a character encoding problem, then the job instance remains in status IN-PROGRESS | fixed in the Qorus |
483 | CRITICAL | an error in the embedded ocilib library causes a crash when an unknown or invalid collection is accessed a second time | fixed in the oracle module |
482 | CRITICAL | a crash will result if Datasource::execRaw() is called before the Datasource connection is opened | fixed in the qore library |
481 | CRITICAL | passing a reference to a class static variable to a function will cause a crash | fixed in the qore library |
480 | NORMAL | cannot delete a workflow if audit event references exist for the workflow's orders | fixed in Qorus |
479 | NORMAL | omq.system.group.create() does not accept any jobs due to an error in the lookup in the Qorus server code | fixed in Qorus |
478 | MAJOR | a race condition and lack of serialization in attaching to a workflow order with "NORMAL" mode workflow processing and omq.system.exec-synchronous-existing() can cause a "soft deadlock" in Qorus where the wf exec instance hangs until stopped manually | fixed in Qorus |
477 | MINOR | oload workflow validation does not show an error if a function DB object does not define the named function in its body | fixed in oload |
Issues Fixed
Bug ID | Severity | Description | Change |
476 | CRITICAL | segments may be marked COMPLETE before all their steps are COMPLETE due to a race condition with parallel steps in case one or more steps has not been started | fixed in Qorus |
Issues Fixed
Bug ID | Severity | Description | Change |
475 | MINOR | a race condition starting qorus and shutting down the JobManager can cause a spurious exception to be thrown | fixed in Qorus |
474 | MAJOR | race condition in shutting down and starting workflows can result in a spurious exception and a deadlock in the Qorus server | fixed in Qorus |
473 | CRITICAL | lack of serialization between stopping workflows, resetting workflows, and starting workflows results in race conditions that can affect stability of the Qorus server and can result in internal deadlocks | fixed in Qorus |
472 | MAJOR | RBAC security fails on users with a restricted access group list when shutting down workflows; no workflows can be stopped | fixed in Qorus |
471 | NORMAL | an exception in resetting the workflow cache can make workflow resets deadlock | fixed in Qorus |
470 | CRITICAL | a race condition managing the destruction of thread-local data when a Program object is deleted in conjunction with a thread terminating that has thread-local data in the Program object can cause a crash | fixed in the qore library |
469 | MAJOR | defining a recursive class inheritance tree can cause a crash at parse time | fixed in the qore library |
468 | NORMAL | cannot issue a retry for a workflow order with status ASYNC-WAITING when it is not cached | fixed in Qorus |
467 | NORMAL | issuing a workflow order retry when the workflow is not cached results in the regular retry delay being enforced | fixed in Qorus |
466 | NORMAL | the GuiHandler does not set the redirect location correctly when redirecting https connections | fixed in Qorus |
465 | CRITICAL | in regex substitution expressions, referencing a numbered source expression that does not exist will cause a crash | fixed in the qore library |
Issues Fixed
Bug ID | Severity | Description | Change |
464 | CRITICAL | inefficient STL map api calls cause very high CPU load when internal workflow queues grow large | fixed in the qore library |
463 | CRITICAL | if Datasource::setAutoCommit() or Datasource::open() is called when the transaction lock is held, it causes a memory error managing thread resources that could cause a crash | fixed in the qore library |
462 | CRITICAL | calling a pseudo-method on a typed lvalue that has been deleted or not yet assigned causes a crash | fixed in the qore library |
461 | NORMAL | the encoding given in the File::constructor() method is ignored | fixed in the qore library |
460 | CRITICAL | passing a reference to a local variable to a closure causes a crash when the variable is used in the closure in another thread | fixed in the qore library |
459 | CRITICAL | passing a typed reference to a local variable to a closure that tries to change the type in an incompatible assignment causes a crash | fixed in the qore library |
458 | CRITICAL | a memory error in optimized local variable handling will cause a crash if the delete operator is called on a local variable declared as type int or softint | fixed in the qore library |
457 | CRITICAL | there are memory errors assuming size_t and qore_size_t == 64 bits on 32 bit platforms that can cause crashes | fixed in the qore library |
456 | CRITICAL | an empty argument to the requires directive results in a crashing memory error | fixed in the qore library |
Issues Fixed
Bug ID | Severity | Description | Change |
455 | MAJOR | the usleep() and omqusleep() functions when passed a relative date/time value treat seconds as microseconds | fixed in the qore library |
454 | CRITICAL | workflow order queuing for READY workflows is artificially serialized such that only one running workflow execution instance at a time processes new orders | fixed in Qorus |
Issues Fixed
Bug ID | Severity | Description | Change |
453 | CRITICAL | a recursively-defined constant can cause a crash during parsing | fixed in the qore library |
452 | NORMAL | DUPLICATE-HASH-KEY parse warnings are sometimes given with the incorrect source location | fixed in the qore library |
451 | MAJOR | when defining a namespace, constants, classes, and functions are not resolved first in the namespace but rather with a global lookup | fixed in the qore library |
450 | CRITICAL | a crash can result if an exception occurs assigning a NULL value to a hash key | fixed in the qore library |
449 | CRITICAL | the date(string, string) function variant has an off-by-one bug when parsing integer month values | fixed in the qore library |
448 | NORMAL | oload can report failed workflow validations when executing workflow errorfunctions that try to access runtime functionality that's not available | fixed in oload |
447 | MAJOR | calling call_function() or call_function_args() with any imported function (such as workflow API functions) will cause a "PSEUDO-METHOD-DOES-NOT-EXIST" exception to be thrown | fixed in the qore library |
omq.system.start()
: omq.system.start-workflow()omq.system.stop()
: omq.system.stop-workflow()omq.system.retry()
: omq.system.retry-workflow-instance()omq.system.cancel()
: omq.system.cancel-workflow-instance()omq.system.reschedule()
: omq.system.reschedule-order()omq.system.reprioritize()
: omq.system.reprioritize-order()omq.system.block()
: omq.system.block-workflow-instance()omq.system.set-error()
: omq.system.set-workflow-instance-error()ocmd retry 1234to be executed from the command-line with ocmd
-v
to give more verbose outputBug ID | Severity | Description | Change |
446 | MAJOR | the workflow API function setOption() cannot be called with async_delay or recover_delay from the detach function or an exception will be thrown | fixed in Qorus |
445 | CRITICAL | a memory error handling nested try/catch statements could cause a crash when the rethrow statement is executed | fixed in the qore library |
444 | MAJOR | if API call auditing is enabled and the DB is down, the results of API calls are not reported, instead an exception message is returned | fixed in Qorus |
443 | CRITICAL | a workflow reset/shutdown/startup deadlock can result if database exceptions occur during workflow startup - this can lead to Qorus being unable to be shut down as well | fixed in Qorus |
442 | MAJOR | if a program tries to instantiate a class from a type that is not a class when declaring a new variable, a crash will result | fixed in the qore library |
441 | MINOR | fixed a parsing bug in the qore library that could cause extraneous error messages related to parsing to appear on the console | fixed in the qore library |
440 | CRITICAL | there is a reference count/memory leak in the softlist and *softlist types when given a single (not NOTHING) argument | fixed in the qore library |
439 | MAJOR | memory leaks in exception handling in oracle driver related to named type support | fixed in the oracle module |
438 | NORMAL | oload does not warn when multiple files define the same high-level object (such as a function, class, constant, workflow, service, or job) | fixed in oload |
Issues Fixed
Bug ID | Severity | Description | Change |
437 | MINOR | when matching special headers when looking for a custom global handler for an HTTP message, case is not ignored | fixed in Qorus |
436 | MINOR | the internal qore socket class needs to be updated to report more detailed error information when errors occur (such as SSL errors or errno errors) | fixed in the qore library |
435 | ENHANCEMENT | arch: a separate datasource is needed to prevent shared pool blocking | fixed in the system.arch service |
434 | NORMAL | arch: rebuild-indexes option needs to be used | fixed in the system.arch service |
433 | CRITICAL | job instance execution is serialized between all jobs - the execution of one job blocks the execution of all other job instances | fixed in Qorus |
Issues Fixed
Bug ID | Severity | Description | Change |
432 | MAJOR | cannot execute a synchronous workflow from a service method with a method lock or an exception will occur | fixed in Qorus |
431 | MAJOR | the oracle driver returns integers > 32bits with the wrong number when returned as a part of a collection or object | fixed in the oracle module |
430 | MAJOR | a race condition when calling the API function getRunningWorkflowList() when resetting workflows can cause a spurious exception | fixed in Qorus |
429 | MAJOR | a race condition resetting services can cause a spurious exception | fixed in Qorus |
Issues Fixed
Bug ID | Severity | Description | Change |
428 | CRITICAL | a memory error in qore function hextoint() could cause a crash | fixed in the qore library |
427 | MAJOR | the qore library silently truncates integers > maxint or integers < minint without warning | fixed in the qore library |
426 | MAJOR | the YAML module uses floating-point conversions for parsing integer numbers and therefore some precision is sometimes lost | fixed in the yaml module |
425 | CRITICAL | receiving an XML-RPC message with a non-UTF-8 encoding with the XMLRPCClient class will cause a crash | fixed in the xml module |
424 | MINOR | the XMLRPClient class does not set the request encoding properly when not using UTF-8 in the request header | fixed in the xml module |
Issues Fixed
Bug ID | Severity | Description | Change |
423 | NORMAL | Qorus' HTTP server assumes UTF-8 for connections missing a charset= specification, even though RFC 2616 sec 3.7.1 states that it must assume iso-8859-1 | fixed in Qorus |
422 | MAJOR | there is a deadlock in the ssh2 module's SFTPClient::disconnect() method | fixed in the ssh2 module |
Issues Fixed
Bug ID | Severity | Description | Change |
421 | MAJOR | the oracle driver is returning the same object for every element when a collection of objects is retrieved | fixed in the oracle driver |
Issues Fixed
Bug ID | Severity | Description | Change |
420 | MAJOR | retry-workflow-instance when executed on a cached workflow order with a fixed retry time will not immediately retry the workflow order; in fact it will have no effect | fixed in Qorus |
Issues Fixed
Bug ID | Severity | Description | Change |
419 | MAJOR | the qore library lacks parse-time checks for lvalues; giving a non-lvalue expression to an operator as an lvalue will cause a run-time crash | fixed in the qore library |
Issues Fixed
Bug ID | Severity | Description | Change |
418 | MAJOR | oload uses dynamic SQL which can cause memory problems when man objects are loaded into an oracle server | fixed in oload |
417 | CRITICAL | a bug in optimized lvalue handling for local variables with the – operator causes it to increment instead of decrement | fixed in the qore library |
416 | MAJOR | make-release uses the same temporary directory for all users and all instances which can lead to race conditions and incorrectly-prepared releases | fixed in make-release |
415 | MAJOR | Oracle driver: assign a number to oracle object's DATE attribute causes crash | fixed in the oracle driver |
414 | CRITICAL | a string evaluated in a boolean context will return false if it contains a floating-point number between 1 and -1 | fixed in the qore library |
Issues Fixed
Bug ID | Severity | Description | Change |
413 | CRITICAL | fixed retries can be delivered earlier than their trigger time when earlier async retry events are available on the same segment | fixed in Qorus |
Issues Fixed
Bug ID | Severity | Description | Change |
412 | CRITICAL | sending a reference to a local variable from a contained program to a parent program can cause a crash when the reference is assigned | fixed in the qore library |
Issues Fixed
Bug ID | Severity | Description | Change |
411 | MAJOR | when an error is raised in an asynchronous validation function giving a status of RETRY with a retry delay set, the status is not set as RETRY in the DB but rather ASYNC-WAITING | fixed in Qorus |
Issues Fixed
Bug ID | Severity | Description | Change |
410 | MAJOR | manually setting the retry delay after raising an error in a validation function results in the retry delay being ignored | fixed in Qorus |
409 | MAJOR | the serror() variant with a retry delay ignores the retry delay due to a bug in the qore library matching variants at parse time | fixed in the qore library |
"get"
: to display properties"update"
: (also "set"
) to set propertiesBug ID | Severity | Description | Change |
408 | CRITICAL | recursive references when resolving constants can cause a crash in certain circumstances | fixed in the qore library |
407 | CRITICAL | the qore library does not calculate UTC offsets properly for dates before the epoch start but after the last DST transition before the epoch | fixed in the qore library |
406 | NORMAL | system.info.getOrderInfoFromKey() does not work due to a type error in the info service with pgsql and mysql (oracle is OK) | fixed in the system.info service |
405 | MAJOR | workflow execution instance options for async_delay and recover_delay are not respected after a workflow reset | fixed in Qorus |
404 | NORMAL | system API omq.system.rotate-log-files does not rotate job log files | fixed in Qorus |
info
serviceJOB_INSTANCE
is snapshotted too now.–compress
or -c
: create a ".tar.bz2"
archive of the release–refresh
or -r
: include a command in the release file to refresh all loaded objects in the server automatically–install
or -i
: execute the install.sh immediately to perform a local installation of the release just created (useful for testing)–add-prefix=ARG
or -P
: set the directory name prefix for the package (ie -Puser = prepend "user"
to the target release directory)shadow-datasources
implemented
Bug ID | Severity | Description | Change |
402 | MAJOR | there is a logical error in archiving that causes archiving to fail on the JOBS table | fixed in the system.arch service |
401 | NORMAL | the user install.sh script does not pass command-line arguments on to oload as designed | fixed in the install.sh template |
400 | NORMAL | ocmd does not handle list arguments correctly when converting from a string with commas | fixed in ocmd |
399 | CRITICAL | passing an irregular hash (with elements beyond the first that are not lists) to the context statement will cause a crash | fixed in the Qore library |
398 | MAJOR | if an exception is thrown in a service that has no description, a system exception is raised due to a type error | fixed in Qorus |
397 | MAJOR | a bug in job session recovery causes archiving to fail due to the session ID not being cleared from recovered job instances | fixed in Qorus |
Issues Fixed
Bug ID | Severity | Description | Change |
396 | MAJOR | qorus cannot recover from corrupted workflow orders when an asynchronous step is not COMPLETE but the backend segment instance entry exists | fixed in Qorus |
395 | NORMAL | oload cannot handle schema paths with spaces | fixed in oload |
394 | NORMAL | schema-tool cannot handle filenames with colons in the name (:) | fixed in schema-tool |
393 | NORMAL | when an error occurs resetting a service, a bug in Qorus prohibits the error message from being logged, and further service resets are not performed | fixed in Qorus |
Issues Fixed
Bug ID | Severity | Description | Change |
391 | NORMAL | oracle driver: OUT binding for Type::Date does not work with NULLs | fixed in the oracle driver |
390 | NORMAL | data types that can change the values accepted (ex: softdate, softlist, etc) do not change the values when a default value is given in the parameter list, leading to a variable assigned with an incorrect value type | fixed in the Qore library |
Issues Fixed
Bug ID | Severity | Description | Change |
389 | MAJOR | cannot unblock a workflow with a scheduled date on oracle | fixed in Qorus |
388 | NORMAL | cannot activate inactively loaded job | fixed in Qorus |
387 | MAJOR | if a group has a NULL description, Qorus cannot be started | fixed in Qorus |
Issues Fixed
Bug ID | Severity | Description | Change |
386 | CRITICAL | cannot recover async steps when queue data exists on oracle | fixed in Qorus |
385 | NORMAL | service binding to the global HTTP listeners does not work | fixed in Qorus |
384 | MAJOR | trying to log() from an HTTP handler causes an exception to be thrown | fixed in Qorus |
Issues Fixed
Bug ID | Severity | Description | Change |
381 | MAJOR | bug in the xml module causes valid XML-RPC to fail to be parsed | fixed in the xml module |
Issues Fixed
Bug ID | Severity | Description | Change |
381 | MAJOR | bug in the xml module causes valid XML-RPC to fail to be parsed | fixed in the xml module |
Issues Fixed
Bug ID | Severity | Description | Change |
383 | MAJOR | runtime method variant matching was broken with class hierarchies, in certain circumstances a base class method variant was being called when a subclass method variant should have been called | fixed in Qore |
382 | CRITICAL | workflow initialization fails when workflow synchronization events are available in the database (for non-complete or canceled steps) | fixed in Qorus |
381 | MAJOR | bug in the xml module causes valid XML-RPC to fail to be parsed | fixed in the xml module |
Issues Fixed
Bug ID | Severity | Description | Change |
380 | CRITICAL | an unsafe access to a data structure that can only be accessed under a mutual-exclusion lock can cause a crash on all platforms | fixed in Qore |
Issues Fixed
Bug ID | Severity | Description | Change |
379 | CRITICAL | SIGALRM cannot be blocked on solaris 8 or 9 or *sleep() will not work reliably | fixed in Qore |
378 | MINOR | the omq.system.group.create() api fails with a bad error message with incorrect arguments | fixed in Qorus |
376 | NORMAL | oview -f not showing BLOCKED column values | fixed in oview |
375 | MINOR | ORA-00932: inconsistent datatypes: expected NUMBER got TIMESTAMP encountered with info.getWorkflowOverview() on Oracle < 9.2.0.3 - also affects oview | fixed in the system.info service |
Issues Fixed
Bug ID | Severity | Description | Change |
374 | CRITICAL | the Qorus HTTP server should close connections made my HTTP 1.0 clients by default unless the Connection: Keep-Alive header is present | fixed in Qorus |
373 | MINOR | warnings not issued for missing recommended tags in oload | fixed in oload |
372 | NORMAL | calling bindSubWorkflow() in a synchronous workflow without the "version" key causes an error to be thrown | fixed in Qorus |
371 | MAJOR | the synchronous flag is not reset when the final workflow status is written to the database when processing synchronous workflows | fixed in Qorus |
370 | NORMAL | oload does not accept the job tag "duration: " as a synonym for "recurring: " | fixed in oload |
Issues Fixed
Bug ID | Severity | Description | Change |
369 | MAJOR | job loading fails to load the "active", "run-skipped", and "single-instance" flag correctly | fixed in oload |
Issues Fixed
Bug ID | Severity | Description | Change |
368 | CRITICAL | calling omq.system.job.run*() causes qorus to crash immediately | fixed in the qore library |
"parent_workflow_instanceid"
key in the order hash set to the correct workflow instance ID of the parent."parent_workflow_instanceid"
to False
instead.
Bug ID | Severity | Description | Change |
367 | NORMAL | a "STATUS-ERROR" exception could be thrown causing workflow cache corruption if workflows are reset during synchronous workflow execution | fixed in Qorus |
366 | MAJOR | if the attach function raises an error in synchronous workflow processing, the synchronous workflow execution instance does not stop automatically | fixed in Qorus |
365 | NORMAL | omq.system.job.list-active() only returns one job and the top-level key is an empty string | fixed in Qorus |
364 | CRITICAL | memory errors merging events from synchronous workflows into shared workflow queues cause qorus to crash after all memory is exhausted | fixed in Qorus |
363 | NORMAL | schema-tool recoveries will fail if multiple schema files need to be loaded and the first file must be executed with an offset | fixed in schema-tool |
362 | MAJOR | synchronous workflows cannot create subworkflows due to a type error in the SegmentManager implementation | fixed in Qorus |
"groups"
key added to many API calls:
Bug ID | Severity | Description | Change |
361 | MINOR | fixed a crash when referencing closure-bound local variables in expressions with the background operator; this bug cannot affect Qorus user code | fixed in the Qore library |
360 | MAJOR | SoapClient will not respect the encoding set when creating XML strings | fixed in Qorus and in the client library |
359 | MINOR | omq.system.delete-profile fails with referential integrity constraint | fixed in Qorus |
Issues Fixed
Bug ID | Severity | Description | Change |
358 | CRITICAL | oload sets implicit method names with the last function name in the block instead of the first | fixed in oload |
"create any snapshot"
role or the schema upgrade will fail. To grant this role to the schema owner, have a user with dba
privileges execute the following: "grant create any snapshot to omq"
, where omq
is the name of the schema owner.
Bug ID | Severity | Description | Change |
353 | MAJOR | (reopened) all info service methods taking a condition string implement too-aggressive checking | fixed in the system.info service |
Issues Fixed
Bug ID | Severity | Description | Change |
356 | MAJOR | if an order has a hash with a zero-length string in dynamic or static data, then the order cannot be sent over the XML-RPC interface and therefore cannot be seen in the GUI | fixed in the xml module |
355 | CRITICAL | oload cannot match function names if additional whitespace is included after the name | fixed in oload |
354 | CRITICAL | a bug in managing reference cycles in closures assigned to constant containers causes a crash | fixed in the qore library |
Issues Fixed
Bug ID | Severity | Description | Change |
353 | MAJOR | all info service methods taking a condition string implement too-aggressive checking | fixed in the system.info service |
352 | CRITICAL | REOPENED: race condition in handling thread-local stack tracking can cause a crash - finally fixed in this patch | fixed in the qore library |
Issues Fixed
Bug ID | Severity | Description | Change |
352 | CRITICAL | race condition in handling thread-local stack tracking can cause a crash | fixed in the qore library |
Issues Fixed
Bug ID | Severity | Description | Change |
351 | MAJOR | not possible to set order keys with network API omq.system.exec-synchronous-workflow() | fixed in Qorus |
350 | MAJOR | setting order keys with a key with a list of values while creating a workflow instance fails with an exception | fixed in Qorus |
349 | MAJOR | oload does not issue warnings when loading services and only partially when loading workflows and jobs | fixed in oload |
348 | MAJOR | the system() function fails if the argument contains backslashes or double quotes | fixed in the qore library |
347 | CRITICAL | a memory bug in adding undefined classes as a base class to a derived class can cause a crash | fixed in the qore library |
346 | MINOR | the "# END" tag line is included in the service method body in the DB | fixed in oload |
345 | CRITICAL | the system.info service is missing the getWFIErrorInstances() method | fixed in the system.info service |
344 | MAJOR | the YAML module does not always generate an error when there is an error parsing the document; instead it returns NOTHING without any exception | fixed in the yaml module |
343 | MAJOR | the registerSoapService() service API function does not work | fixed in Qorus |
342 | CRITICAL | parsing the following XML causes a crash on Solaris 8: qore -lxml -X 'parseXML("<AAA>aaa&aaa</AAA>")' | fixed in the libxml2 build on Solaris 8 sparc |
Issues Fixed
Bug ID | Severity | Description | Change |
341 | CRITICAL | a memory bug in searching for class constants when recursively searching namespaces can cause a crash | fixed in the qore library |
340 | MAJOR | system apis: omq.system.job.schedule() and omq.system.job.schedule-id() update the schedule fields incorrectly in the database | fixed in Qorus |
339 | MAJOR | oload deletes all queue data from all workflows when deleting workflow instances for any workflow | fixed in oload |
338 | MINOR | inserting job errors without a job instance id causes a system exception | fixed in Qorus |
337 | MINOR | deleting jobs fails with oload if any job instances exist | fixed in oload |
Issues Fixed
Bug ID | Severity | Description | Change |
335 | MAJOR | oload is stripping whitespace from the beginning of each line of code | fixed in oload |
334 | NORMAL | info service methods info.getJobMetadata() and info.getJobMetadataFromName() both return the library objects in a non-standard format | fixed in the system.info service |
333 | MAJOR | job validation is not run in oload | fixed in oload |
332 | MAJOR | when "workflow-data" auditing is enabled, system schema recoveries fail | fixed in Qorus |
331 | CRITICAL | the ssh2 module was broken on the Solaris 10 Sparc build | fix in Solaris 10 Sparc build |
330 | MAJOR | oload does not recognize "# END" tags if there is additional text after the "# END" | fixed in oload |
329 | MAJOR | workflow instance data is not cleared when a workflow is reset | fixed in Qorus |
328 | MINOR | audit events for job instances and workflow instances are returned in random order | fixed in Qorus |
Changes
"active"
) has been added to each job hash to differentiate active and inactive jobs.Issues Fixed
Bug ID | Severity | Description | Change |
327 | NORMAL | oload does not load jobs properly; months, days, hours, and minutes are not loaded correctly the first time; they are only correct when updating an existing job | fixed in oload |
326 | NORMAL | cannot delete jobs when the job is a member of an RBAC group | fixed in oload |
325 | NORMAL | missing "single-instance" or "run-skipped" values in job definition cause job load to fail | fixed in oload |
324 | NORMAL | omqsleep() does not return immediately when a service or workflow is shut down | fixed in Qorus |
323 | NORMAL | calling SQLStatement::rollback() or SQLStatement::commit() without an active statement causes an exception | fixed in the Qore library |
322 | MINOR | the "author" tag is not reported with many API calls; the "author" tag is not set on steps | fixed in Qorus and in oload |
321 | MINOR | bug in oload made it impossible to delete jobs, job instances, or queues | fixed in oload |
320 | NORMAL | oload cannot delete services, workflows, or jobs if audit events exist for the object | fixed in oload |
319 | MINOR | the "serviceauthor" tag is ignored when loading services by oload | fixed in oload |
Issues Fixed
Bug ID | Severity | Description | Change |
318 | CRITICAL | if the "define-group" tag appears more than once in job and service definitions an error is raised | fixed in oload |
317 | MAJOR | srand() no longer available in service API | fixed in Qorus |
"author"
tag on all user objects:
"WORKFLOW_STATUS_CHANGED"
(OMQ::QEC_WORKFLOW_STATUS_CHANGED)"JOB_START"
(OMQ::QEC_JOB_START)"JOB_STOP"
(OMQ::QEC_JOB_STOP)"JOB_INSTANCE_START"
(OMQ::QEC_JOB_INSTANCE_START)"JOB_INSTANCE_STOP"
(OMQ::QEC_JOB_INSTANCE_STOP)"JOB_ERROR"
(OMQ::QEC_JOB_ERROR)
Bug ID | Severity | Description | Change |
316 | NORMAL | oload does not report the correct line number when validating services because it loads in comments that are a part of the service metadata into the first method | fixed in oload |
315 | NORMAL | declaring a local variable with the same name as a global thread-local variable results in a warning when "duplicate-local-vars" is enabled (as in, for example, oload) | fixed in Qorus ("duplicate-local-vars" no longer included in warning mask) |
314 | CRITICAL | workflow and job loading with library objects can fail due to type errors with imported variables in the qore library | fixed in oload |
313 | CRITICAL | fixed 2 crashing bugs with memory errors handling parse exceptions in regular expressions | fixed in the qore library |
312 | NORMAL | installation fails if the options file does not exist or is empty | fixed in the Qorus client library |
311 | MAJOR | system() does not recognize '=' or '$' as shell meta-characters, causing any commands with these characters to be interpreted literally and therefore the command fails | fixed in the qore library |
310 | CRITICAL | system() causes a deadlock in both child and parent processes if launching the child process launch fails | fixed in the qore library |
309 | MAJOR | parse exceptions in switch statements can cause a deadlock (endless loop) | fixed in the qore library |
308 | NORMAL | the client library issues warnings when included with enable-all-warnings | fixed in the Qorus client library |
307 | MAJOR | the schema upgrade from 2.6.0.1 to 2.6.0.2 updates the modified date on workflow_instance to the current date because the trigger is not disabled before updating the priority column | fixed in the 2.6.0.1 - 2.6.0.2 schema upgrade scripts |
306 | NORMAL | the install script fails when $OMQ_DIR has a path with spaces in it | fixed in the install script |
305 | NORMAL | the install script fails when called from a path with spaces in it | fixed in the install script |
Issues Fixed
Bug ID | Severity | Description | Change |
304 | NORMAL | a race condition in getting internal cache info called by the info.getWorkflowStatus2() method can cause the method call to fail | fixed in Qorus |
303 | MAJOR | a bug in shutting down FTP listeners can cause a deadlock prohibiting services using FTP bindings from stopping | fixed in Qorus |
302 | CRITICAL | omq.system.skip-step() does not always cause the step to be skipped | fixed in Qorus |
Issues Fixed
Bug ID | Severity | Description | Change |
301 | CRITICAL | memory errors in certain socket functions (including Socket::getPort()) can cause a crash | fixed in qore library |
Bug ID | Severity | Description | Change |
294 | MAJOR | status.skipStep() fails | fixed in the system.status service |
295 | MAJOR | status.cancelWorkflow() fails | fixed in the system.status service |
296 | MAJOR | status.setError() fails | fixed in the system.status service |
297 | MAJOR | omq.system.skip-step() and omq.system.skip-step-without-retry() fail on postgresql | fixed in Qorus |
298 | MAJOR | omq.system.skip-step() does not update the DB if the workflow order is cached, so later it cannot be seen that this step was skipped, also if a retry is not made before the workflow is stopped, the skipped flag is not written to the database | fixed in Qorus |
299 | NORMAL | make-release does not support ".qjob" as a recognized file extension when making releases | fixed in make-release |
300 | NORMAL | info.getWorkflowInstances() does not return any results for status OMQ::StatEventWaiting | fixed in the system.info service |
Bug ID | Severity | Description | Change |
293 | NORMAL | the is_readable() function always returns True | fixed in the qore library |
292 | CRITICAL | oload fails validation for services where a constant is defined in the service but referenced in a library object | fixed in oload |
291 | CRITICAL | parse options that allow further restricting the parse environment cause errors to be generated | fixed in Qorus and in the qore library |
Issues Fixed
Bug ID | Severity | Description | Change |
290 | CRITICAL | cannot unblock or uncancel workflow orders on Oracle when the original status is anything other than READY or SCHEDULED and the workflow is cached | fixed in Qorus |
289 | CRITICAL | workflows can be released with status 'Y' after being canceled or blocked if flush-status is on; if flush-status is off, then incorrect log messages appear - note that this issue is MINOR if flush-status is off | fixed in Qorus |
288 | CRITICAL | getWorkflowInstanceData() fails on the "priority" , "started" , and "external_instanceid" fields in the detach function | fixed in Qorus |
287 | CRITICAL | detach function is not run when blocking or canceling a workflow | fixed in Qorus |
286 | CRITICAL | oload does not validate services at all and throws a bogus error if the service has any library objects | fixed in oload |
285 | MINOR | the HTTP server does not save the username in the calling context on second and subsequent requests when multiple requests are issued through the same connection | fixed in Qorus |
284 | MINOR | HTTP server's authentication by IP feature does not check for LOGIN role | fixed in Qorus |
283 | MINOR | default HTTP status handler does not check rbac access lists | fixed in Qorus |
Issues Fixed
Bug ID | Severity | Description | Change |
282 | MINOR | appropriate error messages are not displayed with oracle when references to invalid workflow orders are made; applies to various API calls | fixed in Qorus |
281 | MAJOR | if a workflow attach fails, then the workflow execution instance can stop due to an error handling thread-local data | fixed in Qorus |
280 | CRITICAL | canceled or blocked workflows for cached workflows cannot be unblocked/uncanceled if they have a detach function | fixed in Qorus |
279 | CRITICAL | cannot unblock workflow order without a "scheduled" date | fixed in Qorus |
278 | CRITICAL | creating an order with BLOCKED status does not work | fixed in Qorus |
277 | MINOR | ipv6 addresses are not always parsed correctly with parse_url() | fixed in the qore library |
276 | NORMAL | schema-tool does not check if the system is down before applying schema changes to the Qorus system schema | fixed in schema-tool |
Qorus 2.6.1 is a major release over the Qorus 2.6.0 branch, bringing major new features to the Qorus platform. It is based on the Qore 0.8.2 library, which contains major new features over previous versions of Qore as well.
Upgrading from pre 2.0.0 involves a major update to the system schema that could break compatibility with any code accessing the Qorus system schema directly; if upgrading from any version prior to 2.0.0, see System Schema Data Model 2.0.0 Changes for more information. The changes in schema all version from 2.0.0 to this version are relatively minor compared to upgrading from a version prior to 2.0.0.
Any previous version of Qorus Integration Engine can be upgraded directly and automatically by this release. When upgrading from any previous version, the system schema is changed, so Qorus must be shut down before upgrading to version 2.6.1.
Bug ID | Severity | Description | Change |
275 | MAJOR | an error managing thread-local data can cause events and log messages to be directed to the wrong workflow when an active workflow with a detach function is stopped and the workflow is a subworkflow | fixed in Qorus |
274 | NORMAL | FTP messages are not logged to the service log file after calling bind_ftp() | fixed in Qorus |
271 | NORMAL | cannot shut down qorus cleanly when an FTP connection is in progress | fixed in Qorus |
270 | NORMAL | race condition shutting down the HTTP server can cause a spurious error message to be displayed when shutting down | fixed in Qorus |
268 | NORMAL | oload does not reset services correctly on load | fixed in oload |
267 | NORMAL | the omqmap cache can have conflicting information about services; when services are updated through the api, omqmap is not updated | fixed in Qorus |
266 | NORMAL | Service "verbose" setting is ignored in log() in services | fixed in Qorus |
"superuser"
, "operator"
, and "maintenance"
profiles.ERROR_INSTANCE.INFO
field is now stored in YAML encoding, meaning that it's possible to store complex data structures for later review if desired.
JOBS
JOB_INSTANCE
JOB_ERRORS
JOB_LIB
GROUP_JOBS
The DESCRIPTION
columns of all tables storing user-defined objects were updated to allow for longer descriptions (up to 4000 bytes).
Issues Fixed
Bug ID | Severity | Description | Change |
272 | CRITICAL | crash due to assert() detecting race condition managing internal segment reference counts related to asynchronous message processing for array steps | fixed in Qorus |
Issues Fixed
Bug ID | Severity | Description | Change |
273 | CRITICAL | memory leak in qore remove operator | fixed in qore library |
269 | CRITICAL | race condition calling exit() can cause a crash | fixed in qore library |
Issues Fixed
Bug ID | Severity | Description | Change |
265 | CRITICAL | omq.system.skip-step() fails when called on an asynchronous step | fixed in Qorus |
264 | CRITICAL | case expressions are not initialized properly at parse time, particularly if they require run-time evaluation | fixed in the qore library |
263 | CRITICAL | there are memory errors when merging exception information for errors thrown when evaluating code at parse time when merging into the run-time exception sink | fixed in the qore library |
Issues Fixed
Bug ID | Severity | Description | Change |
262 | CRITICAL | The Datasource class can discard transaction state when an automatic reconnect is made after the first call to Datasource::exec() when the transaction lock is implicitly acquired | fixed in the qore library |
261 | CRITICAL | SQLStatement class can silently discard transaction state when a connection disappears | fixed in the qore library |
Issues Fixed
Bug ID | Severity | Description | Change |
259 | MAJOR | bug in oview: when listing workflow instance data without -v, the call to omq.system.service.info.getWorkflowInstances() is made with incorrect parameters | fixed in oview |
Issues Fixed
Bug ID | Severity | Description | Change |
258 | CRITICAL | services can be unloaded while calls are in progress | fixed in Qorus |
257 | CRITICAL | deadlock in SFTPClient class in ssh2 module | fixed in the ssh2 module |
256 | NORMAL | oload does not process load files prefixed by '@' correctly (i.e. "oload @<file>") | fixed in oload |
Issues Fixed
Bug ID | Severity | Description | Change |
255 | CRITICAL | a deadlock can occur when an object is dereferenced through more than one of its keys | fixed in the qore library |
254 | MAJOR | the system APIs omq.system.skip-step-without-retry() and omq.system.skip-step() fail when RBAC security is enabled | fixed in Qorus |
Issues Fixed
Bug ID | Severity | Description | Change |
253 | CRITICAL | bug in date() function with mask - if no characters are available when the mask is parsed, then a crash occurs | fixed in the qore library |
Issues Fixed
Bug ID | Severity | Description | Change |
252 | CRITICAL | getWorkflowInstanceData() throws an exception instead of returning all data when called with no arguments | fixed in Qorus |
Qorus 2.6.0 is a major release over the Qorus 2.5.0 branch, bringing major new features to the Qorus platform. It is based on the Qore 0.8.1 library, which contains major new features over previous versions of Qore as well.
Upgrading from pre 2.0.0 involves a major update to the system schema that could break compatibility with any code accessing the Qorus system schema directly; if upgrading from any version prior to 2.0.0, see System Schema Data Model 2.0.0 Changes for more information. The changes in schema all version from 2.0.0 to this version are minor compared to upgrading from a version prior to 2.0.0.
Any previous version of Qorus Integration Engine can be upgraded directly and automatically by this release. When upgrading from any previous version, the system schema is changed, so Qorus must be shut down before upgrading to version 2.6.0.
Bug ID | Severity | Description | Change |
251 | MAJOR | auto-reconnect fails when Datasource::beginTransaction() is called on a DatasourcePool where the connection is already down | fixed in qore and in oracle driver |
250 | MAJOR | Socket::recv() and Socket::recvBinary() can both throw an exception when the socket is closed after all data is sent | fixed in qore lib |
249 | MINOR | an invalid response from an FTP server can cause the FtpClient class to crash the qore process | fixed in qore lib |
omq-version-code
key to give a numeric code for the current system version for easier comparisons.–recover
optionSYSTEM_PROPERTIES
table was updated to allow for larger keys (up to 240 bytes) and larger values (up to 4000 bytes); non-string values are now stored in YAML encoding; meaning that it's possible to store complex data structures now and maintain data types.
WORKFLOW_EVENT_TYPES
WORKFLOW_EVENTS
STEP_INSTANCE_EVENTS
GROUPS
GROUP_SERVICES
GROUP_WORKFLOWS
PROFILE_GROUP_ACCESS
USER_GROUP_ACCESS
workflow_instance.scheduled
workflow_instance.priority
workflow_lib.load_order
service_lib.load_order
The SYSTEM_PROPERTIES
table was updated to allow for larger keys (up to 240 bytes) and larger values (up to 4000 bytes); non-string values are now stored in YAML encoding; meaning that it's possible to store complex data structures now and maintain data types.
The internal API for Oracle and PostgreSQL has been updated to reflect the new schema changes; additionally the Oracle API has been extended and optimized to improve performance and scalability