Change log

IBM® Safer Payments 6.4.0.00 includes critical, major, and minor bug fixes and APARs.

Critical changes

  • When using the IBM MQ interface with a response queue, a crash might occur while sending the response (APAR PO09469).
  • A crash might occur when starting rule generation manually if the same time rule generation was running in modeling workflow. Additionally, a deadlock might happen when stopping modeling workflow when rule generation was running. Rule generation is now permanently removed from modelling workflows. Rule designer is now re (it had been removed in the preintegrated previous fixpack) (APAR PO09297, PO09295).

Major changes

  • The search icon in the help dialog didn't give any visual feedback when being clicked. The field to enter the search items was not visible.
  • The search icon and search field in the help dialog were not visible.
  • In rare situations, a crash might occur if the outgoing FLI timed out (APAR PO09610).
  • In rare situations, a crash might occur during golive when sending a message without a message ID and having bypass enabled (APAR PO09576).
  • In rare situations, a crash might occur on a remote instance when a model element was saved while a simulation was running on the remote instance (APAR PO09552).
  • The retention settings page on the administration tab overestimated the memory and disk space needed to perform resizes. The computation assumed that both the old and new requirements need to be satisfied at the same time to perform the resize. This meant that if resource utilization was quite high already, further changes to the retention settings were not possible even if those changes would have overall-reduced memory and disk consumption. We changed the calculation now to be more conservative. During a resize only the larger of the two requirements (old or new) is required as well as an additional temporary buffer only needed during the resizing process itself. The additional buffer is required for both memory and disk space but is always only as large as the data cache of the largest attribute according to the new retention settings. The retention report was adjusted to give a better overview of each mandator's memory consumption, both old and new, as well as a clear explanation of any errors that happened.
  • Case actions applied dashed PAN formatting to every masked value of an encrypted numeric attribute even if that attribute did not specify dashed PAN formatting in its settings.
  • Case action previews showed masked values to an investigator even if that investigator was not allowed to view any values of encrypted attributes at all. This happened only if the outgoing channel configuration enabled masking of attribute values as that setting took precedence over the masking privilege of the user account. The new behavior completely ignores the outgoing channel configuration's setting within case action previews.
  • For systems with many mandators the query performance and simulation performance was improved in case all mandators are selected or in case only a few are selected that only contain a small subset of the overall transactions (APAR PO09639).
  • A crash might occur when starting a simulation while saving a model element.
  • A crash might occur when running the logical golive.
  • Attempting to create an external model would fail due to an error that might be neither seen nor corrected.
  • In the user interface, many numeric data fields did not allow numbers larger than 2,147,483,647 (APAR PO09640).
  • When remote simulation was used and after saving the rule generation settings, the simulation stopped and needed to be restarted to allow running rule generation. Additionally, changes from saving only showed up after saving a second time.
  • Rule generation's intercepted by existing ruleset row would count every rule hit (APAR PO09443).
  • When a message in HTTP format was followed by messages without an HTTP header on the same MCI thread, the subsequent messages were either not computed correctly or not stored (APAR PO09522).
  • A crash might occur if the user disabled MCI while bypass was running or when MCI was already disabled before bypass started (APAR PO09641).
  • The order of computation in simulation was different than the real-time computation. In simulation, profilings were not computed mandator wise but type wise, that is, instead of iterating through all profilings of the head mandator first, then moving to the next lower mandator and so on, it would simulate the calendars of all mandators, then the patterns of all mandators and so on. As a result, if there were dependencies across different mandators, the simulation result would differ from the production result (APAR PO09104).
  • Attribute can be removed although it is still used by a submandator revision that is waiting for golive confirmation (APAR PO09620).
  • When performing a head mandator golive in between simulations of a sub mandator including output or overwritable input attributes of the head mandator, a crash might occur or incorrect simulation results might be produced (APAR PO09611).
  • The incrementing of closed cases and not closed cases in investigation reports was incorrect. Cases closed as Genuine would increment the Fraudulent field. The Unknown field also used to increment incorrectly. In addition, the user-defined cases and Created cases were reading their values from the wrong variables (APAR PO09215).
  • In rare situations, whether the FLI buffer was full and needed a rollover was miscalculated.
  • When updating masterdata manually or from rule actions, the change would be written synchronously to disk when deferred writing was enabled causing additional disk access (APAR PO09607).
  • A crash might occur when running multiple simulation reports in parallel, which can happen via rule reports (APAR PO09383).
  • A deadlock might occur when deleting a mandator while running a query (APAR PO09331).
  • A user without cpp privileges was receiving an error when trying to create a case from an executed query (APAR PO09621).
  • In earlier versions, masterdata conditions in case selection page would incorrectly evaluate not based operators like not equal to, not starts with etc. It has been fixed and now masterdata conditions in case selection page would return correct results for not based operators (APAR PO09340).
  • The case selection, case search, my working queues, defined risk list, and working queues pages in the user interface performed slowly when many mandators and users were defined in the system.
  • Remote instances might crash when running a curtail masterdata job (APAR PO09584).
  • In rare situations, IBM Safer Payments was temporary blocked and appeared to be in a deadlock state. It mostly happened during high-traffic / high computation situations (APAR PO09661).
  • An instance might be invalidated after restart when a revision was created, then the instance was shutdown, the API instance was changed and a golive was triggered on the new API instance.
  • When changing pages in the user interface, an Unexpected Error page might occur (APAR PO09240).
  • Previously when trying to delete an attribute that no check was performed if the attribute was used in an export job. Now such a check is performed (APAR PO09300).
  • Running a simulation with low available memory would show an incorrect error message suggesting that simulation wasn't available rather than one indicating that there was insufficient memory (APAR PO09613).
  • The Private client key password file label in Bypass settings was duplicated, the first field must be labeled Certificate private key file (APAR PO09537).
  • The maintenance function skip current FLI messages was displayed in the maintenance dropdown even when user privilege Reset FLI was missing, causing a popup privilege error when executing the maintenance function.
  • In rare situations, a crash might occur if the operating system was able to open a file but might not properly close it (APAR PO09547).
  • Earlier log message number zero was used to log allocation / deallocation of an attribute's simulation MDC. To keep this simulation logging enabled all the time, a dedicated log message number 826 was added since log message number zero is for development purposes.
  • A crash might occur when deactivating MCI while Bypass was enabled (APAR PO09553).
  • Switched OpenSSL 1.1.1.k to OpenSSL 1.1.1.l as a countermeasure against CVE-2021-3711 and CVE-2021-3712.
  • A deadlock might occur during golive if the Status Alarm Indicator or Key Performance Indicator of type retention usage was computed in parallel (APAR PO09455).
  • Improved the performance on the user interface when performing changes in the forms for configurations with many mandators.
  • The setOffline request did not close files obtained by the application, which caused problems during backup of an instance after using the setOffline request. Now, after the setOffline API request is run, all files obtained by the application instance except the backtrace file will be closed. The request setOffline will re files.
  • The End of day job performance was improved during index purging for configurations with many mandators (APAR PO09426).
  • Any string containing +/()[]{} in a rule condition would throw a validation error. These characters are now supported when the attribute being set is of type Text (APAR PO09580).
  • When an attribute was displayed in a query result and its data was not available and it had categories enabled, the columns would be shifted in the user interface (APAR PO09568).
  • A crash might occur shortly after manual case creation or creating cases from a query (APAR PO09515).
  • Added a checkbox named Include byte order mark in CSV exports to the user account page. If this checkbox is enabled, byte order mark (BOM) is included in CSV files that are exported using the user interface. The setting does not affect CSV files that are exported using jobs. By default, byte order mark is not included in CSV exports. For new user accounts, its default can be configured using the setting Include byte order mark in CSV exports for new user accounts on the settings page.
  • An investigator was able to execute case transitions while not belonging to the transition's user group. Also, the assignment of closed investigation cases to working queues was not done properly and as a result of that in some scenarios it was not possible to reopen a case (APAR PO09509, PO09514).
  • When a user clicked Work case it might happen that an already closed case (belonging to a working queue that was configured to contain closed cases) was loaded as the next case to work on. Now, clicking Work case always returns an open case (APAR PO09493).
  • Model test (sandboxing) functionality was not working for PMML models and internally trained models.
  • It was possible to do certain changes, for example copying/deleting elements via context menu, on a revision that was waiting to perform a golive, for example, if interlock was enabled and the instance had to wait for the required number of instances to be available. In that case, a remote golive might have failed, causing the remote instance to shut down and become invalidated (APAR PO09477).
  • When saving the settings page, it would always say that the watchdog and persistent connections thread pool values had changed even though there was no change to these settings.
  • A crash might occur when a cluster was updated while an instance was shutting down. It might, for example, happen during a restore on the restore recipient instance (APAR PO09480).
  • A crash might occur if an MCI interface shutdown and MCI connection request occur simultaneously. Closing an MCI connection during deactivation of the MCI might be slower than before if the sending side keeps the connection to IBM Safer Payments open until the MCI is deactivated. In a worst case scenario, the overall additional time it takes during the deactivation of the MCI might be the number of connections * 1 second (APAR PO09435).
  • A crash might occur if a simulation was started while saving a revision element (APAR PO09483).
  • Query results might contain invalid JSON, if the query did not include the DDC and the CSV export options for nil values were set to empty value and the query returned data that was only available in DDC but not MDC. Under these circumstances the query result would not load and produce an error on the user interface (APAR PO09452).
  • The retention administration page might only be fully utilized by users that had the role privilege to either view the model tab on all mandators or to view the mandator administration for all mandators. Additionally the user also needed the global privilege to view the system configuration. Now only the global privilege for retention administration is needed. Note though, that this privilege still allows a user to view the hierarchy of mandators on the retention page.
  • The retention settings page on the administration tab was hard to use because too much content was visible at the same time. The layout of the page was changed and individual parts split up into sub-pages that can be viewed one at a time without the others being visible on screen. To make the form more intuitive the behavior of the Reset button was changed. When performing this action the pending settings are overwritten by the active settings and a corresponding audit trail entry is produced. Apart from this, the remaining workflow and API requests have not been changed.
  • When having more than one instance in the cluster, filtering the status alarm indicators in the dashboard would cause some SAIs to be duplicated (APAR PO09440).
  • The detail view of a defined risk list entry did not initialize the Expires at field properly when being opened from the Risk list hits widget on the case investigation screen.
  • When starting a rule report without context, a complete simulation would be started instead of just simulating the elements relevant for the simulation of this particular rule like it was in the old user interface.
  • The tables in the user interface now have borders around each cell to make reading densely packed tables easier.
  • Tabs, for example, in cluster settings or latency report page did not display correctly if they extended over the screen edge.
  • It was possible that index entries and entries in index using elements such as masterdata, events, calendars, and device identifications were duplicated after running a recreate index job with deferred writing enabled (APAR PO09454).
  • The date selector in the user interface did not allow the definition of hours, minutes, and seconds in the following places: defined risk list import page for expires / starts at, case transition follow-up on field, defining a timestamp reporting attribute in create CPP from a query. Additionally, the timestamp that was saved was not at 00:00:00 of the user's timezone as expected.
  • Investigation cases from different Index Based Evaluation case classes using the same index were not consolidated (APAR PO09444).
  • Users using encoded categories with PMML might only encode data of type double. This behaviour restricted users from using other types of data in encoded format.
  • When starting an instance of IBM Safer Payments, whether the system was ready to process transactions was incorrectly handled. The result was a wrong evaluation of the number of active instances in a cluster for the interlock functionality (APAR PO09462).
  • The privilege check for unreserveCase request was simplified to avoid unnecessary no privileges errors (APAR PO08515).
  • The justification code was missing in the data sent to the server with the request of a bulk case transition, which prevented the transition from being executed in the case of a mandatory justification code (APAR PO09470).
  • IBM Safer Payments now supports all Python 3 versions starting with 3.2.
  • When a PMML model component is copied, the uploaded PMML file wasn't copied which led to errors (APAR PO09379).
  • A crash might occur if an output attribute was replaced when saving the same model element twice at the same time (APAR PO09446).
  • On the Case Investigation screen, when case action confirmation was turned on, previewed case actions of type SMTP were triggered and sent before the confirmation was given.
  • While an instance is offline, it was possible for its interfaces to become active when cluster update action is performed. Now interfaces of an offline instance would not be activated even after cluster update actions. Also, a new status named Offline is added to indicate the status of an offline instance in the cluster settings page (APAR PO09284).
  • In rare situations, a crash might occur when deleting a Key Performance Indicator.
  • A backtrace might occur in index based evaluations due to outdated condition references.
  • A deadlock might occur when a modeling workflow was running in a challenger revision and at the same time the revision was deleted or taken over by a user who did not have simulation memory assigned (APAR PO09461).
  • A golive might get stuck when using cluster interlock if restore was in progress within the cluster. Now golive proceeds if the minimum active instances condition is satisfied (APAR PO09378).
  • When simulating rules, more rules than necessary might have been simulated leading to prolonged simulation times. Rules that alter the same outputs and are computed before the simulated rules are automatically included. However, rules that are computed after the simulated rules were also simulated although not required to get valid simulation results (APAR PO09428).
  • If the noTrueChildStrategy set in PMML boosted tree model is returnLastPrediction and if there is no child node that meets the criteria, IBM Safer Payments does not use the score attribute value in the parent node (APAR PO09196).
  • In attribute settings of the user interface after changing storage type to not stored the attribute might only be saved if the DDC capacity had already manually been set to 0.
  • The default storage type and xdc capacities defined in system configuration in the user interface were not used when creating new attributes in counters, profiles, and device identification. Additionally, when changing storage type in an attribute definition, capacities might have been predefined to zero instead of the default value (APAR PO09397).
  • Large redundant data was stored in the configuration file when the storage type in an attribute definition was changed and saved in the user interface (APAR PO09410).
  • Running the common point query was not working.
  • MCI Bypass did not work for TCP messages with binary header. IBM Safer Payments dropped the binary header before forwarding the message to a remote instance, and the remote instance might not process the message without it (APAR PO09408).
  • The user interface might become unresponsive due to a defect in the outgoing persistent connection.
  • Highlighting of a case's consolidated alarms in query results did not work correctly when more than one alarm was present. Only the current master alarm was highlighted.
  • The result pages of reports did not utilize the full width of the page.
  • When an external query response did not contain a key for an attribute or a masterdata that is mapped in the response mapping, the value would be overwritten by an empty value. Now, the value remains unchanged (APAR PO09404).
  • PMML string arrays were not correctly parsed in case the values inside the array were not enclosed in double quotes.
  • Removing an MCI endpoint might have caused a memory leak or crash.
  • Saving the modeling section or the revision general page caused a running rule generation on a remote instance to be stopped and might have caused wrong simulation results (APAR PO09285).
  • Unique message ID is required for bypass. A crash might occur when bypass processed incoming messages with identical message IDs.
  • The time to replicate defined risk list entries uploaded from file has been reduced substantially on remote instances. Additionally the time to delete entries on remote instance has been reduced (APAR PO09401).
  • A crash might occur when starting simulation while a pmml model was being uploaded (APAR PO09281).
  • In rare situations, when many investigation cases were added or archived, there might be an issue for working queues that worked on the same cases.
  • A crash might occur when deleting a challenger in which rule generation was running.
  • When a user changed their password, IBM Safer Payments did not invalidate the old session ID and other session related tokens.
  • It was possible to change the label of an encoded input category while it was being referenced in a PMML model or external model component. This led to unrecoverable errors during golive. To recover a re-golive on the retired revision was necessary.
  • Corrupted FLI message when the MCI message size is larger than 10000 characters and external model component is active (APAR PO09350).
  • Improved how MCI threads in various statuses are monitored and displayed in the user interface. Defined a new KPI that allows the user to monitor MCI threads in a given state (idle, reading, waiting for processing coordinator and writing response) per MCI inbound endpoint. Additionally, defined a user-configurable network idle connection timeout on the inbound endpoint that allows the user to define the time after which inactive connections must be closed. Included more information in the logs when an MCI connection fails.
  • It was not possible to save external model components that included conditions (APAR PO09472).
  • The case audit trail now contains a button in each comment cell allowing the user to open the comment in a popup in which the text is displayed formatted as originally entered including line breaks. Related case action histories, which already offered this button before, showed some unexpected behavior when using it: Instead of opening the popup the user would be navigated to a different case if the clicked row happened to belong to a different case.
  • If the FLI checksum check was enabled and transaction data contained a double quote followed by a closing curly bracket, the FLI might get stuck (APAR PO09335).
  • The internal calculation of available/used memory on RHEL systems has been improved by fixing a 32-bit integer overflow problem and taking into account MemAvailable or the SReclaimable field values from /proc/meminfo to provide more accurate results (APAR PO09166, PO07255).
  • Clicking on a row in the case histories and aggregated audit trail tables changed the URL of the page but did not load the case that belonged to that URL.
  • The MCI was temporarily deactivated during cluster page save when it was not necessary (APAR PO09361).
  • It was not possible to add a new MCI endpoint with SSL set up to read certificate passphrases through the console. The application would not ask for a passphrase and fail to open the new endpoint. Only during startup might certificate passphrases be entered.
  • There was a potential deadlock while computing index and updating KPI which might block incoming computation and block the instance from shutdown.
  • The MCI didn't accept new connections after disabling SSL
  • During deferred writing it was not checked correctly whether the chunk about to be written was within the safety margin of the MDC. Potentially records outside of the MDC were written to DDC.
  • A crash might occur during shutdown, potentially leaving sockets open without being properly closed. This did not result in data loss as all DDC files were already written after 163 Shutdown completed successfully was printed in the log.
  • External callouts fail to parse the response if more than one response is received at the same time.

Minor changes

  • A redundant check-in case search was removed with no change in functionality.
  • When multi value masterdata was started with limits, the limited value might be persisted on disk, if a revision write operation was triggered; for when copying a revision or performing, for example, a golive. Multi value masterdata also uses the limit_index parameter that might result in unexpected capacity values. A dedicated start-up parameter limit_multi_value_masterdata was introduced to limit the capacity to the desired value (APAR PO09673).
  • An instance might become stuck if multiple value masterdata is corrupted. This might be due to various causes, for example, a previous crash and infinite loops in their internal structure.
  • When trying to select multiple rules and enable or disable them, an error would occur if any of the rules had a condition regarding an encrypted attribute
  • Archiving case audit files when they are already archived overwrites the archived .latest case file.
  • SQL notifications might not be executed due to the attribute placeholders being replaced with the attribute's value. A potential workaround was to include single quotes in the message template to surround each attribute value. In this version, the behavior was changed to not require single quotes in the message template to be consistent with SQL case actions.
  • Before the fix disabled PMML models were parsed during Sandbox testing. Now only enabled PMML models are parsed by IBM Safer Payments during Sandbox testing. The fix also disables Sandbox compute button while Sandbox testing is still running.
  • Preprocessing and final rules tables were redirected to the wrong table after enabling or disabling rules via toolbars.
  • Users might previously interact with certain pages under the Model tab without the associated privilege to edit a page. Interactive components within model pages are now set to read-only mode and cannot be interacted with if the user doesn't have the required edit privilege.
  • It was not possible to generate the French and Portuguese manual (APAR PO09577).
  • Lists must always have at least one output value and condition, but in the user interface it was possible to delete the last value or condition and still save.
  • Users who did not have the Modeling... privilege on their role were still able to see the Modeling pages within a revision.
  • The numbers in the FLI status Reconnecting were shown incorrectly, and the numbers in the FLI status were displayed as floats instead of integers.
  • The user interface was attempting to parse any response as JSON and would fail. For example, when a Proxy/CDN returned a non-JSON response, the message Unexpected token < in JSON at position 0 was given. This behavior is now replaced with a more informative modal (APAR PO09504).
  • Added help text for two settings, Use IP address for session binding (EnableIPSessionCheck) and Use HTTP header X-Forwarded-For for session binding (EnableXForwardedForCheck), in Authentication Settings within the Administration tab (APAR PO09508).
  • A new event log id 827 was added for errors from file closing, instead of using the event log id 0.
  • The persistent connection occ is cluster dependent. Its configuration of connection pool priorities was not adapted to the cluster change.
  • Case investigators might see case transitions that they had no execution privilege for.
  • On the transition to the Followup case state, the transitioning user was able to select a followup user belonging to a mandator higher up in the mandator hierarchy than his own. Now he is limited to users assigned to his own or descendant mandators, being in accordance with the user selection on the case selection form.
  • When using a shared NFS folder for DDC, the file ddc/lock.iris was not unlocked automatically when the operating system crashed and rebooted. An option called Check for other instances was added to system configuration to skip the lock to allow an easy restart when using a shared directory for DDC. This option is true by default to not change the current behaviour.
  • The IP addresses of internal interfaces SCI, ECI, and FLI were not updated in case that domain names were used and the DNS server changed the address resolution to a new IP unless the cluster page was saved again. IP addresses are now reloaded after receiving a to be ignored IP, if the IPs have not been reloaded already during the last 10 seconds.
  • The Login page was changed to a brighter version closer aligned with other IBM products.
  • Writing large numbers in the time field of a date picker field caused the selected date to change to a value further in the future (APAR PO09540).
  • The application's built-in help did not explain how privileges to change a given type of element on one mandator affect other mandators. The change privilege on one mandator implies a view privilege on higher mandators to avoid creating duplicate elements. A hint was added to the online help for user accounts.
  • The ability to filter the Status Alarm Indicators by instance on the dashboard was missing from the user interface.
  • Position settings for Status Alarm Indicators were not reflected on the dashboard page (APAR PO09326).
  • The charts of the dashboard wouldn't automatically refresh after the configured refresh interval. The values were also not reloaded after manually refreshing the page (APAR PO09319).
  • On the inbound page, the label and check boxes of the Kafka instance failover priority selection appeared on different lines of the form.
  • It was not possible to delete a modelling workflow, if it was used in a simulation of a challenger or a retired revision within the same mandator. It's now possible to delete workflows as long as they are not used within its own challenger or challengers of submandators (APAR PO09298).
  • Normally users that can change an element on a lower mandator automatically are allowed to view this element type on higher-level mandators. This behavior was not true for index-based evaluations. The table did not include higher-level mandators if the requesting user only had the privilege on a lower-level mandator.
  • Sending the ConfirmGolive API request with an invalid revision uid caused the API instance to create a backtrace and a unrecoverable error log message (APAR PO09386).
  • On all pages where a date selector is shown a hint is shown now which timezone the date and time is in.
  • The icon of the count number of records action available for simulation and investigation queries was changed to an uppercase sigma.
  • The revision general page did not show the revision status information correctly. Also, the menu bar showed incorrect information text that the revision would be editable during golive report.
  • In reports, if every value of a report result row is 0, a hint text is displayed now instead of a pie chart with invalid data.
  • In the case workflow definition it was possible to set a comment for a case transition as mandatory, but not allowed, which might block the user from submitting the case transition.
  • In the General Revision Settings page, a pie chart will be displayed only after a user clicks a value in the Memory Statistics table. Now the MDC memory consumption column is selected by default. Users can still click other columns to change the displayed chart. Additionally, a misleading text was displayed when the selected column did not contain enough data to display a pie chart.
  • For model revision elements, the New element button is active for inherited elements, even though that is not possible.
  • The Logout and My account menu options were separated into their own icons.
  • The version information was removed from getUserProfile API request. There was no further impact for the user interface or server.
  • Typographical errors in the online help and user interface have been corrected (APAR PO09441).
  • When using the Ctrl+S shortcut in the user interface, changes to date fields were not saved if the field was still focused.
  • The limitation on reports pages to only allow filtering for time ranges in the past was removed. Additional validation was added for the time ranges.
  • In the user interface, when adding a new common point query it was not enabled by default.
  • It was not possible to filter for defined risk list entries that were last edited by deleted users. Entries from all users will now be displayed when no user is selected in the filter (APAR PO08657).
  • In attribute definition and in the default xdc capacities setting in the system configuration in the user interface, whether MDC is smaller or equal to DDC capacity was not validated. However, it was validated on the server. Additional validation behavior was improved in attribute and index sequence settings.
  • Kafka failover was not triggered when removing instance from cluster.
  • When trying to delete a simulation query using the form button the browser would navigate to the revision selection page and show a deletion confirmation popup to the user. Clicking on Confirm then resulted in a Cannot find model revision error message. The query was not deleted.
  • The libxml library printed additional unwanted error messages to the stderr stream when parsing errors occurred.
  • On Administration>System>Configuration>Interfaces>Application Programming Interface the meaning of the option Use default HTTP headers was backwards. To actually use the default HTTP headers, the setting had to be disabled. It was also not possible to enter multiple HTTP headers as the form only supported a single-line text input.
  • The online help was updated to note that the ephemeral port range must not be used for the interface ports of the IBM Safer Payments instances (APAR PO09134).