Qorus Integration Engine®
4.0.3.p2_git
|
back to Release Notes
This is a bugfix release; for details, see the issues addressed below.
Issue ID | Description |
2953 | fixed a bug where an unknown Content-Encoding header value received by HTTPClient would cause a crash |
This is a bugfix release; for details, see the issues addressed below.
Issue ID | Description |
2549 | module-ssh2: backported the 0-size file retrieval fix |
This is a bugfix release; for details, see the issues addressed below.
Issue ID | Description |
2010 | PgSqlUtil: permission denied for relation pg_authid bevause of change into pg_roles |
1802 | module-oracle: NTY (objects and collections) truncate LOB attributes (size/4) |
This is a bugfix release; for details, see the issues addressed below.
Issue ID | Severity | Description |
1775 | Normal | network API calls made in the same HTTP session can fail due to bugs handling thread-local data |
1772 | Major | crash in queueing workflow events caused by an error handling internal data in a race condition with blocking and unblocking the same order at the same time |
1667 | Normal | qorus start broken with EXCESS-ARGS warning |
Issue ID | Description |
1962 | module-ssh2: crash in SSH2Client::ssh_connect_unlocked due to empty userauthlist |
1729 | socket SSL send operations can loop indefinitely when the remote closes the connection |
1693 | trunc_str() returns an invalid string if an invalid multi-byte character terminates the string at exactly |
1327 | trunc_str() never returns when a unicode char happens to be at the truncated length position |
This is a bugfix release; for details, see the issues addressed below.
Issue ID | Severity | Description |
1599 | Normal | system.sqlutil: exec_sql and exec_raw_sql does return NOTHING in case simple DML statements |
1556 | Normal | qrb fails to build module-gnu-java for 3.0.4 |
1543 | Normal | oload can still fail silently without setting an error code |
1402 | Urgent | each HTTP request must be subject to authentication; authentication cannot be reused on the same socket |
896 | Normal | UI: "read-only" user gets infinite HTTP authorize forms in the browser when he is looking into "System" tab |
Issue ID | Description |
1326 | module-xml: make_xml() is too strict for tag names, resulting in MAKE-XML-ERROR: tag: "_some_tag" is not a |
1106 | Qore's File class's internal C++ implementation uses select(2) with no bounds checking which causes crashes |
1099 | QoreProgram::parseCmdLineDefines() uses an API that performs a needless copy of a map |
This is a bugfix release; for details, see the issues addressed below.
Issue ID | Severity | Description |
1402 | Urgent | each HTTP request must be subject to authentication; authentication cannot be reused on the same socket |
This is a bugfix release; for details, see the issues addressed below.
Issue ID | Severity | Description |
1366 | Normal | Toolbar on order error page is overlapping info tooltip |
1365 | Normal | Inproper sorting on order detail when clicking on Status header |
1347 | Normal | Big amount of error instances per one WorkflowInstance = unable to open WI in WebUI |
1331 | Normal | Diagram arraystep dropdown doesn't display correct detail when clicking on index |
1330 | Normal | Diagram arraystep indexes dropdown is showing only dashes instead fo step index and status |
1329 | Normal | When step is arraystep the invalid status is shown when one of indexes is in Error and rest complete |
Issue ID | Description |
604 | CsvUtil does not support the standard approach for escaping quotes |
This release is a bugfix release
Issues Fixed
Issue ID | Severity | Description | Change |
849 | NORMAL | oload fails with FAKE-API-ERROR in some cases | fixed in oload |
848 | MAJOR | When replacing the "groups" attribute of a role, the new group list is added to the existing list instead of replacing it due to an internal error | fixed in Qorus |
This release is a bugfix release
Issues Fixed
Issue ID | Severity | Description | Change |
843 | CRITICAL | any Qorus workflow API calls requiring workflow order data or configuration fail when called in the detach function when all workflow order data objects are being purged due to a workflow shutdown | fixed in Qorus |
841 | CRITICAL | an incorrect column name is referenced when requeueing segments with a RETRY status causing an error | fixed in Qorus |
840 | CRITICAL | Qorus can crash when re-executing a prepared statement with bound objects after transparently reconnecting a failed Oracle connection in the first statement in a new transaction | fixed in the oracle module |
839 | CRITICAL | Qorus can crash if executing SQL using named types or collections when the oracle connection is closed due to memory management issues related to ocilib data | fixed in the oracle module |
838 | NORMAL | all user information is accessible to any user even without USER-CONTROL when RBAC is enabled through the REST API | fixed in Qorus |
1599 | NORMAL | system.sqlutil service exec_sql and exec_raw_sql does return NOTHING in case simple DML statements |
Qorus 3.0.2 brings many bugfixes as well as additional functionality to the Qorus platform, enhancing Qorus's features empowering operational teams and reducing Total Cost of Ownership by providing a higher level of interface automation, reliability, and operational transparency.
qrest put roles/superuser?action=update\;perms=+FILESYSTEM-CONTROL
user-tool -Usuperuser:perms=+FILESYSTEM-CONTROL
New Qorus features:
"wf_"
for consistency's sake and ease of identification"svc_"
for consistency's sake and ease of identification"job_"
prefixqsm
PUT /api/orders/workflowinstance_id?action=lock;note="note for action"
PUT /api/orders/workflowinstance_id?action=unlock;note="note for action"
PUT /api/orders/workflowinstance_id?action=breakLock;note="note for action"
"start"
and "stop"
performance keys added when the status is "COMPLETE"
or "CANCELED"
"start"
and "stop"
performance keys added"COMPLETE"
statusIssues Fixed
Issue ID | Severity | Description | Change |
837 | MAJOR | HTTP communication may fail with valid responses due to case-sensitive comparisons with critical header values | fixed in the qore library |
836 | NORMAL | SqlUtil has a bug where select and row iterator operations could fail with certain select hash arguments without a "columns" entry but where column names were otherwise required | fixed in the SqlUtil module |
835 | NORMAL | WSDL module regression: SOAP operations with explicit message names are not supported | fixed in the WSDL module |
834 | NORMAL | Qorus cannot support WSDLs with multiple consecutive XSD import statements | fixed in the WSDL module |
833 | NORMAL | system service omqmap's jrmap contains group info indexed by id instead of name | fixed in Qorus |
832 | NORMAL | archiving ends in error when there is no value configured for 'batch-sleep' property | fixed in Qorus |
831 | MINOR | there is a descriptor leak in Qore::TermIOS::getWindowSize() | fixed in the qore library |
830 | NORMAL | errors can occur with SqlUtil with oracle DBs when the compat-string-numbers option is enabled | fixed in the OracleSqlUtil module |
829 | MAJOR | the onetimeinit function is called with the master workflow list write lock held in some cases when detach functions are run which can cause locking errors | fixed in Qorus |
828 | NORMAL | cannot delete a workflow with oload if a step has audit events or if the workflow has feedback events | fixed in oload |
827 | MINOR | a spurious WORKFLOW-NOT-RUNNING alert is raised when workflow autostart is changed to 0 because an out of date cached value is used for the autostart comparison | fixed in Qorus |
826 | MAJOR | workflow autostart decrements can fail to stop workflows if called in the same thread as the increment due to a error managing thread-local data | fixed in Qorus |
825 | MINOR | resetting datasources when only the omq datasource is defined causes the following error to be thrown: SYSTEM-DATASOURCE-ERROR: system datasource file "<path>" is empty; cannot start Qorus without the "omq" datasource | fixed in Qorus |
824 | MAJOR | a race condition in resetting user, datasource, and qorus remote connection monitoring can cause threads for old connections to still run after a reset | fixed in Qorus |
823 | MAJOR | there is a reference leak in Qore that leads to Program objects not being destroyed when a closure created in object scope is assigned to an object's member | fixed in the qore library |
822 | MINOR | there is a potential memory leak in the qore library if an HTTP message is received with an empty Content-Type header | fixed in the qore library |
821 | NORMAL | workflow log messages are written to the incorrect workflow log file after executing a synchronous subworkflow | fixed in Qorus |
820 | NORMAL | fixed a bug when parsing subnamespaces into a parent namespace where the subnamespace already exists (either in the committed list or in the pending list) | fixed in the qore library |
819 | NORMAL | Qore::Program::importClass() does not check the target namespace if the class to be imported is pending a parse commit; it only checks the committed list | fixed in the qore library |
818 | NORMAL | Qore::Program::importFunction() does not check the target namespace if the function to be imported is pending a parse commit; it only checks the committed list | fixed in the qore library |
817 | MAJOR | every time a workflow is loaded with oload workflow option values are lost | fixed in oload |
816 | MAJOR | workflow options set dynamically are not reflected in the same application session unless the omqmap service is reset | fixed in Qorus |
815 | MAJOR | workflows without a workflow options list when started with an option that was already used fail to start with a DB error | fixed in Qorus |
814 | MAJOR | the internal Service object is directly exposed to user code in request handler objects which is unsafe | fixed in Qorus |
813 | NORMAL | SOAP support has an error in the logic for detecting whether or not an element is required when the underlying type is optional | fixed in the WSDL module |
812 | NORMAL | SOAP messaging cannot support WSDLs with more than one port definition | fixed in the WSDL module |
811 | NORMAL | SOAP messaging cannot support WSDLs with document-style messages that have more than one top-level part | fixed in the WSDL module |
810 | NORMAL | valid SOAP fault responses returned with a 500 series HTTP error code should be parsed as SOAP fault responses so that errors are visible to users | fixed in the WSDL module |
809 | NORMAL | SOAP support has an error in the logic for detecting whether or not a complexType is required or not with deserialization of empty complexTypes and with complexTypes with all optional elements | fixed in the WSDL module |
808 | NORMAL | complexType extensions are not recognized as compatible types in type hierarchies in SOAP serialization and deserialization | fixed in the WSDL module |
807 | MAJOR | if a call reference to a private object method is created within the class, in some cases an object protection exception is raised when the call reference is called outside the class | fixed in the qore library |
806 | MAJOR | a call reference to an abstract object method returned from an abstract class cannot be executed even though it must have been instantiated by a concrete subclass | fixed in the qore library |
805 | NORMAL | a bug in SqlUtil using excessively verbose column aliases causes errors when automatically updating columns with existing rows and new default values and non-null contraints with PostgreSQL databases | fixed in the SqlUtil module |
804 | MAJOR | a crash can result when the qore library exits when user modules are destroyed because dependency order is not respected | fixed in the qore library |
803 | NORMAL | cannot override the Content-Type in the RestClient module | fixed in the RestClient module |
802 | NORMAL | Oracle NTY binding by placeholder ends with "BIND-EXCEPTION: type 'OracleCollection' is not supported for SQL binding by value and placeholder (eg IN OUT)" | fixed in the oracle module |
801 | NORMAL | RBAC modules do not participate in RBAC reload calls | fixed in Qorus |
800 | NORMAL | qore can crash on exit with certain openssl versions by calling ERR_remove_state(0) in the main thread's cleanup function | fixed in the qore library |
799 | NORMAL | calling createOrder() with an empty string ("") for the version fails in 3.0+ whereas it used to work with previous versions | fixed in Qorus |
798 | MINOR | a bug handling parse initialization of constant values requiring run-time evaluation after other parse exceptions have been raised can cause a parse-time crash | fixed in the qore library |
797 | CRITICAL | a bug in Condition::wait() timeout handling due to a 32-bit integer overflow error causes jobs with delay periods larger than appox. 26 days to run constantly and sometimes to exit with a fatal uncaught exception | fixed in the qore library |
796 | MINOR | the parse location can be reported incorrectly for type errors regarding in-object variable references in some situations | fixed in the qore library |
795 | NORMAL | WebApp fails with Qorus running as https | fixed in Qorus |
794 | MAJOR | text in SQL comments is not ignored by the oracle driver leading to errors related to unintended placeholders in the SQL string | fixed in the oracle module |
792 | NORMAL | spurious "USER-CONNECTION-UNUSABLE" transient alerts are raised with connections supplied by user modules when the system is started | fixed in Qorus |
791 | NORMAL | incorrect performance figures are reported in alert error message for the "SOCKET-THROUGHPUT-WARNING" transient alert; figures shown are 1000 times smaller than they should be | fixed in Qorus |
790 | NORMAL | there is a reference leak related to exception handling with invalid arguments with Qore::Socket::setWarningQueue() and Qore::HTTPClient::setWarningQueue() | fixed in the qore library |
789 | MAJOR | a qore switch statement with no case conditions and only a default label will erroneously never have it's default code executed | fixed in the qore library |
788 | MAJOR | alert information is not returned by the REST API for user connections supplied by user connection modules | fixed in Qorus |
787 | MAJOR | make-release does not recognize ".qconn" files as valid oload files | fixed in make-release |
Qorus 3.0 is a major new release bringing many new features to Qorus designed to further empower operational teams and reduce Total Cost of Ownership by providing a higher level of interface automation, reliability, and operational transparency.
qrest put roles/superuser?action=update\;perms=+USER-CONNECTION-CONTROL,+SERVER-CONNECTION-CONTROL
user-tool -Usuperuser:perms=+USER-CONNECTION-CONTROL,+SERVER-CONNECTION-CONTROL
New Qorus features:
autostart:
automatically starts workflow execution instancesmax_instances:
limits the number of concurrent workflow execution instances that can be started"dynamicdata"
key in the response, giving the workflow order's dynamic dataWORKFLOW_OPTIONS
table (also for system-level options that are overridden on the workflow level)user-tool -Usuperuser:perms=+USER-CONNECTION-CONTROL
, additionally arguments can now always be separated by commas (arguments that took semi-colons for separators previously still accept a semi-colon for backwards-compatibility, note that semi-colons must be escaped on UNIX shells)Issues Fixed
Bug ID | Severity | Description | Change |
772 | NORMAL | there is a bug in the client library where system options taking hash values will only be set with one value even if multiple values are given | |
762 | NORMAL | when two or more services providing FTP server resources are running, the system throws an exception on shutdown | |
747 | NORMAL | the RestClient module does not set the Accept header correctly; indicates that only yaml encoding is accepted in responses | |
746 | NORMAL | the RestClient module does not set the character encoding correctly in the Content-Type header | |
745 | CRITICAL | it's possible to send invalid URLs with spaces and invalid percent encodings with the RestClient module (and therefore qrest, etc) because URLs are not encoded before sending | |
743 | NORMAL | datasource pool min and max sizes in the dbparams file are ignored for the omq (system) datasource | |
741 | NORMAL | the web UI shows the "Loading..." dialog indefinitely on the workflows page with an empty Qorus installation (ie with no workflows) | |
740 | NORMAL | ostart does not use sandboxing when trying to parse qore values on the command line | |
739 | MINOR | ostart parses command-line integer options as floating-point values | |
726 | NORMAL | There is no facility for determining if a DatasourcePool is incorrectly sized; no warnings are errors are raised in case datasource acquisition thresholds are exceeded | |
724 | NORMAL | Datasource::copy() does not set implicitly-set options in the new Datasource; therefore the child datasource may differ from the parent | |
722 | CRITICAL | implicitly opened connections in a DatasourcePool may not have the same time zone as the initial connection if the timezone is not set explicitly in the constructor | |
715 | NORMAL | job schedules are ignored by oload after the first load; they should only be ignored by oload if changed through the API | |
714 | NORMAL | no warning is raised by oload when a workflow with an older version number is loaded into the DB | |
703 | NORMAL | HTTP log not rotated with omq.system.rotate-log-files() | |
698 | NORMAL | system.remote.ping does not work correctly if there is no remote connection configured on the remote Qorus instance | |
683 | NORMAL | number("") is returned as @NaN@ |