Qorus Integration Engine
3.0.4.p7
|
back to Release Notes
This release contains major new features and many bugfixes over 2.8.0.p1.
New Qorus features:
PUT
and DELETE
methods101 Switching Protocols
)New modules:
Other changes:
/api
/apievents
Issues Fixed
Bug ID | Severity | Description | Change |
614 | MINOR | original file source information not available in service code at runtime in track traces and exception info | fixed in Qorus |
613 | MINOR | original file source information not available at runtime in job code in track traces and exception info | fixed in Qorus |
612 | CRITICAL | the error status from a detach function can affect the next step executed in the same thread even if the step is actually COMPLETE | fixed in Qorus |
611 | CRITICAL | parse options are not enforced properly on the block level, also subclasses inheriting code with different parse options will cause the child parse options to be used when running the parent class code which causes errors | fixed in the qore library |
610 | CRITICAL | if a non-variable reference is included in an "our" variable declaration list, a parse-time crash will result due to a memory error in the parser | fixed in the qore library |
609 | CRITICAL | service APIs using event APIs can get into a spinlock condition when the system is shutdown as there is no indication that the internal API is returning immediately due to a system shutdown condition | fixed in Qorus |
608 | MINOR | oload fails to load system services and user services in the same call because it creates the internal service library incorrectly | fixed in oload |
607 | NORMAL | a bug related to out-of-order parse initialization for functions and methods can result in the wrong return type being returned for a method with more than 1 variant where the variant cannot be matched at parse time | fixed in the qore library |
606 | NORMAL | parse exceptions and warnings when validating types used with the return statement can be reported at the wrong source location | fixed in the qore library |
605 | MINOR | the info component of warning messages is repeated in the workflow log files | fixed in Qorus |
604 | NORMAL | parse exceptions for empty blocks with a missing return statement are reported at the wrong source location | fixed in the qore library |
603 | CRITICAL | public members and static variables of privately-inherited classes are incorrectly treated as public attributes of the child class | fixed in the qore library |
602 | MAJOR | invalid unique index on the workflow_errors table makes it impossible to associate more than one workflow-specific error against a workflow | fixed in Qorus |
601 | NORMAL | parse exceptions in base class constructor arguments could be reported at the wrong source location | fixed in the qore library |
600 | MINOR | illegal arguments passed to class copy methods are ignored and never executed | fixed in the qore library |
599 | CRITICAL | declaring a parameter type for copy methods causes the copy method to be unable to be called | fixed in the qore library |
598 | CRITICAL | a parse-time crash will occur when calling the copy() method for a class that does not implement an explicit copy() method | fixed in the qore library |
597 | NORMAL | it's not possible to output a single '\' character in a regex substitution expression: a single '\' is taken as an escape code, and '\' is output literally | fixed in the qore library |
596 | MINOR | when rescheduling a READY order with a future date, the workflow status is not updated to SCHEDULED | fixed in Qorus |
578 | CRITICAL | an error managing failed SSL connections causes the qorus process to take 100% CPU usage and must be killed after shutdown as well | fixed in the qore library |
This release was mostly a bugfix release; see below for more information.
Issues Fixed
Bug ID | Severity | Description | Change |
595 | NORMAL | parse exceptions resolving global variables could be reported at the wrong source location | fixed in the qore library |
594 | NORMAL | system events for workflow order instance creation are not emitted when subworkflow order instances are created | fixed in Qorus |
593 | NORMAL | error_instance rows are not created when errors happen in the detach function | fixed in Qorus |
592 | NORMAL | the autostart flag is updated by oload even if manually set by operations with the API | fixed in oload and in Qorus |
591 | NORMAL | the qore library can sometimes show the incorrect source location when type errors are found in function or method calls | fixed in the qore library |
590 | MAJOR | some broken sftp servers set the file's mode to 0 when opening a file read-only when using the ssh2 module | fixed in the ssh2 module |
589 | CRITICAL | changing the global retry_delay or async_retry options in workflow code during a workflow reset in the onetimeinit function can cause a spurious exception and results in a condition where qorus has to be killed to be shut down | fixed in Qorus |
588 | MAJOR | oload ignores service code outside of method declarations, previously this code was included in the following code object | fixed in oload |
587 | MINOR | classes with unimplemented inherited abstract variants can sometimes throw runtime exceptions when instantiated but should instead be caught at parse time | fixed in the qore library |
586 | NORMAL | the ? : operator gives the wrong types at parse time resulting in incorrect parse type errors | fixed in the qore library |
585 | MINOR | oload does not refresh the step map when inserting or updating steps | fixed in oload |
Qorus 2.8.0 is a minor release over the Qorus 2.7 Series branch, however bringing major new features to the Qorus platform. It is based on the Qore 0.8.7 library, which contains major new features over previous versions of Qore as well.
Due to the RBAC changes in this release, existing user security configurations (meaning application permissions and access groups associated to users) are migrated to new custom single-use roles which are created by the upgrade logic in the Qorus application installation script and are associated only to the user being migrated.
After the migration the updated user-tool script or the updated RBAC system APIs can be used to review, change, delete, or coalesce roles and users as desired.
The goal of the migration logic is to leave existing users with the same security configuration as before the upgrade, however represented with the corrected RBAC model.
openldap
module to provide flexible LDAP integration to Qorus (see LDAP Authentication and RBAC Integration for more information)"QorusLdapAuth"
using the -B
option.GLOBAL_WORKFLOW_ERRORS:
global workflow error definitionsWORKFLOW_ERRORS:
workflow-specific error definitionsGLOBAL_WORKFLOW_ERRORS
table. If another workflow defines the same error with different parameters, then a workflow-specific version of the error is stored in WORKFLOW_ERRORS
."manually_updated"
. If this flag is set to True
, meaning that the error has been updated through the API, then the manually-updated error will not be overwritten by definitions in workflow error functions."TAG: "
and then the tag name followed by another colon and the tag value. For example, to add user-defined tags to a step:# type: STEP # version: 1.1 # desc: example step function # name: example_func # author: Qore Technologies, sro # TAG: release: BSS-100.a.10.5 %new-style %require-types sub example_func() { } # END
OMQ-quark-1.log:2013.02.04 17:05:33.645915 T185: SVC: user.ebs-ie-opco-in-b4n_polling: error autostarting user service: SFTP-PROPERTY-ERROR: <run-time-loaded: FUNCTION lib-opco-in-generic-sftp-polling:1.0>:115 (source "lib-opco-in-generic-sftp-polling-v1.0.qfd":121) (while calling user.ebs-ie-opco-in-b4n_polling.init()): User exception: <run-time-loaded: FUNCTION lib-opco-in-generic-sftp-polling:1.0>:115 (source "lib-opco-in-generic-sftp-polling-v1.0.qfd":121): SFTP-PROPERTY-ERROR: missing property "b4n-host" in the "sepl" domain or in the "ebs-ie-opco-in-b4n_polling" domain
oracle
driver now contains support for retrieving and posting events to Oracle Advanced Queues.EXTERNAL_USER_STORAGE:
external key-value storage for external RBAC usersGLOBAL_WORKFLOW_ERRORS:
global workflow error definitionsWORKFLOW_ERRORS:
workflow-specific error definitionsFUNCTION_INSTANCE_TAGS:
function instance tagsCLASS_TAGS:
class tagsCONSTANT_TAGS:
constant tagsSERVICE_TAGS:
service tagsSERVICE_METHOD_TAGS:
service method tagsQUEUE_TAGS:
queue tagsWORKFLOW_EVENT_TYPES_TAGS:
workflow event type tagsSTEP_TAGS:
step tagsWORKFLOW_TAGS:
workflow tagsJOB_TAGS:
job tagsROLE_TYPE
renamed to PERMISSION_TYPE
ROLES
renamed to PERMISSIONS
PROFILES
renamed to ROLES
PROFILE_ROLES
renamed to ROLE_PERMISSIONS
PROFILE_GROUP_ACCESS
renamed to ROLE_GROUP_ACCESS
USER_GROUP_ACCESS
Issues Fixed
Bug ID | Severity | Description | Change |
584 | MAJOR | a deadlock occurs when a workflow is reset while a synchronous workflow is running and then a stop command is sent to the synchronous execution instance | fixed in Qorus |
583 | CRITICAL | assigning a local variable which is already a reference to a global variable which is a reference causes a runtime crash | fixed in the qore library |
582 | CRITICAL | an error in the "reference" type handling allows non-reference values to be passed to builtin code expecing references which causes a crash | fixed in the qore library |
581 | MINOR | workflow instance does not update modified_date when it does to an error | fixed in Qorus |
580 | MINOR | oracle libraries cannot be found by the installation script when the lib path is not set in (obsolete) LD_LIBRARY_PATH but is set in /etc/ld.conf | fixed in the install script |
579 | CRITICAL | parseBase64StringToString() returns an invalid string when called with an empty string - causes a crash | fixed in the qore library |
578 | CRITICAL | an error managing failed SSL connections causes the qorus process to take 100% CPU usage and must be killed after shutdown as well | fixed in the qore library |
577 | CRITICAL | trying to dynamically call a function that does not exist results in a deadlock due to an error where a critical mutex is left locked indefinitely | fixed in the qore library |
576 | CRITICAL | declaring an abstract method with parameters and then declaring a concrete reimplementation of the method in a child class with no parameters causes a parse-time crash | fixed in the qore library |
575 | MINOR | oload does not allow workflow event types to be deleted | fixed in oload |
574 | MINOR | oload allows system service methods to be deleted | fixed in oload |
573 | TRIVIAL | oload fails with an SQL error message when deleting queues if the queue is referenced by an existing step or if queue data exists; queue data should also be deleted if no step references exist | fixed in oload |
572 | MINOR | oload allows functions, classes, or constants to be deleted even if they are referenced as library objects | fixed in oload |
571 | MINOR | there is a memory leak handling exceptions that occur due to evaluations made at parse time | fixed in the qore library |
570 | NORMAL | errors in managing datasource allocations with the SQLStatement class could lead to hanging transactions, deadlocks, or incorrect SQL behavior | fixed in the qore library |
569 | NORMAL | not possible to delete a group that has associated roles (ex profiles) | fixed in Qorus |
568 | MAJOR | perl-style boolean evaluation broken with global variables: they are evaluated mathematically (old style) regardless of the boolean evaluation setting | fixed in the qore library |
567 | CRITICAL | a "soft deadlock" can occur when resetting user services using global HTTP handlers, blocking the service from unloading or running | fixed in Qorus |
566 | MINOR | a race condition in shutting down services while they are being started can cause spurious exceptions to appear in the system log | fixed in Qorus |
565 | MAJOR | the default administrator user "admin" created in new installs and with upgrades has a default password "admin" that causes Qorus security issues | fixed in Qorus |
564 | NORMAL | the client library initializes datasource pools for db actions with server settings even though only 1 connection is normally needed | fixed in the Qorus client library |
563 | MAJOR | user classes created in 2 different Program objects (ex: Qorus services) are not always seen as compatible at runtime | fixed in the qore library |
562 | MAJOR | generation of internal strings for abstract method signatures is done while parsing but tries to resolve class names in the signature types whereas this information is not available | fixed in the qore library |
561 | MAJOR | declaring a parameter with type reference prohibits the reference from being assigned to NOTHING even if it may be legal for the original lvalue | fixed in the qore library |
560 | MAJOR | calling omq.system.reload-rbac() while rbac is enabled causes the system to try and autostart services in disabled groups | fixed in Qorus |
559 | MAJOR | user-tool and the group system APIs allow the default group DEFAULT to be deleted or modified | fixed in Qorus |
558 | MAJOR | performing group update operations or calling omq.system.rload-rbac() while rbac is enabled and services are being initialized leads to a deadlock | fixed in Qorus |
580 | MINOR | install in oracle - LD_LIBRARY_PATH vs. ld.conf | fixed in Qorus |
581 | MINOR | workflow instance does not update modified_date when it goes to an error | fixed in Qorus |