Skip to main content

HISTORY notes for AMPS

This page provides a list of changes made in each version of AMPS.

AMPS version 5.3.5

AMPS Version 5.3.5.24 was intentionally skipped
AMPS Version 5.3.5.23 was intentionally skipped
AMPS Version 5.3.5.22 was intentionally skipped

PREVIEWVersion 5.3.5.21 (2025-10-01)

  • Fix issue that could cause a crash when a query that uses an OrderBy clause is canceled before completion. This regression was introduced in version 5.3.4.44. (AMPS-8739, Z20010)
AMPS Version 5.3.5.20 was intentionally skipped

PREVIEWVersion 5.3.5.19 (2025-09-27)

  • Improve memory usage for paginated subscriptions (subscriptions that use both top_n and skip_n):

    • Reduce memory needed for ordering subscriptions on topics where more fields are indexed than are used in the OrderBy directive.

    • Fix memory leak where metadata used for maintaining the paginated window was not correctly freed.

    (AMPS-8737, Z20045)

PREVIEWVersion 5.3.5.18 (2025-09-23)

  • Fix issue that allowed incorrect conversion of scientific notation to decimal notation in cases where the representation of the value in scientific notation was more than 20 bytes. (AMPS-8697, Z19977)

PREVIEWVersion 5.3.5.17 (2025-09-18)

  • Fix issue with message queue ownership transfer where a set of replicated instances could fail to transfer ownership in cases where:

    • An instance has more than one outgoing Replication Destination that specifies the same Group and

    • The owner of the message is reachable through that Group and

    • The instance of AMPS requesting the transfer or forwarding the request is not directly connected to the owner of the message and

    • When the request is sent or forwarded, an instance in the Group is chosen that does not directly connect to the owner of the message.

    In this case, a set of AMPS instances could fail to successfully transfer ownership.

    With this fix, AMPS will now more intelligently route transfer requests by determining a valid path to the message owner if one exists.

    Previously, AMPS would assume that all instances in the same group that were not the owning instance were equivalent for request purposes, which could result in failed transfer requests in some replication configurations.

    (AMPS-8668, Z19799)

PREVIEWVersion 5.3.5.16 (2025-09-14)

  • Fix issue where truncating the _STATIC tables in the statistics database can take an excessive amount of time when there are a large number of static ids that no longer exist in the corresponding _DYNAMIC table.

    This fix adds an index by static_id on the _DYNAMIC tables and optimizes the SQL statements used to find and delete unreferenced static ids. New event log messages (1B-0007 and 1B-0008 at info level, 1B-0009 at developer level) are included to log indexing progress.

    If a statistics database without these indices exists when AMPS starts with this hotfix, the indices will be created during startup. This could cause a noticeable one time delay in start up while the indices are created over existing data. (AMPS-8615, Z19724)

PREVIEWVersion 5.3.5.15 (2025-09-11)

  • Fix issue that could cause AMPS to leak a client reference if that client has used a bookmark subscription to replay from the transaction log. The leak could happen when there are multiple replays happening that consume at different rates while the client subscription was active. This could cause a small amount of memory growth over time and repetitive logging of 07-0083 warning-level messages. (AMPS-8699, Z19938)
AMPS Version 5.3.5.14 was intentionally skipped

PREVIEWVersion 5.3.5.13 (2025-08-29)

  • Fix memory corruption and possible crash when using the json message type with a schema that involves large values, complex hierarchy, or arrays. (AMPS-8694, Z19283)

PREVIEWVersion 5.3.5.12 (2025-08-22)

  • Fix issue where a queue configured with a Filter and TargetQueueDepth could add messages not matching the Filter to a queue when:
    • The queue has reached its TargetQueueDepth without reaching the end of the transaction log, and
    • A message is removed from the queue (whether through acknowledgement or expiration). (AMPS-8685, Z19908)

PREVIEWVersion 5.3.5.11 (2025-08-12)

  • Fix crash that occurs when an AMPS module attempts to access the transport info for an embedded client, such as a client created by an AMPS action module. This can affect the RESTful Authentication and Entitlements module when modules that create embedded clients are present, including some AMPS actions. (AMPS-8666, Z19840)

PREVIEWVersion 5.3.5.10 (2025-08-05)

  • Add new UUID7() function for creating unique identifiers using the v7 UUID procedure in RFC 9562. (AMPS-8659, Z19826)

PREVIEWVersion 5.3.5.9 (2025-07-31)

  • Fix issue that could result in excessive logging of 1B-0005 errors if AMPS fails to execute a SQL statement. This could happen if the statistics database is locked when a statistics truncation action runs. With this fix, truncation will log the names of tables that could not be truncated and continue the truncation process rather than repetitively logging the failure. (AMPS-8651, Z19807)

PREVIEWVersion 5.3.5.8 (2025-07-25)

  • Fix issue that could result in an AMPS hang and shut down when a sow_delete using an exact match on primary key affects less than 128 keys and paginated subscriptions that request out of focus notifications are active on the topic that the delete targets. This issue was introduced in AMPS 5.3.1.12 (AMPS-5322). A symptom of this issue is the 16-0042 message being logged frequently before shut down. (AMPS-8602, Z19672)

PREVIEWVersion 5.3.5.7 (2025-07-23)

  • Fix issue that could cause incorrect results or a crash when a filter that contains a message function (such as MESSAGE_SIZE() or TOPIC_NAME()) is used for a query/subscription to a view or conflated topic. (AMPS-8619, Z19725)

PREVIEWVersion 5.3.5.6 (2025-07-21)

  • Fix issue where setting EarlyTerminationOptimization to false for the JSON message type could cause a delta_publish to incorrectly merge fields when the original message or the update contain duplicate field names. (AMPS-8621, Z19738)

PREVIEWVersion 5.3.5.5 (2025-07-19)

  • Optimize message queue throughput (while maintaining low latency) when messages are actively being published to a queue and there are a large number of subscriptions. The improvement is greater as the number of subscriptions on the queue increases. (AMPS-8632)

PREVIEWVersion 5.3.5.4 (2025-07-15)

  • Fix issues when actions are processing large numbers of events:

    • Fix deadlock that can happen when subscribe/unsubscribe events are happening faster than actions can process them. (AMPS-8612, Z19443)

    • Fix crash when an Action uses both amps-action-do-publish-message and amps-action-do-delete-sow. (AMPS-8618, Z19523)

PREVIEWVersion 5.3.5.3 (2025-07-10)

  • Fix issue with the RESTful Authentication and Entitlements module where a web service that returns a 401 Unauthorized result code (indicating that the entitlements document is not available without authentication) and also returns an entitlements document would be treated as a successful retrieval of the entitlements document (even though the result code indicates a failure). This could result in incorrect behavior. With this change, the module will discard any entitlements document returned in a 401 response and consider the request a failure (as it does for other non-success status codes). The module will retry the request as appropriate given the information in the 401 response. (AMPS-8613, Z19730)

PREVIEWVersion 5.3.5.2 (2025-07-08)

  • Fix to send the completed ack for a bookmark range subscription that includes a rate when the range completes, not when the subscription catches up to the end of the transaction log. (AMPS-8599, Z19659)

PREVIEWVersion 5.3.5.1 (2025-06-26)

  • Compatibility with previous releases:

    • This release fully supports in-place upgrade from 5.0.0, 5.2.0, 5.2.X/5.3.0, and 5.3.X data files. There is no need to run the amps-upgrade script for this release.

    • This release supports replication to 5.2.0 and later versions of AMPS, although features added in later versions of AMPS may be replicated as the nearest equivalent operation to versions of AMPS that do not support that behavior. 60East recommends that replication between different release streams of AMPS is used during a rolling upgrade only, and that matching versions of AMPS are used for production or stable test or development environments.

    • This version deprecates the older, python-based versions of the amps_journal_dump and amps_tx_topic_index_dump utilities. In previous releases, the python versions have called native AMPS functionality (with an optional fallback to python). In this release, these utilities no longer use python, but instead use AMPS functionality directly. This provides better performance, and avoids python version compatibility issues.

      Usage and output does not change.

      (AMPS-8295, AMPS-8525)

    • Upgraded OpenSSL to 3.0.15. Note that this upgrade is not binary compatible with older version of the OpenSSL library. Installations that provide their own OpenSSL library must upgrade that library to a 3.0 version. (AMPS-8169)

    • AMPS will now log a warning if the Dynatrace shared object is loaded into the process. This is not recommended, as the functions that this shared object performs may reduce performance. This warning makes it clear when this shared object is present. (AMPS-8106)

    • AMPS now correctly considers a Logging/Target configuration without a Protocol to be a configuration error. Without the Protocol element, nothing would be logged.(AMPS-7946)

    • We have changed our Linux host tuning guidance for vm.swappiness from 1 to 0, due to the recent changes in RHEL9 and RHEL8.

      These new kernel changes can create 'swap storms' that dramatically impact performance of AMPS instances. For AMPS deployments on RHEL8 or RHEL9, please check this setting and adjust it to match the new guidance.

  • This release adds the following features and major improvements:

    • The AMPS distribution now includes an optionally-loaded module that can provide authentication to AMPS using an external OAuth 2.0 authorization server. See the AMPS Server Documentation for details. (AMPS-8152)

    • This release upgrades the version of OpenSSL that AMPS is built with to 3.0.15. Note that this upgrade is incompatible with older versions of OpenSSL and requires users that provide their own OpenSSL library to upgrade their OpenSSL version. (AMPS-8169)

    • This release provides improved ABI compatibility for modules that use the C++ standard library and are compiled with older versions of the gcc compiler. (AMPS-8057, Z17140)

    • This release enforces tighter controls on authenticated connections to the admin interface (including connections from Galvanometer), including protection against cookie reuse/copying and control over the options for the admin cookie. (AMPS-8485, Z19234)

  • This version adds the following improvements:

    • Add Preprocessing/Enrichment support to SOW topics that use the Pattern functionality. (AMPS-8571)

    • Allow aggregate functions to be used within scalar functions in projection clauses of Views, Joins, aggregated queries, and subscriptions. (AMPS-2571)

    • AMPS now includes a REGEXP_MATCH function that returns the first match of text within a string (AMPS-7913, Z17203)

    • AMPS now includes a CONNECTION_NAME function that returns the connection name of the current client (AMPS-8553)

    • AMPS now allows a bookmark subscription to request that if the starting point for the subscription is not found, AMPS should start at the beginning of the transaction log or return a failure to the application. By default, AMPS begins the subscription at the end of the transaction log if the starting point is not present in the transaction log. (AMPS-4422)

    • This version deprecates the older, python-based version of the amps_journal_dump and amps_tx_topic_index_dump utilities. In previous releases, the python versions have called native AMPS functionality (with an optional fallback to python). In this release, these utilities no longer use python, but instead use native AMPS functionality directly for improved performance. (AMPS-8295)

    • This version allows an application to run a permission check for administrator resources. This allows administrative applications, including Galvanometer, to enable or disable controls based on whether the current user has permission to perform the function. Previously, controls were always enabled (although an error would be returned when the control was used for users without permission to the control). (AMPS-8293)

    • Improve tuning related to CPU count to improve AMPS performance on hosts / containers with a small number of CPUs. (AMPS-8554)

    • This version improves the performance of processing out of focus messages for a sow delete that uses a filter. (AMPS-8227)

    • This version improves logging for some cases where message processing is running more slowly than expected to help in diagnostics and troubleshooting. (AMPS-8207)

    • Improve performance and efficiency of coalescing space in a SOW topic for reuse. (AMPS-7698)

    • Improve disconnect handling to improve overall performance when large numbers of connections disconnect during a short period of time. (AMPS-8172, AMPS-8171)

    • Improve behavior of a bookmark range that starts with an inclusive NOW (0|1|). This will now include the last bookmark in the transaction log at the time the subscription was submitted in the subscription (which means the message will be delivered if it matches the subscription). A bookmark range that starts an exclusive NOW will continue to evaluate only messages that are processed after the subscription is entered. (AMPS-8158, Z18549)

    • Reduce latency for messages that arrive over replication by moving acknowledgement maintenance out of the critical path for processing incoming messages. (AMPS-8455, Z18824)

    • Improve logic for deciding when a transaction can be submitted for write, which can produce a slight performance improvement. (AMPS-8170)

    • Improve logging when using mTLS for replication. (AMPS-8151)

    • When a utility (such as ampserr or amps-sqlite3) invokes the AMPS executable, set the process name to the name of the utility to improve monitoring. (AMPS-8060)

    • This release relaxes handling of the NOW bookmark at the server. A bookmark such as 0|2| will now be treated as NOW (equivalent to 0|1|, the standard constant for NOW). (AMPS-8055)

    • Improve startup validation of the JournalArchiveDirectory parameter by producing an error if the archive directory is not readable and an action for archiving journals is defined. (AMPS-8035)

    • Improve performance of accepting connections when a large number of connections are being opened or closed at the same time. (AMPS-7934)

    • Improve logging when replication validation fails a cascade check to include the name and group of the failing destination and to log information for any failing topic for the destination (rather than logging only the first topic to fail validation). (AMPS-7930)

    • Improve performance when compressing files. (AMPS-7959)

    • The ExpectedKeyCount hint for SOW topics now automatically calculates the next-largest power of 2 for the provided value rather than requiring that input be a power of 2. (AMPS-7777)

    • Improve logging for expected AMPS shutdown due to receiving a signal. (AMPS-7726)

    • Improve timestamp generation to reflect the actual resolution of the underlying clock used (microseconds). Previously, AMPS would generate timestamps that indicated a 1/10th of a microsecond resolution (even though the clock did not support it and that digit was always a 0). (AMPS-7583)

    • Improves the algorithm used for generating XPath hashes to use a 64-bit hash. This reduces the chances of hash collisions when evaluating paths. (AMPS-6768)

    • Improve fairness of processing bookmark subscriptions when one subscription or group of subscriptions is not at the latest point in the transaction log. This can substantially improve performance for bookmark subscriptions when the system is under load or when bookmark subscriptions are being entered. (AMPS-8452)

    • AMPS now sets a maximum lifetime of 24 hours to the session cookie used for the AMPS administrative interface. (AMPS-8449)

    • Improve performance and CPU usage on single-core containers by avoiding busy waiting on single-core containers. (AMPS-8434)

    • Improve logging for enable_proxied_transfer. When an attempt is made to set enabled_proxied_transfer for a queue to the value it is already set to, AMPS will now log the fact that the request was redundant and the state of the queue has not changed. (AMPS-8429)

    • Improve the RESTful authentication and entitlements module to correctly handle AMPS-level entitlement resets for a user that uses only the admin interface (or an entitlements caches shared with the admin interface). Previously, if the user had not connected on a non-admin interface, the AMPS entitlement reset would be ignored. (AMPS-8388)

    • Improve performance of amps_journal_search when journal indexes are present by using those indexes in more situations. (AMPS-8456)

    • Improve the ability of AMPS to determine the address to use for the administrative interface of an instance connected over replication. This can improve the ability of tools, such as Galvanometer, to construct a view of a set of replicated instances. (AMPS-8200)

    • Improve the amps-action-on-schedule action so that it does not bother to reschedule events if AMPS is shutting down when the previous event completes. (AMPS-8498)

    • The AMPS instance name will now be included in the description field of the ILIFETIMES_STATIC table when the instance starts. (AMPS-8462)

    • The 1F-0004 log message now includes the auto sequence name hash for a connection. This is the hash that will be used on publish messages for the client if the client does not provide a sequence number on the message. (In this case, AMPS will automatically assign a sequence number, and use the auto sequence name hash as the publisher hash). (AMPS-8461)

    • The ICLIENTS_STATIC table now includes an auto_seq_name_hash column that records the auto sequence name hash for a connection. (AMPS-8461)

    • Documentation has been restructured. In particular, configuration options for features of AMPS are now presented alongside those features rather than being arranged in a separate configuration guide.

  • This version fixes the following issues:

    • Change journal removal to remove the index file first before the journal. If AMPS terminates during a journal removal and the index file is stranded AMPS may never clean up the index file and it can appear that a journal gap exists. (AMPS-8574)

    • Fix issue where AMPS would silently ignore a max_backlog option provided on a bookmark subscription. This would result in a bookmark subscription for a request that is attempting to subscribe to a queue. That subscription could receive messages that have already been processed, receive messages that another subscriber is in the process of consuming, and so forth. AMPS will now respond to a max_backlog on a bookmark replay with an invalid options error. (AMPS-8216)

    • Fix issue where when a bookmark replay specifies both a rate and a top_n value, the replay could receive more messages than requested by the top_n parameter. (AMPS-8389)

    • Fix issue where AMPS fails to start if the last journal file in the transaction log cannot be opened for write, even if that journal file has been fully written. With this fix, AMPS will correctly open the last journal file in read only mode if it has been completely written. (AMPS-8034)

    • Fix issue where conflation could be applied during startup processing, which could cause delays in views or conflated topics that use the conflated topic as an underlying topic showing the correct initial state. (AMPS-8188)

    • Fix issue where the amps-action-on-message-affinity action could incorrectly notify a publisher that a client has no more subscriptions to a topic. This could happen when the same client has more than one active subscription to the topic at the same time and then closes some, but not all, of the subscriptions. (AMPS-8217)

    • Fix race condition where a rapid disconnect and reconnect of a replication destination could cause replication backtracking. (AMPS-8037)

    • Fix handling of shutdown to avoid unnecessary minidumps or forced exits during the shutdown process. (AMPS-7910, AMPS-8070, AMPS-8157, AMPS-8185, AMPS-8186, AMPS-8187, AMPS-8232, AMPS-8234, AMPS-8236, AMPS-8237, AMPS-8238, AMPS-8247, AMPS-8254, AMPS-8256, AMPS-8322, AMPS-8327, AMPS-8402, AMPS-8459, AMPS-8466, AMPS-8469, AMPS-8470, AMPS-8471, AMPS-8477, AMPS-8490, AMPS-8528, AMPS-8539, AMPS-8551)

    • Fix issue where, if topic indexing is enabled for the transaction log, the topic index could be incorrectly recovered when a journal file contains only transfer grants for a given topic. (AMPS-8253)

    • Fix issue where pending transaction log maintenance (compressing or archiving journal files) could delay AMPS shutdown. With this fix, AMPS will correctly handle a shutdown during maintenance operations without extended delays. (AMPS-8248)

    • Fix issue where, when expiration of a message from a SOW topic happens while that message is being delivered to a subscription, the oof message could arrive before the message itself. This issue was introduced in 5.3.4.78. (AMPS-8249)

    • Fix issue where the key counts reported in the 16-0036 log message could be incorrect if a sow compaction runs at the same time that multiple SOW records are deleted using an exact match of the key field or fields. This issue does not affect the actual deletion: the correct records are deleted even though the record count in the log message could be incorrect. (AMPS-8164).

    • Fix issue where the client name hash and connect time could be reported incorrectly in statistics or log messages. (AMPS-8089)

    • Fix issue that could cause incorrect 'potential stuck thread' warnings when a filter takes an extended time to execute. (AMPS-8045)

    • Fix issue where, if a client sent a successful logon command that did not include a client name, AMPS would handle the client connection incorrectly. (The symptoms include a record in the statistics database with only partial information for the client connection.) With this fix, the logon is handled correctly, and the client name is set to the connection name. (AMPS-8052)

    • Fix issue where AMPS would incorrectly allow a Logging/Target with no Protocol specified. This configuration would not actually log. AMPS now considers this to be a configuration error. (AMPS-7946)

    • Fix issue that could cause AMPS to incorrectly exit during SOW recovery when the valid key count is an exact multiple of 32768. (AMPS-7914)

    • Fix issue that could cause AMPS to incorrectly consider a journal to be in use and delay journal removal. This could happen in some cases when a cursor is no longer needed (and is marked as inactive) then is immediately reused. (AMPS-7901)

    • Fix issue that could delay completed acknowledgement for bookmark subscriptions in cases where transaction log topic indexing is enabled in the configuration but AMPS is started with existing journal files but no transaction log topic index file. (AMPS-7888)

    • Fix issue where amps-action-do-extract-values would log an error if no Data field was supplied. With this fix, an action that does not require message data (for example, storing the result of a function call) no longer needs to provide an empty Data option to avoid an error. (AMPS-7881)

    • Fix issue where replication disconnect processing could deadlock if a reconnect for a replication client arrives while the disconnect of the previous connection for the same client is being processed. (AMPS-8390)

    • Fix issue where attempting to publish or sow delete from a topic that can not accept publishes (a reserved topic, or a view or conflated topic) could repetitively log warning-level messages. (AMPS-7865)

    • Fix issue where a bookmark replay could skip processing the first message in a journal in a case where the message has not yet been loaded into memory when the replay tries to use the message. (AMPS-7859)

    • Fix issue where the default slab size for a topic was incorrectly defaulted to 1MB instead of the expected 5MB. (AMPS-7848)

    • Fix issue where subscriptions that use aggregation or pagination could take longer than necessary to be shut down when AMPS exits, resulting in shutdown delays. (AMPS-8432, AMPS-8328)

    • Fix error in message text for event 1D-0123. The event text suggests that it only applies to compressed journals, which is incorrect. (AMPS-7832)

    • Fix issue that could cause message queue delivery to stop when queue subscriptions are being replaced. This could cause minidumps or cause AMPS to exit. (AMPS-8313)

    • Fix issue that could cause AMPS to hang when replacing a subscription during heavy load. (AMPS-8534)

    • Fix issue where replication validation could fail to recognize that a replication topic specifying .* (match zero or more characters) replicates all topics in the local transaction log, and should pass validation checks if those topics are recorded in the remote transaction log (even if that log doesn't record .*). (AMPS-2628)

    • Fix issue where help text for amps_sow_dump provided information for an unimplemented option. (AMPS-2310)

    • Fix issue where a delta_publish that produces a message much larger than the existing message could cause AMPS to exit. (AMPS-8481)

    • Fix issue where a clients.ack index file could fail to be reopened after being compacted, which could require additional recovery time on the next restart of AMPS. (AMPS-8424)

    • Fix issue where the amps-action-do-upgrade-replication action could incorrectly upgrade a replication destination that has never been connected. (AMPS-8391)

    • Fix issue where a sow_delete command that matches no topic in the state of the world was silently ignored. With this fix, AMPS will return an "invalid topic" error. (AMPS-8377)

    • Fix issue where, if a sow_delete with a filter of 1=1 is used to clear a queue and the queues.ack file for the instance is lost or damaged, that sow_delete could fail to be processed during queue recovery. (AMPS-8352)

    • Fix issue that could cause amps-action-on-replication-resync-complete to run before amps-action-on-connect-replication for the connection runs. This could happen when running in a single-CPU container or when CPU is heavily loaded. (AMPS-8341)

    • Fix issue where the VALUE_LOOKUP module (libamps_udf_experimental.so) could take an extended time to exit when large numbers of lookups are configured. (AMPS-8265)

    • Fix issue where AMPS could start with a gap in transaction log journal files, even though messages would be missing. Starting with this version, AMPS will exit if a gap in transaction log journal files is detected. (Z19495, AMPS-8548)

    • Fix issue that could cause unnecessary CPU usage for a conflated subscription when no messages are waiting. (AMPS-8532)

    • Fix issue that could cause a field to be left out of a delta publish for the first publish processed on a thread. (AMPS-8531)

    • Fix issue where an invalid BSON message could cause AMPS to repeatedly issue BSON parse errors and exit. This fix also improves translation of some BSON data types to corresponding AMPS types. (AMPS-8530)

    • Fix issue where included python-based utilities did not explicitly specify python3, and could fail to run if the default version of python on the system was python2. (AMPS-8524)

    • Fix issue that could cause AMPS to exit with an error during startup when the configuration for a SOW topic that had maintained history was changed to no longer maintain history. (AMPS-8476, AMPS-8369)

    • Fix issue where AMPS could process cancel acknowledgements for a queue which arrive over replication. Since a cancel acknowledgement affects state that is only managed locally, replicated cancel acknowledgements should have no effect. (AMPS-8482)

    • Fix issue where clients logged on with identical client names on two or more instances in a replicated environment could cause one or more of the clients to fail to be reaped. (Notice that simultaneous connections with identical names on different instances of AMPS is not valid, and may cause message loss.) (AMPS-8547)

  • This version includes the following improvements and fixes to Galvanometer:

    • All the administrative actions buttons, such as disconnection of a client or generation of a minidump are now rendered according to the entitlement permissions of the user.
    • Add support for Ctrl+Enter hotkey for the Execute/Stop button on the SQL page
    • All input fields that include dropdown search results are now case-insensitive
    • In the Queue Details widget, display the content filter value, if set
    • In Graph Builder, add previously missing tcp_zero_window_advert to the list of available metrics
    • In the Admin Controls Center, the Admin transport is added so that Admin API authentication and/or entitlements can be reset
    • Significant improvements in the display/options of the Message Details widget on the SQL page
    • Fix issue on the SQL page where the optional timestamp column could prevent display of data
    • Fix handling of query that results in an authentication failure on the SQL page
    • Fix the query status bar display on the SQL page where a large topic and/or content filter is used
    • Fix issue where in a date/time picker widget date and time could not be set simultaneously

AMPS version 5.3.4

PREVIEWVersion 5.3.4.140 (2025-08-06)

  • Fix crash that could happen when a sow query of a message queue topic happens at the same time as a message is removed from the topic (for example, due to acknowledgement, deletion, expiration, and so on). (AMPS-8515, Z19811, Z19836)
AMPS Version 5.3.4.139 was intentionally skipped

PREVIEWVersion 5.3.4.138 (2025-07-25)

  • Fix issue that could result in an AMPS hang and shut down when a sow_delete using an exact match on primary key affects less than 128 keys and paginated subscriptions that request out of focus notifications are active on the topic that the delete targets. This issue was introduced in AMPS 5.3.1.12 (AMPS-5322). A symptom of this issue is the 16-0042 message being logged frequently before shut down. (AMPS-8602, Z19672)

PREVIEWVersion 5.3.4.137 (2025-07-23)

  • Fix issue that could cause incorrect results or a crash when a filter that contains a message function (such as MESSAGE_SIZE() or TOPIC_NAME()) is used for a query/subscription to a view or conflated topic. (AMPS-8619, Z19725)

PREVIEWVersion 5.3.4.136 (2025-07-21)

  • Fix issue where setting EarlyTerminationOptimization to false for the JSON message type could cause a delta_publish to incorrectly merge fields when the original message or the update contain duplicate field names. (AMPS-8621, Z19738)

PREVIEWVersion 5.3.4.135 (2025-07-10)

  • Fix issue with the RESTful Authentication and Entitlements module where a web service that returns a 401 Unauthorized result code (indicating that the entitlements document is not available without authentication) and also returns an entitlements document would be treated as a successful retrieval of the entitlements document (even though the result code indicates a failure). This could result in incorrect behavior. With this change, the module will discard any entitlements document returned in a 401 response and consider the request a failure (as it does for other non-success status codes). The module will retry the request as appropriate given the information in the 401 response. (AMPS-8613, Z19730)

PREVIEWVersion 5.3.4.134 (2025-07-08)

  • Fix to send the completed ack for a bookmark range subscription that includes a rate when the range completes, not when the subscription catches up to the end of the transaction log. (AMPS-8599, Z19659)

PREVIEWVersion 5.3.4.133 (2025-06-13)

  • Fix issue in amps_journal_search utility when searching journal files by a bookmark. In some cases a miscalculation would occur where a bookmark that exists in the specified journals wouldn't be found or an IndexError exception would be raised. (AMPS-8375, Z19607)

PREVIEWVersion 5.3.4.132 (2025-06-10)

  • Reduce the variance in latency (jitter) when publishing messages to a topic recorded in the transaction log. This could produce additional latency on the order of hundreds of milliseconds for messages every few seconds when subscribers are fully caught up. (AMPS-8545, Z19312)

PREVIEWVersion 5.3.4.131 (2025-06-06)

  • Fix issue where AMPS can deliver empty delta messages for a sow_and_delta_subscribe command issued with the no_empties option when a select list is present and conflation is specified. This issue does not affect subscriptions that use pagination (top_n and skip_n options). (AMPS-8167, Z19561)

PREVIEWVersion 5.3.4.130 (2025-06-03)

  • Fix issue where AMPS did not correctly update the hash index when the field changed between an array and a non-array type. This could result in missing or incorrect results when executing a sow query by hash index if a record has changed a field used for the query between array and non-array type. (AMPS-8549, Z19503)

PREVIEWVersion 5.3.4.129 (2025-05-23)

  • Fix issue where, when rebuilding a SOW file from the transaction log, AMPS could fail to remove a deleted record from the topic. This could result in multiple messages with the same key being present in the rebuilt topic. (AMPS-8503, Z19377)
AMPS Version 5.3.4.128 was intentionally skipped
AMPS Version 5.3.4.127 was intentionally skipped

PREVIEWVersion 5.3.4.126 (2025-05-15)

  • Fix issue where a replicated sow_delete command that uses a regular expression to delete from a set of topics could be ignored by the instance receiving the command when the Name specified in the upstream Destination does not match the Group of the receiving instance. (AMPS-8381, Z19280)

PREVIEWVersion 5.3.4.125 (2025-05-14)

  • Fix crash introduced in 5.3.4.100 that could happen when a sow query of a message queue topic happens at the same time as a message is removed from the topic (for example, due to acknowledgement, deletion, expiration, and so on). (AMPS-8515, Z19427)

PREVIEWVersion 5.3.4.124 (2025-05-08)

  • Fix issue in GROUP_CONCAT() aggregate function where an optional second parameter to specify the delimiter was not allowed. (AMPS-7866, Z18315)
AMPS Version 5.3.4.123 was intentionally skipped

PREVIEWVersion 5.3.4.122 (2025-05-05)

  • Revert changes to bookmark replay fairness model introduced in 5.3.4.1. That fairness model optimizes for subscriptions that are not current, but could cause bookmark subscriptions that have reached the end of the transaction log to progress more slowly than necessary while there are subscriptions that have not yet reached the end of the transaction log. This change reverts back to the fairness model used prior to 5.3.4.1. (AMPS-8452, Z18878)

PREVIEWVersion 5.3.4.121 (2025-04-30)

  • Add the new QueueDeliveryFlushInterval configuration parameter to the Tuning section. This parameter allows the instance to explicitly set how often queue messages are flushed to consumers when waiting for transaction log completion. (AMPS-8487, Z19312)

PREVIEWVersion 5.3.4.120 (2025-04-29)

  • Fix issue where AMPS could provide an empty path to an entitlement check for admin resources under instance/lifetimes. This could cause invalid JSON to be produced by the admin API. (AMPS-8492, Z18832)

PREVIEWVersion 5.3.4.119 (2025-04-22)

  • Fix issue where duplicate messages could be delivered from a queue when proxied transfer is enabled, an AMPS instance takes ownership of multiple messages owned by another instance, and those messages are returned back to the queue. This issue was introduced in AMPS 5.3.4.1 (AMPS-8453)

PREVIEWVersion 5.3.4.118 (2025-04-20)

  • Reduce latency of message queue delivery by refining message queue optimizations introduced in 5.3.4.1. (AMPS-8479, Z19312)

PREVIEWVersion 5.3.4.117 (2025-04-18)

  • Fix crash when deletion processing for a message covered by an aggregated subscription caused the subscription to reach an inconsistent state. The symptom of this issue is AMPS logging the 00-0041 message for the subscription. (AMPS-8338, AMPS-8477, Z18810, Z19283)
AMPS Version 5.3.4.116 was intentionally skipped
AMPS Version 5.3.4.115 was intentionally skipped

PREVIEWVersion 5.3.4.114 (2025-04-08)

  • Fix crash during startup when a view that uses a message queue as the underlying topic also specified a filter. (AMPS-8460)

PREVIEWVersion 5.3.4.113 (2025-04-08)

  • Repackaging and build changes for improved AMPS compatibility on a variety of OS versions. This release has no functional changes. (AMPS-8324)

PREVIEWVersion 5.3.4.112 (2025-03-26)

  • Fix issue introduced in 5.3.4.60 that could lead to reduced performance for message queue transfers (AMPS-8443, Z19203).
AMPS Version 5.3.4.111 was intentionally skipped
AMPS Version 5.3.4.110 was intentionally skipped

PREVIEWVersion 5.3.4.109 (2025-03-08)

  • Fix to deliver all oof messages to a sow_and_subscribe client that uses a bookmark and both the oof and rate options. Previously, some oof messages could be missed (AMPS-8404).

PREVIEWVersion 5.3.4.108 (2025-03-07)

  • Fix race in message queue recovery that can result in AMPS becoming unresponsive and failing to complete startup recovery. In this case, AMPS would log 31-0025 repeatedly without showing progress. (AMPS-8403, Z19122)

PREVIEWVersion 5.3.4.107 (2025-03-02)

  • Improve developer-level logging for replication reconnection by adding a message (1E-0136) that logs when the replication retry backoff time has increased. (AMPS-8103)
AMPS Version 5.3.4.106 was intentionally skipped

PREVIEWVersion 5.3.4.105 (2025-03-01)

  • Fix behavior where AMPS would store sow_delete messages for SOW topics that use a Pattern in the transaction log if any TransactionLog/Topic definition for the same message type used a regular expression.

    With this release, sow_delete messages sent to SOW topics that use a Pattern will be included in the transaction log if the Name of the SOW topic matches one of the TransactionLog/Topic declarations. The actual topic names included in the SOW topic are not considered.

    This release may require updating the TransactionLog/Topic declarations for SOW topics that use a Pattern and are intended to be stored in the transaction log. (AMPS-8290, Z18860)

AMPS Version 5.3.4.104 was intentionally skipped
AMPS Version 5.3.4.103 was intentionally skipped

PREVIEWVersion 5.3.4.102 (2025-02-25)

  • Fix issue where message queue recovery can fail to recover all transactions in a compressed journal. (AMPS-8342, Z18893)
  • Limit message queue recovery memory usage to avoid running out of memory in cases where the total size of journal files being recovered is larger than available memory. (AMPS-8353, Z18893)

PREVIEWVersion 5.3.4.101 (2025-02-16)

  • Fix forced exit during recovery when a journal file with corrupt metadata is encountered, such as caused by a storage failure. AMPS now validates journal metadata before using it in recovery operations. In addition, corrupt data is no longer written to the event log for such entries, and the amps_journal_dump utility handles them properly as well. (AMPS-8282, Z18801)

PREVIEWVersion 5.3.4.100 (2025-02-13)

  • Fix issue where running a sow query for a replicated queue could delay queue delivery to subscribers on the same instance. This could happen when that instance has active subscribers but does not currently own the messages to be delivered. This issue caused AMPS to delay requesting transfers until the query completed. (AMPS-8257, Z18819)

PREVIEWVersion 5.3.4.99 (2025-02-12)

  • Fix an issue with SOW topics that use a Pattern where key collisions could occur between messages in different topics in cases where the key value appended to the topic name in one topic matched the key value appended to the topic name in a different topic. For example, a topic of /A with a key value of BC and a topic of /AB with a key value of C would incorrectly produce the same SOW key. This release fixes the issue.

    COMPATIBILITY NOTE: This release automatically produces new SOW keys for existing records in Topics that use a Pattern. If your application stores SOW keys, use a test environment to determine the updated keys and refresh the keys in the application before deploying this release into production.

    Notice that the previous hotfix, 5.3.4.98, includes the ability to revert the keys for a Pattern topic to the previous values, providing a rollback path for applications that store SOW keys as an identifier.

    (AMPS-8239)

PREVIEWVersion 5.3.4.98 (2025-02-12)

  • This release provides the ability to rollback the SOW key changes made in a forthcoming hotfix to fix an issue with SOW key collisions in Pattern topics. That fix will change the generated SOW keys for Pattern topics.

    In the event that a rollback is necessary, add the element <RekeyPolicy>always</RekeyPolicy> to the definition of a topic that uses a Pattern. When this element is present, AMPS will regenerate SOW keys for the topic using the existing method.

    (AMPS-8299)

AMPS Version 5.3.4.97 was intentionally skipped

PREVIEWVersion 5.3.4.96 (2025-02-10)

  • Fix issues when recovering message queues that use replication. These include:

    • Incorrect queue state caused by recovering a queue from an incorrect point when using the queues.ack file for recovery. This could cause missing or undeliverable messages.

    • AMPS may refuse to remove a journal based on incorrect deferred acknowledgement processing. A deferred acknowledgement is an acknowledgement that was received prior to the message being received.

    (AMPS-8329, Z18814, Z18893)

PREVIEWVersion 5.3.4.95 (2025-02-08)

  • Fix behavior where AMPS would store messages for SOW topics that use a Pattern in the transaction log if any TransactionLog/Topic definition for the same message type used a regular expression.

    With this release, messages published to SOW topics that use a Pattern will be included in the transaction log if the Name of the SOW topic matches one of the TransactionLog/Topic declarations. The actual topic names included in the SOW topic are not considered.

    This release may require updating the TransactionLog/Topic declarations for SOW topics that use a Pattern and are intended to be stored in the transaction log. (AMPS-8290, Z18860)

AMPS Version 5.3.4.94 was intentionally skipped
AMPS Version 5.3.4.93 was intentionally skipped

PREVIEWVersion 5.3.4.92 (2025-02-05)

  • AMPS will no longer lock the statistics database file which potentially blocked external processes from querying the statistics data directly. This will also prevent the opposite situation where an external process could block the file preventing AMPS from storing statistics in it. (AMPS-8301, Z18823)
AMPS Version 5.3.4.91 was intentionally skipped
AMPS Version 5.3.4.90 was intentionally skipped

PREVIEWVersion 5.3.4.89 (2024-12-24)

  • Fix failure that would cause AMPS to exit. This was introduced in 5.3.4.78 and could occur when expiring records from a SOW while a SOW delete or compact is being processed. (AMPS-8231)
AMPS Version 5.3.4.88 was intentionally skipped

PREVIEWVersion 5.3.4.87 (2024-12-21)

  • Fix issue that can cause AMPS to exit or a transaction log replay to stop when there is corruption in a journal file. This can affect replication, bookmark subscriptions and message queue delivery. (AMPS-8212, AMPS-8062)

PREVIEWVersion 5.3.4.86 (2024-12-19)

  • Fix issue where clients connecting to a transport specifying a custom amps or websocket protocol with any message type while omitting a message type in the connection URI will leave the message type ambiguous, which could cause AMPS to exit. This fix ensures that connecting to these transports must have an explicit message type in the connection URI, disconnecting the client with a failure acknowledgement. (AMPS-8214, Z18674)

PREVIEWVersion 5.3.4.85 (2024-12-18)

  • AMPS will now ignore NaN values in numeric aggregate functions such as SUM, AVG, STDDEV_POP and STDDEV_SAMP. Prior to this fix, if a group contained a value that could not be successfully converted to a number, these aggregates would return NaN for that group. The result would remain NaN, even if the non-numeric value was removed, until the aggregate was completely re-calculated with no non-numeric values present. (This could be done, for example, by removing all messages in the group, removing and re-entering the subscription for an aggregated subscription, or restarting AMPS for a view). (AMPS-8064, Z17465)
AMPS Version 5.3.4.84 was intentionally skipped
AMPS Version 5.3.4.83 was intentionally skipped
AMPS Version 5.3.4.82 was intentionally skipped
AMPS Version 5.3.4.81 was intentionally skipped

PREVIEWVersion 5.3.4.80 (2024-12-10)

  • Fix issue in the ampServer-compat binary that could cause incorrect elapsed times to be logged. (AMPS-8098)

PREVIEWVersion 5.3.4.79 (2024-12-06)

  • Fix issue that could cause a forced exit, cause AMPS to become unresponsive, or cause or incorrect results when there are multiple paginated subscriptions for the same topic and a sow_delete deletes multiple records from that topic. (AMPS-8201, AMPS-8203, AMPS-8204, Z17896)

PREVIEWVersion 5.3.4.78 (2024-12-05)

  • Optimize SOW expiration processing execution time and CPU usage. Starting in version 5.3.3.0, AMPS improved performance of SOW expiration but these performance gains increased CPU utilization during expiration. This release reduces CPU utilization during expiration with further performance gains. (AMPS-8160, AMPS-8197, AMPS-8121, AMPS-8159, AMPS-8161)
AMPS Version 5.3.4.77 was intentionally skipped
AMPS Version 5.3.4.76 was intentionally skipped

PREVIEWVersion 5.3.4.75 (2024-11-27)

  • Fix crash that can occur when several parallel queries that specify the top_n option and OrderBy parameter are batched together. AMPS batches SOW queries when queries for the same topic are processed at the same time. (AMPS-8181, Z18607)

PREVIEWVersion 5.3.4.74 (2024-11-26)

  • Fix crash when attempting to use a filter on a binary message type. With this fix, AMPS also allows filters for binary message types in cases where filters were previously disallowed. (AMPS-8180, Z18613)
AMPS Version 5.3.4.73 was intentionally skipped
AMPS Version 5.3.4.72 was intentionally skipped
AMPS Version 5.3.4.71 was intentionally skipped
AMPS Version 5.3.4.70 was intentionally skipped

PREVIEWVersion 5.3.4.69 (2024-11-08)

  • Fix issue where the live option on a subscription that does not replay from the transaction log would incorrectly cause no messages to be returned. The live option requests that a replay is treated as a regular subscription after replay completes. With this fix, the live option is now correctly ignored for subscriptions that do not replay from the transaction log. (AMPS-8091, Z18227)
AMPS Version 5.3.4.68 was intentionally skipped

PREVIEWVersion 5.3.4.67 (2024-11-03)

  • Fix race condition when the transaction log topic indexing feature is enabled. This could cause the first record in the active journal to be skipped during replay. (AMPS-8153)

PREVIEWVersion 5.3.4.66 (2024-10-29)

  • Improve mTLS support for replication destinations. Replication destinations now use the same parameters as incoming transports for certificate verification (VerifyClient and CAFile / CAPath). This fix also updates the documentation to provide clearer guidance on how to configure mTLS. (AMPS-8119)
AMPS Version 5.3.4.65 was intentionally skipped
AMPS Version 5.3.4.64 was intentionally skipped

PREVIEWVersion 5.3.4.63 (2024-10-25)

  • Fix issue where the Admin interface incorrectly used case-sensitive matching for incoming HTTP request headers. Previously, requests that did not use the expected case could incorrectly fail. (AMPS-8146, Z18441)
AMPS Version 5.3.4.62 was intentionally skipped
AMPS Version 5.3.4.61 was intentionally skipped

PREVIEWVersion 5.3.4.60 (2024-10-21)

  • Fix issue that could cause queue messages to be delivered out of order. This can happen when transfer requests are granted out of order. (AMPS-8135, Z18451)

PREVIEWVersion 5.3.4.59 (2024-10-18)

  • Fix crash during shutdown introduced in version 5.3.4.17. This issue affects instances with queues configured. (AMPS-8122)
AMPS Version 5.3.4.58 was intentionally skipped

PREVIEWVersion 5.3.4.57 (2024-10-16)

  • Fix race condition that can result in a crash when AMPS removes a journal at the same time journals are being marked for maintenance, such as compression, archiving or removal by Actions. (AMPS-8123, Z18422)

PREVIEWVersion 5.3.4.56 (2024-10-14)

  • Fix issue where AMPS could unnecessarily read from the transaction log when queue message transfer requests are received for messages that the instance does not currently own. (AMPS-8114, Z18314)

PREVIEWVersion 5.3.4.55 (2024-10-11)

  • Fix crash during recovery when the file for a SOW topic contains a duplicate key or a message that cannot be parsed. This could happen if the file is corrupted or if a configuration change requires AMPS to parse fields that were not needed when an invalid message was published. (AMPS-8116, AMPS-8118, Z18344)

PREVIEWVersion 5.3.4.54 (2024-10-10)

  • Fix crash during concurrent regular expression matching. This crash was observed during parallel queue recovery. (AMPS-8128, Z18368)
AMPS Version 5.3.4.53 was intentionally skipped
AMPS Version 5.3.4.52 was intentionally skipped
AMPS Version 5.3.4.51 was intentionally skipped
AMPS Version 5.3.4.50 was intentionally skipped

PREVIEWVersion 5.3.4.49 (2024-10-03)

  • Improve diagnostic messages logged by AMPS in the event of an unhealthy shutdown. (AMPS-8082, AMPS-8102)
  • Prevent a potential SEGV while logging diagnostic messages in the event of an unhealthy shutdown. (AMPS-8107)

PREVIEWVersion 5.3.4.48 (2024-10-01)

  • Fix issue that could cause unnecessarily long shutdown times and cause AMPS to produce minidumps during shutdown when a queue transfer is being processed as AMPS shuts down. (AMPS-8104)
AMPS Version 5.3.4.47 was intentionally skipped

PREVIEWVersion 5.3.4.46 (2024-09-23)

  • Improve accuracy of file name and line number reported for configuration errors during AMPS startup when the configuration uses Include directives. (AMPS-8053, Z17556)

PREVIEWVersion 5.3.4.45 (2024-09-22)

  • Fix issues caused when AMPS receives transfer requests for a queue that is not configured on the instance receiving the request. The symptoms could include:

    • Regular expression bookmark subscriptions can skip a journal when a 5.3.4 instance uses journal index files written by a 5.3.0 version prior to 5.3.0.302 or a 5.3.X version prior to 5.3.3.52. This could happen if the previous version received a transfer request for a queue that was not configured on the instance. (The issue leading to these index entries was fixed as item AMPS-6797.)

    • AMPS could incorrectly ignore messages and/or transfer requests when transfer requests are received for a queue topic that isn't configured in the instance and that topic is later used (for example, a publish is received for that topic or the instance is recovered with the queue topic added to the configuration).

    With this fix, transfer requests for unknown queue topics are handled correctly. Starting with this version, AMPS will also rewrite journal index files if necessary to correct issues in the files as a result of these problems. The rewritten journal index files are backward-compatible with 5.3.0 and 5.3.X versions of AMPS (but simply correcting issues in existing index files does not prevent the issue from recurring on unpatched versions of AMPS).

    (AMPS-8093, Z18261)

PREVIEWVersion 5.3.4.44 (2024-09-17)

  • Fix crash when AMPS executes a SOW query with the top_n option and the OrderBy parameter specified, and this query is batched with a parallel query and a primary key query. AMPS batches SOW queries when queries for the same topic are processed at the same time. (AMPS-8084, Z18224)
AMPS Version 5.3.4.43 was intentionally skipped

PREVIEWVersion 5.3.4.42 (2024-09-11)

  • Improve performance of rebuilding SOW topics from the transaction log during recovery. (AMPS-8071, Z17312)

PREVIEWVersion 5.3.4.41 (2024-09-10)

  • Fix issue preventing statistics collection for outbound replication clients. (AMPS-7973, AMPS-7979, Z17307)
AMPS Version 5.3.4.40 was intentionally skipped
AMPS Version 5.3.4.39 was intentionally skipped

PREVIEWVersion 5.3.4.38 (2024-08-30)

  • Fix issue where using enrichment and delta publish could cause AMPS to produce invalid JSON. This could happen when enrichment produces a string consisting of a leading 0 and numeric characters. During a merge of a delta publish, this could be converted into an invalid numeric representation in JSON (for example, 01234). With this fix, AMPS will serialize a value with a leading 0 as a string type (for example, "01234"). (AMPS-8049, Z18010)

PREVIEWVersion 5.3.4.37 (2024-08-28)

  • Fix crash when a SOW file contains an unparseable record, the topic uses the content of the record to determine SOW keys, the SOW is recovered due to a server restart, and a command later uses that record (for example, a filtered query, a delta_publish to that record, and so on). (AMPS-8050, Z18010)

PREVIEWVersion 5.3.4.36 (2024-08-23)

  • Fixes and enhancements to messages logged for access to the administrator resources in the Admin console.

    • Fix issue where the 19-0009 log message, indicating that an action has been run from an administrator resource, was incorrectly logged when the amps statistics rollup was accessed (for example, by the Galvanometer). With this change, the message also includes the remote address for the request and the authenticated user id (if the connection is authenticated).

    • Enhance the 05-0017 log message, which logs the source of requests to access statistics, to include the authenticated user id (if the connection is authenticated) as well as the remote address for the request. This change also moves the 05-0017 message to trace level rather than developer level.

    (AMPS-8040, AMPS-7891, Z16708)

PREVIEWVersion 5.3.4.35 (2024-08-21)

  • Fix regression where when the AMPS admin interface is configured to use an ephemeral port by specifying 0 as the port number, AMPS would incorrectly fail to log the port number actually in use. With this fix, the 19-0005 log message will include the port number the admin interface is using instead of the 0 specified in the config. This regression was introduced in version 5.3.3.0 (AMPS-8043, Z18078)

PREVIEWVersion 5.3.4.34 (2024-08-18)

  • Fix issue where the optional transport filter module libamps_transport_filter_correlation_id_timestamp modified the correlation ID of all command types. With this fix, only publish or delta_publish commands will be modified. (AMPS-7559)

PREVIEWVersion 5.3.4.33 (2024-08-15)

  • Fix issue that can cause AMPS to crash if an invalid regex pattern is specified for AccessControlAllowOrigin in the Admin or Protocol configuration. With this fix, AMPS will validate the regex at startup, and exit with an error if the pattern is not valid. (AMPS-8031, Z17903)

PREVIEWVersion 5.3.4.32 (2024-08-13)

  • Fix issue that can cause replication to stop when a sow_delete command incorrectly specifies a SOW key on a queue acknowledgement in addition to the bookmarks of the messages to be acknowledged. This fix allows replication to continue if the command is replicated, and also causes AMPS to return an error if an application sends a command with this error.

    A symptom of this issue is log message 01-0012 (invalid message due to size) recorded for a replication transport with a relatively small size (typically, hundreds of bytes, which should not be considered a large message). (AMPS-8017, Z17735)

AMPS Version 5.3.4.31 was intentionally skipped

PREVIEWVersion 5.3.4.30 (2024-08-07)

  • Fix hang that can occur when AMPS is attempting to remove a journal file and that file is being transitioned to during a bookmark replay
  • This release also enhances the 1D-0080 developer-level log message to include additional information about the cursor state during transaction log file transitions. (AMPS-8012, AMPS-8016, Z17414)

PREVIEWVersion 5.3.4.29 (2024-08-06)

  • Fix hang that can occur during an unsubscribe of a subscription that uses a filter which uses only the primary key of a topic. This issue can happen when there are multiple subscriptions that use only the primary key of the topic, and when the unsubscribe leaves exactly one of these subscriptions still active. (AMPS-8011, Z17358)

PREVIEWVersion 5.3.4.28 (2024-07-22)

  • Fix the web service authentication and entitlements module <EntitlementTimeout> option to reset entitlements on all transports using the same credential cache for users authenticated on the AMPS admin interface, instead of only on the admin transport. (AMPS-7997)

PREVIEWVersion 5.3.4.27 (2024-07-21)

  • Fix the inadvertent rapid logging of a 1D-0102 info level log message which causes 100% CPU usage and can use excessive storage space for logging. (AMPS-7985, Z17346)

PREVIEWVersion 5.3.4.26 (2024-07-19)

  • Fix race condition that can produce an erroneous critical 2C-0017 error when finalizing a transaction log journal on shutdown. (AMPS-7950)

PREVIEWVersion 5.3.4.25 (2024-07-17)

  • Fix issue that could cause excess latency of up to 1 second for the first write to a transaction log when no other messages are present. This latency only affects the first write to the log. (AMPS-7907)

PREVIEWVersion 5.3.4.24 (2024-07-16)

  • Fix race condition that could result in permissions being denied when using the EntitlementsTimeout option for the RESTful authentication and entitlements module.

    AMPS allows a connection to continue to submit commands during the entitlement reset and disconnection process. This could result in a case where the AMPS-level permissions cache denies permissions that the module-level permissions cache would grant. With this fix, rather than denying permissions to connections that are in the process of being reset, the module may grant permissions based on the new permissions set for a request submitted during reset. In addition, the module may run an additional entitlement reset if it detects an entitlement request from a connection in the process of being reset in cases where there are no new permissions available (for example, if a permissions document includes no permissions).

    Notice that this issue could only result in incorrectly denied permissions. This issue would not grant access to resources that a user was not allowed to access. (AMPS-7977, Z17340)

PREVIEWVersion 5.3.4.23 (2024-07-15)

  • Update AMPS to work properly with newer CPUS where CPU model information does not include processor speed. Without this fix, AMPS instances using these CPUs may have issues in timing-related features including (at a minimum) conflation, replication pacing, subscription pacing, and heartbeating. (AMPS-7969, Z17307, Z17325)
AMPS Version 5.3.4.22 was intentionally skipped

PREVIEWVersion 5.3.4.21 (2024-06-28)

  • Fix memory leak or crash that can occur when removing a subscription that uses both the 'oof' option and pagination, aggregation, or conflation. The issue could happen any time a subscription is removed: when a client unsubscribes, when a client disconnects, or during shutdown. (AMPS-7905)

PREVIEWVersion 5.3.4.20 (2024-06-21)

  • Fix issue that affected customers previewing the upcoming "bootstrap initialization" functionality. Instances of AMPS that do not explicitly configure this functionality are not affected. (AMPS-7940, Z15962)

PREVIEWVersion 5.3.4.19 (2024-06-20)

  • Improve the ability to control queue expiration when the messages in the queue have an expiration specified (this can happen if an expiration is set on the message at publish time, or if the underlying topic is a State-of-the-World topic with an expiration set).

    This update adds an optional ExpirationModel parameter to queue definitions. By default, the expiration uses the existing behavior (use message expiration if specified, otherwise use queue expiration). A queue can opt into always using the queue expiration, using whichever expiration (queue or message) is the earliest expiration, or using whichever expiration (queue or message) is the latest expiration.

    See the AMPS Configuration Guide for details.

    (Z16937, AMPS-7822)

PREVIEWVersion 5.3.4.18 (2024-06-16)

  • Fix issue where the order of messages in an aggregated query ordered by a field that contains NULL values differs from a regular SOW query ordered by the same field. (AMPS-7936, Z17242)

PREVIEWVersion 5.3.4.17 (2024-06-14)

  • Fix issue where AMPS could stop processing messages when:

    • An instance of AMPS is under high load or writing to slow storage,
    • The instance grants a transfer for a message that the instance owns, and
    • At the same time, the instance receives a transfer request for a message that is no longer present in the queue.

    (AMPS-7925)

PREVIEWVersion 5.3.4.16 (2024-06-12)

  • Fix crash on startup when the AMPS configuration defines both a TransactionLog and Replication, but does not contain a Topic in either definition. (AMPS-7896, Z17187)

PREVIEWVersion 5.3.4.15 (2024-06-07)

  • Fix issue that could cause a crash, incorrect results, and/or a critical 16-0053 error message when a message in a topic that has a hash index is deleted using a filter expression that uses the hash index. (AMPS-7800)

PREVIEWVersion 5.3.4.14 (2024-06-06)

  • Fix issue with queue recovery when TargetQueueDepth is specified that could cause the active messages to be recovered (and later delivered) out of order. (AMPS-7924)

PREVIEWVersion 5.3.4.13 (2024-06-06)

  • Fix crash that can occur when an acknowledgement for a queue message is processed at the same time that a sow query of the queue is being processed. (AMPS-7821)

PREVIEWVersion 5.3.4.12 (2024-06-04)

This version fixes the following issues:

  • Prevent a possible crash when recovering more than 64 queue topics on a system with more than 64 cores. (AMPS-7922)
  • Improve queue recovery performance and limit memory usage during parallel queue recovery. (AMPS-7923)

PREVIEWVersion 5.3.4.11 (2024-05-31)

This version fixes the following issues:

  • Improve AMPS response time and resiliency when handling large numbers of concurrent logon requests by more efficiently ending the logon process if a client disconnects before logon completes. (AMPS-7854, Z15962)

  • Improve the scalability of the RESTful authentication and entitlements module by:

    • Halting the logon process if the client disconnects during logon.

    • Halting the logon process if credentials fail to authenticate when retries are configured. Previously, the module would retry identical credentials.

    • Refusing authentication if the response document does not grant any usable permissions to the authenticated user and there are no cached permissions. Previously, authentication would succeed, but the connection would immediately fail entitlement checks and be disconnected. This reduces the amount of work done by the module and AMPS.

    • Reducing lock contention to avoid lock starvation in a connection flood or repeated retry situation.

      In some cases, this may require an additional reconnect for a client that connects simultaneously with an entitlement reset taking place.

    (AMPS-7854, Z15962)

PREVIEWVersion 5.3.4.10 (2024-05-29)

This version fixes the following issues:

  • Fix issue introduced in 5.3.4.1 (AMPS-7656, AMPS-7466) where processing a high volume of queue transfer messages could cause message processing to be delayed or stop. (AMPS-7798, AMPS-7906)

PREVIEWVersion 5.3.4.9 (2024-05-25)

This version fixes the following issues:

  • Fix crash during shutdown when one or more Topic entries in the SOW specify a Pattern to group related logical topics into one physical topic. (AMPS-7884)

  • Fix crash during shutdown where AMPS could attempt to free memory from the state of the world twice. (AMPS-7900)

PREVIEWVersion 5.3.4.8 (2024-05-24)

This version fixes the following issues:

  • Fix delivery of oof notifications to a sow_and_subscribe or sow_and_delta_subscribe command when:

    • Transaction log topic indexing is enabled,
    • The subscription uses a bookmark,
    • The subscription does not use a regular expression for the topic, and
    • AMPS processes a sow_delete command that uses a regular expression that matches the topic in the subscription.

    (AMPS-7878)

  • Fix initialization of the transaction log topic index and queues that persist metadata in cases where journal files have been removed. (AMPS-7856)

PREVIEWVersion 5.3.4.7 (2024-05-23)

This version fixes the following issues:

  • Fix performance regression introduced in AMPS-7606 (5.3.4.1) that could result in:

    • Reduced performance when a high number of publishers are publishing at high velocity. (AMPS-7887)

    • Shutdown hang when embedded clients are processing a large number of messages when shutdown happens.

      Embedded clients are used in many action modules and the VALUE_LOOKUP UDF that ships with AMPS. Any custom modules that use embedded clients could also be affected. (AMPS-7868)

PREVIEWVersion 5.3.4.6 (2024-05-22)

This version fixes the following issues:

  • Fix crash caused by a race condition while marking a transaction record as completely processed and available for reuse. (AMPS-7883)

PREVIEWVersion 5.3.4.5 (2024-05-21)

This version fixes the following issues:

  • Fix issue where AMPS would create new journals at the larger of the configured <JournalSize> or the largest journal size present in the transaction log. With this fix, new journals will be created at the configured <JournalSize> even when larger sizes are present. (AMPS-7864, Z15962)

PREVIEWVersion 5.3.4.4 (2024-05-18)

This version provides a fix for issues with displaying replication information in Galvanometer:

  • Add the new ExternalInetAddr configuration parameter to the Admin section. This parameter allows the instance to explicitly set an address that tools such as Galvanometer should use for collecting data from this instance.

    When an instance that has this fix connects to a downstream instance, the ExternalInetAddr for the downstream instance is recorded as the value for the destination_admin_addr in the /amps/instance/replication Admin path. This then allows tools such as Galvanometer to use this address for collecting data from the downstream instance. (AMPS-7818, Z16995, Z16223)

PREVIEWVersion 5.3.4.3 (2024-05-13)

This version fixes the following issues:

  • Fix memory corruption and possible crash when a journal larger than the configured journal size is present. (AMPS-7820)

PREVIEWVersion 5.3.4.2 (2024-05-10)

This version fixes the following issues:

  • Fix issues with transaction log topic index recovery (feature added in 5.3.4.1):
    • Fix issues that could cause a transaction log topic index to incorrectly recover after a restart when the instance contains a distributed queue and the last event recorded for a topic in the transaction log is queue ownership transfer. (AMPS-7796)
    • Fix issues that could cause a transaction log topic index to incorrectly recover when a queue message is removed for a reason other than a success ack, such as expiry, max deliveries, max cancellations, etc. (AMPS-7813)
    • Fix to rebuild transaction log index correctly in cases where AMPS shut down shortly after the index was trimmed (such as a shutdown shortly after an action removed journals). (AMPS-7790)
    • Fix issue that could cause AMPS to crash after recovering a transaction log topic index. (AMPS-7792)
    • Fix to logging message emitted when the transaction log and transaction log topic index are inconsistent to more accurately describe the inconsistency. (AMPS-7806)

PREVIEWVersion 5.3.4.1 (2024-05-01)

  • Compatibility with previous releases:

    • This release fully supports in-place upgrade from 5.0.0, 5.2.0, 5.2.X/5.3.0, and 5.3.X data files. There is no need to run the amps-upgrade script for this release.

    • This release supports replication to 5.2.0 and later versions of AMPS, although features added in later versions of AMPS may be replicated as the nearest equivalent operation to versions of AMPS that do not support that behavior. 60East recommends that replication between different release streams of AMPS is used during a rolling upgrade only, and that matching versions of AMPS are used for production or stable test or development environments.

    • This release reduces the amount of buffer space that a single client may consume by default to 50% of the available buffer space rather than 100% of the buffer space. Notice that other changes in this release improve the accuracy of accounting and efficiency of buffer usage. This does not affect the overall setting for MessageMemoryLimit or MessageDiskLimit, only how much of that limit may be consumed by a single client.

      If your installation uses large result sets, or installing this release results in a higher number of clients disconnected due to slow client management, add the global configuration item <ClientMaxCapacity>100%</ClientMaxCapacity> to restore the setting to the previous default. (AMPS-7010)

    • The fix, nvfix and xml Protocols -- that is, using these formats rather than the standard amps/websocket format for command and message metadata -- are now considered to be maintenance-only features. This means that in the event that new functionality requires a change to message metadata, these legacy protocols are not guaranteed to be enhanced with the new functionality.

      This does not change support for the existing functionality of these protocols. This does not change any current functionality of AMPS. There is no intent to remove these protocols. This change has no effect on using fix, nvfix, or xml for the content of a message.

      60East has recommended using the amps/websocket protocol for new development since the amps protocol was introduced in version 4.0. Protocol features such as the ability to support multiple message types for a Transport are currently limited to the amps/websocket protocol. This compatibility note clarifies that the legacy protocols will be maintained, but may not be extended for new functionality.

    • The amps-action-do-vacuum-statistics action module is deprecated, and no longer modifies the statistics database. Recent guidance on this module has been to not use this module but instead to perform offline database maintenance in the rare cases where vacuuming the database would be beneficial. The module is still present, but calling this module as part of an action no longer changes the statistics database. AMPS logs a warning if the module is used in an action. The AMPS User Guide section on the statistics database has information on how to shrink the size of the database if it is necessary to do so. (AMPS-6726)

    • A GroupLocalQueue will now by default only process transfer requests from instances in the same replication Group for any transfers created on 5.3.4.0 or above. To enable instances from different replication groups to share the queue, or to partition a GroupLocalQueue within a replication group, set the GroupLocalQueueDomain tag within the queue definition. Instances that have the same value for the GroupLocalQueueDomain will share the same distributed queue.

      In previous versions of AMPS, all GroupLocalQueue instances with the same name shared the same distributed queue. This was the case regardless of the replication Group, and there was no way to change that behavior.

      To restore the previous version behavior, add a GroupLocalQueueDomain with the same value (for example, <GroupLocalQueueDomain>shared</GroupLocalQueueDomain>) to the GroupLocalQueue definitions. (AMPS-7367, Z15604)

    • AMPS now removes the queues.ack entry for a queue that has been removed from the configuration file when AMPS is restarted. This means that if a queue is removed from the configuration and then subsequently recreated, AMPS will rebuild the queue from the records in the transaction log rather than recovering the topic from the last fully-acknowledged point. The RecoveryPoint configuration option for a queue can be used to explicitly specify a different recovery point if necessary. (AMPS-6544)

    • In the statistics database:

      • The field that notes whether a replication connection is currently established (is_connected) has been moved from the IREPLICATIONS_STATIC table to the IREPLICATIONS_DYNAMIC table.

      • The fields that track current capacity of a file system (file_system_free_percent) has been moved from the HDISKS_STATIC table to the HDISKS_DYNAMIC table and from the IFILE_STATIC table to the IFILE_DYNAMIC table.

      Queries that use the admin interface and queries that use the amps-sqlite3 utility are unaffected. Any process that queries the database directly and explicitly references these columns may need to be updated. (AMPS-6569, AMPS-6570)

    • Galvanometer has removed support for legacy browsers that are no longer recommended or supported by the browser provider (in particular, Internet Explorer).

  • This version adds the following features and major improvements:

    • This version of AMPS can maintain a topic index for the transaction log to substantially improve performance for bookmark subscriptions in cases where messages to a given topic are sparsely distributed within the transaction log. In particular, this can reduce the amount of time it takes a subscription to receive the first message and reduce the amount of time between messages when messages to the topic are widely separated.

      See the AMPS User Guide and the instance tuning section of the AMPS Configuration Guide for details. (AMPS-6890)

    • This version of AMPS adds support for collecting a large number of related logical SOW topics in a single physical SOW topic by specifying a Pattern in the Topic definition. This is particularly useful when converting from a messaging system that only provides topic-based routing to AMPS.

      This feature is designed to be highly efficient for an installation that needs a large number of topics with an identical message structure and a small number of current values per topic (typically, a single message per topic).

      When a Pattern is specified, the logical topics with names that match the pattern are stored in a single physical topic within AMPS (a single data file and single in-memory topic). Topics that collect multiple logical topics into a single physical topic have some limitations as compared to a standard Topic in the state of the world. For more details, see the "State of the World" chapter of the AMPS User Guide. (AMPS-6682)

    • This version of AMPS improves write concurrency and throughput of transaction logs. This is a result of both optimizations in AMPS itself and improvement in how AMPS submits requests to the filesystem. These improvements can be particularly noticeable in cases where the filesystem offers high throughput but also has a relatively high write latency. (AMPS-7389, AMPS-7275, AMPS-6906, AMPS-6937, AMPS-6827, AMPS-6826, AMPS-6327, AMPS-6326)

    • This version of AMPS significantly improves performance and reduces memory consumption when large numbers of simultaneous replays from the journal are underway. (AMPS-6823)

    • This version of AMPS allows queue metadata to be stored to a persistent file by enabling FileBackedMetadata in the configuration for the queue.

      This can improve recovery time for large queues, and allows the operating system to choose to page out queue metadata state if the queue is inactive, freeing memory if needed for other uses. (AMPS-6860, AMPS-6898)

    • This version of AMPS allows a queue to be configured with a target for how many messages the queue should process and make available at a given time (TargetQueueDepth). As messages are consumed (or expire) from the queue, later messages are made available. For queues that are infrequently consumed, this can defer the processing for messages outside of the target depth until those messages are needed.

      See the AMPS User Guide for details. (AMPS-6969)

    • This version of AMPS includes the ability to enforce mutual certificate verification for client connections over TLS. (AMPS-6788)

    • AMPS now allows a user-configured action to be invoked from the admin console or Galvanometer. Parameters to the action can be provided in the URI (or in the Galvanometer interface) to allow runtime parameterization of the action. See the AMPS Configuration Guide section on "Running an Action in Response to an HTTP Request" in the chapter on AMPS actions for more details. (AMPS-2412)

    • AMPS now includes support for message affinitization, that is, notifying a specific processor that it should process updates for a specific record in a Topic in the SOW. The AMPS action infrastructure manages assigning and revoking affinitization, using the new amps-action-on-message-affinity module. The usage pattern for message affinitization is described in the the AMPS Configuration Guide section on "Running an Action on Affinity Assignment" in the chapter on AMPS actions.

    • AMPS now includes the ability to invoke actions when a subscription is entered by a client, or when a client unsubscribes. See the AMPS User Guide section on "Running an Action on Subscribe or Unsubscribe" in the chapter on AMPS actions for more details.

    • AMPS now includes an If action step that evaluates an AMPS expression to determine whether the action should proceed. This action accepts any valid AMPS filter, and allows text in the filter to be expanded when the action is run. See the AMPS User Guide "IF Element" section in the chapter on AMPS actions for more details. (AMPS-3347, Z6162, Z13890)

    • The AMPS OrderBy statement now accepts a TEXT hint to sort a given field as a string. By default, the AMPS ordering considers any value that can be successfully converted to a number to sort as a number. This hint provides a way to override this behavior for fields that should be sorted as a string even though the field may contain numeric values. (AMPS-6507, Z12661)

    • This version of AMPS no longer includes a subset of server documentation in the download package. Instead, full documentation is available from https://docs.crankuptheamps.com .

      This change improves cross-linking between the documentation, since it is now designed to have the full set of documentation available (rather than having a subset included with the server and complete documentation on the website).

      This change also restores the ability to download the server documentation in PDF format. (AMPS-7749)

    • This version of AMPS includes the ability for a top_n bookmark subscription to continue receiving messages through the use of the resume option. Issuing a bookmark subscription with top_n will return the top n messages and then pause. If the same subscription id issues another subscription with top_n and resume, AMPS will resume sending messages from the point where the original bookmark subscription was paused, and pause again after the number of messages specified by the top_n on the resume command. (AMPS-6875)

  • This version adds the following improvements:

    • Improve efficiency of replication resynchronization. With this improvement, a replication connection can optimize transaction log replay based on the messages present in the transaction log (previously, transaction log replay was based on the point at which the two instances had previously been fully synchronized). This can significantly improve resynchronization time in replication topologies that have more than two instances of AMPS. (AMPS-6708)

    • Improve parallel filter evaluation to optimize overall throughput and system CPU usage. (AMPS-6583)

    • Reduce latency in send engine code by tuning internal signaling of waiting processes on builds that use processor instruction set optimizations (in other words, these optimizations do not apply to the ampServer-compat binary that uses fewer optimizations). (AMPS-5615)

    • Improve tuning of publish engine to reduce latency at intermediate-throughput rates (by improving when to use a high-throughput approach to sending messages rather than a low-throughput approach). (AMPS-6737)

    • Improve performance of generating delta messages in situations where the CPU calculating the differences is saturated or close to saturated. (AMPS-6615)

    • This version adds new aggregate functions for constructing fields in views, aggregated queries, or aggregated subscriptions. See the section on field construction in the AMPS user guide for details. (AMPS-7654)

    • This version includes a variety of performance improvements including improvements to topic management (AMPS-6528), hash index management (AMPS-6540), hash and checksum calculation (AMPS-6720), topic regular expression matching (AMPS-6749), adding and removing subscriptions (AMPS-6750), processing multiple simultaneous bookmark replays (AMPS-6751), deleting records from a SOW topic using the primary key (AMPS-6769), subscription matching for a filter that is an exact match on a single primary key value (AMPS-7213), creating internal headers for incoming messages (AMPS-6897), recovering queue state from the transaction log (AMPS-6863), message queue delivery (AMPS-6858), numeric parsing for many message types (AMPS-6836), processing for queue acknowledgements where the message has not yet been received (AMPS-6834), and improving concurrency of parsing expressions (AMPS-6493).

    • Reduce latency in situations where only a single publisher is publishing to AMPS. (AMPS-6519)

    • The amps-action-do-sow-query action now accepts an Options configuration element for more control over the query. (Notice, though, that this action still returns a single record.) (AMPS-6604)

    • AMPS now recognizes when a connection failure is the result of a telnet client connecting to a Transport and logs an appropriate error message. Previously, the message logged did not indicate that the connection originated from a telnet client. (AMPS-6525, Z12919)

    • Improvements in statistics:

      • Improve efficiency of statistics collection, including overall improvements (AMPS-6752, AMPS-7351), better handling of cases where large parts of the State of the World are not resident (AMPS-6591), managing collection of network statistics for individual clients (AMPS-6739), and lighter-weight collection of statistics for transaction log writes (AMPS-7637).

      • AMPS now records the amount of anonymous memory allocated in the statistics database. (AMPS-6577)

      • The statistics database now notes whether a given client connection is advertising a TCP window size of 0 when a statistics snapshot is taken. (AMPS-6567)

      • The statistics database now includes host-level bytes read per second and bytes written per second for the partitions visible to AMPS. (AMPS-6874)

      • The statistics database now captures host-level network bytes_in_per_sec and bytes_out_per_sec. (AMPS-7550)

      • The statistics database now captures disk statistics from paths mounted under /dev when files used by AMPS are stored there. (AMPS-7492)

      • Improve histogram reporting for transaction log writes to be easier to understand. (AMPS-6728)

      • Improve accuracy of statistics for query counts of SOW topics. Starting in this version, AMPS will count each individual query when multiple queries are combined for evaluation. In previous versions, combined queries were counted as a single query for statistics purposes, which could under-report the actual query load on the instance. (AMPS-7137)

    • AMPS now sets descriptive names for a larger number of threads to make monitoring with tools such as htop easier. (AMPS-6738, AMPS-7651, AMPS-7429, AMPS-7113)

    • AMPS now removes the queues.ack entry for a queue that has been removed from the configuration file when AMPS is restarted. This means that if a queue is removed from the configuration and then subsequently recreated, AMPS will rebuild the queue from the records in the transaction log rather than recovering the topic from the last fully-acknowledged point. The RecoveryPoint configuration option for a queue can be used to explicitly specify a different recovery point if necessary. (AMPS-6544)

    • AMPS no longer logs an error when an SSL client disconnects in an expected way. Although the SSL interface reports this as an error, it is more useful to log an SSL disconnection as a disconnect rather than as an error. (AMPS-6550)

    • AMPS now transparently allows a SOW file to be converted from a topic that maintains history to a topic that does not maintain history. With this change, AMPS will automatically remove historical state from a SOW file that does not specify History in the topic configuration. (AMPS-6634)

    • The "bookmark" option is now supported for a wider variety of commands. Previously, this option was only available on queries of a queue topic. (AMPS-7194)

    • Improve SOW expiration processing to increase responsiveness when large numbers of expirations are occurring. (AMPS-6704)

    • Improve performance of queue transfer request processing by processing multiple requests at once when multiple requests are available. (AMPS-7656, AMPS-7466)

    • Improve performance of queue acknowledgements (sow_delete) by writing multiple acknowledgement records at once when multiple acknowledgements are available. (AMPS-7643)

    • Improve throughput of writing to the AMPS transaction log by optimizing the use of asynchronous writes when possible. (AMPS-7645, AMPS-7646)

    • Improve performance of bookmark subscriptions when there are a large number of bookmark subscriptions that use the top_n option. (AMPS-7345)

    • AMPS will now produce a helpful configuration error if the SQLTransport specified in the Admin interface is configured to use TLS/SSL when the Admin interface is not configured to use HTTPS. Previously, the error reported that the Transport could not be found, not that the transport was the wrong type. (AMPS-6643, Z13223)

    • Improve logging for bidirectional replication connections by including more information on the instances that are connected. (AMPS-6722)

    • The 1F-0009 log message (indicating that a client disconnected before an acknowledgement message could be sent to the client) now provides more information about the unsent acknowledgements. (AMPS-6651)

    • Reduce memory usage when AMPS is receiving high-velocity publishes to a large number of distinct topics that are recorded in the transaction log and no subscriptions are active. (AMPS-6762)

    • Improve ampserr entries for commonly-reported configuration issues with additional guidance. (AMPS-6717)

    • Improve efficiency of determining whether a query can be partially evaluated with a hash index or primary key. (AMPS-7625)

    • Improve efficiency of canceling SOW queries (for example, when a client disconnects while the query is in progress). (AMPS-7166)

    • Improve handling of queue acknowledgements that arrive for messages that are not in the transaction log (this can occur either when the acknowledgement has a shorter path to the instance than the original message, or when the message has already been removed). Records of these acknowledgements will now be retained for the configured period, the queue expiration period (if no explicit time is configured), or 24 hours if the queue does not have expiration enabled and no explicit time is set. See the AMPS Configuration Guide for details. (AMPS-7591)

    • Fix issue that could cause queue consumption to slow down in a replicated queue when messages have expired from the owning instance but have not expired from an instance where a subscriber is active. In this case, the response from the owning instance could be incorrectly interpreted as meaning that there is an active consumer, not that messages are expiring. This caused incorrect transfer prediction, slowing down the rate of transfer requests for the subscriber. With this fix, transfer requests are more accurately calculated in this situation. (AMPS-7388)

    • Fix issue where a failure to compile an expression during startup could cause AMPS to crash. This will now be reported as a configuration error and cause a controlled shutdown. (AMPS-7129)

    • Improve memory residency of transaction log replays by explicitly requesting that the operating system free the page cache used for journal files when AMPS no longer needs them in memory. (AMPS-7379, AMPS-7506)

    • Improve write performance for SOW files by minimizing unnecessary page flushes. This is especially helpful for very large SOW files. (AMPS-7023)

    • Improve performance of creating and placing a large number of bookmark subscriptions that begin at EPOCH. (AMPS-7485)

    • Improve distribution of clients among send threads for better performance. (AMPS-7193)

    • Improve performance of bookmark subscriptions that use a regular expression to specify topics when there are a large number of distinct topics in the transaction log. (AMPS-7334)

    • Improve performance of bookmark subscriptions by reducing the amount of state required for parsing and filter matching. (AMPS-7208)

    • Improve performance of bookmark subscriptions by optimizing processing for subscriptions without a select list. (AMPS-7197)

    • Improve performance of subscription matching when bookmark subscriptions are present. (AMPS-7327)

    • Improve processing of bookmark subscriptions to more quickly process updates to subscriptions. (AMPS-7482)

    • AMPS now accepts a $ as part of an identifier name within brackets (for example, [/$name]). (AMPS-7540)

    • AMPS will now allow setting the SlabSize for a SOW topic as low as 64K. Previously, although AMPS accepted values lower than 1MB, the implementation would use a 1MB size if the configured value was smaller than 1MB. (AMPS-7516)

    • Increase the ability of AMPS to complete in-process operations to storage when AMPS is shut down. With this fix, AMPS will attempt to complete writes that have been submitted but not yet written. (AMPS-7534)

    • Improve configuration file Include processing to add a newline after the include comment to better preserve formatting of the included file. (AMPS-7456)

    • Improve AMPS-level NUMA tuning for lower latency message processing. (AMPS-7428)

    • A Transport that uses a Unix domain socket can now specify a file mask to be used for that socket. See the AMPS Configuration Guide for details. (AMPS-7425)

    • Improve performance of producing message headers for subscriptions that use a regular expression for the topic. (AMPS-7409)

    • Improve performance of serializing transaction log indexes. (AMPS-7389, AMPS-6906)

    • Improve overall throughput of queries and deletes when under high load. (AMPS-7235, AMPS-7141)

    • Improve performance of SOW recovery by improving parallelism. (AMPS-7144)

    • Improvement to rewrite journal index files when AMPS detects that an index is inconsistent with the journal. This would typically only happen if the journal files have been changed outside of AMPS. (AMPS-7246)

    • Add an option to AMPS replication ('ResyncPassThrough') to use a different value for passthrough during replication resynchronization.

      This allows additional protection against message loss in replication topologies that are not fully symmetrical (that is, where -- by design -- a replication topology does not fully replicate messages but requires that certain links are always present to avoid message loss). See the AMPS Configuration Guide for details. (AMPS-7140)

    • Add an option to AMPS replication (MinSyncDestinations) to prevent AMPS from downgrading a replication destination if doing so would cause fewer than a configured number of destinations to use sync acknowledgement.

      Notice that when this option is configured, the option only prevents downgrade if that downgrade would cause the number of sync destinations to be lower than the threshold. The option does not upgrade destinations that have been downgraded if a sync destination disconnects. (AMPS-7079)

    • Improve performance of message queue delivery by optimizing management of delivery cursors and admin cursor and reducing the frequency of state for statistics purposes for queues with no activity. (AMPS-7221, AMPS-7215)

    • Improve logging messages for various events including message queue expiration, journal read failures, extended delays in writing to the filesystem, minidumps being produced, statistics collection taking longer than expected, heartbeat and journal message sequencing issues, queue initialization, view definition issues, slow client offlining, sow query logging, processing engine work rebalancing, logging relevant environment variables on startup, delays in shutdown, warnings emitted due to incorrect configuration, embedded client creation, replication logon processing, normalizing timestamps within replication logging messages to UTC, logging remote addresses in replication messages, and so on. (AMPS-7677, AMPS-7614, AMPS-7535, AMPS-7493, AMPS-7332, AMPS-7245, AMPS-7146, AMPS-6981, AMPS-6951, AMPS-6900, AMPS-6872, AMPS-6848, AMPS-6733, AMPS-6574)

    • Improve support for changing the SlabSize of a topic in the State of the World. AMPS will now rewrite the existing file with the new size during recovery if the SlabSize has increased. (AMPS-6896)

    • Provide an option for the web service authentication and entitlement module to reuse HTTP connections to the authentication web service where possible. See the AMPS User Guide for details. (AMPS-7088, Z14955)

    • The web service authentication and entitlement module will now export HTTP headers received on an authentication request so that those headers are visible to the authentication web service. This is helpful, in particular, for requests to the admin console, including requests received from Galvanometer. (AMPS-7056)

    • Improvements to the utilities bundled with AMPS:

      • Utilities that use python have improved support for python3. (AMPS-7145, AMPS-7021, AMPS-6980)

      • Improve performance of utilities that calculate checksums (such as the tools that dump files). (AMPS-6976)

      • Utilities will handle files that do not exist or cannot be opened more consistently. (AMPS-7300, AMPS-7288, AMPS-7258, AMPS-7222)

      • Utilities will now exit more gracefully when receiving a SIGINT (for example, when a user presses ctrl-c while a utility is running). (AMPS-7310)

      • Improvements to the amps_journal_search utility:

        • The amps_journal_search utility will now use journal index files to reduce search time when those files are available. (AMPS-7120)

        • The amps_journal_search utility now includes a --no-data flag to omit message contents from the output. (AMPS-5075)

        • The amps_journal_search utility now includes a --client flag that will search client hash(es) metadata and output all matching records. (AMPS-7155)

      • Improvements to the amps-sqlite3 utility:

        • The amps-sqlite3 utility is now an included standalone application rather than a python script. This improves performance. With this change, the utility will also omit duplicated columns (which could be present in earlier versions of the utility). (AMPS-7069)

        • The amps-sqlite3 utility now supports a --size flag to report the table sizes in descending order rather than running a query. (AMPS-6992)

      • Improvements to the amps_journal_dump utility:

        • The amps_journal_dump tool will no longer crash when dumping a corrupt journal file. (AMPS-7298)

        • The amps_journal_dump tool will now correctly handle compressed journals that uncompress to large journal files (files with a size that does not fit into a 32 bit integer). (AMPS-7298)

        • The amps_journal_dump tool has updated the tags used for field names to be more descriptive. (AMPS-7107)

        • The amps_journal_dump tool now correctly reports message type values for bson and bflat. (AMPS-7008)

        • The --no-data flag to the amps_journal_dump tool will no longer omit data fields for journal records where the content of the field is used by AMPS rather than containing message data. For example, a record for a sow_delete using a bookmark includes the list of bookmarks to be acknowledged in the data field of the transaction log record. In this case, the content of that field is command metadata rather than message data, and should be included in the dump. (AMPS-7181)

        • The amps_journal_dump tool now includes an --include-noops command line to include journal records submitted for write alignment purposes. (AMPS-6841)

      • Improvements to the spark command line client utility:

        • The spark utility now includes a --copy flag that will output messages from one AMPS instance directly to another AMPS instance without having to use an intermediate file. Notice that this is a subscribe on one instance and a publish on the other instance: it copies message data, but does not preserve metadata (such as the original publish client, original publish time, and so on). (AMPS-7014)

        • The spark utility now includes the ability to include message headers in the output by specifying a format string to be used when printing messages. See the AMPS User Guide for details. (AMPS-6975)

      • Improvements to the amps-grep utility:

        • The amps-grep tool now includes the ability to search journal files. This offers the ability to search within data and a more extensive header search than amps-journal-search. (AMPS-7181)

        • The amps-grep tool now provides a --json option which will produce JSON-format output from error and event log messages that match the search. This can be useful for analyzing activity or constructing tests that reproduce the activity for an instance. (AMPS-7621)

        • The amps-grep utility now supports searches over gzip compressed files. (AMPS-6450)

    • Improve performance of the VALUE_LOOKUP() optional function by using a more efficient data structure for the lookup. (AMPS-7126)

    • The amps-simple-access-entitlement module now provides the ability to set the permissions granted to allow only read access or only write access (the default still grants both read and write access). See the AMPS User Guide for details. (AMPS-6921)

    • The amps-default-authentication module now includes an optional setting to require that a user name is set for a logon request. (AMPS-6869)

    • This version upgrades the version of sqlite3 included with the AMPS server. (AMPS-7094)

    • Reduce processing required when a client is disconnected with active subscriptions. (AMPS-7030)

    • Improve the minimal sample configuration file produced by the --sample-config flag to include persistence and maintenance actions in commented out sections to show a more realistic minimal configuration.

      The sample configuration no longer specifies localhost for the administrative interface. Instead, the sample configuration will allow the administrative interface to bind to all network interfaces. (AMPS-6933, AMPS-6553)

    • Delta publish and delta subscribe support has been added for protocol buffers version 3 (3.15 and later) for fields that are explicitly tagged as optional. With this support, any optional field that is not present is treated as in the same way that a missing field is in other message types. Any field that is not explicitly tagged as optional is considered to be required. Required fields must be present on delta publishes and will be included in the messages generated for delta subscribe. If a publisher needs to update the value of a field to the default value, it should explicitly set that value rather than relying on the default. (AMPS-6712)

    • Minor restructuring of headers in the AMPS server sdk so that constants for acknowledgement types are now in amps_common.h. (AMPS-7672)

  • This version fixes the following issues:

    • Fix issue that could cause a crash when AMPS is attempting to write to a file system that is extremely slow or in the process of failing (such that write latency times are on the order of tens of seconds). With this fix, AMPS will no longer crash as a result of the slow write times, although thread monitoring may still shut down AMPS due to the slow response of the system overall. (AMPS-6612)

    • Fix race condition that could cause AMPS to crash or return incorrect results if paginated subscription for a topic is entered at the same time an update or delete is being processed for that topic. (AMPS-6756)

    • Fix issue where action eventing mechanism could incorrectly report a potentially stuck thread even though work is occurring normally. (AMPS-7673)

    • Fix to return an error when a sow_and_subscribe or sow_and_delta_subscribe command that uses pagination (that is, it includes both the top_n and skip_n options) does not specify a topic in the State-of-the-World. Without pagination options, AMPS interprets this command as a normal subscribe: however, it is not possible to provide pagination when there is no state maintained for the topic. (AMPS-6955)

    • Fix issue where the readable representation of a BFlat message (as shown in Galvanometer and logged in event log traces) could produce an invalid JSON message due to failing to escape characters properly. This issue does not affect the actual BFlat message contents. (AMPS-6899)

    • Fix issue that could cause a crash when amps-action-do-compact-sow runs at the same time a sow_delete command is running and a subscription that uses both conflation and pagination is active. (AMPS-6558)

    • Fix issue with queue delivery where replacing a subscription to set max_backlog to 0 and then immediately acknowledging a message could result in a message being delivered. With this fix, AMPS ensures that a subscription update from a client is fully processed before processing an acknowledgement from the client. (AMPS-7340)

    • Fix issue where using amps-action-do-delete-sow could progress to the next step before the delete has fully completed. (AMPS-7675)

    • Fix issue where a topic that uses a publisher-provided key and preprocessing, enrichment, or delta publish could write the incoming publish to the transaction log (rather than the enriched or merged message). This problem was more common with extensive enrichment rules or when the system was under heavy CPU load. (AMPS-6674)

    • Fix race condition that could cause AMPS to crash when a connection with no subscriptions closes unexpectedly. (AMPS-6628)

    • Fix issue where, if multiple actions were configured for the same event, amps-action-on-execute-event would only run the last Action in the configuration file. With this fix, amps-action-on-execute-event will run all actions for a given event. (AMPS-6459, Z12716)

    • Fix issue where AMPS would crash on startup rather than producing a configuration error if multiple Topic configurations used the same FileName. With this fix, AMPS will produce an error on startup indicating the problem and refuse to start. (AMPS-3394)

    • Fix to explicitly disallow sow_delete by data for a SOW topic that uses publisher-provided keys, including in cases where a sow_delete that uses regular expression topics matches both topics that use AMPS-generated keys and topics that use publisher-provided keys. (AMPS-7228)

    • Fix issue that could cause an error during AMPS shutdown when delta subscriptions were active. (AMPS-6251)

    • Fix issue where a message would not be correctly removed from a sow topic when the message, and the sow_delete command that removed the message, are both outside of the specified Window for the topic. (Z15930, AMPS-7761)

    • Fix issue that could cause a hang on AMPS shutdown when AMPS has a large number of messages in process at the time the shutdown is requested. (AMPS-7325)

    • Fix issue where amps_bio_perf_test could report a mean latency of 0 if the output file holding the verbose output could not be opened. With this fix, the utility will instead exit with an error. (AMPS-6513)

    • Fix issue where a compressed journal file that does not have an index file could be incorrectly recovered. This situation improves recovery in cases where files have been incorrectly removed from the journal directory or journal archive directory outside of the control of AMPS. (AMPS-7587)

    • Fix issue where AMPS could incorrectly use a compressed filename when rebuilding a missing journal index file upon recovery. (AMPS-7256)

    • Fix issue where disabling a transport while a long-running operation is in process would not fully disconnect a client until that operation is complete. With this fix, the client will be disconnected when the transport is disabled even if an operation started by that client is still in progress. (AMPS-6554)

    • Fix issue where the AMPS admin interface incorrectly returned a 403 error code (Forbidden) rather than a 401 error code (Unauthorized) if authentication failed. This could cause web browsers to incorrectly cache invalid credentials. (AMPS-6632)

    • Fix issue where if the statistics database is locked when a static record must be written (for example, if an external process is querying the database when a client connects), that record was never written. This could lead to incomplete statistics information For example, in a situation where an external process queried the database when a client connects, the statistics database could contain metrics for the client but have no entry that records the client name, connection time, and so on. (AMPS-6851)

    • Fix issue that could reduce performance of statistics collection and cause a client to take longer than expected to be closed. (AMPS-6633)

    • Fix issue where inflated metrics could be recorded to the statistics database at the first statistics interval (caused by calculating a rate from a sample size of a fraction of a second). (AMPS-7225)

    • Fix issue where AMPS could use more CPU than necessary when a bookmark subscription that uses the live option is the last subscription in a bookmark processing thread and that subscription reaches the cutover point (that is, the subscription finishes replay and no longer tails the transaction log). AMPS-6740

    • The amps_fast_journal_dump utility (automatically invoked in most cases by amps_journal_dump) will now report an error if passed a filename that does not exist, instead of simply returning no results for that filename. (AMPS-6579)

    • Fix issue where SOW queries could continue to run after the AMPS shutdown process starts. With this fix, AMPS immediately halts those queries. (AMPS-6592)

    • Fix issue that could cause AMPS to hang during shutdown when a sow_delete by query is waiting for another sow_delete by query to complete when shutdown is initiated. (AMPS-6602)

    • Fix issue in configuration validation that would allow multiple replication destinations to attempt to connect to the same IP and port combination. This is now correctly flagged as a configuration error. AMPS supports only one replication connection to a given downstream instance. (AMPS-6625)

    • Fix issue where expiration processing for a SOW topic affected query statistics for that topic. With this fix, expiration processing no longer increments query statistics for a SOW topic. (AMPS-6639)

    • Fix issue where AMPS could incorrectly accept an options string that contains unbalanced brackets. This would produce unexpected results from the query or subscription. With this fix, AMPS correctly reports invalid options for the command. (AMPS-6663)

    • Fix issue where AMPS could incorrectly accept an options string that contains invalid options for conflation_key. With this fix, AMPS correctly reports invalid options for the command. (AMPS-6669)

    • Fix issue that could cause AMPS to exit when determining the remote address of a client connection. (AMPS-7433)

    • Fix issue where statistics collection was doing unnecessary work when determining the remote address of a client connection. (AMPS-7433)

    • Fix issue where errors reported from the OpenSSL library could be logged with incomplete information. (AMPS-6822)

    • Fix issue where an unsubscribe command that requests a completed acknowledgement could receive the acknowledgement before all subscriptions were closed on the server. (AMPS-7455)

    • Fix issues when replacing a queue subscription that uses a regular expression for the topic:

      • The max backlog for the subscription could be reset to to 1

      • If the regular expression changed, message delivery could stop.

      (AMPS-7436)

    • Fix issue where, if AMPS shuts down during replication resync, the shutdown process could hang or produce an emergency shutdown. (AMPS-7449)

    • Fix issue that could cause a crash if the http authentication and entitlements module is configured with an Entitlements block that does not reference a credential store in a matching Authentication block and is not set to EntitlementsOnly mode. With this fix, AMPS will continue to run (but requests will be denied, since the entitlements reference a credential store that did not process the logons for the user names being checked). (AMPS-6760)

    • Fix issue that could cause a crash if a SOW topic is corrupted while AMPS is running. With this fix, AMPS will log an informational error and shutdown in a controlled manner. (AMPS-7211)

    • Fix to ensure that AMPS exits during configuration if there are more than 63 sync replication destinations configured. This limit was not previously enforced in configuration, but would cause a failure later in the startup process. (AMPS-6668)

    • Fix issue where AMPS was not correctly producing a warning when obsolete (pre-5.0) configuration items for slow client management were present. These configuration items are ignored in current versions of AMPS, and older versions of AMPS produced a warning when these configuration items were present. AMPS will now warn that it is ignoring these parameters. (AMPS-6689)

    • Fix to avoid unnecessary CPU usage by SOW maintenance in cases where the SOW metadata indicates that the SOW should be checked to see if coalescing records within slabs would be beneficial, but the check does not find maintenance to perform. This fix adds a timeout period between checks. (AMPS-7496)

    • Fix issue where the seconds_behind for replication could be incorrectly reported as a large value during replication resynchronization. (AMPS-6819)

    • Fix issue where an error while shutting down a thread could lead to a situation where the thread remains active (although it is not doing useful work). Typically, this would only happen if another error had already occurred. (AMPS-6696)

    • Fix issue where processing transfer requests for queue messages could cause AMPS to take longer than necessary to shut down. (AMPS-6821)

    • Fix issue where amps_journal_dump could exit with an error while processing compressed files. (AMPS-6816)

    • Fix issue where amps-grep would exit with a usage message when reading text to search from stdin and search terms are provided via a search terms file. (AMPS-6810)

    • Fix issue where using a boolean value in a context where AMPS would produce a hash of the value (for example, a hash index) could produce incorrect results. (AMPS-6804)

    • Fix issue where the admin console would interpret any characters after a . as a document format specification, leading to incorrect errors when object names contain the . character (for example, instance names). With this fix, URIs containing names with this format are parsed correctly. (AMPS-6807)

    • Fix issue where AMPS could incorrectly fail to wait for the results of an action that uses an embedded client (for example, actions that publish and delete messages), causing the commands to complete out of order even though they were submitted in order. As part of this fix, some action steps will re-use clients created by earlier action steps to ensure correct ordering. (AMPS-6844)

    • Fix issue that could cause embedded clients (used in actions and some optional modules) to deadlock in cases where one embedded client waits for results from another embedded client. With this fix, each embedded clients is given a dedicated processing thread for better isolation. (AMPS-7606)

    • Fix issue where a command submitted by an embedded client could fail. This could sometimes cause an action to fail to send a command. (AMPS-7603)

    • Fix issue where amps-action-on-startup ran before AMPS was fully initialized and issue where amps-action-on-shutdown ran after AMPS had already begun shutting down components. (AMPS-7483)

    • Fix issue where the thread processing a logon command could hang if:

      • The client submits another command before the logon command is processed and the acknowledgement is returned, and

      • The client is disconnected before authentication processes the logon request.

      (AMPS-7499)

    • Fix to reduce unnecessary CPU usage when working with large compressed journals, where the time to decompress the journal takes more than several seconds. (AMPS-7498)

    • Fix issue where amps_message_parser_register_filter (part of the plugin SDK) did not correctly initialize the filter, leading to a crash if the filter was later evaluated using amps_message_parser_evaluate_filter. No modules included in the AMPS distribution prior to 5.3.4.0 used this functionality, so to encounter this issue a site would need to have a custom module that uses these functions. (AMPS-6809)

    • Fix race condition that could cause an update to a hash index to be missed. (AMPS-7505)

    • Fix issue where actions that are pending during AMPS shutdown could maintain references to journal files longer than necessary, interfering with AMPS shutdown. (AMPS-7685)

    • Fix issue where a message being replicated to a topic that is in the State of the World on the destination but is not in the transaction log on the destination could fail to update the topic. (AMPS-7653)

    • Fix issue where line breaks and whitespace in a projection clause could cause AMPS to produce an error when validating the configuration on startup. With this fix, projection clauses are evaluated correctly on startup. (AMPS-7619)

    • Fix issue in the legacy messaging compatibility functions where the UTC offset could be calculated incorrectly during daylight saving time changes. (AMPS-7554)

    • Fix issue with statistics where, if an insert to a STATIC table fails, the data is not inserted later. The static table records information that does not change during the time statistics are captured for a given item (for example, the client name for a client connection). This could lead to issues where information for a metric is collected, but the identifying information for those metrics is not available. With this fix, AMPS will continue to attempt to insert into the STATIC table if an insert fails. (AMPS-7585, AMPS-6851)

    • Fix race condition where replacing a subscription that uses pagination (top_n and skip_n options for a sow_and_subscribe command) could potentially cause AMPS to leak a client handle depending on the internal order of operations. (AMPS-7555)

    • Fix issue where messages of struct type sent over the websocket protocol could be represented incorrectly in trace-level event log messages. The data recorded in AMPS and sent to subscribers was not affected. (AMPS-7546)

    • Fix issue that could cause AMPS to hang when exiting abnormally, particularly when using modules built with debugging enabled or running a debugging version of AMPS. (AMPS-7510)

    • Fix race condition that could cause AMPS to hang on shutdown. (AMPS-7432)

    • Fix issue that could cause amps_bio_perf_test to exit unexpectedly. (AMPS-7426)

    • Fix issue where a client that subscribes to two different queues over the same underlying topic (or topics) that both use at-most-once delivery could have delivery stall. This was caused by AMPS incorrectly interpreting multiple acknowledgements of the same bookmark as duplicate acknowledgements. AMPS will now correctly process acknowledgements of the same bookmark for different topics. (AMPS-7217)

    • Fix issue where passing an incorrect argument to amps_journal_search (for example, providing a bookmark to the --data option) would cause no items to be returned. (AMPS-7219)

    • Fix issue where a NULL character in an AMPS header would be incorrectly escaped when producing messages using the amps protocol. (AMPS-7214)

    • Fix issue where the optimizations for a filter of 1=1 were not applied for the filter 1==1. These two forms will now be treated as equivalents. (AMPS-7212)

    • Fix issue that could cause a hang when a bookmark replay for a topic that is recorded in the State of the World and a sow_delete using a filter for the same topic were both entered shortly after startup, no previous sow_delete for the topic has run, and the bookmark replay is entered before the delete completes. (AMPS-7187)

    • Fix issue where replication reconnect processing could incorrectly increment the time between retries, resulting in a longer timeout than intended (effectively incrementing the timeout as though an extra failure had occurred). (AMPS-7111)

    • Fix issue where the json message type could incorrectly serialize a NaN value. With this fix, AMPS will serialize a NaN value as a JSON null. (AMPS-7104)

    • Fix issue where AMPS could incorrectly accept a sow, sow_and_subscribe, or sow_and_delta_subscribe command that provides a regular expression to match multiple topics and also specifies pagination (provides top_n and skip_n options). This combination of options is not supported, and AMPS will now correctly return an invalid topic error. (AMPS-7085)

    • Fix issue where the VALUE_LOOKUP function would allow lookups to be defined using topics that are not recorded in the State of the World, even though the function would never return a non-NULL result from such a definition. AMPS will now log an error and exit if a lookup definition attempts to use a topic that will never produce a result. (AMPS-7084)

    • Fix to reduce memory consumption when processing a large number of internal events used for actions. (For example, a large number of client connect/disconnect events that run a relatively slow action). (AMPS-7067)

    • Fix issue where timestamp serialization could use the wrong timezone in cases where AMPS needs to serialize a timestamp in UTC and a timestamp in the local timestamp within the same second. (AMPS-7063)

    • Fix issue where delta processing could take longer to shut down than expected when the instance is processing high volumes of messages. (AMPS-7057)

    • Fix issue that could cause AMPS to exit when a regular expression subscription with a bookmark is sent to an instance of AMPS that does not have a transaction log configured and that subscription matches at least one topic in the state of the world. (AMPS-7036)

    • Fix issue where a bookmark subscribe that specifies a bookmark that has been received, but not yet written to the transaction log, could start from the end of the transaction log (NOW) rather than immediately after the specified bookmark. With this fix, AMPS will correctly find in-process bookmarks when starting a subscription. (AMPS-7047)

    • Fix issue where an IN clause that uses string values and includes one or more NULL values (or empty strings) within the clause takes longer to execute than the same clause with no NULL values. (AMPS-6983)

    • Fix issues where client metadata could be retained longer than necessary by optimizing when a component that has a reference to a client is allowed to release that reference.

      As a part of these fixes, improved statistics and logging have been added.

      (AMPS-7024, AMPS-6995, AMPS-6993, AMPS-6990, AMPS-6913)

    • Fix issue where AMPS could produce client reaper warnings for cases where this does not indicate any issue. In this case, the messages have been reduced to developer level logs. (AMPS-7045)

    • Fix issue where if amps-action-do-extract-values has an invalid configuration (such as a missing option), AMPS can exit when the action is run. With this fix, AMPS produces an error on startup. (AMPS-6982)

    • Fix issue where a subscription that requests a completed ack and is then replaced would incorrectly send a completed ack when the replacement is completed. With this fix, the completed ack for the replaced subscription will be sent for the subscription itself, not the replace command. (AMPS-6887)

    • Fix issue that could cause the valid_keys statistic of a SOW topic could be incorrect when expiration is configured for the topic and an amps-action-do-compact-sow action is run while expiration is being processed. (AMPS-6862)

    • Fix issue that could cause the insert_count and delete_count statistics of a queue to be incorrect when an acknowledgement is received before the message that it acknowledges. (AMPS-6861)

    • Fix issue where a publisher that disconnects and immediately reconnects could be given an incorrect (too early) sequence number as the last persisted acknowledgment. With this fix, AMPS will provide the correct sequence number. (AMPS-6393)

    • Fix issue where AMPS would exit during startup while attempting to process a very large sow delete filter during transaction log sow synchronization. (AMPS-7670, Z16832)

  • This version includes the following improvements and fixes to Galvanometer:

    • Brand new design and style of the application with both dark and light themes.
    • More than 60% of improvement in the bundle size and memory footprint compared to previous versions of Galvanometer.
    • Significant improvements in performance throughout the application.
    • Numerous improvements to the SQL page:
      • More compact and functional interface
      • column/schema detection support for JSON/FIX/NVFIX message types
      • Query statistics display
      • Historical SOW statistics support
      • Human-readable timestamp format for the Timestamp column
      • Transaction log statistics support
      • BigInteger values in JSON are properly supported
      • Message details are well formatted, when possible
      • Ability to pick which columns are displayed (such as timestamp, correlation id, and so on)
    • Add timezone detection/change support throughout the application with persistence to make it easier to display data/graphs when the user timezone differs from the server timezone.
    • Significant improvements in the Replication page to streamline the views of replication and provide more insight into the state of a mesh (AMPS-6774, AMPS-6775, AMPS-6894)
    • Graph Builder now automatically detects metric units and properly renders them
    • Graph Builder performance is drastically improved for extremely large datasets (> 500K data entry points)
    • Full HTTP Proxy support added (such as NGINX) for both Galvanometer and the SQL page
    • Fix issue with empty client names on the Overview page
    • Fix I/O widget to utilize the new /amps/host/disks metrics (AMPS-6874)
    • New Admin Controls widget added that allows secure control over Transports, Replication, Transaction Log, and provides graphical interface to trigger newly added Admin Actions
    • Add the auto-refresh toggle switch to the Replication page (AMPS-6773)
    • Better AdBlock detection and notification (to avoid potential rendering issues while using AdBlock)
    • Add Queue Diagnostic Dump command button to the info widget.
    • The Message Flow controls widget is now persistent between restarts.
    • Add support for the bookmark field in the subscriptions widget.
    • BasicAuth authentication credentials dialog behavior has been fixed for cases when the credentials are incorrect.
    • Due to popular demand, the Dark mode is now the new default. You can still easily switch between themes by clicking on the button at the bottom of the sidebar.
    • Numerous improvements for data display in the datagrid widgets throughout the application.
    • Legacy browser support has been dropped (Internet Explorer is no longer supported).

AMPS version 5.3.3

PREVIEWVersion 5.3.3.158 (2024-06-14)

  • Improve performance of client connection processing. Prior to this improvement, during large volumes of connections, connection completion could be delayed. (Z16811, AMPS-7138, AMPS-7139)

PREVIEWVersion 5.3.3.157 (2024-05-23)

  • Fix potential failure to complete a statistics database truncate action due to an issue in sqlite3 (used for the statistics database). This hotfix updates the included version of sqlite3 to address the issue. (AMPS-7833)

PREVIEWVersion 5.3.3.156 (2024-04-24)

  • Fix potential crash and/or an incorrect message replication flow for a replication destination with a replication content filter when some of the messages being replicated have empty contents. (AMPS-7763, Z17053)

PREVIEWVersion 5.3.3.155 (2024-03-27)

  • Fix hang during startup while recovering message queues where an acknowledgement for a message (sow_delete) is in the transaction log earlier than the message, and the end of the previous message in the journal can be interpreted as a transaction log header (typically only the case with binary message types). (AMPS-7715, Z16966)

PREVIEWVersion 5.3.3.154 (2024-03-26)

  • Fix issue where using both enrichment or preprocessing and delta_publish for messages containing nested arrays and/or subdocuments could result in incorrectly merged messages. (AMPS-7660, Z16753)

PREVIEWVersion 5.3.3.153 (2024-03-16)

  • Fix performance regression introduced in 5.3.3.123 that can reduce transaction log write performance. This can occur when most bookmark subscriptions have fully caught up and symptoms can be observed as constrained replication throughput. (AMPS-7710, Z16238)
AMPS Version 5.3.3.152 was intentionally skipped

PREVIEWVersion 5.3.3.151 (2024-02-20)

  • Fix issue where the AMPS server could incorrectly identify incoming commands as a compressed stream, leading to a protocol error when the stream fails to uncompress as expected. This issue was reported by an application using the legacy fix protocol, and depends on both the message size and the exact command submitted. (AMPS-7662, Z16801)

PREVIEWVersion 5.3.3.150 (2024-01-31)

  • Fix issue where actions that use an On condition of amps-action-on-publish-message or amps-action-on-oof-message could deadlock if any of the Do steps in the action used amps-action-do-query-sow. (AMPS-7606, Z16460, Z16649)

PREVIEWVersion 5.3.3.149 (2024-01-24)

  • Improve performance of processing a replicated sow_delete command to better match the efficiency of processing a local sow_delete command. A mismatch in performance could result in the downstream instance not being able to keep up with the incoming replication volume while the command is being processed. This release contains fixes and optimizations to improve the performance of the replicated commands in line with the performance of sow_delete commands sent directly to the instance. (AMPS-6769, AMPS-7624, AMPS-7625, AMPS-7626, Z16622)

PREVIEWVersion 5.3.3.148 (2024-01-23)

  • Fix crash that could occur when using a JSON message containing an array that contains elements of heterogeneous types where one is a JSON object. (AMPS-7627, Z16685)
AMPS Version 5.3.3.147 was intentionally skipped

PREVIEWVersion 5.3.3.146 (2023-12-14)

  • Fix issue where AMPS could eventually shut down in cases where a bookmark subscription that uses the live option accumulates a large number of transactions before replay reaches the point at which the subscription was started. This could cause AMPS to log a large number of 2A-0007 messages and eventually shut down. (AMPS-7593)

PREVIEWVersion 5.3.3.145 (2023-12-10)

  • Fix regression introduced in 5.3.3.63 where having multiple conflated subscriptions with different conflation intervals can result in delayed message delivery to subscribers with shorter conflation intervals. (AMPS-7595, Z16532)

PREVIEWVersion 5.3.3.144 (2023-11-28)

  • Fix performance regression introduced in 5.3.2.23 where a subscription to a queue that uses at-most-once delivery semantics could have delivery delayed up to 100ms after acknowledging a message. (AMPS-7577)

PREVIEWVersion 5.3.3.143 (2023-11-27)

  • Fix issue where a sow_and_subscribe command that uses bookmark replay and the oof option did not correctly release the replay when the subscription ended. This issue could result in an inability to remove journals. (AMPS-7581, Z16515)

PREVIEWVersion 5.3.3.142 (2023-11-26)

  • Fix issue where a sow_delete that provides a bookmark but is submitted for a topic that is not a queue could stall message processing and eventually cause AMPS to exit. With this fix, this command will produce an error. (AMPS-7573, Z16514)

PREVIEWVersion 5.3.3.141 (2023-11-23)

  • Remove PRAGMA settings for Admin statistics database that were incorrectly added in 5.3.3.139. These PRAGMA optimizations will be available in the upcoming 5.3.4 release. (AMPS-7578)
AMPS Version 5.3.3.140 was intentionally skipped

PREVIEWVersion 5.3.3.139 (2023-11-22)

  • Improve logging when AMPS exits because the instance was started with an incompatible statistics database. This is most common for those experimenting with different releases in development environments. (AMPS-7481, Z16199)

PREVIEWVersion 5.3.3.138 (2023-11-20)

  • Fix issue where a primary key or a hash index query for the current value in a historical SOW topic returns a record after the record has been deleted. (AMPS-7572, Z16524)

PREVIEWVersion 5.3.3.137 (2023-11-18)

  • Fix issue that can cause AMPS transaction log replay to stop when there is corruption in a journal file. This can affect replication and bookmark subscriptions. (AMPS-7279, Z16413)

PREVIEWVersion 5.3.3.136 (2023-11-15)

  • Fix issue that causes AMPS to crash when processing a batched query after a query has used an empty IN expression with the primary key of a topic.

    Other expressions that always return false are not affected. In other words, if the field /pk is the key field for the topic, then /pk IN () could result in this issue, but /pk = NULL would not, nor would /pk IN (NULL). (AMPS-7565, Z16444, Z16059, Z16011)

PREVIEWVersion 5.3.3.135 (2023-10-25)

  • Fix issue that can cause the HTTP authentication module to produce unnecessary connection resets. This can happen when:

    • All connections for a user are removed due to entitlement reset or
    • A logon request for a user is done in parallel with an entitlement reset

    With this fix, the module will not issue its own reset in response to an entitlement reset. This fix also simplifies the reset process for reliability and performance. (AMPS-7513, Z16234)

PREVIEWVersion 5.3.3.134 (2023-10-19)

  • Fix regression introduced in AMPS 5.3.2.2 where a conflated delta subscription that uses the no_empties option could fail to receive an update message when:

    • An update is made to a record that would produce an empty message
    • A subsequent update to the same record within the conflation interval would produce a message with changed data

    With this fix, AMPS will correctly send a delta message at the end of the conflation interval. This issue doesn't affect conflated topics. (AMPS-7531, Z16367)

PREVIEWVersion 5.3.3.133 (2023-10-17)

  • Fix issue that can occur with a distributed message queue that is replicated across three or more AMPS instances when an instance that owns messages is unavailable. In this case, the enable_proxied_transfer feature can be temporarily turned on for the queue on a non-owning AMPS instance in order to take ownership of a message when that message can be delivered to a subscription on that instance. Prior to this fix, if this non-owning instance could not connect to the owning AMPS instance, but is able to connect to another instance in the owning group or the instance from which the message was originally received, the non-owning instance sent a transfer request rather than directly taking ownership. This could result in message delivery being stalled. With this fix, the instance with proxied transfer enabled will simply assume ownership of the message when it can't directly reach the owning AMPS instance. (AMPS-7524, Z16346)
  • Fix issue where the hash value given for the instance that owns a message could be set to the instance that the message was received from, rather than the instance that owns the message. This could cause incorrect output in logging related to the queue. (AMPS-7524)

PREVIEWVersion 5.3.3.132 (2023-10-13)

  • Fix issue where a primary key query that used top_n=0 and requested a stats ack would always receive a value of 0 for matches if the primary key query was batched with a non primary key query. AMPS batches SOW queries when queries for the same topic are processed at the same time. (AMPS-7522, Z15224)
AMPS Version 5.3.3.131 was intentionally skipped
AMPS Version 5.3.3.130 was intentionally skipped

PREVIEWVersion 5.3.3.129 (2023-08-23)

  • Fix issue where a replicated queue with MaxBacklog configured could fail to deliver a message where ownership was transferred from another instance if no subscription had available backlog when the message was transferred. (AMPS-7459, Z15720)

PREVIEWVersion 5.3.3.128 (2023-08-22)

  • Fix issue that can cause AMPS to crash when processing a sow delete by query immediately after a SOW was synced from transaction log where sow deletes were applied. (AMPS-7443, Z16129)
AMPS Version 5.3.3.127 was intentionally skipped

PREVIEWVersion 5.3.3.126 (2023-08-17)

  • Fix issue introduced in 5.3.2.57 where the first message of a live subscription can be skipped when a bookmark subscription that started from EPOCH and that uses the live option transitions from replay from the transaction log to receiving messages that are not yet in the transaction log and the first message in the subscription has not yet been processed at the time of transition. (AMPS-7290)

PREVIEWVersion 5.3.3.125 (2023-08-15)

  • Fix issue where a bookmark subscription that uses a regular expression for the topic did not receive messages from queue topics that matched the regular expression. This issue only applies to bookmark subscriptions, not consumption of the queue. This issue only applies to queue topics themselves, not underlying topics with a different name than the queue topic. (AMPS-7445)

PREVIEWVersion 5.3.3.124 (2023-08-14)

  • Fix issue where an authenticator module (used to supply credentials for outgoing replication traffic) is not provided all of the available information for the outgoing link. (AMPS-6221, Z12125)

  • This hotfix includes a packaging change to include an authenticator module (that had been previously provided separately) into the main server distribution. The module (in the shared object libamps_exec_authenticator.so) is only loaded upon request. This shared object is not necessary for AMPS to function, so it only needs to be deployed for installations that are using this module. (AMPS-6709)

PREVIEWVersion 5.3.3.123 (2023-07-29)

  • Fix issue where a bookmark subscription can consume a large amount of CPU even when very little message traffic is being processed. (AMPS-7399, Z15975)
AMPS Version 5.3.3.122 was intentionally skipped

PREVIEWVersion 5.3.3.121 (2023-06-23)

  • Fix issue where a subscription to a priority queue that is replaced could result in lower priority messages being delivered before higher priority messages. This could happen when other subscriptions to the queue that are not receiving high priority messages are present. (AMPS-7368, Z15837)

PREVIEWVersion 5.3.3.120 (2023-06-12)

  • Fix issue that could cause AMPS to crash when a subscription uses the conflation option. (AMPS-7296, Z15561)

PREVIEWVersion 5.3.3.119 (2023-06-09)

  • Improve performance of parallel work engines by improving thread notification after completing a query. (AMPS-7020)
  • Fix issue that could cause periods of high system CPU utilization following the execution of the AMPS parallel query engine on host environments with many cores. (AMPS-7020, Z13976)
  • Fix potential for AMPS to crash when paginated SOW queries could be executed concurrently to the AMPS parallel query engine. (AMPS-6771)

PREVIEWVersion 5.3.3.118 (2023-05-26)

  • Fix issue that can cause AMPS or an AMPS utility such as amps_journal_dump to produce an incorrect timestamp or crash when serializing an ISO timestamp. (AMPS-7354, AMPS-7063, Z15720)

PREVIEWVersion 5.3.3.117 (2023-05-25)

  • Fix issue with AMPS replicated queues that have queue expiration configured where an instance could incorrectly set the delay between transfer requests to 5 seconds. This could happen when a message that the instance does not currently own expires from the queue. (AMPS-7338, Z15378)

PREVIEWVersion 5.3.3.116 (2023-05-24)

  • Fix issue in AMPS where a SOW subscription with a primary key filter (that is, a filter of type /key_field = 'value' or similar) may result in missing messages if a subscription that uses a filter that does not use the primary key is also present on the same topic. (AMPS-7333, Z15705)

PREVIEWVersion 5.3.3.115 (2023-05-23)

  • Fix to improve performance of a SOW query that uses a hash index when a large number of records match a single value in the hash index. (AMPS-7307, Z15657)

PREVIEWVersion 5.3.3.114 (2023-04-26)

  • Fix to more efficiently reclaim memory when messages are buffered in memory for a slow client. This fix improves memory usage in cases where the bytes buffered for a slow client were originally allocated as part of a larger allocation, eliminating a situation where AMPS could unnecessarily retain large amounts of memory. (AMPS-7303, Z15645)

PREVIEWVersion 5.3.3.113 (2023-02-27)

  • Fix two issues introduced in 5.3.3.102:

    • Fix issue that would cause a bookmark subscription that uses a filter that is an exact match for the primary key of the topic (and has no other expressions in the filter) to incorrectly return no records. (AMPS-7210, Z15349)

    • Fix issue that could cause a subscription to miss messages in cases where more than one subscription to the same topic provides a filter that uses an exact match on the primary key of the topic and those filters match the same primary key value. This issue is more likely to occur with larger numbers of subscriptions matching the same value. (AMPS-7210, Z15368)

PREVIEWVersion 5.3.3.112 (2023-02-25)

  • Fix crash that can occur when processing an aggregated subscription while publishes that match the subscription are arriving at high velocity. (AMPS-7226)
AMPS Version 5.3.3.111 was intentionally skipped
AMPS Version 5.3.3.110 was intentionally skipped

PREVIEWVersion 5.3.3.109 (2023-01-03)

  • Reduce memory growth that can occur during aggregated queries where SOW records contain a correlation id. (AMPS-7110, Z15024)
  • Fix a race condition that causes a fatal abort if an aggregated query on a topic is running while a new aggregated query on the same topic using a previously unused grouping field is being validated. (AMPS-7123)
AMPS Version 5.3.3.108 was intentionally skipped

PREVIEWVersion 5.3.3.107 (2022-12-17)

  • Fix crash that can occur when processing a queue during recovery when a sow_delete command that specifies a regular expression matches a queue topic in the instance. (AMPS-7151, Z15167)

PREVIEWVersion 5.3.3.106 (2022-12-16)

  • Fix issue in AMPS where the msgpack message type incorrectly reported select lists as unsupported functionality. With this fix, AMPS will now correctly apply select lists to msgpack messages. (AMPS-7153, Z15148)

PREVIEWVersion 5.3.3.105 (2022-12-14)

  • Fix issue in AMPS where the HTTP authentication and entitlements module could hang while resetting entitlements. This is more likely to happen when multiple entitlement contexts are configured or when entitlements are being registered and reset rapidly (such as when a user is authenticated but is not entitled to log on). AMPS instances experiencing this issue may see a warning message in the AMPS log of the form "warning: 30-0000 detected potential 'stuck' thread: async logon auth processing thread". (AMPS-7002)

PREVIEWVersion 5.3.3.104 (2022-12-08)

  • Fix issue where a high frequency of SOW deletes or expirations could delay query execution for an extended period of time. (AMPS-6639, AMPS-6704, AMPS-7141, Z15085)

PREVIEWVersion 5.3.3.103 (2022-11-23)

  • Fix race condition during parallel sow_delete or expiration that could cause a previously-expired or deleted record in a persisted SOW topic to be added back to the topic during startup or after a compact action runs. The race condition could also cause a crash during a sow synchronization event after a parallel sow_delete. (AMPS-6489, Z14576)

PREVIEWVersion 5.3.3.102 (2022-11-18)

  • Improve matching performance for subscriptions on SOW topics when a subscription uses a filter that is an exact match for the primary key of the topic (and has no other expressions in the filter). This improvement is more noticeable when a topic has large numbers of subscriptions that use an exact comparison with the primary key. (AMPS-7117, Z15046)

PREVIEWVersion 5.3.3.101 (2022-11-16)

  • Fix issue with filter evaluation and SOW query batching where a query returns incorrect results. This could happen when:

    • The query uses a filter that begins with an exact primary key match, and
    • The filter includes additional expressions or an entitlement filter is present

    In this case, AMPS incorrectly returns messages that match the primary key, even if the additional expressions in the filter or the entitlement filter do not match.

    AMPS batches SOW queries when queries for the same topic are processed at the same time (typically when the system is receiving large numbers of simultaneous queries). (AMPS-7092, Z14932)

  • Fix crash that can occur when a batched SOW query is updating the memo index for a SOW topic (because a query within the batch references a field that has not previously been queried) and another query attempts to use that index. (AMPS-7097, Z14932)

PREVIEWVersion 5.3.3.100 (2022-11-15)

  • Fix issue that could cause AMPS to exit during startup if a conflated topic was defined over a SOW topic that maintains history and a record in the topic that maintains history is deleted, but still within the defined window for the topic. (AMPS-7114, Z15043)

PREVIEWVersion 5.3.3.99 (2022-11-14)

  • Change behavior of IF() expression to only evaluate expressions provided to the IF() statement for the condition that will be returned from the IF() statement. Previously, all expressions were fully evaluated before the IF() statement itself was evaluated. This change improves performance for complex or deeply-nested IF() statements. This change may also change whether a function in an expression is evaluated or the number of times a function in an expression is evaluated. (AMPS-7086, Z14920)

PREVIEWVersion 5.3.3.98 (2022-11-11)

  • Fix regression introduced in AMPS 5.3.3.94 where AMPS would incorrectly send OOF messages for sow_delete by data or sow_delete by key commands to all subscriptions to the topic that used the oof option, even in cases where the filter for the subscription did not match the data being deleted. OOF messages sent for sow_delete by query commands would be delivered correctly. (AMPS-7109, Z15041)

PREVIEWVersion 5.3.3.97 (2022-11-09)

  • Fix crash and/or deadlock when replacing a paginated subscription while publishes that match the subscription are being processed. (AMPS-7100, Z14873)
  • Fix client leak for paginated subscriptions. (AMPS-7019)
  • Fix crash that can occur when unsubscribing a paginated subscription. (AMPS-7038)
  • Fix issue where AMPS could fail to return a stats ack when replacing a paginated subscription when that acknowledgement is requested. (AMPS-7100)

PREVIEWVersion 5.3.3.96 (2022-11-04)

  • Fix issue where statistics truncation would retain records in the STATIC tables when all DYNAMIC table references to those records were removed. This fix should allow truncation to free more space in long-running or high-traffic instances. After upgrading, a large statistics database may take more time to truncate, but the overall size may be smaller. For instances with large statistics databases, this may be a good time to move the existing statistics database to force starting with a smaller size statistics database. (AMPS-7027, Z14773)

PREVIEWVersion 5.3.3.95 (2022-11-01)

  • Fix issue where a low publish rate could cause unnecessary latency in message delivery to bookmark subscriptions and messages becoming available in message queues due to transaction log commit delays. (AMPS-7077, Z14925)

PREVIEWVersion 5.3.3.94 (2022-10-25)

  • Improve replication throughput when the destination instance has a large number of subscribers to a replicated topic and those subscriptions use content filters. (AMPS-7078, Z14421)
  • Provide custom names for threads to aid with debugging efforts. (AMPS-7078)
  • Improve performance when evaluating matches for subscribe and sow_and_subscribe commands that include the oof option. (AMPS-7003, AMPS-7081)
  • Improve performance of parallel work engines by improving thread notification after completing a query. (AMPS-7020)
  • Fix issue that could cause a use after free error or memory corruption when processing several simultaneous operations that use the parallel evaluation engine (used for parallel queries, pagination, recovery and maintenance of SOW topics). (AMPS-6920, AMPS-6942, Z14421)
AMPS Version 5.3.3.93 was intentionally skipped
AMPS Version 5.3.3.92 was intentionally skipped
AMPS Version 5.3.3.91 was intentionally skipped
AMPS Version 5.3.3.90 was intentionally skipped

PREVIEWVersion 5.3.3.89 (2022-09-17)

  • Fix sow_and_subscribe with bookmark behavior that may cause a hang or incorrect results:

    • Fix a hang that may occur when the subscription attempted to access to a message that is earlier than the earliest transaction in the journal files.

    • Fix issue where an oof message from a sow_and_subscribe with bookmark would incorrectly deliver the previous message data instead of the current message data in cases where a record changed to no longer match the filter.

  • Fix issue where AMPS will now provide more correct results when a sow_and_subscribe with bookmark uses a regular expression that matches both topics that maintain history and topics that do not maintain history. Before this fix, AMPS would provide current values for the topics without history then begin replay at the point of the query (effectively starting the replay at a different point in time than the provided bookmark). With this fix, if the topic does not maintain history, AMPS will provide only those messages in the current values that were present at the point in time the bookmark specifies. (AMPS-7041, Z14672)

  • Improved bookmark cursor monitoring used to identify stuck bookmark cursor symptoms.

    • Add 1D-0200 warning message to identify where a bookmark cursor may be hung when attempting to locate or seek through the transaction log.

    • Additional diagnostic information added to the 23-0050 message

    • Logging of client name as well as subscription id on all bookmark cursor log messages. (AMPS-7028)

  • Eliminate a situation where bookmark subscription processing threads could incorrectly report a potentially stuck thread. (AMPS-7035)

PREVIEWVersion 5.3.3.88 (2022-09-09)

  • Fix issue where a replication connection that is configured to use sync acknowledgement but has been downgraded to async acknowledgement would not be correctly upgraded to sync acknowledgement until at least one message is replicated over the connection. With this change, the replication upgrade action will correctly upgrade the connection if seconds_behind is within the configured Age, even if there have been no messages replicated (for example, because no client is publishing to this instance). (AMPS-7029, Z14783)

PREVIEWVersion 5.3.3.87 (2022-09-09)

  • Fix issue that may result in a crash or delivery of an oof message to the wrong subscription. This can happen when there are multiple bookmark subscriptions active, and at least one of those subscriptions is a historical sow_and_subscribe that specifies the oof option. (AMPS-7025, Z14672)

PREVIEWVersion 5.3.3.86 (2022-09-08)

  • Fix issue where the metrics on a stats ack requested for a sow query of a queue topic may be incorrect when top_n is specified on the query. (AMPS-6840, Z14687)

PREVIEWVersion 5.3.3.85 (2022-09-02)

  • Fix crash that could happen when AMPS fails to reject an attempt to replace the topic on a sow_and_subscribe command that uses pagination or aggregation. With this fix, AMPS will correctly return an invalid topic error if an application attempts to replace the topic on an existing subscription that uses pagination or aggregation. (AMPS-7015, Z14570)

PREVIEWVersion 5.3.3.84 (2022-08-23)

  • Fix issue to prevent a client from being disconnected for exceeding slow client thresholds when the overall thresholds are exceeded, but this client was not using slow client resources. Previously, when a resource pool reached the slow client threshold, AMPS could disconnect the next client to be checked for resource consumption rather than a large or slow client. With this change, AMPS may slightly exceed the configured threshold while clients are being disconnected. (AMPS-6884, Z14256)

PREVIEWVersion 5.3.3.83 (2022-08-18)

  • Fix memory leak that can occur when a sow_delete is replayed from the transaction log during AMPS startup SOW synchronization. (AMPS-6999, Z14619)

  • Improve 07-0071 client reaper log message to include the list of subscriptions associated with the reaped client. (AMPS-6991)

  • Add a new 07-0083 log message to indicate clients that have not been reaped for 300 seconds. (AMPS-6991)

PREVIEWVersion 5.3.3.82 (2022-08-11)

  • Fix crash that can occur when a sow_and_subscribe that specifies conflation is replaced at the same time a publish that matches the subscription is processed. (AMPS-6988, Z14633)

PREVIEWVersion 5.3.3.81 (2022-08-10)

  • Fix issue where AMPS could hang when a client enters a sow_and_subscribe command that uses pagination and AMPS rebalances the workload among threads before the initial query is complete. (AMPS-6558, Z14496)

PREVIEWVersion 5.3.3.80 (2022-08-04)

  • Fix issue where the admin interface incorrectly uses HTTP when it is configured to use HTTPS. This would happen when the admin interface has a Certificate and PrivateKey specified (which requests HTTPS for the admin), and the InetAddr element specifies a port but no hostname/address. With this fix, AMPS correctly uses HTTPS in this configuration. (AMPS-6984, Z14630)

PREVIEWVersion 5.3.3.79 (2022-08-01)

  • Fix issue where a query that specifies both a select list and a batch size greater than 1 can send batches with a single message in a batch in cases where it would be possible to send a larger batch. (AMPS-6962, Z14558)

PREVIEWVersion 5.3.3.78 (2022-07-27)

  • Fix crash that can happen when a message is leased from a queue, that message is deleted before it is acknowledged, the message is subsequently acknowledged, and the queue is monitored by a view or an action such as amps-action-on-sow-expire-message. (AMPS-6636, z14591)

PREVIEWVersion 5.3.3.77 (2022-07-13)

  • Fix issue where a WebSocket transport key/accept handshake header can have an incorrect value returned if a header name is modified by a proxy. (AMPS-6952, Z14550)

PREVIEWVersion 5.3.3.76 (2022-07-07)

  • Fix issue introduced in AMPS 5.3.3.72 where a replicated sow_delete by bookmark on a queue topic (queue acknowledgement) could cause AMPS to hang in cases where entitlements are enabled on the replication transport. (AMPS-6935, Z14504)

PREVIEWVersion 5.3.3.75 (2022-06-29)

  • Fix issue where WebSocket HTTP handshake headers were treated as case-sensitive by the AMPS server, which could result in a connection failure in an environment that sent lowercase headers in the handshake. With this fix, the handshake will now conform to the RFC 2616 standard. This does not change the commands exchanged once the handshake is complete. (AMPS-6923, Z14481)

PREVIEWVersion 5.3.3.74 (2022-06-17)

  • Fix issue that can cause replication to disconnect and fail to make attempts to reconnect. This could happen when AMPS chooses to disconnect a replication destination due to inactivity at the same time that the operating system reports that the connection has been closed. (AMPS-6912, Z14221)

PREVIEWVersion 5.3.3.73 (2022-06-07)

  • Reduce recovery time and reduce peak memory usage during recovery of a large number of VALUE_LOOKUP definitions in cases where the combined size of the SOW topics used for recovery (that is, the size of each SOW topic used in a lookup * the number of lookups that use the topic) does not fit into memory. This is most noticeable with a large number of lookups or when a lookup refers to a very large topic. (AMPS-6882, Z14108)

PREVIEWVersion 5.3.3.72 (2022-06-05)

  • Fix issue where replicated message queues could become out of sync and have undeliverable messages after AMPS restart recovery. This issue is caused when a queue acknowledgement message has been received over replication before the queue publish message, and the deferred acknowledgement for that message has expired or the transaction log journal file that contains the queue acknowledgement message has been removed. AMPS will now ensure that all queue acknowledgement messages are recorded after the associated publish during recovery. This issue is much more likely to happen for installations that do not fully replicate queue messages (that is, installations that do not provide full passthrough and have disabled the queue_passthrough replication validation check to allow a topology with a risk of missing or undeliverable messages.) (AMPS-6656, Z14341)

  • Fix issue where, if the acknowledgement for a queue message is received before the message itself (possible in some complicated topologies that do not fully replicate message streams) and the instance is restarted after a longer period than the time to manage out-of-order acknowledgements, the message could incorrectly be added to the queue. With this fix, the message will correctly be considered acknowledged, and will not reappear on recovery. (AMPS-6892)

PREVIEWVersion 5.3.3.71 (2022-05-28)

  • Fix deadlock that can occur as a SOW query completes. This deadlock will prevent subsequent queries from starting and cause AMPS to log the 16-0033 error message. (AMPS-6895, Z13702)

PREVIEWVersion 5.3.3.70 (2022-05-23)

  • Fix regression introduced in AMPS 5.3.1.68 where historical SOW queries with a timestamp bookmark and a content filter that uses a hash index or the primary key for the topic would return current data instead of historical data. (AMPS-6889, Z14318)

PREVIEWVersion 5.3.3.69 (2022-05-10)

  • Fix spark utility issue that could cause a NullPointerException when connecting to a transport that uses the legacy xml protocol and running a sow_delete command. The issue occurred because the final status message indicating the number of deleted records was not parsed correctly, although the command was correctly and fully processed by the server. Connections using the recommended amps protocol (or other legacy protocols) were not affected. (AMPS-6868, Z14156)

PREVIEWVersion 5.3.3.68 (2022-05-09)

  • Fix issue where if one replication connection is running slowly some or all other replication links could incorrectly progress at the same rate as the slow connection. (AMPS-6879, Z14219)

PREVIEWVersion 5.3.3.67 (2022-05-06)

  • Fix issue that can cause AMPS to become unresponsive when a bookmark subscription using the live option completes replay from the transaction log and transitions to receive publish messages as they arrive. (AMPS-6846, Z14265)

PREVIEWVersion 5.3.3.66 (2022-04-19)

  • Fix race condition that could cause a crash or double free inside the high performance memory allocator used by AMPS for logging (among other uses). (AMPS-6595, Z14187)

PREVIEWVersion 5.3.3.65 (2022-04-18)

  • Fix performance issue where a replicated queue that receives a large number of acknowledgement messages (millions) before receiving the publishes for the messages being acknowledged could result in replication delays. (AMPS-6857, Z14179)

PREVIEWVersion 5.3.3.64 (2022-04-15)

  • Fix issue where AMPS could erroneously log a critical 16-0053 message in cases where a SOW delete is executed after a query by hash index has started. (AMPS-6854, Z14164)

PREVIEWVersion 5.3.3.63 (2022-04-13)

  • Fix issue where subscriptions using the conflation option can use more CPU resources than necessary. (AMPS-6852, Z14110)

PREVIEWVersion 5.3.3.62 (2022-04-04)

  • Fix issue where AMPS could complete initialization before the caches maintained by the VALUE_LOOKUP function were fully populated. This could result in incorrect lookup results and/or reduced performance for publishes to topics that use VALUE_LOOKUP for enrichment. This was most noticeable with very large lookup topics or when CPU or memory is saturated during recovery. With this fix, AMPS will not finish the startup process and allow client connections until the defined lookups have fully populated caches. (AMPS-6845, Z14108)

PREVIEWVersion 5.3.3.61 (2022-03-03)

  • Fix issue where retrieving statistics for an AMPS instance through HTTP would time out due to a large number of transaction log write latency anomaly events being recorded in the statistics database. This statistic has not typically produced actionable information, so the fix is to suppress collection of this statistic starting in this hotfix. (AMPS-6792, Z13663)

  • COMPATIBILITY NOTE: Starting in this hotfix, transaction log write anomaly events will no longer be reported or stored to the ILIFETIMES_DYNAMIC table in the statistics database or shown on the Galvanometer timeline. There is no change to the underlying schema of the table. The transaction log write latency histogram will still be stored and reported in the Galvanometer.

AMPS Version 5.3.3.60 was intentionally skipped

PREVIEWVersion 5.3.3.59 (2022-02-24)

  • Fix issue with XML message type enrichment when changing the content of a child element of an element that has attributes. Previously, the attributes of the parent would be incorrectly serialized as text within the parent element. With this fix, attributes on the parent element are correctly preserved. (AMPS-6808, Z13876)

PREVIEWVersion 5.3.3.58 (2022-02-23)

  • Fix issue in AMPS where a sow query that specified a regular expression that matched a queue topic would return an "invalid topic" error. With this fix, queue topics can be queried using a regular expression. (AMPS-6799, Z13842)

PREVIEWVersion 5.3.3.57 (2022-02-20)

  • Fix performance issue where a queue that has leased messages equal to the queue MaxBacklog could see a pause in delivering the next message when a message is acknowledged. (AMPS-6805)

PREVIEWVersion 5.3.3.56 (2022-02-18)

  • Fix issue in AMPS where a sow_and_subscribe command containing a filter that uses the primary key index, and which has options containing oof,replace can cause AMPS to crash, or result in incorrect oof data being sent to the client. (AMPS-6812, Z13905)

PREVIEWVersion 5.3.3.55 (2022-02-10)

  • Fix race condition that could cause memory corruption and corrupt the clients.ack file when an instance has not received a message over replication from a given publisher for 60 seconds and a new message from that publisher arrives over replication at the same time that AMPS is marking that client as inactive. (AMPS-6652, Z13378)

PREVIEWVersion 5.3.3.54 (2022-02-08)

  • Fix race condition where AMPS could fail to process a sow delete by query command when processing multiple consecutive sow delete by query commands from a given connection. For this race to occur, the connection would need to submit sow delete by query commands with timing such that AMPS begins to process a sow delete by query from the connection after the previous delete from the connection has completed, but before AMPS has finalized processing for the delete. (AMPS-6789)

PREVIEWVersion 5.3.3.53 (2022-02-07)

  • Fix race condition in a queue with at-most-once semantics where the instance that owns a given message could grant a transfer request for the message at the same time it attempts to deliver the message locally. This would leave the message in an undeliverable state on the instance granting the transfer. (AMPS-6802, Z13793)

PREVIEWVersion 5.3.3.52 (2022-02-04)

  • Fix issue where, if the first message recovered for a given queue during startup is a replicated queue transfer message, AMPS would fail to write transactions for that queue to the transaction log. This could result in messages in other instances being undeliverable in the event that the affected instance should have had ownership of those messages. (AMPS-6797)
AMPS Version 5.3.3.51 was intentionally skipped

PREVIEWVersion 5.3.3.50 (2022-02-02)

  • Fix issue where a sow_and_subscribe command issued with a bookmark list to a topic that is historical and also recorded in the transaction log would fail with an invalid bookmark error. With this fix, AMPS will find the earliest point in the transaction log for the bookmarks in the list and run the historical sow_and_subscribe at that point. (AMPS-6659, Z13710)
AMPS Version 5.3.3.49 was intentionally skipped

PREVIEWVersion 5.3.3.48 (2022-01-23)

  • Fix crash that can occur when using the HTTP authentication and entitlements module and:

    • The module is in the default mode (not in EntitlementsOnly mode)

    • The AMPS configuration uses more than one ResourceURI for Authentication

    • An Entitlement configuration block uses a ResourceURI that is different than the resource URI used for Authentication for that configuration element

    • AMPS attempts to authenticate and entitle a logon that uses the configuration where the Entitlement ResourceURI does not match the Authentication ResourceURI, but instead uses a ResourceURI for an Authentication element elsewhere in the configuration

    For example, Transport A uses http://server/permissions_a for both Authentication and Entitlement, while Transport B uses http://server/permissions_b for Authentication but attempts to use http://server/permissions_a for Entitlement. In this case, if a user that has never logged on to Transport A logs on to Transport B, AMPS could crash (rather than simply refusing all permissions, since no record for that user is present). (AMPS-6767, Z13713)

  • Fix issue where the HTTP authentication and entitlement module can incorrectly disconnect a new connection for a user that arrives at the same time that the last previous connection for that user disconnects. (AMPS-6767, Z13713)

PREVIEWVersion 5.3.3.47 (2022-01-21)

  • Fix crash that can occur during replication resync when there is more than one passthrough destination, or when AMPS is receiving replicated messages for multiple topics and AMPS is also receiving publish messages for multiple topics from multiple clients. (AMPS-6755, Z13686)

PREVIEWVersion 5.3.3.46 (2021-12-11)

  • Fix issue in MessagePack message type serialization of signed integer values when constructing fields from a value calculated by AMPS. (AMPS-6734, Z13614)

PREVIEWVersion 5.3.3.45 (2021-12-10)

  • Improve calculation of the replication seconds_behind metric during replication resync or immediately after a message is replicated to a destination to which no messages had been sent for a period of time. (AMPS-6706, Z13455)
  • Improve the logic for detecting an unresponsive replication connection to reduce cases where a replication connection could have been dropped unnecessarily. (AMPS-6716, AMPS-6702, Z13455)

PREVIEWVersion 5.3.3.44 (2021-12-06)

  • Fix deadlock that may occur when a large number of subscribe / unsubscribe / sow query or delete by query commands are being entered simultaneously and those commands use large or complex filters, projection options, or grouping options. (AMPS-6677, Z13460)

PREVIEWVersion 5.3.3.43 (2021-12-01)

  • Fix issue where AMPS will fail to startup in some configurations due to running out of processes (or threads). With this fix, AMPS will properly size the number of threads used during recovery to the size of the host. (AMPS-6460, Z12577, Z13561)

PREVIEWVersion 5.3.3.42 (2021-11-23)

  • Fix issue where using the replace option to change the select list on a sow_and_subscribe or sow_and_delta_subscribe command would ignore the change to the select list unless another parameter of the command (such as the filter) was also changed as part of the replace. (AMPS-6692, Z13482)
AMPS Version 5.3.3.41 was intentionally skipped

PREVIEWVersion 5.3.3.40 (2021-11-09)

  • Fix issue where the start of replication resynchronization may be delayed during high volumes of transaction log writes. This would cause the seconds_behind metric to increase and a relatively small number of messages to flow through the replication connection even though the connection is active and the upstream instance is receiving publishes to be replicated. (AMPS-6687, Z13455)

PREVIEWVersion 5.3.3.39 (2021-11-05)

  • Fix crash caused by a race condition when a client submits a sow_delete that uses a filter while other connections are publishing at a high rate. (AMPS-6670, Z12786)

PREVIEWVersion 5.3.3.38 (2021-11-02)

  • Ensure proper escaping of special symbols when serializing the XML message type for select lists, enrichment and preprocessing values, projected values in views, as well as projected values in aggregated subscriptions. (Z13365, AMPS-6667)

PREVIEWVersion 5.3.3.37 (2021-10-28)

  • Fix spark utility to allow it to connect securely over SSL to AMPS TCPS transports (see -secure option in help). Also allow connection over custom URI schemes for cases where a custom client transport is needed to connect to AMPS (see -urischeme option in help). In addition, custom connection URI parameters can be passed in the URI query string using the -uriopts option (see associated spark help for details). The spark utility also now recognizes the AMPS_SPARK_OPTS environment variable for passing Java properties to the underlying JVM. This is needed for SSL properties such as -Djavax.net.ssl.trustStore and -Djavax.net.ssl.trustStorePassword (see the section on SSL in the Advanced Topics chapter of the AMPS Java Developer Guide). (AMPS-6617, Z13253)
  • Fix spark utility to report a proper error message and exit when a message type is not specified, or is invalid, when connecting to an amps protocol transport that isn't explicitly configured with a message type. (AMPS-6607, Z13201)

PREVIEWVersion 5.3.3.36 (2021-10-26)

  • Fix issue that could cause AMPS to over-allocate memory for SOW queries that use select lists. (AMPS-5165, AMPS-6653, Z13304)

PREVIEWVersion 5.3.3.35 (2021-10-17)

  • Improvements to AMPS replication connection handling:

    • Continue to attempt to reconnect to specified replication destination InetAddr on DNS resolution errors.

    • On a replication connection or DNS failure, attempt both Ipv4 and Ipv6 protocols if applicable, respecting the IpProtocolPrefer parameter

    • Introduce 1E-0081 warning level log message to provide details on DNS resolution errors from a connection attempt on a specified replication destination InetAddr.

    • Introduce 1E-0082 warning level log message to provide details on socket connection errors from a connection attempt on a specified replication destination InetAddr.

    • Introduce 1E-0083 info level log message to provide DNS resolution details for a successful connection to a specified replication destination InetAddr.

    • Introduce 1E-0084 error level log message if AMPS is unable to connect to a replication destination for a long period of time. (AMPS-6522, Z12919)

    • Replication logon acknowledgment now uses the Fully Qualified Domain Name from DNS resolution of the specified replication destination InetAddr. (AMPS-6593, AMPS-6574)

PREVIEWVersion 5.3.3.34 (2021-10-12)

  • Fix crash when a delta subscription that uses pagination (that is, specifies both the top_n and skip_n options) also specifies per-subscription conflation. This issue happens more frequently when a delta subscription that uses pagination and conflation also uses select lists. (AMPS-6635, Z13337)

PREVIEWVersion 5.3.3.33 (2021-10-11)

  • Fix issue where a sow_delete command that deletes all messages by using a 1=1 filter on a historical SOW topic that has a hash index defined could cause subsequent queries that use the hash index to return incorrect results. (AMPS-6626, Z13307)

PREVIEWVersion 5.3.3.32 (2021-10-08)

  • Fix crash when a subscription with the oof option attempts to perform out-of-focus processing for a message type that can't be parsed, such as for a binary message. (AMPS-6614, Z13245)

PREVIEWVersion 5.3.3.31 (2021-10-06)

  • Fix issue where a BFlat array that is empty or contains 1 element would be serialized as an individual value, rather than an array (for example, when producing results for a delta_subscribe). (AMPS-6546, Z12733)

PREVIEWVersion 5.3.3.30 (2021-10-05)

  • Fix issue introduced in AMPS 5.3.3.28 where it is possible for a sow_and_subscribe command with the replace option specified to hang when there are multiple concurrent subscription commands being processed. (AMPS-6620, Z13181, Z13279)

PREVIEWVersion 5.3.3.29 (2021-09-22)

  • Fix issue that causes the select option parameter to be ignored when used together with the pretty-print logon option on a client for message types where the pretty-print option produces a different format than the native message type (for example, BFlat). (AMPS-6619, Z13277)

PREVIEWVersion 5.3.3.28 (2021-09-21)

  • Fix issue that can result in missed messages when a sow_and_subscribe command is replaced concurrently with a high velocity of publishes to the same topic as the sow_and_subscribe command. (AMPS-6611, Z13181)

PREVIEWVersion 5.3.3.27 (2021-09-09)

  • Fix performance regression where AMPS does not use hash indexes for queries on a SOW topic that uses user-generated keys unless the query uses a regular expression to specify the topic. With this fix, AMPS will again use hash indexes for these queries if possible. This regression was introduced in 5.3.1.0. (AMPS-6609, Z13099)

PREVIEWVersion 5.3.3.26 (2021-09-07)

  • Fix issue that could cause a replicated instance configured for sync acknowledgement to acknowledge a message before that message was fully persisted to the local transaction log. With this fix, AMPS will no longer acknowledge a message before it is fully persisted to the local transaction log.

    In some situations, this issue could lead to message loss. This could happen in a sequence of events such as, for example:

    • A publisher is connected to an instance of AMPS (ServerA) that replicates to a destination (ServerB) using sync acknowledgement.

    • ServerB acknowledges a message to ServerA before that message is fully persisted and then exits unexpectedly (that is, in response to SIGKILL or an out of memory condition rather than a shutdown under the control of the AMPS process itself).

    • ServerA acknowledges the message to the publisher.

    • The publisher fails over from ServerA to ServerB and publishes a message to ServerB before ServerA (or any other server in the replication fabric) reconnects and replicates the original message to ServerB.

    This is a regression introduced in 5.3.3.0 as a side effect of the fixes for AMPS-5608. (AMPS-6598)

PREVIEWVersion 5.3.3.25 (2021-09-06)

  • Fix hang in SOW delete by hash index, SOW delete by IN clause query, and SOW expiration that occurs when there are a large number of subscriptions to the topic that use the oof option and only one record is being deleted. (AMPS-6605, Z13192)
AMPS Version 5.3.3.24 was intentionally skipped

PREVIEWVersion 5.3.3.23 (2021-08-31)

  • Improve performance of SOW delete by hash index in cases where there are a large number of subscriptions to the topic that use the oof option. (AMPS-6587, Z13131)

PREVIEWVersion 5.3.3.22 (2021-08-12)

  • Fix issue that could cause the wrong subscriptions to receive messages, or cause subscriptions to miss messages. This could happen for any subscription where AMPS considers the topic name used in the subscription to be a regular expression. This regression was introduced in 5.3.2.1. (AMPS-6578)

  • Fix issue that could cause AMPS to exit when an aggregated subscription is active for a topic name that AMPS considers to be a regular expression. This regression was introduced in 5.3.2.1. (AMPS-6578)

PREVIEWVersion 5.3.3.21 (2021-08-06)

  • Fix regression introduced in 5.3.2.1 where AMPS can send fewer messages than the specified top_n value as the result of a SOW query. This can occur when the SOW topic has a hash index configured and the query includes a content filter and specifies the top_n option. (AMPS-6572, Z13072)

PREVIEWVersion 5.3.3.20 (2021-08-05)

  • Fix crash during startup when a topic that uses the binary message type configures a Key field. AMPS will now properly display an error message and halt startup. (AMPS-6509, Z12860, Z13084)

PREVIEWVersion 5.3.3.19 (2021-08-02)

  • Fix crash that may occur when an oof message is delivered on a subscription that uses both conflation and a select list. (AMPS-6565, Z13028)

PREVIEWVersion 5.3.3.18 (2021-07-19)

  • Fix issue where the hash index is not updated during SOW synchronization with the transaction log during AMPS startup. This issue could cause incorrect results to be returned when querying a topic by hash index if the SOW file was removed, or if AMPS had previously exited unexpectedly without bring the SOW file up to date with the transaction log. (AMPS-6548)

PREVIEWVersion 5.3.3.17 (2021-07-18)

  • Fix issue where a delta message would incorrectly be sent as a full publish in cases where more than one delta is published during a conflation interval. (AMPS-6547)

PREVIEWVersion 5.3.3.16 (2021-07-17)

  • Fix issue where queue message delivery can deadlock and cause AMPS to shut down. This could occur for replicated queues during high volumes of queue message ownership transfer requests. (AMPS-6531)

PREVIEWVersion 5.3.3.15 (2021-07-08)

  • Fix issue where AMPS can incorrectly log 02-0012 stating that replication back tracking has occurred in cases where a rapid sequence of disconnect/reconnect/disconnect/reconnect happens for a replication connection. In this situation, the upstream instance replicating to the downstream instance that logs this error could replicate messages that have already been received by the downstream instance. This would unnecessarily use bandwidth (since the downstream instance would discard them as duplicates). With this fix, this sequence of disconnects and connects will no longer cause the issue. (AMPS-6538, Z12792)
  • Fix issue where AMPS can log spam 1E-0016 when a replication client disconnects during resync. (AMPS-6475, Z12792)

PREVIEWVersion 5.3.3.14 (2021-07-07)

  • Fix issue where a sow_delete by hash index can cause AMPS to crash in cases where the delete matches more than 32k entries (AMPS-6468, Z12720)

PREVIEWVersion 5.3.3.13 (2021-06-28)

  • Improve performance of SOW queries that use a content filter and the select option. (AMPS-6511, AMPS-6477, Z12738)
  • Improve performance of filter compilation for SOW queries. (AMPS-6477, AMPS-6493, Z12738)
  • Improve performance of SOW queries with a filter that contains an IN expression for the primary key (when the filter does not also contain an OR clause). (AMPS-6494, Z12738)

PREVIEWVersion 5.3.3.12 (2021-06-25)

  • Fix issue introduced in AMPS 5.3.3.0 that may reduce publish throughput (AMPS-6517, Z12737)

PREVIEWVersion 5.3.3.11 (2021-06-24)

  • Fix an issue where AMPS would not send a persisted acknowledgement message for a flush command if requested by a client and that client is not receiving any other messages from the server. AMPS now always returns a persisted acknowledgement message for a flush command if requested by the client. (AMPS-6524)

PREVIEWVersion 5.3.3.10 (2021-06-10)

  • Fix crash when executing a sow_delete that specifies a regular expression for the topics to be deleted and that regular expression matches more than 8 topics. (AMPS-6510, Z12871)

PREVIEWVersion 5.3.3.9 (2021-06-08)

  • Improve performance of queue recovery by allowing the recovery process to take advantage of multiple cores as needed. (AMPS-6500, Z12728)

PREVIEWVersion 5.3.3.8 (2021-06-05)

  • Fix issue where the build of libcurl distributed with AMPS for the use of the HTTP authentication and entitlements module could fail to load on systems that did not have libidn2 installed, causing AMPS to fail to start on those systems if the HTTP authentication and entitlements module was included in the AMPS configuration. With this fix, the workaround of installing libidn2 or loading a different build of libcurl is no longer necessary. (AMPS-6496, Z12488)

PREVIEWVersion 5.3.3.7 (2021-06-04)

  • Improve ability of AMPS to recover correctly when journal metadata is damaged or incorrect. Although AMPS is not guaranteed to recover the journal in this situation, this improvement allows AMPS to fix corruption that would previously have caused an error during journal recovery. (AMPS-6285)
AMPS Version 5.3.3.6 was intentionally skipped

PREVIEWVersion 5.3.3.5 (2021-05-27)

  • Fix crash caused by replacing an aggregated subscription that does not use the pagination options (skip_n and top_n). With this fix, an attempt to replace an aggregated subscription that does not use these options is correctly rejected as an invalid command. (When skip_n and top_n are specified, changing the value of those options is allowed, but the other options for the aggregated subscription must remain unchanged). (AMPS-6476, Z12799)

PREVIEWVersion 5.3.3.4 (2021-05-27)

  • Fix issue where a bookmark subscription that requested a completed acknowledgement would not be sent a completed acknowledgement if the transaction log was empty at the time the subscription was placed. With this defect, AMPS would send the completed acknowledgement once a message was published to a transaction backed topic. With this fix, AMPS will send a completed acknowledgement if requested, even if there are no messages in the transaction log. (AMPS-6473, Z12777)

PREVIEWVersion 5.3.3.3 (2021-05-22)

  • Fix the HTTP authentication and entitlements module libcurl dependency build that prevented AMPS from starting on newer RHEL-based Linux distributions with version 8.2 and higher. (AMPS-6466, Z12742)

PREVIEWVersion 5.3.3.2 (2021-05-20)

  • Fix crash when the configuration setting that causes AMPS to allow subscriptions that incorrectly provide the oof option on a bookmark subscription is in use, and a bookmark subscription with the oof option set is placed against a topic that is not recorded in the SOW. This setting is intended to help identify applications that are submitting incorrect options so those applications can be upgraded. This setting is not recommended for long term use, and will be removed in a future release. (AMPS-6470, Z12758)

PREVIEWVersion 5.3.3.1 (2021-05-07)

  • Fix issue where VALUE_LOOKUP() could produce a NULL value in a case where an existing reference message is updated and the values used for lookup have not changed. (AMPS-6457, Z12642)

PREVIEWVersion 5.3.3.0 (2021-05-06)

  • Compatibility with previous releases:

    • This release fully supports in-place upgrade from 5.0.0, 5.2.0, 5.2.X/5.3.0, and 5.3.X data files. There is no need to run the amps-upgrade script for this release.

    • This release supports replication to 5.2.0 and later versions of AMPS, although features added in later versions of AMPS may be replicated as the nearest equivalent operation to versions of AMPS that do not support that behavior. 60East recommends that replication between different release streams of AMPS is used during a rolling upgrade only, and that matching versions of AMPS are used for production or stable test or development environments.

    • AMPS now allows the Admin console (including Galvanometer) to bind to a specific network interface when the address of that interface is provided in the Admin configuration. Previously, the Admin console would bind to all interfaces. This change may require a change to the Admin configuration if the Admin configuration specifies a network interface and users or automated processes have been connecting to an interface other than the one specified in the Admin console settings. (AMPS-6155)

    • Upgraded OpenSSL to v1.1.1i. Note that this upgrade is incompatible with older versions of OpenSSL and requires users that provide their own OpenSSL library to upgrade their OpenSSL version. (AMPS-6154)

  • This version adds the following features and major improvements:

    • AMPS now supports IPv6. For incoming transports and the Admin console (including Galvanometer), AMPS will now automatically listen for connections on IPv6 addresses unless otherwise specified. For outgoing replication connections, AMPS can use IPv6 if an IPv6 address is provided or the hostname provided resolves to an IPv6 address. AMPS clients version 5.3.3.0 and above provide IPv6 support. (AMPS-813)

    • AMPS replication now optimizes failover to a new destination in a Group (when both sides of the connection use version 5.3.3.0 or above) to avoid synchronizing messages from the beginning of the transaction log unless that synchronization is necessary. In previous versions of AMPS, replication would replay from the last point at which the two instances in question were connected, or the beginning of the transaction log if they had never been connected. With this optimization, AMPS now evaluates the messages in the transaction log on both instances to determine an appropriate replay point. This allows replication to more efficiently synchronize the contents of the transaction logs, even in cases where the two instances have never been previously connected, or have not been connected for longer than the journal retention period. This optimization can save significant time and bandwidth in any replication fabric that involves more than two instances. (AMPS-5206)

    • AMPS now provides a struct message type, intended to allow AMPS to parse messages serialized from raw memory (such as a C-language struct). See the AMPS User Guide for details on configuring this message type and the limitations of this message type. (AMPS-6147)

    • AMPS now includes a transport filter to translate subscribe commands to one topic name to a subscribe command to a different topic name, while guaranteeing that the commands have a conflation interval provided. This can be helpful for installations where a conflated topic is infrequently-used, or for which subscribers only monitor a small number of messages out of the overall topic, allowing those installations to remove the conflated topic without modifying subscribers. (AMPS-6135)

    • AMPS now provides convenience functions for constructing values that are difficult to represent in the AMPS expression language: TRUE_VALUE(), FALSE_VALUE() and NAN_VALUE(). AMPS also provides a way to construct a character value from an integer, for use in field construction from message data. (For fixed values, the character escapes in AMPS expression language strings are more efficient.) (AMPS-6417)

  • This version adds the following improvements:

    • The amps_sow_dump utility now includes a --no-data flag to exclude the stored data, allowing metadata-only dumps. (AMPS-6347)

    • Improve performance when sending messages to a client. (AMPS-6406)

    • Improve performance of conflated subscriptions. (AMPS-6405)

    • Improve performance of excluding error and event logging messages by discarding the messages earlier in the logging process. (AMPS-6281)

    • Improve handling of queue acknowledgement messages for a message that is not currently in the queue (either because the queue message has not yet arrived over replication, or because the acknowledgement has been re-sent). This improvement allows AMPS to more efficiently handle these acknowledgements and identify more cases where a given acknowledgement is not needed by AMPS. (AMPS-6352)

    • Fix scenario where a large number of distinct priority values in a queue (greater than 16k in testing) can cause AMPS to consume a large amount of CPU which can result in message delivery delays and stuck messages in the logs. ( AMPS-5778)

    • Improve ability of AMPS to recover correctly when journal metadata is damaged or incorrect. Although AMPS is not guaranteed to recover the journal in this situation, this improvement allows AMPS to fix corruption that would previously have caused an error during journal recovery. (AMPS-6285)

    • AMPS will now return a persisted ack for the flush command if requested. (AMPS-6266)

    • AMPS now allows the Admin console (including Galvanometer) to bind to a specific network interface when the address of that interface is provided in the Admin configuration. (AMPS-6155)

    • AMPS statistics now record the subscription ID and the starting bookmark, if one is provided, in the ISUBSCRIPTIONS_STATIC table. (AMPS-5170)

  • This version fixes the following issues:

    • Fix crash that could occur when AMPS is recording new entitlements (that is, checking entitlements for a topic/user/operation combination that has not been previously checked) while another entitlement check is taking place. (AMPS-6391)

    • Fix crash during shutdown when transaction log threads are active longer than expected. (AMPS-6345)

    • Fix hang or crash during shutdown when AMPS exits while it is adjusting work between threads. (AMPS-6318)

    • Fix crash that could occur when an AMPS expression includes literal values that cannot be successfully represented in AMPS (for example, an integer numeric literal that cannot fit into 8 bytes). These expressions will now return an error. (AMPS-6275)

    • Fix crash caused by race condition when removing and reusing a slab. (AMPS-6204)

    • Fix issue that could cause a crash or memory corruption when processing out of focus messages for a paginated subscription. (AMPS-6129)

    • Fix deadlock that could occur when a client is acknowledging a message from a queue using the expire option, and a write entitlement filter is active for that user for that queue. (AMPS-6446, Z12651)

    • Fix issue that could cause AMPS to issue stuck thread warnings, create minidumps, or shut down when the metadata for a journal file is being removed at the same time that AMPS is creating a new journal file. (AMPS-6133, Z12072)

    • Fix hang during shutdown when a query is run just as AMPS is processing a shutdown request. (AMPS-6449)

    • Fix issue that could cause replicated queues to perform slower than expected when processing large numbers of transfer requests. (AMPS-6328)

    • Fix issue where a replication topology with more than two instances where every connection uses sync acknowledgement and no instance has a replication downgrade action configured could stop acknowledging messages to publishers as persisted. (AMPS-5608)

    • Fix issue where AMPS could incorrectly send a "success" ack for an operation that had previously received a "failure" ack for that operation. These messages would typically be ignored by the client libraries, but could be visible in a last chance message handler. (AMPS-6438)

    • Fix issue where AMPS could stop sending persisted acks to a bookmark replay that uses the live option when transactions on the transaction log are completing faster than publish operations (as could happen on a system under CPU and/or memory pressure that is not under I/O pressure). (AMPS-6304)

    • Fix issue where a logon for a user that occurs at the same time entitlements for that user are being reset can leave the previous entitlements for that user in place. (AMPS-6422)

    • Fix an issue where a sow_delete by key that happens at the same time that AMPS is coalescing the SOW could lead to missing or incorrect data. (AMPS-6414)

    • Fix issue where AMPS could report an incorrect size for the number of bytes used for a paginated subscription. (AMPS-6398)

    • Fix issue that could cause AMPS to incorrectly log a 1A-0009 message (indicating that filter compilation is consuming excessive memory) in cases where this was not actually the case. (AMPS-6390)

    • Fix issue that could cause AMPS to incorrectly log a 1D-0037 when a bookmark timestamp is provided that is the same timestamp as the last transaction processed. (AMPS-6369)

    • Fix issue where, when the transaction log is completely empty, a sow_and_subscribe with a bookmark of NOW does not receive the first message published to the transaction log. This issue does not happen if any message is in the transaction log before the subscription. (AMPS-6366)

    • Fix issue where the chained messages SowKey generator module would not create a directory for the data storage file if one did not already exist, but would instead fail on startup. The module will now correctly create the directory if necessary. (AMPS-6178)

    • Fix issue where configuration validation could incorrectly produce a warning for duplicate tags in a MessageType declaration. (AMPS-6146)

    • Fix issue where logging of a conflation interval (the 00-0024 message) showed the interval in nanoseconds rather than an easier-to-consume interval. (AMPS-6161)

    • Fix crash that can occur when processing an IN clause with a large number of strings that hash to the same value (for example, many instances of the empty string ""). (AMPS-6445, Z12970, Z12672)

    • Fix issue in pagination sow delete batch processing where AMPS would do sow delete processing regardless of whether or not the topic of the batch has any paginated subscriptions. (AMPS-6212)

  • This version includes the following improvements and fixes to Galvanometer:

    • Fix a Transaction Log page error caused by missing/skipped database intervals. (AMPS-6068)

    • Enforce corresponding protocol (either HTTP or HTTPS) for replication destinations. (AMPS-6070)

    • CSV export for subscriptions list now correctly uses the full filter value. (AMPS-6076)

    • Add support for human-readable notation for Time and Size filters in the IE11 and EOL versions of Firefox and Chrome. (AMPS-6115)

    • Various minor styling fixes for dark mode.

AMPS version 5.3.2

PREVIEWVersion 5.3.2.67 (2021-05-27)

  • Fix crash caused by replacing an aggregated subscription that does not use the pagination options (skip_n and top_n). With this fix, an attempt to replace an aggregated subscription that does not use these options is correctly rejected as an invalid command. (When skip_n and top_n are specified, changing the value of those options is allowed, but the other options for the aggregated subscription must remain unchanged). (AMPS-6476, Z12799)

PREVIEWVersion 5.3.2.66 (2021-05-27)

  • Fix issue where a bookmark subscription that requested a completed acknowledgement would not be sent a completed acknowledgement if the transaction log was empty at the time the subscription was placed. With this defect, AMPS would send the completed acknowledgement once a message was published to a transaction backed topic. With this fix, AMPS will send a completed acknowledgement if requested, even if there are no messages in the transaction log. (AMPS-6473, Z12777)
AMPS Version 5.3.2.65 was intentionally skipped

PREVIEWVersion 5.3.2.64 (2021-05-21)

  • Fix issue where a sow_delete by hash index can cause AMPS to crash in cases where the delete matches more than 32k entries (AMPS-6468, Z12720)

PREVIEWVersion 5.3.2.63 (2021-05-20)

  • Fix crash when the configuration setting that causes AMPS to allow subscriptions that incorrectly provide the oof option on a bookmark subscription is in use, and a bookmark subscription with the oof option set is placed against a topic that is not recorded in the SOW. This setting is intended to help identify applications that are submitting incorrect options so those applications can be upgraded. This setting is not recommended for long term use, and will be removed in a future release. (AMPS-6470, Z12758)
AMPS Version 5.3.2.62 was intentionally skipped

PREVIEWVersion 5.3.2.61 (2021-05-11)

  • Fix scenario where a large number of distinct priority values in a queue (greater than 16k in testing) can cause AMPS to consume a large amount of CPU which can result in message delivery delays and stuck messages in the logs. (AMPS-5778)

PREVIEWVersion 5.3.2.60 (2021-05-07)

  • Fix issue where VALUE_LOOKUP() could produce a NULL value in a case where an existing reference message is updated and the values used for lookup have not changed. (AMPS-6457, Z12642)

PREVIEWVersion 5.3.2.59 (2021-05-06)

  • Fix deadlock that could occur when a client is acknowledging a message from a queue using the expire option, and a write entitlement filter is active for that user for that queue. (AMPS-6446, Z12651)

PREVIEWVersion 5.3.2.58 (2021-05-04)

  • Fix crash that can occur when issuing a aggregated sow_and_subscribe command while concurrent publishing to that topic is happening. (AMPS-6309)

PREVIEWVersion 5.3.2.57 (2021-04-30)

  • Fix issue where AMPS could skip sending the first message in the transaction log during an EPOCH bookmark replay. This could happen when the transaction log is empty and multiple clients publish a message at the same time that a bookmark replay is started at EPOCH for the empty transaction log. (AMPS-6431)
  • Fix issue where AMPS could stop sending persisted acks to a bookmark replay that uses the live option when storing messages to the transaction log is completing faster than publishing messages to the client. (AMPS-6304)

PREVIEWVersion 5.3.2.56 (2021-04-28)

  • Fix crash when a record used by VALUE_LOOKUP() function is updated to change the fields used in the lookup and the function is then called with the new values. (AMPS-6434, Z12642)

PREVIEWVersion 5.3.2.55 (2021-04-27)

  • Fix issue where, when a bookmark replay provides a timestamp and that timestamp is the timestamp of a message that is in the process of being written to the transaction log then replay begins on that message rather than immediately following that message. (AMPS-6365)

PREVIEWVersion 5.3.2.54 (2021-04-23)

  • Fix issue when zstd replication compression is enabled where the downstream instance can stop processing messages. This can happen when a message or batch that is larger than 128K bytes compresses to be less than 128K bytes. When this issue happens, the connection remains active, but no further messages are processed. (AMPS-6432)

PREVIEWVersion 5.3.2.53 (2021-04-22)

  • Fix crash caused by a race condition when an aggregated query for a message queue is created at the same time another query arrives for the queue. (AMPS-6373, AMPS-6375)
AMPS Version 5.3.2.52 was intentionally skipped

PREVIEWVersion 5.3.2.51 (2021-04-12)

  • This fixes a deadlock that could occur when a queue receives a sow_delete by bookmark that contains a content filter through two different improvements:
    • Fix deadlock that could occur when a message for a queue topic is not processed by the queue (for example, because the message does not have a valid set of options).
    • Fix to explicitly return an error if a sow_delete by bookmark also contains a content filter. This combination of options is not valid in AMPS, but previously did not return an error. (AMPS-6310, Z12349)

PREVIEWVersion 5.3.2.50 (2021-04-09)

  • Fix to ensure that the seconds_behind statistic for a bookmark replay is not recorded as an unreasonably large value if statistics are collected before the replay begins. (AMPS-6379, Z12242)

PREVIEWVersion 5.3.2.49 (2021-04-07)

  • Fix deadlock in the HTTP authentication and entitlement module that may occur when an entitlement request and disconnection entitlement reset happen at the same time. (AMPS-6408, Z12566)

PREVIEWVersion 5.3.2.48 (2021-04-06)

  • Increased stability and performance during shutdown. (AMPS-4883, AMPS-6246, AMPS-6248, AMPS-6270)
AMPS Version 5.3.2.47 was intentionally skipped
AMPS Version 5.3.2.46 was intentionally skipped

PREVIEWVersion 5.3.2.45 (2021-04-01)

  • Fix issue where AMPS may hang when:

    • A SOW topic is receiving a high velocity of publishes and

    • A sow_and_subscribe command that uses pagination (has both skip_n and top_n options set) arrives for that topic and

    • That command is the first sow_and_subscribe command for that topic with pagination specified since the instance was started.

    (AMPS-6395)

PREVIEWVersion 5.3.2.44 (2021-03-30)

  • Fix to correctly disallow a sow_delete_by_bookmark command (used for acknowledging queue messages) that uses a regular expression for a topic name. Without this fix, if a queue acknowledgement submitted by constructing the command used a regular expression that matched multiple topics, this could cause AMPS to crash or become unresponsive. With this fix, AMPS will correctly return an error indicating that a regular expression topic name is not supported for this command. (AMPS-6396, Z12539)

PREVIEWVersion 5.3.2.43 (2021-03-29)

  • Add option to allow Join expressions in AMPS views to follow conventional SQL behavior for NULL values. Previously, Join expressions would consider empty or NULL fields to be equivalent. This could cause unexpected results and/or add significant unnecessary processing load for Views that join on fields that can contain NULL values.

    A View configuration can now include the JoinNullEquivalency value to control this behavior. When set to disabled, AMPS follows the expected SQL behavior. 60East recommends setting this value to disabled for any view where a field used in a Join may be missing, an empty string, or explicitly set to null in message types such as JSON. (AMPS-6360, Z12415, Z12504)

PREVIEWVersion 5.3.2.42 (2021-03-23)

  • Fix deadlock in the HTTP authentication and entitlement module when:

    • The module is configured to use permission expiration; and

    • A logon request causes permissions to expire; and

    • A different connection simultaneously requests a permission that AMPS has not previously checked with the module.

    (AMPS-6377, Z12499)

PREVIEWVersion 5.3.2.41 (2021-03-22)

  • Improve performance of sow_delete_by_key in cases where the corresponding message is large. This was caused by a buffer resizing to write the compressed data to the transaction log.(AMPS-6286)
  • Improve performance of zstd stream compression by reducing the resizing required to generate the compressed message. (AMPS-6222)
  • Fix issue when using zstd compression where the output maybe be truncated if the compressed size is larger than the input size. (AMPS-6330)

PREVIEWVersion 5.3.2.40 (2021-03-16)

  • Improve performance for historical sow_and_subscribe when the oof option is present. Previously, a subscription entered this way could not be combined with any other replays from the transaction log, which could result in AMPS doing more work than necessary when many replays are active. (AMPS-6298, Z12242)
  • Historical sow_and_subscribe with oof for topics that use a granularity of 0s can now use SOW history data, rather than the transaction log, to process oof messages. This change allows journals to be removed when the journal retention period is less than the Window for the SOW topic. (AMPS-6280)
  • Fix issue where records in a historical SOW topic could be created with an incorrect transaction id during the SOW synchronization with the transaction log during AMPS startup that might prevent pruning of the SOW data later. (AMPS-6323)
AMPS Version 5.3.2.39 was intentionally skipped

PREVIEWVersion 5.3.2.38 (2021-03-10)

  • Fix issue where a View with inline conflation enabled fails to process a message deletion to an underlying topic. Data from the message remains in the View, and the unprocessed deletion remains in the queue_depth for the view, preventing the queue_depth from ever reaching a value of 0. (AMPS-6342, Z12456)

PREVIEWVersion 5.3.2.37 (2021-03-09)

  • Fix deadlock introduced in 5.3.2.3 where AMPS can hang while removing messages from a SOW topic that has History enabled. This issue can cause AMPS to stop processing messages and eventually result in an abnormal shutdown. (AMPS-6349, Z12366)

PREVIEWVersion 5.3.2.36 (2021-03-06)

  • Fix crash that could occur during a sow_and_delta_subscribe subscription when pagination (top_n with skip_n), a conflation interval, and oof options are all specified for the subscription. (AMPS-6343, Z12261)
AMPS Version 5.3.2.35 was intentionally skipped

PREVIEWVersion 5.3.2.34 (2021-02-26)

  • Fixed crash introduced in 5.3.2.21 that could happen when a client has a conflated bookmark subscription and an unsubscribe command is processed for that subscription at the same time the server is preparing to send a message on the subscription. (AMPS-6284)

PREVIEWVersion 5.3.2.33 (2021-02-17)

  • Fix issue that could cause AMPS to crash when a subscription that uses pagination is active and SOW deletes occur. (AMPS-6260, Z11968)
  • Fix issue that could cause AMPS to crash or hang when a subscription to a view uses pagination and an update to an underlying topic causes a record to be removed from the view. (AMPS-6261, Z11968)
  • Fix issue that could cause incorrect results or cause AMPS to shut down when a subscription that uses pagination or aggregation is replaced. (AMPS-6279, Z11968)

PREVIEWVersion 5.3.2.32 (2021-02-16)

  • Fix for crash in the HTTP authentication and entitlements module when:
    • The Admin transport uses the authentication and entitlements module;
    • The module is configured to use permission expiration; and
    • Permissions expiration for a user is detected as a result of that user requesting a resource from the Admin interface. (AMPS-6282, Z12370)
  • Fix for error that was incorrectly logged during entitlement reset indicating that the connection was already being tracked (and, therefore, could not be added to connection tracking). (AMPS-6278)

PREVIEWVersion 5.3.2.31 (2021-02-16)

  • Fixed issue where a paginated query issued concurrently with a record being removed could produce incorrect data or result in a crash. (AMPS-6224)

PREVIEWVersion 5.3.2.30 (2021-02-08)

  • Fixed issues with large messages being sent over compressed client connections that could cause messages to be lost. (This fix was made to prepare for the forthcoming release of AMPS client libraries with compression support.) (AMPS-6217)

PREVIEWVersion 5.3.2.29 (2021-02-01)

  • Fixed issue where clients that use heartbeating could incorrectly disconnect or be disconnected while a long-running sow_delete command is being processed if that command runs for longer than twice the heartbeat interval set by the client. In this case, while the command is running, AMPS defers processing for some clients, which means that AMPS does not process heartbeat messages received from those clients or generate heartbeats to those clients. With this fix, AMPS will continue to generate heartbeats for clients where processing is deferred by a long running sow_delete, and will not disconnect clients while processing is deferred for that client. (AMPS-6208, AMPS-6229, Z12254)

PREVIEWVersion 5.3.2.28 (2021-01-23)

  • Fix regression introduced in 5.3.2.21 where subscriptions that use aggregation and conflation may receive messages faster than the conflation interval. For this to occur, both aggregated and non-aggregated subscriptions with the same conflation interval must be active. (AMPS-6227)

PREVIEWVersion 5.3.2.27 (2021-01-15)

  • Fix case where AMPS will incorrectly log a 01-0012 error message when no error should be reported. This message is logged when connecting to a WebSocket transport from a browser. (AMPS-5545, Z11860)

PREVIEWVersion 5.3.2.26 (2021-01-14)

  • Fix race condition that can lead to memory corruption or incorrect behavior when a client unsubscribes from a Queue that is configured with at-most-once delivery semantics. (AMPS-6193)

PREVIEWVersion 5.3.2.25 (2021-01-13)

  • Fix issue where AMPS would abort and create a minidump when the SOW file is being extended due to a publish and the new calculated byte count for the topic is inconsistent with the actual file size. This could happen if memory corruption occurs or if the SOW file is corrupted. (AMPS-6109, Z11794)

PREVIEWVersion 5.3.2.24 (2021-01-10)

  • Fix issue where AMPS could lease more messages from a Queue than the configured MaxBacklog limit for that Queue when there is more than one subscription active. (AMPS-6199, Z12233)

PREVIEWVersion 5.3.2.23 (2021-01-10)

  • Improve memory required to track unleased messages in a message queue. Memory savings with this fix can be significant when the unleased message count exceeds 100K. (AMPS-6187, Z12151)
  • Fix issue that can limit message queue throughput in AMPS when there is no available backlog for a Queue, so the delivery thread for that Queue must wait for a message to be acknowledged or expired to deliver another message. (AMPS-6191)

PREVIEWVersion 5.3.2.22 (2021-01-09)

  • Add an optional entitlement reset mode to the HTTP authentication and entitlements module that can forcibly reset connections for a user and the AMPS entitlement cache for a user when a new logon for a given user is processed, there are existing connections for that user, the permissions document returned for the user has changed since the last time entitlements for that user were reset and the entitlements for that user have been in place longer than a specified timeout period. See the documentation for the HTTP authentication and entitlements module in the AMPS User Guide. (AMPS-6121, Z11626)

PREVIEWVersion 5.3.2.21 (2021-01-08)

  • Improve conflation behavior for conflated topic processing, conflated subscription, bookmark subscription conflation, and pagination subscription conflation to ameliorate bursty message delivery. (AMPS-6168, Z12067)
  • Fix a crash that may occur if a detached subscription or a subscription with a select list option is matched before a regular subscription with a single matched record. (AMPS-6183)
  • Fix issue where the threads that handle updates to views or conflated topics were not reporting progress to the thread monitor frequently enough, which could cause AMPS to incorrectly log potential stuck thread warnings and prematurely emit minidumps. This issue would occur more frequently during high volumes of updates or during periods of high CPU usage. (AMPS-6066, Z11903, Z13324)
AMPS Version 5.3.2.20 was intentionally skipped

PREVIEWVersion 5.3.2.19 (2021-01-06)

  • Fix issue that could cause all bookmark subscriptions to fall behind when:
    • another bookmark subscription falls behind and cannot catch up, or
    • another bookmark subscription is entered that starts from a point in the transaction log further back than the current journal file. (AMPS-6148, Z11976)
  • Add diagnostic logging to AMPS for bookmark subscriptions to provide information about subscriptions and clients. (AMPS-6094)

PREVIEWVersion 5.3.2.18 (2021-01-05)

  • Fix issue where AMPS would incorrectly upgrade a replication destination configured for async acknowledgement to sync acknowledgement when replication to that destination was up to date and the amps-action-do-upgrade-replication module ran or the amps_upgrade_replication_age function was called from a module. This issue was introduced in version 5.3.2.1. (AMPS-6175, Z12153)

PREVIEWVersion 5.3.2.17 (2021-01-04)

  • Fix memory growth when an active paginated subscription with a filter matches no messages. (AMPS-6158, AMPS-6159, Z12061)
  • Fix memory growth when a paginated subscription is being replaced or an unsubscribe command is processed. (AMPS-6156, AMPS-6157, Z12067)
  • Fix potential memory growth when an active paginated subscription receives inserts that come into focus (inside the pagination window) and cause existing matches that are inside the window to get out of focus. (AMPS-6162)

PREVIEWVersion 5.3.2.16 (2020-12-29)

  • Fix issue where a bookmark replay for a range of messages may not return the correct messages if the end range is a list of bookmarks. A bookmark replay with only a starting point is not affected. (AMPS-6184)

PREVIEWVersion 5.3.2.15 (2020-12-17)

  • Fix issue where a bookmark replay that uses a timestamp bookmark may incorrectly start at NOW. (AMPS-6173, Z12146)

PREVIEWVersion 5.3.2.14 (2020-12-09)

  • Fix issue where a historical query may incorrectly return records that were previously removed from an explicitly keyed SOW topic. This issue happens when no index is being maintained for the topic (that is, when no indices are specified in the configuration file, no queries have referenced a field in the topic, no views use the topic, and so on). (AMPS-6140, Z12107)

PREVIEWVersion 5.3.2.13 (2020-12-08)

  • Increase stats.db page cache size for better performance of the admin interface and applications that use it, including Galvanometer, on large instances with slow storage. (AMPS-5963, Z11584)

PREVIEWVersion 5.3.2.12 (2020-12-04)

  • Fix issue where AMPS allocates an excessive amount of memory when returning the results of a SOW query. This over-allocation happens when the topic contains one or more messages that are significantly larger than the average message size for the topic. The effect is more severe the larger the message is relative to the average message size. (AMPS-6132, Z11904, Z12043)
AMPS Version 5.3.2.11 was intentionally skipped

PREVIEWVersion 5.3.2.10 (2020-11-21)

  • Fix crash caused by a buffer overrun that can occur when AMPS is parsing BFlat messages with invalid information for a field (for example, the incorrect size for a string). (AMPS-6089, Z11863, Z11985)
  • Fix issue where formatting a BFlat message for readability can result in an AMPS crash due to excessive memory allocation. This issue only applies to messages formatted for readability (such as the AMPS event logs, Galvanometer queries, or connections that use the pretty option on logon). This issue is due to AMPS formatting BFlat messages containing invalid header information for a field. AMPS will now format messages containing large arrays of null values up to the first 1024 null elements. If the array is larger, the 1025th element will be a string describing how many additional null elements are in the array. (AMPS-6110)
  • Fix issue where formatting a BSON message for readability can result in an AMPS crash caused by a buffer overrun when the BSON message contains invalid information for a field (for example, the incorrect size for a string). (AMPS-6112)
  • Fix issue where displaying large messages (bigger than 4 MB) on the SQL page of Galvanometer results in a "Maximum call stack size exceeded" error. (AMPS-6114, Z11997)

PREVIEWVersion 5.3.2.9 (2020-11-20)

  • Fix deadlock that can occur when a sow_delete by query is replicated from an AMPS 5.3.1.x or earlier instance to an AMPS 5.3.2.x instance. With this fix, AMPS 5.3.2.x uses the entitlements of the replication connection (pre-5.3.2.x behavior) when a replicated sow_delete is received from earlier AMPS versions, and does not expect entitlement information to be present. (AMPS-6098, Z11991)

PREVIEWVersion 5.3.2.8 (2020-11-17)

  • Fix issue where a message may not be detected as a duplicate during replication and incorrectly recorded in the transaction log. This could happen in the case where the same message arrives at AMPS over multiple transports, when one of those transports is not a replication transport, and where the non-replication client has previously been connected to this instance, disconnected, and reconnected. Recording the same message more than once in the transaction log could lead to a bookmark replay starting at the incorrect point, duplicate delivery of messages from AMPS, a message in a queue being undeliverable, and so on. (AMPS-6100, AMPS-6105, AMPS-4875, AMPS-5373, Z11983)

PREVIEWVersion 5.3.2.7 (2020-11-15)

  • Fix issue where a SOW delete by query on the underlying topic of a view could cause a SIGABRT. This was introduced in AMPS 5.3.2.1 with changes to the underlying hash functions. (AMPS-6097, Z11982)

PREVIEWVersion 5.3.2.6 (2020-11-13)

  • Fix issue that could cause AMPS to hang when a bookmark live subscription has finished replay and is beginning the live subscription, the message pipeline is full, and a new bookmark live subscription is being processed at the same time. (AMPS-6080)

PREVIEWVersion 5.3.2.5 (2020-11-11)

  • Fix issue that could potentially leak SOW slabs when attempting to reuse the slab. (AMPS-6093)

PREVIEWVersion 5.3.2.4 (2020-11-06)

  • Fix crash that can occur when a sow_delete produces an oof message for a bookmark sow_and_subscribe with 'oof' enabled that uses a regular expression for the topic name. (AMPS-6088)

PREVIEWVersion 5.3.2.3 (2020-11-05)

  • Fix crash when using a SOW topic that has transient durability, has History enabled, and is also recorded in the transaction log when recovering the topic as AMPS starts. (AMPS-6082, Z11935)

PREVIEWVersion 5.3.2.2 (2020-11-02)

  • Fix issue where replication could fail to replicate messages in a case where:
    • A replication connection between two instances has been previously replicating messages.
    • The downstream instance is taken offline and all journal files and the clients.ack file are removed.
    • The downstream instance is brought back online, the upstream instance reconnects, and no other publish traffic is being received by the downstream instance. In this situation, the downstream instance could fail to receive messages from the upstream instance. (AMPS-6060, Z11796)

PREVIEWVersion 5.3.2.1 (2020-10-28)

  • Compatibility with previous releases:

    • This release fully supports in-place upgrade from 5.0.0, 5.2.0, 5.2.X/5.3.0, and 5.3.1 data files. There is no need to run the amps-upgrade script for this release.

    • This release supports replication to 5.2.0 and later versions of AMPS, although features added in later versions of AMPS may be replicated as the nearest equivalent operation to versions of AMPS that do not support that behavior. 60East recommends that replication between different release streams of AMPS is used during a rolling upgrade only, and that matching versions of AMPS are used for production or stable test or development environments.

    • The security settings for TLS/SSL connections to AMPS have been updated to allow only connections that use the TLSv1.1 or TLSv1.2 protocol by default. This release also adds the ability to explicitly specify the allowable protocols. To restore the behavior of previous releases, add the following configuration item to the secure Transport configuration:

      <SecureSocketProtocols>SSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2</SecureSocketProtocols>

      This enables every protocol that the AMPS server is aware of, which was the behavior in previous releases. (AMPS-5392)

    • This release disallows non-deterministic functions from being used in contexts where non-deterministic values could cause incorrect results, incorrect behavior, or issues in AMPS. Using a non-deterministic function will now produce an error in any context where correct behavior relies on the function producing consistent results for a given message. Non-deterministic functions included in this release are UNIX_TIMESTAMP(), LAST_READ(), and VALUE_LOOKUP(). See the AMPS Functions chapter in the AMPS User Guide for details. (AMPS-2481, AMPS-5924)

    • READ permission for a queue now implies permission to acknowledge a message from that queue, even if the connection acknowledging the message does not currently hold the lease on that message. This allows a queue processor that only has READ permission to acknowledge a message successfully even if the acknowledgement arrives slightly after lease expiration, or in cases where a shutdown sequence incorrectly closes the subscription before acknowledging the messages that have been processed. Notice that this change only affects queues that use the default sublet model for Leasing; in strict mode, AMPS will not allow acknowledgements from a client that does not currently hold the lease, regardless of permissions. (AMPS-5833)

    • The HTTP authentication and entitlements module will now fully consume an error response from the backend server and log the contents of that response. Previously, the module only consumed the status code for an error, and immediately dropped the connection without reading (or logging) the content of the response. (AMPS-5160)

    • In the statistics database, the field that tracks the current backlog for a queue subscription has been moved from the ISUBSCRIPTION_STATIC table to the ISUBSCRIPTION_DYNAMIC table. Queries that use the admin interface and queries that use the amps-sqlite3 utility are unaffected. Any process that queries the database directly and explicitly references this column may need to be updated. (AMPS-5784)

    • The start_timer and stop_timer commands are deprecated as of this version, and no longer produce results. AMPS will log an 02-0004 error if an application submits either of these commands. (AMPS-5885, AMPS-5703)

  • This version adds the following features:

    • AMPS now supports the ability to replay a specified range of messages from the transaction log. A bookmark replay can provide a starting point and a completion point for a subscription. When provided, AMPS will begin the subscription at the specified starting point, and complete the subscription (and stop delivering messages from the subscription) at the specified ending point. The subscriber can control whether the range is inclusive (starting point and/or ending point messages are delivered) or exclusive (starting point and/or ending point messages are not delivered). See the Transactional Messaging and Bookmark Subscriptions section of the AMPS User Guide for details.

    • This version includes substantial improvements in the implementation of paginated result sets. These improvements significantly improve the response time and significantly reduce memory usage for subscriptions that use pagination (that is, the top_n/skip_n/OrderBy options). 60East recommends that any application that makes use of pagination upgrade to this version. (AMPS-5432)

    • This version allows a Transport to explicitly specify the allowable protocols for an SSL/TLS connection, using the SecureSocketProtocols configuration element. See the Transports chapter in the AMPS Configuration Guide for details. (AMPS-5392)

    • Functions are now provided to return the SowKey and the AMPS hash of the SowKey for a message, when that data is present. Notice that these functions are intended to be used in situations where simply providing the SowKeys header on a command is not possible (such as during message Enrichment). In situations where a command accepts the SowKeys header (such as limiting a query to specific records), using that header is more efficient. (AMPS-5864)

    • This version includes a set of array reduce functions for performing computations over an array in a message. The functions are ARRAY_SUM(), ARRAY_MIN(), ARRAY_MAX(), and ARRAY_COUNT(). See the Array Reduce section of the AMPS Functions chapter of the AMPS User Guide for details. (AMPS-5704, Z11218)

    • The amps_sow_dump utility now includes an optional argument to include the read offset for each record in the verbose output. (AMPS-5882)

    • This version adds a function that can be configured to return a value retrieved from a SOW topic in the instance. This is an experimental function designed for use during Enrichment of a Topic, and has significant limitations for other uses. See the Auxiliary Modules section of the AMPS User Guide for details. (AMPS-5752)

  • This version contains the following improvements:

    • Reduce memory usage for views by retaining less memory when the number of records in the view decreases. (AMPS-5476)

    • Bookmark subscriptions that request a stats acknowledgement will now receive a larger set of information. The acknowledgement will be delivered at the point the completed acknowledgement is produced and will provide information about the replay to that point. (AMPS-5896)

    • The AMPS startup sequence now logs the number of records expired from a SOW topic upon startup. (AMPS-5832)

    • Enhance the 16-0011 SOW query results message to include more information about how filters are evaluated in cases where a hash index can be used for part of the filter. (AMPS-5808)

    • Improve performance of parsing message headers for the amps protocol (AMPS-5439).

    • Improve performance of inline view conflation. (AMPS-5813)

    • Improve efficiency and correctness of sow delete by query and sow expiration. This change includes a number of efficiency improvements, and eliminates the possibility of deadlock over the message pipeline even in cases where the system is under severe constraints (all CPUs saturated). (AMPS-5804)

    • Improve thread monitoring and reduce contention when performing a parallel query to reduce the chances of generating an unnecessary minidump. (AMPS-5756, Z11279)

    • The CORRELATION_ID, LAST_UPDATED and MESSAGE_SIZE functions now work as expected when used in an aggregate function in a view or aggregated subscription. (AMPS-5924)

    • The amps-report-minidump utility now uses HTTPS connections to submit minidumps. (AMPS-5758)

    • AMPS will now emit a warning-level log message (1D-0137) when a bookmark replay requests a bookmark or set of bookmarks that are not in the transaction log and replay begins at the end of the transaction log. (AMPS-5751)

    • The minimal sample configuration produced using the --sample-config flag now includes a websocket Transport and configures Galvanometer to use that transport for queries and subscriptions. (AMPS-5733)

    • AMPS will now allow a sow_and_subscribe with a bookmark to provide a regular expression for the set of topics to subscribe to. (AMPS-5707)

    • AMPS will now allow a sow_and_subscribe with a bookmark range. (AMPS-5657)

    • Improve AMPS resilience to repeated EINTR failures from the I/O subsystem (such as might happen when the storage for a virtual machine is paused). (AMPS-5621)

    • Improve performance when inserting or updating a message in a SOW topic that is also recorded in a transaction log. (AMPS-5612)

    • Improve performance for parallel SOW delete by hash index or primary key. (AMPS-5607)

    • Improve performance of sow delete by primary key or sow delete by data for historical SOW topics. (AMPS-5595)

    • Improve performance for handling numbers in exponential notation in JSON messages. (AMPS-5554)

    • Improve performance for out of focus processing. (AMPS-5359)

    • Improve performance and memory usage when rebuilding a historical SOW topic from the transaction log. (AMPS-6024)

    • AMPS will now provide a persisted ack with the appropriate bookmark immediately after the completed ack for a bookmark subscription that requests these acknowledgements. This provides a stable recovery point for the subscription as replay completes. (AMPS-6049)

    • Provide additional logging in cases where AMPS shuts down due to a lack of progress (which can potentially indicate an issue in AMPS). (AMPS-5418)

    • The HTTP authentication and entitlements module will now log the entitlements document returned by the web service at trace level. (AMPS-5906)

    • Added the ability for the embedded client (used in AMPS modules) to set the SowKeys header on a command. (AMPS-5523)

    • Update the usage text for the spark tool to better illustrate using .zip files for working with binary message types. (AMPS-5410)

    • Improve the predictability of queue message delivery order in cases where an at-least-once delivery model queue with a queue maximum backlog setting of 1 has multiple subscribers and a message that had been leased is returned to the queue. (AMPS-5652)

    • The HTTP authentication and entitlements module now supports specifying the entitlement select list. (AMPS-5169)

    • Modules that implement a user defined function can now explicitly mark that function as deterministic. (AMPS-5924)

    • Improve memory usage for SOW topics in cases where messages are short-lived relative to the incoming publish rate. In situations where a slab has become empty (typically through deletes) while that slab is still being used by a message processor, AMPS can now immediately reuse the slab rather than waiting for the slab to be marked empty during SOW maintenance. (AMPS-6007)

    • AMPS will now emit a warning-level message on startup if the operating system is incorrectly configured with Transparent Huge Pages set to enabled. Servers that host AMPS should use a setting of never or madvise. See the Linux Operating System Configuration chapter of the AMPS User Guide for details. (AMPS-5694)

    • Improve caching efficiency for the statistics database. This is intended to improve the response time for producing the set of statistics that Galvanometer requests on startup for large instances. (AMPS-5963)

    • The amps-grep utility now supports an -f flag that reads a list of literal terms to match from a file. This can be helpful when searching for a large set of terms, or a set of terms that can be generated programmatically. (AMPS-6035)

    • AMPS now logs separate error messages, 12-2003 and 17-2003, for messages that are disallowed due to an entitlement filter. For backward compatibility, 12-2001 and 17-2001 are still logged in this release when a message is disallowed due to entitlement filter or due to topic permissions. In a future release, the 17-2001 and 12-2001 will only be logged for topic permissions. (AMPS-5948, Z11722)

    • This release contains the following improvements to Galvanometer:

      • Update the method by which Galvanometer detects a regular expression in a topic name to match the AMPS server logic.
      • Add the client.id column to the clients widget and the title bar for the clients widget.
      • Provide an Unlimited option for the maximum number of records to receive for a subscription. When Unlimited is chosen, Galvanometer will suppress the option to fill in a top_n value. (AMPS-5336)
      • Accept human-readable values for time and size when filtering information in details grids (for example, Galvanometer will now accept a value like > 1h to show entries with values over an hour, or 33MB to show entries with a size of 33 megabytes). (AMPS-6020)
      • Display statistics for SOW queries if the top_n=0 option is set. (AMPS-5335, AMPS-5337)
  • This version contains the following fixes:

    • Fix crash that could occur when a large number of clients rapidly connect, publish a small number of messages, and then disconnect. (AMPS-4875)

    • Fix issue that could cause a crash when querying a sow topic by hash index in cases where records are being deleted from the topic. (AMPS-5976, Z11618)

    • Fix crash that could occur when a SOW query, SOW delete by filter, coalesce, or remap happens while message processing for a previous message is still in progress. This issue was introduced in 5.3.1.137. (AMPS-6021)

    • Fix crash that could occur when SOW expiration for a topic occurs at the same time that a new record is inserted in the topic. (AMPS-6023)

    • Fix crash caused by a race condition when a client disconnects and reconnects while AMPS is processing a publish that has requested a persisted acknowledgement, and that message is a duplicate. (AMPS-5395, Z11914, Z11879)

    • Fix issue where a bookmark subscription that uses the rate option could be sent a persisted acknowledgement for a point in the the transaction log that the subscription has not yet reached. (AMPS-6055)

    • Fix issue where a sow query of a queue topic ignores the top_n option. AMPS now correctly produces at most the number of messages specified when the top_n option is present. (AMPS-5344, Z10342)

    • Fix issue where a sow query with a filter that results in a primary key query or a query by hash index ignores the top_n option. AMPS now correctly produces at most the number of messages specified when the top_n option is present. (AMPS-5651)

    • Fix issue where, in the event that a delta publish creates a message that is too large for the configured SlabSize for a Topic, AMPS writes the message to the transaction log even though the message cannot be stored in the topic. This created a situation where the contents of the topic and the contents of the transaction log differ. With this fix, a message that cannot be stored in the Topic is not written to the transaction log. (AMPS-5416)

    • Fix issue that could cause AMPS to crash or produce an invalid message during a delta publish when merging a subdocument into an anonymous array that contains a subdocument with the same name (for example, given an original document such as {"a":[{"b":1},2,{"b":3}] }, a delta publish of a document such as {"a":{"b":"ouch"} } could demonstrate this problem. With this fix, AMPS replaces the contents of a with the updated value, as expected. (AMPS-5709)

    • Fix issue where a delta subscription to a topic that uses publisher provided SOW keys and uses per-subscription conflation could produce an empty delta even when the no_empties option is specified. (AMPS-5914)

    • Fix issue that could cause AMPS to crash when coalescing a historical SOW topic in the case where the last item in the history has been removed. (AMPS-5599)

    • Fix issue where compacting/recovering a historical SOW topic that uses publisher-provided SOW keys could fail to produce index records, which would cause queries that used the index to return no results (even though data was present in the topic). With this fix, queries for these topics return the expected results after the topic is compacted/recovered. (AMPS-6062, Z11894)

    • Fix issue that could cause AMPS to omit a message from sow query results or produce an incorrect key in the header of the message in cases where the message expires or a sow delete by key removes the message at the same time the query is starting. (AMPS-5575)

    • Fix issue where a SOW topic with history enabled that is also recorded in the transaction log could retain records in the SOW file which were no longer needed. This could lead to a situation where the SOW file was larger than necessary. (AMPS-6029, Z11833)

    • Fix issue that could cause a crash if a client disconnects and is reaped while a sow delete for that client is in progress. (AMPS-5581)

    • Fix issue that could cause AMPS to hang on restart in cases where a SOW file has been removed and must be rebuilt from the transaction log. (AMPS-5795)

    • Fix issue that could cause unexpected results when a SOW query uses an OrderBy option and the field used to order the results contains data of heterogeneous type (for example, some messages have numbers for the field, some messages have non-numeric strings for the field). (AMPS-5692)

    • Write entitlement filters for sow delete commands are now correctly replicated to downstream AMPS instances, and AMPS now correctly applies write entitlement filters for sow delete commands received over replication. Previously, these filters were not replicated, which could cause topics to become out of sync when deletes were denied due to an entitlement filter. (Notice that, when replicating to an AMPS version previous to 5.3.2.0, the downstream instance will receive the filters, but will still still have the previous, incorrect, behavior for the delete.) (AMPS-5835)

    • Replicated sow delete by key for a topic that uses a publisher-provided key now works as expected. Previously, a downstream instance would incorrectly fail to locate the message to be deleted, and would not delete any messages from the topic. (AMPS-5868)

    • Fix issue that could result in an AMPS hang (with the symptom of a shutdown due to lack of progress in the message pipeline) in cases where AMPS receives a sow query or sow delete and the system that hosts AMPS is severely overloaded with regard to CPU or storage. (AMPS-5489)

    • Fix issue that could cause extended response times from the Admin interface or Galvanometer in cases where the file system that hosts the statistics database is unresponsive. With this fix, AMPS will return a failure if it cannot retrieve information rather than continuing to retry the unresponsive device. (AMPS-5687)

    • Fix issue that would cause AMPS to incorrectly report CRC errors during journal recovery in cases where a compressed journal expanded to a size larger than the currently-configured JournalSize. (AMPS-5753)

    • Fix issue that could cause AMPS to crash when running on a system with a large number of processors, such that AMPS allocates more than 32 publish engine threads. (AMPS-5863)

    • Fix issue where a message that has been added to a SOW topic and subsequently fails to be parsed would not be indexed, even if AMPS was able to extract values from the message before the point at which the message failed to parse. This could happen with message types that support partial parsing, where AMPS successfully parsed the first part of the message when the message is inserted into the SOW topic, but where a later query uses a field that was not indexed when the message was initially published. With this fix, AMPS will include the message in the index for any fields that have been successfully parsed prior to the point at which the message fails to parse. (AMPS-5793)

    • Fix issue where an update to a historical SOW for a previously-deleted record could be treated as an update (possibly producing a delta) rather than an insert. (AMPS-5852)

    • Fix issue that could cause incorrect results or errors in AMPS when a record in a historical SOW topic is queried immediately after the record is deleted. (AMPS-5851)

    • Fix issue where a conflated bookmark subscription could receive a completed acknowledgement before receiving all of the messages that are in the transaction log before the completion point. With this fix, the conflated messages will be delivered before the acknowledgement message. (AMPS-5667)

    • Fix issue introduced in 5.3.1.2 where AMPS could allocate more memory than needed for client buffering. This could lead to situations where a client was offlined or disconnected before slow client mitigation was strictly necessary. (AMPS-5969)

    • Fix issue where, if a message expires from a queue while a client has a lease on the message and the client sends an expire acknowledgement for that message, the available backlog for the subscription would not be adjusted (which means that the subscription would always have a backlog count greater than the actual number of messages leased). With this fix, backlog is correctly adjusted. (AMPS-5643)

    • Fix race condition that could cause out of focus messages to not be delivered from a sow delete when the delete runs in parallel. (AMPS-5798)

    • Fix issue that could cause AMPS to crash when inflating a compressed transaction log record that inflates to more than 4GB of data (typically, this could happen when a sow_delete by keys deletes a large amount of data). (AMPS-6053, Z11885)

    • Fix issue where amps_journal_dump could fail to dump records that contain compressed data that would inflate to more than 4GB. (AMPS-6054, Z11885)

    • Fix to ensure that the output from amps_fast_journal_dump and the python implementation of amps_journal_dump are identical, including formatting and whitespace. (AMPS-5826, AMPS-5810, AMPS-5592)

    • Fix to ensure that amps_journal_dump works correctly with Python 3. (AMPS-5807)

    • Fix issue where the ATAN_2() function incorrectly returns NaN if either the x or y argument is 0. With this fix, NaN is only returned if both arguments are 0. (AMPS-5604)

    • Fix issue in configuration validation for views where a grouping clause that contains a field construction expression rather than simply naming a field (that is, the grouping Field contains a construct like /a AS /b) is silently ignored. This is now correctly reported as a configuration error. (AMPS-5598)

    • Fix issue where AMPS could unnecessarily produce a minidump on shutdown in cases where there a transaction log is configured and there is no activity to the transaction log at the point where AMPS shuts down. (AMPS-5561)

    • Fix overlogging of error 31-0006 when AMPS is processing a queue message transfer request and detects that the replication topology may cause the request to arrive at the same instance more than once. This is not an error in a ring or mesh replication topology, and should not be logged as an error. (AMPS-5408)

    • Fix overlogging of error 07-0006 when a client disconnects while AMPS is sending data to the client. This logging is misleading, since this can be a normal disconnection, and this logging is also unnecessary since the client disconnect is already logged. (AMPS-5574)

    • Fix crash caused by an issue in configuration validation where AMPS does not report a configuration error when a Topic specifies Enrichment but the message type does not support message construction. Before this fix, AMPS would start up, and then crash when attempting to enrich a message. With this fix, AMPS now reports a configuration error. (AMPS-5358)

    • Fix issue in configuration validation where AMPS does not report a configuration error when a View was defined with a message type that does not support view creation. In this case, AMPS would create a view that was always empty. With this fix, AMPS now reports a configuration error. (AMPS-5376)

    • Fix issue in configuration validation where AMPS incorrectly allows a Topic to enrich fields that are used in computing the SOW key. This could cause AMPS to fail to load the topic on recovery since the SOW key stored in the header metadata would not match the key as computed from the message data itself. Modification of fields used in the SOW key should be done during preprocessing (before the key is computed). (AMPS-3471)

    • Fix incorrect configuration validation warning when a protocol buffer message definition includes multiple ProtoPath elements. (AMPS-5567)

    • Fix issue with calculating the Age for the amps-action-do-upgrade-replication and amps-action-do-downgrade-replication actions that could lead to unnecessary upgrade/downgrade cycles. (AMPS-5534)

    • Fix issue where AMPS would incorrectly ignore projection or grouping option on a command that does not support aggregation. Both options are required for aggregation, and commands that provided both options were correctly rejected. With this fix, AMPS will also provide an error for invalid options rather than silently ignoring them. (AMPS-5513)

    • Fix issue in the Galvanometer SOW slab map widget where the widget attempted to predict the topic id based on the topic name and message type, rather than using the topic id value provided by the admin interface. This could lead to cases where the widget produced an incorrect topic id if the topic name or message type name contained reserved characters. (AMPS-5790)

    • Fix issue where AMPS would allow an arbitrarily long width for the %f format specifier in the STRFTIME() function. AMPS now limits the specifier to a maximum of 128 characters. (AMPS-5393)

    • Fix issue where AMPS would attempt to finish transaction log journal compression before shutting down. In cases where a large number of journals are being compressed, or where the storage device is slow, this could cause extended waits for AMPS to shutdown. With this fix, AMPS will stop compressing journals when a shutdown request is received. Journals that have not yet been compressed will remain unchanged. (AMPS-5902)

    • Fix issue where an error log written using gzip format could be incorrectly truncated if AMPS exits due to detecting an internal problem (including delays in a normal shutdown). With this fix, AMPS will correctly close the file before exiting. (AMPS-5975, Z11767)

    • Fix issue where, in cases where a module takes longer than expected to shut down, AMPS could incorrectly report the name of the module affected. (AMPS-5957)

    • Fix issue where if the AMPS default authenticator is used for outgoing replication credentials, and no password is specified, the authenticator could leak a small amount of memory (8 bytes) each time an outgoing connection is attempted. (AMPS-6011)

    • Fix issue where statistics for the last_active value for a message processor could be calculated incorrectly if statistics are collected before AMPS fully starts. (AMPS-5993)

    • Fix crash when AMPS attempts to coalesce a slab that recently had all items deleted from the slab. (AMPS-5625, Z11780, Z11920)

    • Fix issue where AMPS would incorrectly attempt to store a message that is larger than the configured slab size. This could happen in cases where the message size was less than 128 bytes larger than the maximum message size. (AMPS-5996)

    • Fixed an issue in AMPS where SOW queries by hash index or primary key with order_by defined and either top_n or skip_n options would return incorrect or empty results. (AMPS-5911)

    • Fix issue where AMPS would fail to start up in a timely manner and potentially lead to incorrect data in a view when a message in the underlying topic contains the same SOW key field more than once. (AMPS-5710)

AMPS version 5.3.1

PREVIEWVersion 5.3.1.158 (2020-11-23)

  • Improve performance and memory usage when rebuilding a historical SOW topic from the transaction log. (AMPS-6024)
  • Fix issue where a SOW topic with history enabled that is also recorded in the transaction log could retain records in the SOW file which were no longer needed. This could lead to a situation where the SOW file was larger than necessary. (Z11833, AMPS-6029)
  • Fix crash when using a SOW topic that has transient durability, has History enabled, and is also recorded in the transaction log when recovering the topic as AMPS starts. (Z11935, AMPS-6082)

PREVIEWVersion 5.3.1.157 (2020-11-21)

  • Fix crash caused by a buffer overrun that can occur when AMPS is parsing BFlat messages with invalid information for a field (for example, the incorrect size for a string). (AMPS-6089, Z11863, Z11985)
  • Fix issue where formatting a BFlat message for readability can result in an AMPS crash due to excessive memory allocation. This issue only applies to messages formatted for readability (such as the AMPS event logs, Galvanometer queries, or connections that use the pretty option on logon). This issue is due to AMPS formatting BFlat messages containing invalid header information for a field. AMPS will now format messages containing large arrays of null values up to the first 1024 null elements. If the array is larger, the 1025th element will be a string describing how many additional null elements are in the array. (AMPS-6110)
  • Fix issue where formatting a BSON message for readability can result in an AMPS crash caused by a buffer overrun when the BSON message contains invalid information for a field (for example, the incorrect size for a string). (AMPS-6112)
  • Fix issue where displaying large messages (bigger than 4 MB) on the SQL page of Galvanometer results in a "Maximum call stack size exceeded" error. (AMPS-6114, Z11997)

PREVIEWVersion 5.3.1.156 (2020-11-19)

  • Fix issue where a persisted ack may not be sent after a completed ack for bookmark subscriptions. (AMPS-6049)
  • Fix issue where rate limited bookmark subs could receive a persisted ack ahead of a publish for the same transaction id. (AMPS-6055)

PREVIEWVersion 5.3.1.155 (2020-11-17)

  • Fix issue where a message may not be detected as a duplicate during replication and incorrectly recorded in the transaction log. This could happen in the case where the same message arrives at AMPS over multiple transports, when one of those transports is not a replication transport, and where the non-replication client has previously been connected to this instance, disconnected, and reconnected. Recording the same message more than once in the transaction log could lead to a bookmark replay starting at the incorrect point, duplicate delivery of messages from AMPS, a message in a queue being undeliverable, and so on. (AMPS-6100, AMPS-6105, AMPS-4875, AMPS-5373, Z11983)

PREVIEWVersion 5.3.1.154 (2020-11-15)

  • Fix issue where a SOW delete by query on the underlying topic of a view could cause a SIGABRT. This was introduced in AMPS 5.3.1.148 with changes to the underlying hash functions. (AMPS-6097, Z11982)

PREVIEWVersion 5.3.1.153 (2020-11-13)

  • Fix issue that could cause AMPS to hang when a bookmark live subscription has finished replay and is beginning the live subscription, the message pipeline is full, and a new bookmark live subscription is being processed at the same time. (AMPS-6080)

PREVIEWVersion 5.3.1.152 (2020-11-11)

  • Improve memory usage for SOW topics in cases where messages are short-lived relative to the incoming publish rate. In situations where a slab has become empty (typically through deletes) while that slab is still being used by a message processor, AMPS can now immediately reuse the slab rather than waiting for the slab to be marked empty during SOW maintenance. (AMPS-6007)
  • Fix crash that could occur when a SOW query, SOW delete by filter, coalesce, or remap happens while message processing for a previous message is still in progress. This issue was introduced in 5.3.1.137. (AMPS-6021)
  • Fix crash that could occur when SOW expiration for a topic occurs at the same time that a new record is inserted in the topic. (AMPS-6023)
  • Fix issue that could cause AMPS to crash when inflating a compressed transaction log record that inflates to more than 4GB of data (typically, this could happen when a sow_delete by keys deletes a large amount of data). (AMPS-6053, Z11885)
  • Fix issue where amps_journal_dump could fail to dump records that contain compressed data that would inflate to more than 4GB. (AMPS-6054, Z11885)
  • Fix crash when AMPS attempts to coalesce a slab that recently had all items deleted from the slab. (AMPS-5625, Z11780, Z11920)
  • Fix issue where AMPS would incorrectly attempt to store a message that is larger than the configured slab size. This could happen in cases where the message size was less than 128 bytes larger than the maximum message size. (AMPS-5996)

PREVIEWVersion 5.3.1.151 (2020-11-04)

  • Fix issue where a bookmark replay that is paused on the last transaction in the transaction log can start from a slightly earlier point in the transaction log when resumed. This could produce duplicate messages to the subscription. (AMPS-6061)

PREVIEWVersion 5.3.1.150 (2020-11-02)

  • Fix issue where replication could fail to replicate messages in a case where:
    • A replication connection between two instances has been previously replicating messages.
    • The downstream instance is taken offline and all journal files and the clients.ack file are removed.
    • The downstream instance is brought back online, the upstream instance reconnects, and no other publish traffic is being received by the downstream instance. In this situation, the downstream instance could fail to receive messages from the upstream instance. (AMPS-6060, Z11796)

PREVIEWVersion 5.3.1.149 (2020-10-31)

  • Fix crash caused by a race condition when a client disconnects and reconnects while AMPS is processing a publish that has requested a persisted acknowledgement, and that message is a duplicate. (AMPS-5395, Z11914, Z11879)

PREVIEWVersion 5.3.1.148 (2020-10-23)

  • Fix to reduce memory consumed by content filters that use an IN clause. (AMPS-5987, Z11855)

PREVIEWVersion 5.3.1.147 (2020-10-21)

  • Fix crash caused by a race condition when processing a command that replaces or removes a subscription where the affected subscription holds messages before delivering them (conflated subscriptions, aggregated subscriptions, or subscriptions that use pagination). (AMPS-6006, Z11818)

PREVIEWVersion 5.3.1.146 (2020-10-19)

  • Fix issue where a bookmark subscription that requests persisted acks would not receive them in cases where:

    • The instance of AMPS that hosts the subscription has multiple replication destinations configured for synchronous acknowledgement
    • One or more of the destinations configured for synchronous acknowledgement goes offline and
    • Offline destinations are downgraded to asynchronous acknowledgement, but other destinations are not downgraded

    This could cause a subscriber to restart the subscription further back in the transaction log than necessary. (AMPS-6015, Z11817)

AMPS Version 5.3.1.145 was intentionally skipped
AMPS Version 5.3.1.144 was intentionally skipped

PREVIEWVersion 5.3.1.143 (2020-10-13)

  • Fix crash caused by a race condition when AMPS is executing a sow_delete command with a filter of 1=1 (the filter value optimized for clearing a SOW topic) at the same time that expiration processing is happening for the affected topic. (AMPS-6000)

PREVIEWVersion 5.3.1.142 (2020-10-10)

  • Fix issue where a client that has disconnected may retain data in an internal client buffer (byte_in) resulting in unnecessary memory growth. (AMPS-5988, AMPS-5991, Z11743)

PREVIEWVersion 5.3.1.141 (2020-10-08)

  • Fix issue where a client that starts heartbeating and never issues another command (including never sending a heartbeat) could be incorrectly allowed to remain connected until AMPS receives another command received from the client, and that command could be executed. (AMPS-5940)

PREVIEWVersion 5.3.1.140 (2020-10-07)

  • Fix issue where resetting entitlements for the Admin interface does not correctly reset permissions or invalidate current cached sessions. This could cause a situation where Admin permissions changes were not detected. This could also allow a Galvanometer session to submit requests after the entitlement reset without re-authenticating, including opening a websocket connection to Transports that use the TrustedAdmin option. With this fix, Admin interface entitlements are correctly reset and in-progress Admin sessions will be required to re-authenticate on the first HTTP request after entitlement reset. (AMPS-5968, Z11423)

PREVIEWVersion 5.3.1.139 (2020-10-06)

  • Fix issue where the amps-default-authenticator could leak file descriptors when an outgoing replication connection is created and the authenticator is configured to read a password from a file. This would typically only affect an instance if the outgoing connection is unable to successfully authenticate, causing multiple authentication retries. (AMPS-5980, Z11778)

PREVIEWVersion 5.3.1.138 (2020-10-02)

  • Fix crash when the --dump-config command line argument is used for a configuration file that uses an Include directive to include a file that is not valid XML. (AMPS-5799)
  • Improve error reporting when a configuration file uses the Include directive to include a file that is not valid XML. (AMPS-5799, Z11393)

PREVIEWVersion 5.3.1.137 (2020-10-01)

  • Fix crash or hang caused by a race condition when executing a sow_delete command with a filter of 1=1 (the filter value optimized for clearing a SOW topic) while there is heavy publishing load to that topic. This issue is more likely to occur when all available CPU cores are fully loaded. (AMPS-5950, Z11641)
  • Fix issue where view processing does not exit in a timely manner during AMPS shutdown. (AMPS-5955)
  • Fix issue where the name of the module that has not exited in a timely manner is misreported in AMPS log messages. (AMPS-5957)

PREVIEWVersion 5.3.1.136 (2020-09-27)

  • Fix crash that may occur when there are multiple paginated subscriptions active and a client enters a new sow_and_subscribe command, or replaces an existing paginated subscription. (AMPS-5925, AMPS-5922, Z11676, Z11656)

PREVIEWVersion 5.3.1.135 (2020-09-24)

  • Fix issue in AMPS where the HTTP authentication and entitlements module could crash or incorrectly refuse logon entitlement. This issue could happen when a client was authenticating at the same time that the module was processing a disconnect for the last existing connection for the same user. (AMPS-5933)

PREVIEWVersion 5.3.1.134 (2020-09-23)

  • Fix issue where a 07-0006 message would be logged excessively indicating that a transport send failed in cases where the remote side of the connection has been closed. (AMPS-5574, Z11612)
  • Fix issue where AMPS can excessively log the 70-0011 message when consuming from a view with a paginated sow_and_subscribe. (AMPS-5932)
  • Fix issue in the spark utility where a subscription to a queue topic when using the -limit and -auto flags would fail to acknowledge the last message received. (AC-994,Z11713)

PREVIEWVersion 5.3.1.133 (2020-09-17)

  • Fix issue with aggregated queries and subscriptions where a projected field that is not an aggregate and does not appear in the grouping might not produce the most-recently processed value. This issue only affects aggregated subscriptions and queries. Views are not affected. (AMPS-5939, Z11668)

PREVIEWVersion 5.3.1.132 (2020-09-16)

  • Fix issue where the CRC64 scalar function and the amps_get_crc64 SDK function would return an incorrect value. (AMPS-5695)

PREVIEWVersion 5.3.1.131 (2020-09-09)

  • Fix issue where a bookmark subscription that uses the live option and that is no longer replaying from the transaction log might stop receiving persisted acks when a different client disconnects. This does not affect the data that the subscription receives. However, this could cause recovery for the application to begin at an earlier point in the transaction log than necessary. This issue only affects bookmark subscriptions that use the live option. (AMPS-5912, Z11506)

PREVIEWVersion 5.3.1.130 (2020-09-01)

  • Fix issue when parsing a select list that contains redundant XPath identifiers when a field is included in the list after one of the fields that it contains (for example, a select list such as [-/,+/a/b,+/a]). Previously, the message produced would have the contained field (/a/b) only, rather than the full contents of the containing field (/a). With this fix, AMPS produces the fields specified, regardless of the order in the select list. (AMPS-5897, Z11637)
AMPS Version 5.3.1.129 was intentionally skipped

PREVIEWVersion 5.3.1.128 (2020-08-31)

  • Fix a race condition that could result in a crash or an incorrect number of messages being delivered for a bookmark live subscription that is cut over to "live" concurrently while processing a "replace" command for that subscription. (AMPS-5766, AMPS-5788)

PREVIEWVersion 5.3.1.127 (2020-08-29)

  • Fix crash that may occur when pagination data is updated during a SOW delete. This can happen when a SOW delete is executed for a topic that is currently using result set pagination. (AMPS-5743, AMPS-5536)
  • Fix incorrect assert that could cause an assert failure to be reported while updating a SOW index during a SOW delete, even though there is no actual issue. This issue only affects AMPS servers built with Debugging (Debug-ASAN builds), which are sometimes provided by 60East support to help diagnose problems. Servers labeled Release are unaffected. (AMPS-5767)

PREVIEWVersion 5.3.1.126 (2020-08-28)

  • Fix issue where a bookmark subscription may not start from the correct point when:

    • The starting point submitted is a list of bookmarks, and
    • That list contains bookmarks from two or more different publishers that are located in the same journal file, and
    • That journal file is not the currently active journal file, and
    • AMPS has performed index maintenance for that journal file (as logged in the 1D-0079 info level message)

    In this case, it is possible for AMPS to start a bookmark subscription from one of the bookmarks in the list that is not the earliest bookmark in the transaction log. (AMPS-5648)

  • Fix issue where AMPS can incorrectly initialize transaction log data during recovery when the last journal file has an index. (AMPS-5755)

PREVIEWVersion 5.3.1.125 (2020-08-26)

  • Add functionality to the WebSocket protocol to allow specifying custom HTTP Response headers in configuration using the <HTTPHeader> tag. (AMPS-5888, Z11569)

PREVIEWVersion 5.3.1.124 (2020-08-25)

  • Fix issue where a historical sow_and_subscribe or a sow_and_subscribe from NOW that requests out of focus (oof) notifications could prevent AMPS from removing journals that contain messages that were needed for OOF processing but are no longer needed. (AMPS-5844)
AMPS Version 5.3.1.123 was intentionally skipped

PREVIEWVersion 5.3.1.122 (2020-08-22)

  • Fix regression introduced in 5.3.1.112 that could cause message pipeline deadlock that may occur when using replicated queues with strict leasing or content-filtered entitlements. This deadlock can result in AMPS initiating an emergency shutdown. (AMPS-5876, Z11560)

PREVIEWVersion 5.3.1.121 (2020-08-21)

  • Fix regression introduced in 5.3.1.119 that could cause a SOW query over a queue topic to return no results. (AMPS-5883, Z11348)
AMPS Version 5.3.1.120 was intentionally skipped

PREVIEWVersion 5.3.1.119 (2020-08-18)

  • Fix a crash that could occur when SOW expiration is running concurrently with updates to a SOW topic with a View topic declared on top of it. (AMPS-5801, Z11348)

PREVIEWVersion 5.3.1.118 (2020-08-17)

  • Fix issue where replicating a transaction that contains data larger than the AMPS single message size limit (approximately 200MB) fails with the downstream instance disconnecting the instance sending the message. Replication connections impacted by this issue would repeatedly disconnect while logging a 01-0012 message (invalid message size) on each attempt to replicate the message. (AMPS-5853, Z11480)

PREVIEWVersion 5.3.1.117 (2020-08-16)

  • Fix a crash that could occur when a query by primary key uses a compound filter, for example, when querying a topic that uses the primary-key field for the key with a filter such as /primary-key = '10' AND /non-primary-key IN ('a','b','c'). (AMPS-5872, Z11521)

PREVIEWVersion 5.3.1.116 (2020-08-14)

  • Fix a crash that could occur when hash index query that specifies an OrderBy clause returns multiple records and the total number of records returned is greater than the number of values used to query the hash index (for example, when a hash index query like /x IN ('A','B','C') matches more than 3 records). (AMPS-5870, Z11414)

PREVIEWVersion 5.3.1.115 (2020-08-12)

  • Fix issue where a historical sow_and_subscribe or a sow_and_subscribe from NOW that requests out of focus (oof) notifications did not properly prevent AMPS from removing journals that contained messages needed for oof delivery. This could cause the subscription to fail to deliver the expected oof messages if the journals containing the messages were removed. (AMPS-5838)

PREVIEWVersion 5.3.1.114 (2020-08-11)

  • Fix issue where formatting a message for readability can result in malformed JSON in cases where the JSON document produced to represent the message is shorter than the original message (for example, a 50-byte binary message represented as {"binary":"size 50"}). This issue only applies to messages formatted for readability (such as the AMPS event logs, Galvanometer queries, or connections that use the pretty option). The original data is not affected. (AMPS-5668)

PREVIEWVersion 5.3.1.113 (2020-08-10)

  • Fix issue that caused AMPS to produce invalid JSON when serializing strings that required escaping unicode characters -- for example, strings that contain characters such as SOH (0x01). This could affect any situation where AMPS is producing a string for JSON (including views, aggregated subscriptions, and so on). With this fix, AMPS correctly provides a unicode escape for these characters. (AMPS-5860, Z11515)

PREVIEWVersion 5.3.1.112 (2020-08-08)

  • Fix issue where queue acknowledgements (sow_delete) were recorded verbatim in the transaction log, even in cases where the user was not entitled to acknowledge one or more messages in the command. This command could then be replicated to downstream instances, causing queues on the downstream instances to remove messages that were not removed in the instance that processed the acknowledgement. With this fix, only messages that are removed on the instance that receives the acknowledgement will be written to the transaction log and replicated. (AMPS-5811, Z11383)

PREVIEWVersion 5.3.1.111 (2020-08-07)

  • Fix to reduce the memory consumed by a HashIndex. (AMPS-5846, Z11362)
  • Fix to include the memory consumed by a HashIndex in the statistics for the topic that it indexes. Previously, although this memory was consumed by the topic, it was not reflected in the statistics for that topic. (AMPS-5825)

PREVIEWVersion 5.3.1.110 (2020-08-03)

  • Fix regression introduced in 5.3.1.76, that could result in AMPS failing to find a message in the transaction log in cases where an operation reading from the transaction log needs to look for a message in a previous journal (for example, when processing a message being returned to a message queue or retrieving the message for an oof from a historical sow_and_subscribe). (AMPS-5843)

PREVIEWVersion 5.3.1.109 (2020-07-30)

  • Fix a buffer overflow memory corruption that can occur when an incoming message matches a large number of subscriptions and at least one of those subscriptions uses a select list, is an aggregated subscription, or is a conflated subscription. (AMPS-5845, Z11289)
AMPS Version 5.3.1.108 was intentionally skipped

PREVIEWVersion 5.3.1.107 (2020-07-25)

  • Fix issue in connections that use SSL/TLS that could cause message delivery to a client to stop after AMPS logs a "bad write retry" error from the SSL implementation. This could happen in cases where the SSL library requested that AMPS retry sending data and AMPS had moved the data in memory between sending the data the first time and receiving the retry request. With this fix, AMPS explicitly configures the SSL implementation to allow a buffer to move when a retry is requested. (AMPS-5728, Z11221)

PREVIEWVersion 5.3.1.106 (2020-07-24)

  • Fix race condition in the HTTP authentication and entitlements module which can cause the permissions list for an entitled user to be empty. This can occur when the last tracked connection for a user is disconnected at the same time that a new connection for the same user is being created. (AMPS-5814, Z11423)

PREVIEWVersion 5.3.1.105 (2020-07-23)

  • Fix issue where a replicated queue that uses at-most-once delivery semantics can fail to remove messages on instances other than the one where the message was delivered due to the automatically generated acknowledgements being incorrectly treated as duplicates during replication. (AMPS-5827, Z11341)

PREVIEWVersion 5.3.1.104 (2020-07-22)

  • Fix possible message loss caused by an acknowledgement being sent too early to an HA publisher in cases where the publisher is publishing to an instance that has more than one replication destination that uses synchronous acknowledgement (that is, 3 or more servers are involved) and the client or the instance fails before the messages published by the client have been replicated to all synchronous destinations. (AMPS-5800)
  • Fix crash during restart recovery when AMPS attempts to read a partially written entry at the end of the client ack index file. This would only occur when AMPS has been made to exit forcibly (for example, via a kill -9, or when stopped by the Linux OOM killer). (AMPS-5820)

PREVIEWVersion 5.3.1.103 (2020-07-19)

  • Fix crash that may occur when multiple primary key or hash index queries that specify an OrderBy clause execute at the same time. (AMPS-5809, Z11414)

PREVIEWVersion 5.3.1.102 (2020-07-17)

  • Fix a crash that could happen when a bookmark subscription that uses the live option has finished replay from the transaction log and a publish for that subscription arrives during cutover. (AMPS-5806)

PREVIEWVersion 5.3.1.101 (2020-07-15)

  • Add functionality to the HTTP authentication and entitlements module to better enable sites that have developed custom modules to use this module as a replacement. This includes the following changes:

    • Make all module context variables available for inclusion in HTTP headers.
    • Allow the module to set the user name of the connection during authentication.

    (AMPS-5160, AMPS-5139, AMPS-3008, Z10894, Z9841)

PREVIEWVersion 5.3.1.100 (2020-07-10)

  • Fix issue where amps_fast_journal_dump produced different output than amps_journal_dump. With this fix, both versions produce identical fields, formatting, and whitespace. (AMPS-5650)

PREVIEWVersion 5.3.1.99 (2020-07-07)

  • Fix issue where AMPS performs an emergency shutdown in a case where an interrupted system call for an input/output operation is not properly retried. This was most often seen when AMPS is run in a virtualized environment that abstracts storage and the virtualized environment pauses access to storage. (AMPS-5548, Z11365)

PREVIEWVersion 5.3.1.98 (2020-07-02)

  • Fix issue where a historical SOW that uses a publisher-provided SOW key could fail to return results from a query after AMPS restarts. (AMPS-5785, Z11183)

PREVIEWVersion 5.3.1.97 (2020-06-30)

  • Fix crash that could happen when using a select list with a topic recorded in the SOW. (AMPS-5735, Z11240)

PREVIEWVersion 5.3.1.96 (2020-06-29)

  • Fix issue where a bookmark subscription that provides a list of bookmarks could start from the end of the transaction log rather than the earliest bookmark if all of the bookmarks in the list are in the journal file that is currently being written to. (AMPS-5646, Z11287)

PREVIEWVersion 5.3.1.95 (2020-06-28)

  • Fix issue that could cause a crash when a sow_delete by query is executed, an entitlement filter applies to the sow_delete, and there is an active subscription to /AMPS/ClientStatus. (AMPS-5642, Z11170, Z11311)

PREVIEWVersion 5.3.1.94 (2020-06-25)

  • Fix issue that could cause a crash or cause a subscription that uses a select list to receive incorrect fields. This could happen when there are two or more subscriptions to the topic that use a select list, at least one of the subscriptions that uses a select list uses pagination, and a publish occurs that produces a message to both that paginated subscription and a subscription to that topic with a different select list. (AMPS-5768, Z11310)
AMPS Version 5.3.1.93 was intentionally skipped
AMPS Version 5.3.1.92 was intentionally skipped
AMPS Version 5.3.1.91 was intentionally skipped

PREVIEWVersion 5.3.1.90 (2020-06-20)

  • Fix issue that could cause bookmark replay to progress very slowly in a case where a replay is reading a compressed journal and the total size of the compressed journals open at the time across all replays exceeds 10% of the host memory. (AMPS-5745, Z11213, Z11221)
AMPS Version 5.3.1.89 was intentionally skipped
AMPS Version 5.3.1.88 was intentionally skipped

PREVIEWVersion 5.3.1.87 (2020-06-14)

  • Fix issue that could cause a crash or query results with zero length data when querying a SOW topic with an OrderBy clause if records that match the query are concurrently deleted or expire while being sorted for the OrderBy clause. For a concurrent SOW delete to cause this it must be a sow_delete by key or by data. (AMPS-5713, AMPS-5714, Z11245)

PREVIEWVersion 5.3.1.86 (2020-06-12)

  • Fix issue where AMPS could incorrectly disconnect a replication connection when a long-running command is executing for a topic that is receiving messages over replication. Previously, AMPS could consider replication to have stopped and disconnect replication. (AMPS-5708, AMPS-5673, Z11193)

PREVIEWVersion 5.3.1.85 (2020-06-12)

  • Fix issue that could lead to inconsistent results when issuing a historical sow_and_subscribe for a SOW topic with Granularity set to 0s in a case where a given record was updated more than once with the same timestamp as the bookmark specified in the sow_and_subscribe command (that is, within the same microsecond). In this situation, the query results could receive a message for a given key that is received at the same time as the provided bookmark, but which is later in the transaction log. AMPS now ensures that the correct message is provided for each key. (AMPS-5690, Z11201)

PREVIEWVersion 5.3.1.84 (2020-06-04)

  • Fix issue where a bookmark subscription may not start from the correct point when:

    • The starting point submitted is a list of bookmarks, and
    • That list contains bookmarks from two or more different publishers that are located in the same journal file, and
    • That journal file is not the currently active journal file, and
    • AMPS has performed index maintenance for that journal file (as logged in the 1D-0079 info level message)

    In this case, it is possible for AMPS to start a bookmark subscription from one of the bookmarks in the list that is not the earliest bookmark in the transaction log. (AMPS-5648, AMPS-5413)

AMPS Version 5.3.1.83 was intentionally skipped
AMPS Version 5.3.1.82 was intentionally skipped

PREVIEWVersion 5.3.1.81 (2020-05-22)

  • Improve how AMPS NUMA tuning allocates threads to NUMA nodes to improve performance in cases where (a) the number of subscribers is greater than one half the number of cores available on a NUMA node and (b) more than two subscribers, on average, receive every message that is published to AMPS. (AMPS-5620, Z9750)

PREVIEWVersion 5.3.1.80 (2020-05-20)

  • Fix issue that could cause a crash or an out-of-focus message being incorrectly produced for a conflated topic or a view. This could happen when an entitlement filter is present on a subscription to the conflated topic or view, and AMPS is removing a record from the conflated topic or view (for example, when a message has been deleted from the underlying topic). (AMPS-5632, Z11121)

PREVIEWVersion 5.3.1.79 (2020-05-19)

  • Optimize message delivery for queues that have a MaxBacklog configured (that is, queues that limit the total number of leased messages rather than a number per subscription) when the total number of messages leased is equal to the MaxBacklog setting and no publishes are being received for the queue. Previously, subscriptions might have to wait up to 100ms after AMPS received an acknowledgement for the next message to be delivered. (AMPS-5630, Z11099)

PREVIEWVersion 5.3.1.78 (2020-05-18)

  • Fix crash caused by a buffer overrun that can occur when AMPS is serializing SOW query results to be returned to the client executing the query. This issue affects amps protocol connections when the query results contain either a SOW key set by the publisher or a correlation id field. This issue affects xml (legacy) protocol connections when query results contain a SOW key set by the publisher. This issue can lead to a result message being truncated/corrupted, the client initiating a disconnect (due to an invalid header), and/or a server crash. (AMPS-5626, Z11127)

PREVIEWVersion 5.3.1.77 (2020-05-18)

  • Fix crash when message expiration from a topic happens while AMPS is processing a sow delete by query for that topic. (AMPS-5588)
  • Fix crash when a query uses a field that was not previously indexed, causing AMPS to create an index, and a SOW update modifies a record while AMPS is updating the index entry for that record. (AMPS-5622)

PREVIEWVersion 5.3.1.76 (2020-05-17)

  • Fix hang caused when AMPS searches for a transaction ID that does not exist in the transaction log. (AMPS-5606, Z11079)
  • Fix issue where AMPS could write a entry to the client ack index file that is beyond the transaction ID recorded in the transaction log. This could happen if AMPS exits before the transaction has been fully written. (AMPS-5603, Z11079)

PREVIEWVersion 5.3.1.75 (2020-05-15)

  • Fix issue where frequently replaying a journal could prevent AMPS from freeing resources for less-frequently replayed journals. This could lead to unnecessary memory growth. With this fix, AMPS will correctly release resources for journals that are not needed for current replays. (AMPS-5619, Z11111)
AMPS Version 5.3.1.74 was intentionally skipped

PREVIEWVersion 5.3.1.73 (2020-05-07)

  • Fix crash caused by race condition when a client disconnects and then reconnects immediately after the client session for the previous connection has been reaped. (AMPS-5586)
AMPS Version 5.3.1.72 was intentionally skipped

PREVIEWVersion 5.3.1.71 (2020-05-05)

  • Fix shutdown hang introduced in 5.3.1.52 that can occur when AMPS is preparing 1D-0092 log message details from either a bookmark subscription or message queue that is holding up journal removal. (AMPS-5566)

PREVIEWVersion 5.3.1.70 (2020-05-02)

  • Fix issue in JSON message type where floating point numbers in scientific notation with an exponent value greater than 307 may incorrectly overflow to infinity during parsing. (AMPS-5569)

PREVIEWVersion 5.3.1.69 (2020-05-01)

  • Fix hang that may occur when a message queue is reading from a compressed journal file. (AMPS-5568)
AMPS Version 5.3.1.68 was intentionally skipped

PREVIEWVersion 5.3.1.67 (2020-04-23)

  • Fix deadlock that can hang AMPS when remap or coalesce is executed for a topic in the SOW that is also recorded in the transaction log. (AMPS-5553, Z10982)

PREVIEWVersion 5.3.1.66 (2020-04-22)

  • Fix issue where a previously-expired record in a SOW topic stored in file can be added back to the topic when AMPS rewrites the file while compacting the topic. (Compacting the topic happens when the amps-action-do-compact-sow action runs.) (AMPS-5531)
  • Fix issue where AMPS would unnecessarily write a SOW slab to the file after coalesce even if the slab was unchanged. Now AMPS will only write the slab if the coalesce updated the slab. (AMPS-5563)
AMPS Version 5.3.1.65 was intentionally skipped

PREVIEWVersion 5.3.1.64 (2020-04-16)

  • Fix issue where specifying the pretty print option on a client connection that uses a transport other than websocket can cause AMPS to send invalid data to clients during a SOW query, which could cause a client to disconnect. This issue only applies to messages formatted for readability with pretty print. (AMPS-5560, Z10908)

PREVIEWVersion 5.3.1.63 (2020-04-15)

  • Fix timing-dependent crash caused when a record is deleted that is a part of a paginated sow_and_subscribe. (AMPS-5556)

PREVIEWVersion 5.3.1.62 (2020-04-14)

  • Add a new optional configuration parameter to SOW/Topic definitions to avoid the overhead involved in resizing the data structure that holds the SOW keys for a topic when the topic is expected to hold large numbers of distinct keys (100s of millions or more) at a time. This option is ExpectedKeyCountHint. If not provided, AMPS will not pre-size the data structure. (AMPS-5475, Z10776)

PREVIEWVersion 5.3.1.61 (2020-04-11)

  • Fix issue that prevented the amps_journal_dump utility from working on journals owned by a different user. Without this fix, running the utility on files owned by another user required the --python argument. With this fix, the utility works properly so long as the current user has permission to read the file. (AMPS-5239)

PREVIEWVersion 5.3.1.60 (2020-04-10)

  • Fix regression introduced in 5.3.1.37 where AMPS could crash when unmapping empty slabs in a SOW topic with transient durability at the same time AMPS is coalescing the topic. (AMPS-5546)

PREVIEWVersion 5.3.1.59 (2020-04-09)

  • Fix crash in AMPS that could occur when an entitlement module other than the default entitlement module is in use and a client enters subscriptions to multiple topics that request out-of-focus notifications (the oof option), then closes all of the subscriptions to one of the topics. This issue could happen when processing out-of-focus notifications for a sow_delete that affects one of the remaining subscriptions. (AMPS-5543, Z10876)

PREVIEWVersion 5.3.1.58 (2020-04-08)

  • Fix race condition where a subscribe command could fail to receive an out-of-focus (oof) notification when another client sends a sow_delete by filter command on the same topic immediately after the subscription is received by AMPS. (AMPS-5542)

PREVIEWVersion 5.3.1.57 (2020-04-07)

  • Fix issue in replication synchronization where messages that arrive during synchronization can be skipped over (not replicated). This can happen when an AMPS instance has four or more replication destinations, those destinations use a mix of sync and async acknowledgement, and there is a high rate of publishes arriving during synchronization. (AMPS-5533, Z10814)
AMPS Version 5.3.1.56 was intentionally skipped

PREVIEWVersion 5.3.1.55 (2020-04-07)

  • Fix issue in SOW rewrite where a potential crash or data corruption can occur if AMPS is unable to create the necessary temporary files on startup. (AMPS-5507, AMPS-5508)

PREVIEWVersion 5.3.1.54 (2020-04-05)

  • Add optimization to filter evaluation to recognize that an IN clause with an empty set of values will evaluate to boolean false. (AMPS-5526, Z10776)

PREVIEWVersion 5.3.1.53 (2020-04-05)

  • Fix issue where a sow_and_subscribe command for a historical SOW topic that is also recorded in the transaction log would not receive oof notifications for deleted messages. (AMPS-5529, Z10930)
  • Fix issue where the correlation id for sow_delete commands by sow key is not written to the transaction log and thus is not included in an oof message for a historical sow bookmark subscribe with oof enabled. (AMPS-5528, Z10930)

PREVIEWVersion 5.3.1.52 (2020-04-04)

  • Fix issue where a journal removal action can be prevented from executing. This can happen when a SOW topic that is recorded in the transaction log has not been updated for longer than the journal retention period. (AMPS-5500, Z10893)
  • Combine the information from events 1D-0099 and 1D-0098 into the 1D-0092 message and reduce the frequency at which 1D-0092 is logged. This should improve the ability to diagnose situations where journal removal does not run, while reducing the amount of redundant logging. (AMPS-5387)

PREVIEWVersion 5.3.1.51 (2020-04-03)

  • Fix a crash caused by a race condition when the server is finishing processing for a client that has disconnected. This issue was observed during stress testing of high-velocity connect/disconnect activity. (AMPS-5510)

PREVIEWVersion 5.3.1.50 (2020-04-02)

  • Fix issue where a query that uses a hash index or the primary key of a topic could return incorrect results when AMPS combines that query with a query that cannot use a hash index or primary key. (AMPS-5509, Z10898)

PREVIEWVersion 5.3.1.49 (2020-04-01)

  • Fix regression introduced in AMPS 5.2.3.35 where AMPS does not coalesce non-transactional SOW topics with persistent durability. This could cause increased memory consumption and SOW file size when AMPS allocates more slabs than needed to hold the message data. (AMPS-5482)

PREVIEWVersion 5.3.1.48 (2020-03-31)

  • Fix issue where memory_bytes were incorrectly calculated for SOW topics that are not persisted, including views and topics with transient durability. (AMPS-5506, Z10840, Z10834)

PREVIEWVersion 5.3.1.47 (2020-03-31)

  • Fix hang when a sow_delete or message expiration happens while a SOW remap or coalesce procedure is in progress. (AMPS-5512)
AMPS Version 5.3.1.46 was intentionally skipped

PREVIEWVersion 5.3.1.45 (2020-03-30)

  • Fix issue where an uninitialized variable could cause invalid expressions in a query to be executed anyway. This could potentially result in a crash. (AMPS-5494)
  • Fix issue where an uninitialized variable could cause replication to miss heartbeat checks. This could result in a connection not being closed for missing heartbeat messages. (AMPS-5495)
AMPS Version 5.3.1.44 was intentionally skipped
AMPS Version 5.3.1.43 was intentionally skipped
AMPS Version 5.3.1.42 was intentionally skipped

PREVIEWVersion 5.3.1.41 (2020-03-23)

  • Fix hang that can occur due to a race condition when processing a sow_delete with a content filter when there is a high incoming publish or replication message rate. (AMPS-5485, AMPS-5488, Z10863)
  • Fix issue where AMPS could hang and would fail to shut itself down after 300 seconds. (AMPS-5485, Z10863)

PREVIEWVersion 5.3.1.40 (2020-03-22)

  • Fix issue in the HTTP authentication and entitlement module where a topic name that contains non-alphanumeric characters, such as the : symbol, would be considered a regular expression. This meant that a topic name with these characters would match any topic that contained the substring. With this fix, the module now considers only strings that contain one of the following characters to be a regular expression: $, (, ), *, +, ., ?, [, \, ], ^, {, |, } (AMPS-5486, Z10878)

PREVIEWVersion 5.3.1.39 (2020-03-20)

  • Fix race condition that could cause memory corruption when identical like expressions in a content filter are used in more than one SOW query within a 5 to 10 minute window of each other. (AMPS-5477, Z10789)

PREVIEWVersion 5.3.1.38 (2020-03-20)

  • Fix crash caused by memory corruption due a message's correlation id length not being taken into consideration for some SOW update broadcaster operations. This could cause a buffer overflow when the correlation id is present on messages recorded in a SOW topic. (AMPS-5480, Z10860)

PREVIEWVersion 5.3.1.37 (2020-03-18)

  • Fix regression introduced in AMPS 5.2.3.35 where AMPS does not coalesce SOW topics with transient durability. This could cause increased memory consumption when AMPS allocates more slabs than needed to hold the message data. (AMPS-5471, Z10834)
  • Allow AMPS to unmap empty slabs in a SOW topic with transient durability. This change returns unused memory to the operating system for topics with transient durability. (AMPS-5472, Z10834)

PREVIEWVersion 5.3.1.36 (2020-03-16)

  • Fix issue to improve concurrency of expiration processing for SOW topics. Previously, expiration processing for a large topic could cause queries and deletes for that topic to wait unnecessarily. This increased the elapsed time for queries, and produced incorrect 16-0032 messages. (AMPS-5470, Z10834)

PREVIEWVersion 5.3.1.35 (2020-03-11)

  • Fix issue where a transport that specified an InitialState in the configuration would not be enabled, even if the value of that parameter was enabled. AMPS now properly enables the transport for a value of enabled. (AMPS-5467, Z10818)

PREVIEWVersion 5.3.1.34 (2020-03-03)

  • Fix regression introduced in AMPS 5.3.1.2. This issue could cause two different symptoms:
    • AMPS could crash in cases where a sow_delete by filter uses a regular expression topic name that matches multiple topics and one of those topics has a hash index defined. (AMPS-5457, Z10774)
    • A sow_delete with a filter expression that contains both a hash index (or primary key) lookup and additional clauses could delete the records that match the hash index (or primary key) lookup without evaluating the additional clauses. (AMPS-5457, Z10754)

PREVIEWVersion 5.3.1.33 (2020-02-28)

  • Fix regression in the HTTP authentication module introduced in 5.3.1.0, where the module would reject requests with zero-length passwords instead of submitting the requests to the web service. This fix restores the behavior of previous versions of AMPS. (AMPS-5458, Z10761)

PREVIEWVersion 5.3.1.32 (2020-02-23)

  • Fix race condition that could cause AMPS to hang. In this case, a publish command provides a SOW key on a publish to a topic where AMPS is configured to compute the SOW key, and AMPS could incorrectly record the SOW key set by the publisher in the transaction log. With this fix, AMPS will record the correct, computed SOW key. (AMPS-5311, Z10212)

PREVIEWVersion 5.3.1.31 (2020-02-18)

  • Fix regression that was introduced in 5.3.0.79 where, for the composite-local message type, incorrect results could be returned from a filter. This regression is a race condition that could cause an XPath identifier to sometimes not be properly mapped to the lookup value. (AMPS-5442)

PREVIEWVersion 5.3.1.30 (2020-02-14)

  • Fix regression that was introduced in 5.3.1.0 where AMPS would store view and conflated topics in the transaction log if the regular expression specified in a transaction log topic matched the view or conflated topic. This was incorrect, and would result in these topics being recorded in the transaction logs, and could also result in these topics being replicated if the topic names matched a regular expression provided for replication. Replicated updates for a view or conflated topic are treated as an error by the receiving instance, which could result in the downstream instance logging a large number of errors indicating that replication attempted to modify a write-protected topic. (AMPS-5435, Z10642)
AMPS Version 5.3.1.29 was intentionally skipped

PREVIEWVersion 5.3.1.28 (2020-02-09)

  • Fix regression that was introduced in 5.3.1.12 where AMPS would crash on shutdown due to the query processing threads attempting to shutdown prematurely. (AMPS-5065)
AMPS Version 5.3.1.27 was intentionally skipped

PREVIEWVersion 5.3.1.26 (2020-02-06)

  • Fix issue where AMPS could consume an unnecessary amount of memory for large-scale queues (tens of millions of active messages or more) with certain client publishing patterns. With this fix, queues will consume significantly less memory in these cases. (AMPS-5263, AMPS-5363)

PREVIEWVersion 5.3.1.25 (2020-02-05)

  • Fix issue in AMPS where, if an instance only received duplicate messages, the message processing rate could significantly decrease. This is most likely to occur during replication re-synchronization when there are no other messages being published to the instance. (AMPS-5409, Z10604)

PREVIEWVersion 5.3.1.24 (2020-02-04)

  • Fix issue in AMPS where failover for a replication destination could be delayed for up to 60 seconds. (AMPS-5411, Z10604)

PREVIEWVersion 5.3.1.23 (2020-01-28)

  • Add two new actions: amps-action-do-enable-proxied-transfer and amps-action-do-disable-proxied-transfer to provide an additional method to toggle the proxied transfer of messages for a queue topic. (AMPS-5397, Z10215)
  • Add a new field, proxied_transfer, to the Admin interface for queues. (AMPS-5397, Z10215)

PREVIEWVersion 5.3.1.22 (2020-01-24)

  • Fix issue in AMPS where out-of-focus (oof) notifications were not properly deferred during a SOW query in cases where the oof is not due to a sow_delete command. This could cause a client to receive an oof notification before the corresponding publish command (which would be properly deferred). With this fix, both publish commands and oof messages will be delivered in order after the query completes. (AMPS-5354)

PREVIEWVersion 5.3.1.21 (2020-01-22)

  • Fix crash when using the LEFT() or RIGHT() functions in an AMPS expression. (AMPS-5391, Z10500)

PREVIEWVersion 5.3.1.20 (2020-01-10)

  • Fix issue in AMPS where BFlat serialization was converting empty strings to null values. This issue has the potential to impact internal representation of BFlat data within AMPS. (AMPS-5384)
  • Fix issue in AMPS when representing a BFlat message for readability, a null value in a BFlat message would cause AMPS to fail to show later values in the message. This representation is used for showing data in Galvanometer and logging messages in the event log. The actual message data is unaffected. (AMPS-5381, Z10485)
AMPS Version 5.3.1.19 was intentionally skipped

PREVIEWVersion 5.3.1.18 (2019-12-29)

  • Fix issue when using the HINT OPTIONAL directive for preprocessing or enrichment on a field that originally contained a subdocument. If the field is updated to NULL, the original subdocument will now be correctly removed completely. (AMPS-5364, Z10397)

PREVIEWVersion 5.3.1.17 (2019-12-27)

  • Fix issue that could produce incorrect results when using a content filter to match against arrays containing boolean values. (AMPS-5368, Z10394)

PREVIEWVersion 5.3.1.16 (2019-12-22)

  • Fix issue where creating a HashIndex on a field that contains an array would not index all elements of the array, resulting in incorrect query results for a query that used the HashIndex. (AMPS-5362, Z10394)

PREVIEWVersion 5.3.1.15 (2019-12-21)

  • Fix AMPS crash when the OrderBy for a paginated subscription or SOW query specifies a field that does not exist, a field that contains values with no defined sort order (such as NULL or NaN), or a field that contains a subdocument rather than a single value. (AMPS-5365, Z10125)

PREVIEWVersion 5.3.1.14 (2019-12-20)

  • Fix AMPS crash that can occur in the presence of large number of rapid connect/logon/disconnect (1000's per second) operations. (AMPS-5234)

PREVIEWVersion 5.3.1.13 (2019-12-19)

  • Fix issue where one or more bookmark subscriptions can become stuck, causing AMPS to fail to deliver messages or acknowledgements to those subscriptions. This problem occurs when AMPS is at the last transaction in the currently-active journal file, that transaction matches no current subscriptions, and then either a new bookmark subscription is registered at that point in the log, or one of the bookmark subscriptions at that point unsubscribes. Affected subscriptions fail to progress to the next journal file as new publishes arrive, meaning that no further messages are delivered on that subscription. (AMPS-5360, Z10375)

PREVIEWVersion 5.3.1.12 (2019-12-18)

  • Improve performance of SOW queries and SOW deletes by filter when publishes are arriving for the same topic(s). This change also optimizes SOW delete by filter when the filter only specifies primary keys, and optimizes delivery of out-of-focus (oof) notifications when a large number of subscriptions request them. (AMPS-5322, AMPS-5346, Z10231)

PREVIEWVersion 5.3.1.11 (2019-12-17)

  • Fix issue where AMPS would incorrectly allow sow_delete commands to operate on a View or Conflated Topic. (AMPS-5357, Z10385)

PREVIEWVersion 5.3.1.10 (2019-12-16)

  • Fix issue where the message pipeline could stall when a bookmark subscription with a completed acknowledgement is requested, and an unsubscribe to the topic is requested with a processed acknowledgement while AMPS is processing the request for the bookmark subscription. This issue is most noticeable with very large or complex filters. With this fix, AMPS will not hold up the pipeline while processing the bookmark subscribe command. (AMPS-5325, Z10315)

PREVIEWVersion 5.3.1.9 (2019-12-15)

  • Fix issue where a bookmark subscription will not receive requested persisted acks if it joins an existing bookmark replay cursor where none of the subscriptions in the cursor had requested persisted acks. (AMPS-5353, Z10375)

PREVIEWVersion 5.3.1.8 (2019-12-14)

  • Fix issue in new query optimizer that could lead to an overflow crash when a content filter begins with more than one thousand AND expressions. (AMPS-5341)

PREVIEWVersion 5.3.1.7 (2019-12-13)

  • Fix race conditions that could occur when updating a queue subscription with the replace option. This issue could cause the queue subscription, or another subscription to the same queue, to no longer receive messages. (AMPS-5317)

PREVIEWVersion 5.3.1.6 (2019-12-13)

  • Fix crash or incorrect results when creating a message for a delta subscription where a MessagePack message contains one or more nested arrays or nested maps. Prior to this fix, AMPS could serialize elements from a nested array or map at the wrong level of nesting, leading to incorrect results or a message that is not valid. (AMPS-5316)

PREVIEWVersion 5.3.1.5 (2019-12-12)

  • Fix crash when a client requested an aggregated query or subscription for a message type that does not support aggregation (for example, protocol buffer message types). With this change, AMPS will return an error for these requests with a reason of not supported. (AMPS-5333, Z10341)

PREVIEWVersion 5.3.1.4 (2019-12-11)

  • Fix issue with BFlat serialization of fields with null values. Previously these values would be skipped and not included in the serialized message. (AMPS-5294)
AMPS Version 5.3.1.3 was intentionally skipped

PREVIEWVersion 5.3.1.2 (2019-12-03)

  • This version adds the following features:

    • AMPS now includes a way to easily provide a synchronization point for workers processing an AMPS message queue, by providing a way to define messages that are treated as a "barrier". Similar to the barrier concept in many threading implementations, message distribution for the queue will not progress past the barrier message until all previous messages in the queue have been removed from the queue (whether acknowledged or expired). In other words, all subscribers to the queue on this instance must reach the barrier before delivery can progress. At that point, the barrier message is distributed to all matching subscriptions to the queue and normal delivery continues. See the section on Synchronizing Work with Barrier Messages in the AMPS User Guide for details. (AMPS-5087, Z9680, Z9405)
    • AMPS now provides a way to configure a queue for delivery distributed across a set of instances within a replication Group, without requiring that the queue be distributed across the entire set of instances that replicate to each other. This can be useful for environments where instances that receive publish data are not intended to be configured with the queue that will eventually provide the data to consumers, for example, test environments that receive replicated data from production but must not have operations on a queue in the test environment affect a production system. The section on Queue Replication Types in the User Guide discusses how to define and use the new GroupLocalQueue. (AMPS-5261)
    • AMPS now uses hash indexes (including SOW topic primary key) in a much wider range of queries. For example, a query of the form /a IN ('1','2') AND /b = 'cookies' will use a hash index on field /a, if one exists, to reduce the number of records evaluated by the second part of the expression. (AMPS-5274, Z10190, AMPS-5303, Z10114)
  • This version contains the following improvements:

    • Upgraded SQLite to a newer version that defaults to 4KB page sizes for more efficient I/O, broke large truncation events into 16K rows per deletion to prevent minidumps during large truncations, and moved to the more efficient WAL (write-ahead-log) mode within SQLite to prevent unnecessary journal file creation/destruction on each transaction. (AMPS-4484)
    • Improve performance and concurrency of sow_delete commands that use a filter to specify the records to remove. (AMPS-5094, AMPS-5035)
    • In this version of AMPS, the maximum key count for aggregating queries on the primary key of a SOW topic has been increased. This provides a performance improvement for applications that extensively use SOW queries by key with more than 16K keys in the query. (AMPS-5300, Z10114)
    • AMPS now has the ability to remove entries from the clients.ack file if a client has not published a message within a given period of time. The retention period is configurable, and defaults to unlimited (to match the behavior in previous releases of AMPS). See the AMPS Configuration Guide section on transaction log configuration for details. (AMPS-5297, Z10229)
    • Improve performance of serializing publish messages to subscribers. (AMPS-5283, AMPS-5143, AMPS-5142)
    • Improve message 1E-0065, indicating that a replication validation check for queue_passthrough has failed, to provide more information on the passthrough configuration that is needed to pass validation. (AMPS-5270, Z10188)
    • Improve efficiency of reading offline files and sending data to clients. (AMPS-5174)
    • Reduce the amount of work done when processing SOW topic expiration, particularly in cases where the next message to expire will do so in more than 60 seconds. (AMPS-5248)
    • Improve efficiency of locating a timestamp in a journal file. (AMPS-5139)
    • Improve recovery times when rebuilding a SOW topic if no messages for that topic exist in the transaction log. Previously, AMPS would replay the transaction log to populate the topic, regardless of whether the transaction log contained messages for that topic. With this optimization, AMPS skips the replay if the transaction log contains no messages for the topic. (AMPS-5097)
    • Improve recovery times for queues when recovery must process a sow_delete by query for the queue and messages that might be affected by that command are in compressed journal files. (AMPS-5032)
    • Improve memory management for long-running AMPS instances by removing the transaction log index record for a topic when all journal files that contain messages for that topic have been removed. This improvement can reduce memory usage for applications that have a large number of short-lived topics (for example, applications that use a unique topic name for every request and response). (AMPS-5098)
    • The configuration setting introduced in 5.3.0.33 will now emit an error level message rather than a warning level message. This setting is intended to assist in upgrading applications that are submitting an oof option for a bookmark subscribe (which is not supported and does not produce out of focus messages). In this version of AMPS, the commands will still succeed. This configuration option will be removed in a future release, and at that time, these commands will fail. (AMPS-5066, AMPS-4945, Z9513)
    • AMPS will now limit the amount of time that it caches a compiled LIKE expression used in a content filter, and remove expressions that have been unused for a period of time. This reduces memory requirements for applications that use a large number of distinct LIKE expressions. (AMPS-4992)
    • Add functions for working with regular expressions to the AMPS server SDK. This reduces external dependencies for modules, and can help resolve PCRE library versioning and distribution issues for module creators. These additional functions are declared in amps_api.h. (AMPS-4940)
    • The libamps_http_entitlement module now has an "entitlements only" mode where the module does not perform authentication, but instead only handles entitlements. To enable this mode, include EntitlementsOnly in the configuration block for the module. (AMPS-4927)
    • AMPS now accepts a non_regex_topic option for subscriptions and sow queries that specifies that the topic name should be a literal match, even in cases where the topic name contains regular expression characters (AMPS-238).
    • Improve the message logged for non-AMPS clients connecting to a Transport by including the transport name and the remote address attempting the connection. (AMPS-2906)
  • This version contains the following fixes:

    • Fix crash in cases where an amps-action-on-sow-expire-message action is configured to monitor a queue and a message that was present in the queue expires while a subscriber holds a lease. If the message is then returned to the queue (so expiration happens), the crash may occur. (AMPS-5004)
    • Fix crash in AMPS replication when arbitrary bytes are sent to a replication port and AMPS attempts to interpret them as a replication connection (fuzz testing). (AMPS-5290)
    • Fix race condition during journal removal that could cause a hang in AMPS when a request arrives for a location in a journal file after the file is removed, but before all references to the file are invalidated. (AMPS-4956)
    • Fix issue where trace logging a BSON message that is not valid BSON could cause AMPS to crash. (AMPS-5103)
    • Fix crash when requesting /AMPS/SowStats in BSON format. (AMPS-5022)
    • Fix hang when a bookmark replay is requested from a bookmark that does not exist, but which would be located in the shadow buffer (the in-memory buffer of the most recent portion of the transaction log) based on other bookmarks present. Previously, if a request for a bookmark within this buffer failed, AMPS would retry the search, resulting in a hang if the bookmark did not arrive. (AMPS-5318, Z10315)
    • Fix issue that could cause inconsistency in the starting point for a (non-bookmark) subscription in cases where multiple publishers are actively publishing messages that match the subscription while the subscription is being created. In this case, since the subscription is not provided from the transaction log, AMPS did not require a consistent starting point across the threads used to process subscriptions. The result was that one thread could register the subscription at an "earlier" point than other threads, leading a situation where the subscription could effectively start at a slightly different point in time for different publishers. With this fix, AMPS provides a consistent starting point for a subscription across publishers. Notice that, since bookmark replays (without the "live" option) request messages from the transaction log, those subscriptions are unaffected. (AMPS-5167)
    • Fix statistics for bookmark replays that specify a top_n to show 0 in the seconds_behind statistic after the requested number of messages are delivered. Although the replay point for the subscription will not advance, so the seconds_behind value is technically correct, it is more useful to indicate that the subscription has received all available messages. (AMPS-5088)
    • Fix to correctly record and log the replication path on a bidirectional connection when the source group name is different than the destination group name. (AMPS-5244)
    • Fix to more quickly stop attempts to reconnect replication destinations when the AMPS shutdown sequence begins. (AMPS-5179)
    • Fix to prevent unnecessary minidumps when managing client send queues. In this case, AMPS was over-reporting a potentially stuck thread when, in fact, there was no issue. (AMPS-5238, Z10106)
    • Fix to prevent unnecessary minidumps when flushing the transaction log. In this case, AMPS was over-reporting a potentially stuck thread when, in fact, there was no issue. (AMPS-5179)
    • Fix to cancel SOW queries more quickly when a client disconnects. Previously, AMPS could do unnecessary work for a query which used a hash index or directly provided SowKeys for the query. (AMPS-5229)
    • Fix to only send a persisted ack to a publish if the publisher has requested that acknowledgement. Previously, AMPS could send a persisted ack indicating a failure to a publisher that has not requested that acknowledgement. (AMPS-5212)
    • Fix to prevent a problem where heartbeats sent from the server could be delayed when AMPS is in the process of disconnecting clients due to missed heartbeats. With this fix, missed heartbeat disconnection does not affect sending heartbeats. (AMPS-5177)
    • Fix to only log 1D-0099 message, indicating that a journal action could not be completed, if the action is still in that state by the time the information for the log message is collected. Previously, AMPS could complete the action during the process of assembling the message, resulting in a message that did not include details for why the action could not be completed (since nothing was preventing the action by the time the message was recorded). (AMPS-5168)
    • Fix to avoid a hang on shutdown in the event that AMPS had started a publish engine rebalance immediately before shutdown. (AMPS-5166)
    • Fix calculation of memory use by clients to account for the full size of each buffer that is in use, rather than simply the number of bytes used for data. This could result in undercounting the memory used by a client, particularly in cases where message size is small (less than approximately 1.5K). (AMPS-5165)
    • Fix issue where a bookmark replay that used the top_n option could ignore that option if no messages currently in the transaction log matched the replay. With this fix, AMPS correctly halts the subscription after the requested number of messages in this case. (AMPS-5109)
    • Fix issue that could cause a hang during shutdown in cases where shutdown occurs while the amps-action-do-truncate-statistics action was running. (AMPS-5046)
    • Fix race condition that could cause a hang at shutdown in cases where queue expiration processing occurs as shutdown is happening. (AMPS-5009)
    • Fix issue where the first publish to a queue could cause an amps-action-on-sow-delete-message monitoring the queue to incorrectly run and receive an empty message. (AMPS-5008)
    • Fix issue that could cause lower performance of message functions (for example, MESSAGE_SIZE) for queue subscriptions. (AMPS-5002)
    • Fix race condition during client disconnect that could cause a queue message to remain leased to a client that has disconnected, or causing a new lease to be extended to that client. (AMPS-4957)
    • Fix issue where amps-grep could attempt to start using python 3.X instead of python 2.X, causing the utility to exit with an error. (AMPS-4872)

AMPS version 5.3.0

AMPS Version 5.3.0.422 was intentionally skipped

Version 5.3.0.421 (2025-07-23)

  • Fix issue that could cause incorrect results or a crash when a filter that contains a message function (such as MESSAGE_SIZE() or TOPIC_NAME()) is used for a query/subscription to a view or conflated topic. (AMPS-8619, Z19725)

Version 5.3.0.420 (2025-07-21)

  • Fix issue where setting EarlyTerminationOptimization to false for the JSON message type could cause a delta_publish to incorrectly merge fields when the original message or the update contain duplicate field names. (AMPS-8621, Z19738)

Version 5.3.0.419 (2025-06-06)

  • Fix issue where AMPS can deliver empty delta messages for a sow_and_delta_subscribe command issued with the no_empties option when a select list is present and conflation is specified. This issue does not affect subscriptions that use pagination (top_n and skip_n options). (AMPS-8167, Z19561)

Version 5.3.0.418 (2025-06-03)

  • Fix issue where AMPS did not correctly update the hash index when the field changed between an array and a non-array type. This could result in missing or incorrect results when executing a sow query by hash index if a record has changed a field used for the query between array and non-array type. (AMPS-8549, Z19503)

Version 5.3.0.417 (2025-05-31)

  • Fix issue where AMPS would exit during startup while attempting to process a very large sow delete filter during transaction log sow synchronization. (AMPS-7670, AMPS-8551, Z19509)

Version 5.3.0.416 (2025-05-28)

  • Fix issue where a queues.ack file may contain a transaction id that was not persisted to the transaction log. This could create a deadlock that causes AMPS to hang when starting up. (AMPS-8520, Z19390)

Version 5.3.0.415 (2025-05-23)

  • Fix issue where, when rebuilding a SOW file from the transaction log, AMPS could fail to remove a deleted record from the topic. This could result in multiple messages with the same key being present in the rebuilt topic. (AMPS-8503, Z19377)
AMPS Version 5.3.0.414 was intentionally skipped
AMPS Version 5.3.0.413 was intentionally skipped
AMPS Version 5.3.0.412 was intentionally skipped

Version 5.3.0.411 (2025-05-16)

  • AMPS now has the ability to remove entries from the clients.ack file if a client has not published a message within a given period of time. The retention period is configurable, and defaults to unlimited (to match the behavior in previous releases of AMPS). See the AMPS Configuration Guide section on transaction log configuration for details. (AMPS-8508, AMPS-5297, Z19331)

Version 5.3.0.409 (2025-05-15)

  • Fix issue where a replicated sow_delete command that uses a regular expression to delete from a set of topics could be ignored by the instance receiving the command when the Name specified in the upstream Destination does not match the Group of the receiving instance. (AMPS-8381, Z19280)
AMPS Version 5.3.0.408 was intentionally skipped

Version 5.3.0.407 (2025-05-04)

  • Fix issue with XML message type enrichment when changing the content of a child element of an element that has attributes. Previously, the attributes of the parent would be incorrectly serialized as text within the parent element. With this fix, attributes on the parent element are correctly preserved. (AMPS-6808, Z13876)

Version 5.3.0.406 (2025-05-03)

  • Fix issue in AMPS where a sow query that specified a regular expression that matched a queue topic would return an "invalid topic" error. With this fix, queue topics can be queried using a regular expression. (AMPS-6799, Z13842)

Version 5.3.0.405 (2025-04-08)

  • Fix crash during startup when a view that uses a message queue as the underlying topic also specified a filter. (AMPS-8460)

Version 5.3.0.404 (2025-03-26)

  • Fix issue introduced in 5.3.0.385 that could lead to reduced performance for message queue transfers (AMPS-8443, Z19203).
AMPS Version 5.3.0.403 was intentionally skipped

Version 5.3.0.402 (2025-03-11)

  • Improve developer-level logging for replication reconnection by adding a message (1E-0136) that logs when the replication retry backoff time has increased. (AMPS-8103)
AMPS Version 5.3.0.401 was intentionally skipped
AMPS Version 5.3.0.400 was intentionally skipped
AMPS Version 5.3.0.399 was intentionally skipped

Version 5.3.0.398 (2024-12-19)

  • Fix issue where clients connecting to a transport specifying a custom amps or websocket protocol with any message type while omitting a message type in the connection URI will leave the message type ambiguous, which could cause AMPS to crash. This fix ensures that connecting to these transports must have an explicit message type in the connection URI, disconnecting the client with a failure acknowledgement. (AMPS-8214, Z18674)

Version 5.3.0.397 (2024-12-18)

  • AMPS will now ignore NaN values in numeric aggregate functions such as SUM, AVG, STDDEV_POP and STDDEV_SAMP. Prior to this fix, if a group contained a value that could not be successfully converted to a number, these aggregates would return NaN for that group. The result would remain NaN, even if the non-numeric value was removed, until the aggregate was completely re-calculated with no non-numeric values present. (This could be done, for example, by removing all messages in the group, removing and re-entering the subscription for an aggregated subscription, or restarting AMPS for a view). (AMPS-8064, Z17465)
AMPS Version 5.3.0.395 was intentionally skipped

Version 5.3.0.394 (2024-12-10)

  • Fix issue in the ampServer-compat binary that could cause incorrect elapsed times to be logged. (AMPS-8098)
AMPS Version 5.3.0.393 was intentionally skipped
AMPS Version 5.3.0.392 was intentionally skipped
AMPS Version 5.3.0.391 was intentionally skipped
AMPS Version 5.3.0.390 was intentionally skipped
AMPS Version 5.3.0.389 was intentionally skipped
AMPS Version 5.3.0.388 was intentionally skipped
AMPS Version 5.3.0.387 was intentionally skipped
AMPS Version 5.3.0.386 was intentionally skipped

Version 5.3.0.385 (2024-10-21)

  • Fix issue that could cause queue messages to be delivered out of order. This can happen when transfer requests are granted out of order. (AMPS-8135, Z18451)

Version 5.3.0.384 (2024-10-03)

  • Prevent a potential SEGV while logging diagnostic messages in the event of an unhealthy shutdown. (AMPS-8107)
AMPS Version 5.3.0.383 was intentionally skipped
AMPS Version 5.3.0.382 was intentionally skipped
AMPS Version 5.3.0.381 was intentionally skipped

Version 5.3.0.380 (2024-08-03)

  • Fix crash during startup that can happen when a view is configured that depends on more than two levels of underlying views and the message type of that view differs from the message type of one or more of the underlying views. (AMPS-7994, Z17377)

Version 5.3.0.379 (2024-07-15)

  • Update AMPS to work properly with newer CPUS where CPU model information does not include processor speed. Without this fix, AMPS instances using these CPUs may have issues in timing-related features including (at a minimum) conflation, replication pacing, subscription pacing, and heartbeating. (AMPS-7969, Z17307, Z17325)
AMPS Version 5.3.0.378 was intentionally skipped

Version 5.3.0.377 (2024-06-06)

  • Fix crash that can occur when an acknowledgement for a queue message is processed at the same time that a sow query of the queue is being processed. (AMPS-7821)

Version 5.3.0.376 (2024-05-23)

  • Fix potential failure to complete a statistics database truncate action due to an issue in sqlite3 (used for the statistics database). This hotfix updates the included version of sqlite3 to address the issue. (AMPS-7833)

Version 5.3.0.375 (2024-04-24)

  • Fix potential crash and/or an incorrect message replication flow for a replication destination with a replication content filter when some of the messages being replicated have empty contents. (AMPS-7763, Z17053)

Version 5.3.0.374 (2024-03-26)

  • Fix issue where using both enrichment or preprocessing and delta_publish for messages containing nested arrays and/or subdocuments could result in incorrectly merged messages. (AMPS-7660, Z16753)

Version 5.3.0.373 (2024-03-01)

  • Fix issue where the AMPS server could incorrectly log a protocol error, even though no error has occurred. (AMPS-7662, Z16801)
AMPS Version 5.3.0.372 was intentionally skipped

Version 5.3.0.371 (2024-02-20)

  • Fix issue where the AMPS server could incorrectly identify incoming commands as a compressed stream, leading to a protocol error when the stream fails to uncompress as expected. This issue was reported by an application using the legacy fix protocol, and depends on both the message size and the exact command submitted. (AMPS-7662, Z16801)

Version 5.3.0.370 (2024-01-24)

  • Fix issue where the build of libcurl distributed with AMPS for the use of the HTTP authentication and entitlements module could fail to load on systems that did not have libidn2 installed, causing AMPS to fail to start on those systems if the HTTP authentication and entitlements module was included in the AMPS configuration. With this fix, the workaround of installing libidn2 or loading a different build of libcurl is no longer necessary. (AMPS-6496, Z12488)

Version 5.3.0.369 (2024-01-23)

  • Fix crash that could occur when using a JSON message containing an array that contains elements of heterogeneous types where one is a JSON object. (AMPS-7627, Z16685)
AMPS Version 5.3.0.368 was intentionally skipped

Version 5.3.0.367 (2023-12-14)

  • Fix issue where AMPS could eventually shut down in cases where a bookmark subscription that uses the live option accumulates a large number of transactions before replay reaches the point at which the subscription was started. This could cause AMPS to log a large number of 2A-0007 messages and eventually shut down. (AMPS-7593)

Version 5.3.0.366 (2023-11-27)

  • Fix issue where a sow_and_subscribe command that uses bookmark replay and the oof option did not correctly release the replay when the subscription ended. This issue could result in an inability to remove journals. (AMPS-7581, Z16515)

Version 5.3.0.365 (2023-11-26)

  • Fix issue where a sow_delete that provides a bookmark but is submitted for a topic that is not a queue could stall message processing and eventually cause AMPS to exit. With this fix, this command will produce an error. (AMPS-7573, Z16514)
AMPS Version 5.3.0.364 was intentionally skipped

Version 5.3.0.363 (2023-11-21)

  • Fix issue where a bookmark subscription from EPOCH could fail to receive a matching message in cases where, at the time the subscription is requested, there are existing bookmark subscriptions from EPOCH that were requested while the journal was empty. This issue could also cause the affected subscription to fail to make progress after it is entered until a message is published to the transaction log. (AMPS-7566, Z16484)

Version 5.3.0.362 (2023-11-20)

  • Fix issue where a primary key or a hash index query for the current value in a historical SOW topic returns a record after the record has been deleted. (AMPS-7572, Z16524)

Version 5.3.0.361 (2023-11-18)

  • Fix issue that can cause AMPS transaction log replay to stop when there is corruption in a journal file. This can affect replication and bookmark subscriptions. (AMPS-7279, Z16413)

Version 5.3.0.360 (2023-10-17)

  • Fix issue that can occur with a distributed message queue that is replicated across three or more AMPS instances when an instance that owns messages is unavailable. In this case, the enable_proxied_transfer feature can be temporarily turned on for the queue on a non-owning AMPS instance in order to take ownership of a message when that message can be delivered to a subscription on that instance. Prior to this fix, if this non-owning instance could not connect to the owning AMPS instance, but is able to connect to another instance in the owning group or the instance from which the message was originally received, the non-owning instance sent a transfer request rather than directly taking ownership. This could result in message delivery being stalled. With this fix, the instance with proxied transfer enabled will simply assume ownership of the message when it can't directly reach the owning AMPS instance. (AMPS-7524, Z16346)
  • Fix issue where the hash value given for the instance that owns a message could be set to the instance that the message was received from, rather than the instance that owns the message. This could cause incorrect output in logging related to the queue. (AMPS-7524)

Version 5.3.0.359 (2023-10-13)

  • Fix issue where a primary key query that used top_n=0 and requested a stats ack would always receive a value of 0 for matches if the primary key query was batched with a non primary key query. AMPS batches SOW queries when queries for the same topic are processed at the same time. (AMPS-7522, Z15224)
AMPS Version 5.3.0.358 was intentionally skipped
AMPS Version 5.3.0.357 was intentionally skipped

Version 5.3.0.356 (2023-08-23)

  • Fix issue where a replicated queue with MaxBacklog configured could fail to deliver a message where ownership was transferred from another instance if no subscription had available backlog when the message was transferred. (AMPS-7459, Z15720)
AMPS Version 5.3.0.355 was intentionally skipped

Version 5.3.0.354 (2023-08-17)

  • Fix issue introduced in 5.3.0.263 where the first message of a live subscription can be skipped when a bookmark subscription that started from EPOCH and that uses the live option transitions from replay from the transaction log to receiving messages that are not yet in the transaction log and the first message in the subscription has not yet been processed at the time of transition. (AMPS-7290)
AMPS Version 5.3.0.353 was intentionally skipped

Version 5.3.0.352 (2023-06-23)

  • Fix issue where a subscription to a priority queue that is replaced could result in lower priority messages being delivered before higher priority messages. This could happen when other subscriptions to the queue that are not receiving high priority messages are present. (AMPS-7368, Z15837)

Version 5.3.0.351 (2023-05-26)

  • Fix issue that can cause AMPS or an AMPS utility such as amps_journal_dump to produce an incorrect timestamp or crash when serializing an ISO timestamp. (AMPS-7354, AMPS-7063, Z15720)

Version 5.3.0.350 (2023-05-25)

  • Fix issue with AMPS replicated queues that have queue expiration configured where an instance could incorrectly set the delay between transfer requests to 5 seconds. This could happen when a message that the instance does not currently own expires from the queue. (AMPS-7338, Z15378)

Version 5.3.0.349 (2023-05-23)

  • Fix to improve performance of a SOW query that uses a hash index when a large number of records match a single value in the hash index. (AMPS-7307, Z15657)

Version 5.3.0.348 (2023-04-26)

  • Fix to more efficiently reclaim memory when messages are buffered in memory for a slow client. This fix improves memory usage in cases where the bytes buffered for a slow client were originally allocated as part of a larger allocation, eliminating a situation where AMPS could unnecessarily retain large amounts of memory. (AMPS-7303, Z15645)

Version 5.3.0.347 (2023-02-28)

  • Fix issue introduced in 5.3.0.328 where a SOW query that uses a hash index or an exact match on the primary key of the topic does not return results when top_n is specified and OrderBy is set. (AMPS-7243)

Version 5.3.0.346 (2023-02-25)

  • Fix crash that can occur when processing an aggregated subscription while publishes that match the subscription are arriving at high velocity. (AMPS-7226)
AMPS Version 5.3.0.345 was intentionally skipped

Version 5.3.0.344 (2023-01-03)

  • Reduce memory growth that can occur during aggregated queries where SOW records contain a correlation id. (AMPS-7110, Z15024)
  • Fix a race condition that causes a fatal abort if an aggregated query on a topic is running while a new aggregated query on the same topic using a previously unused grouping field is being validated. (AMPS-7123)
AMPS Version 5.3.0.343 was intentionally skipped

Version 5.3.0.342 (2022-12-16)

  • Fix issue in AMPS where the msgpack message type incorrectly reported select lists as unsupported functionality. With this fix, AMPS will now correctly apply select lists to msgpack messages. (AMPS-7153, Z15148)

Version 5.3.0.341 (2022-12-08)

  • Fix issue where a high frequency of SOW deletes or expirations could delay query execution for an extended period of time. (AMPS-6639, AMPS-6704, AMPS-7141, Z15085)

Version 5.3.0.340 (2022-11-23)

  • Fix race condition during parallel sow_delete or expiration that could cause a previously-expired or deleted record in a persisted SOW topic to be added back to the topic during startup or after a compact action runs. The race condition could also cause a crash during a sow synchronization event after a parallel sow_delete. (AMPS-6489, Z14576)

Version 5.3.0.339 (2022-11-16)

  • Fix issue with filter evaluation and SOW query batching where a query returns incorrect results. This could happen when:

    • The query uses a filter that begins with an exact primary key match, and
    • An entitlement filter is present

    In this case, AMPS incorrectly returns messages that match the primary key, even if the entitlement filter does not match.

    AMPS batches SOW queries when queries for the same topic are processed at the same time (typically when the system is receiving large numbers of simultaneous queries). (AMPS-7092, Z14932)

  • Fix crash that can occur when a batched SOW query is updating the memo index for a SOW topic (because a query within the batch references a field that has not previously been queried) and another query attempts to use that index. (AMPS-7097, Z14932)

Version 5.3.0.338 (2022-11-15)

  • Fix issue that could cause AMPS to exit during startup if a conflated topic was defined over a SOW topic that maintains history and a record in the topic that maintains history is deleted, but still within the defined window for the topic. (AMPS-7114, Z15043)
AMPS Version 5.3.0.337 was intentionally skipped

Version 5.3.0.336 (2022-11-11)

  • Fix issue where AMPS would incorrectly send OOF messages for sow_delete by data or sow_delete by key commands to all subscriptions to the topic that used the oof option, even in cases where the filter for the subscription did not match the data being deleted. OOF messages sent for sow_delete by query commands would be delivered correctly. (AMPS-7109, Z15041)

Version 5.3.0.335 (2022-11-04)

  • Fix issue where statistics truncation would retain records in the STATIC tables when all DYNAMIC table references to those records were removed. This fix should allow truncation to free more space in long-running or high-traffic instances. After upgrading, a large statistics database may take more time to truncate, but the overall size may be smaller. For instances with large statistics databases, this may be a good time to move the existing statistics database to force starting with a smaller size statistics database. (AMPS-7027, Z14773)

Version 5.3.0.334 (2022-11-01)

  • Fix issue where a low publish rate could cause unnecessary latency in message delivery to bookmark subscriptions and messages becoming available in message queues due to transaction log commit delays. (AMPS-7077, Z14925)

Version 5.3.0.333 (2022-10-25)

  • Improve replication throughput when the destination instance has a large number of subscribers to a replicated topic and those subscriptions use content filters. (AMPS-7078, Z14421)
  • Provide custom names for threads to aid with debugging efforts. (AMPS-7078)
  • Improve performance when evaluating matches for subscribe and sow_and_subscribe commands that include the oof option. (AMPS-7003, AMPS-7081)
  • Improve performance of parallel work engines by improving thread notification after completing a query. (AMPS-7020)
AMPS Version 5.3.0.332 was intentionally skipped

Version 5.3.0.331 (2022-09-28)

  • Fix regression introduced in 5.3.0.328 where AMPS can send fewer messages than the specified top_n value as the result of a SOW query. This can occur when the SOW topic has a hash index configured and the query includes a content filter and specifies the top_n option. (AMPS-6572, Z13072, Z14835)
AMPS Version 5.3.0.330 was intentionally skipped

Version 5.3.0.329 (2022-09-17)

  • Fix sow_and_subscribe with bookmark behavior that may cause a hang or incorrect results:

    • Fix a hang that may occur when the subscription attempted to access to a message that is earlier than the earliest transaction in the journal files.

    • Fix issue where an oof message from a sow_and_subscribe with bookmark would incorrectly deliver the previous message data instead of the current message data in cases where a record changed to no longer match the filter. (AMPS-7041, Z14672)

Version 5.3.0.328 (2022-09-08)

  • Fix issue where a sow query of a queue topic ignores the top_n option. AMPS now correctly produces at most the number of messages specified when the top_n option is present. (AMPS-5344, Z10342)
  • Fix issue where the metrics on a stats ack requested for a sow query of a queue topic maybe incorrect when using top_n. (AMPS-6840, Z14687)
  • Fix issue where a sow query with a filter that results in a primary key query or a query by hash index ignores the top_n option. AMPS now correctly produces at most the number of messages specified when the top_n option is present. (AMPS-5651)

Version 5.3.0.327 (2022-09-02)

  • Fix crash that could happen when AMPS fails to reject an attempt to replace the topic on a sow_and_subscribe command that uses pagination or aggregation. With this fix, AMPS will correctly return an invalid topic error if an application attempts to replace the topic on an existing subscription that uses pagination or aggregation. (AMPS-7015, Z14570)

Version 5.3.0.326 (2022-08-23)

  • Fix issue to prevent a client from being disconnected for exceeding slow client thresholds when the overall thresholds are exceeded, but this client was not using slow client resources. Previously, when a resource pool reached the slow client threshold, AMPS could disconnect the next client to be checked for resource consumption rather than a large or slow client. With this change, AMPS may slightly exceed the configured threshold while clients are being disconnected. (AMPS-6884, Z14256)

Version 5.3.0.325 (2022-08-18)

  • Fix memory leak that can occur when a sow_delete is replayed from the transaction log during AMPS startup SOW synchronization. (AMPS-6999, Z14619)

  • Improve 07-0071 client reaper log message to include the list of subscriptions associated with the reaped client. (AMPS-6991)

  • Add a new 07-0083 log message to indicate clients that have not been reaped for 300 seconds. (AMPS-6991)

Version 5.3.0.324 (2022-08-11)

  • Fix crash that can occur when a sow_and_subscribe that specifies conflation is replaced at the same time a publish that matches the subscription is processed. (AMPS-6988, Z14633)

Version 5.3.0.323 (2022-08-01)

  • Fix issue where a query that specifies both a select list and a batch size greater than 1 can send batches with a single message in a batch in cases where it would be possible to send a larger batch. (AMPS-6962, Z14558)

Version 5.3.0.322 (2022-07-27)

  • Fix crash that can happen when a message is leased from a queue, that message is deleted before it is acknowledged, the message is subsequently acknowledged, and the queue is monitored by a view or an action such as amps-action-on-sow-expire-message. (AMPS-6636, z14591)

Version 5.3.0.321 (2022-07-13)

  • Fix two issues introduced in 5.3.0.319 that affect the parallel evaluation engine (used for parallel queries, pagination, recovery, and maintenance of SOW topics):

    • A memory leak that can cause large memory growth, and

    • A race condition that can cause a heap use after free crash

    (AMPS-6942, Z14421)

Version 5.3.0.320 (2022-07-07)

  • Fix issue introduced in 5.3.0.193 where if a sow_delete by bookmark (queue acknowledgement) contains one or more bookmarks that the client is not entitled to acknowledge, those bookmarks would incorrectly be included in the transaction log record of the sow_delete command. Those deletes would be replicated, resulting in inconsistent queue state across replicated queues and inconsistent queue state after recovery. With this fix, only messages that are successfully acknowledged are written to the transaction log. (AMPS-6940)

Version 5.3.0.319 (2022-06-29)

  • Fix issue that could cause a use after free error or memory corruption when processing several simultaneous operations that use the parallel evaluation engine (used for parallel queries, pagination, recovery and maintenance of SOW topics). (AMPS-6920, Z14421)

Version 5.3.0.318 (2022-06-17)

  • Fix issue that can cause replication to disconnect and fail to make attempts to reconnect. This could happen when AMPS chooses to disconnect a replication destination due to inactivity at the same time that the operating system reports that the connection has been closed. (AMPS-6912, Z14221)

Version 5.3.0.317 (2022-06-08)

  • Fix to correctly record and log the replication path on a bidirectional connection when the source group name is different than the destination group name. (AMPS-5244, AMPS-6902, Z14311)

Version 5.3.0.316 (2022-06-05)

  • Fix issue where replicated message queues could become out of sync and have undeliverable messages after AMPS restart recovery. This issue is caused when a queue acknowledgement message has been received over replication before the queue publish message, and the deferred acknowledgement for that message has expired or the transaction log journal file that contains the queue acknowledgement message has been removed. AMPS will now ensure that all queue acknowledgement messages are recorded after the associated publish during recovery. This issue is much more likely to happen for installations that do not fully replicate queue messages (that is, installations that do not provide full passthrough and have disabled the queue_passthrough replication validation check to allow a topology with a risk of missing or undeliverable messages.) (AMPS-6656, Z14341)

  • Fix issue where, if the acknowledgement for a queue message is received before the message itself (possible in some complicated topologies that do not fully replicate message streams) and the instance is restarted after a longer period than the time to manage out-of-order acknowledgements, the message could incorrectly be added to the queue. With this fix, the message will correctly be considered acknowledged, and will not reappear on recovery. (AMPS-6892)

Version 5.3.0.315 (2022-05-28)

  • Fix deadlock that can occur as a SOW query completes. This deadlock will prevent subsequent queries from starting and cause AMPS to log the 16-0033 error message. (AMPS-6895, Z13702)

Version 5.3.0.314 (2022-05-23)

  • Fix regression introduced in AMPS 5.3.1.68 where historical SOW queries with a timestamp bookmark and a content filter that uses a hash index or the primary key for the topic would return current data instead of historical data. (AMPS-6889, Z14318)

Version 5.3.0.313 (2022-05-10)

  • Fix spark utility issue that could cause a NullPointerException when connecting to a transport that uses the legacy xml protocol and running a sow_delete command. The issue occurred because the final status message indicating the number of deleted records was not parsed correctly, although the command was correctly and fully processed by the server. Connections using the recommended amps protocol (or other legacy protocols) were not affected. (AMPS-6868, Z14156)

Version 5.3.0.312 (2022-05-09)

  • Fix issue where if one replication connection is running slowly some or all other replication links could incorrectly progress at the same rate as the slow connection. (AMPS-6879, Z14219)

Version 5.3.0.311 (2022-05-06)

  • Fix issue that can cause AMPS to become unresponsive when a bookmark subscription using the live option completes replay from the transaction log and transitions to receive publish messages as they arrive. (AMPS-6846, Z14265)

Version 5.3.0.310 (2022-04-19)

  • Fix race condition that could cause a crash or double free inside the high performance memory allocator used by AMPS for logging (among other uses). (AMPS-6595, Z14187)

Version 5.3.0.309 (2022-04-18)

  • Fix performance issue where a replicated queue that receives a large number of acknowledgement messages (millions) before receiving the publishes for the messages being acknowledged could result in replication delays. (AMPS-6857, Z14179)

Version 5.3.0.308 (2022-03-03)

  • Fix issue where retrieving statistics for an AMPS instance through HTTP would time out due to a large number of transaction log write latency anomaly events being recorded in the statistics database. This statistic has not typically produced actionable information, so the fix is to suppress collection of this statistic starting in this hotfix. (AMPS-6792, Z13663)

  • COMPATIBILITY NOTE: Starting in this hotfix, transaction log write anomaly events will no longer be reported or stored to the ILIFETIMES_DYNAMIC table in the statistics database or shown on the Galvanometer timeline. There is no change to the underlying schema of the table. The transaction log write latency histogram will still be stored and reported in the Galvanometer.

Version 5.3.0.307 (2022-02-28)

  • This release removes the fixes previously delivered in AMPS 5.3.0.304, 5.3.0.305 and 5.3.0.306.
AMPS Version 5.3.0.306 was intentionally skipped
AMPS Version 5.3.0.305 was intentionally skipped
AMPS Version 5.3.0.304 was intentionally skipped

Version 5.3.0.303 (2022-02-07)

  • Fix race condition in a queue with at-most-once semantics where the instance that owns a given message could grant a transfer request for the message at the same time it attempts to deliver the message locally. This would leave the message in an undeliverable state on the instance granting the transfer. (AMPS-6802, Z13793)

Version 5.3.0.302 (2022-02-04)

  • Fix issue where, if the first message recovered for a given queue during startup is a replicated queue transfer message, AMPS would fail to write transactions for that queue to the transaction log. This could result in messages in other instances being undeliverable in the event that the affected instance should have had ownership of those messages. (AMPS-6797)

Version 5.3.0.301 (2022-02-02)

  • Fix issue where a sow_and_subscribe command issued with a bookmark list to a topic that is historical and also recorded in the transaction log would fail with an invalid bookmark error. With this fix, AMPS will find the earliest point in the transaction log for the bookmarks in the list and run the historical sow_and_subscribe at that point. (AMPS-6659, Z13710)
AMPS Version 5.3.0.300 was intentionally skipped

Version 5.3.0.299 (2022-01-21)

  • Fix crash that can occur during replication resync when there is more than one passthrough destination, or when AMPS is receiving replicated messages for multiple topics and AMPS is also receiving publish messages for multiple topics from multiple clients. (AMPS-6755, Z13686)

Version 5.3.0.298 (2021-12-11)

  • Fix issue in MessagePack message type serialization of signed integer values when constructing fields from a value calculated by AMPS. (AMPS-6734, Z13614)

Version 5.3.0.297 (2021-12-06)

  • Fix deadlock that may occur when a large number of subscribe / unsubscribe / sow query or delete by query commands are being entered simultaneously and those commands use large or complex filters, projection options, or grouping options. (AMPS-6677, Z13460)

Version 5.3.0.296 (2021-12-01)

  • Fix issue where AMPS will fail to startup in some configurations due to running out of processes (or threads). With this fix, AMPS will properly size the number of threads used during recovery to the size of the host. (AMPS-6460, Z12577, Z13561)

Version 5.3.0.295 (2021-11-23)

  • Fix issue where using the replace option to change the select list on a sow_and_subscribe or sow_and_delta_subscribe command would ignore the change to the select list unless another parameter of the command (such as the filter) was also changed as part of the replace. (AMPS-6692, Z13482)
AMPS Version 5.3.0.294 was intentionally skipped

Version 5.3.0.293 (2021-11-09)

  • Fix issue where the start of replication resynchronization may be delayed during high volumes of transaction log writes. This would cause the seconds_behind metric to increase and a relatively small number of messages to flow through the replication connection even though the connection is active and the upstream instance is receiving publishes to be replicated. (AMPS-6687, Z13455)

Version 5.3.0.292 (2021-11-02)

  • Ensure proper escaping of special symbols when serializing the XML message type for select lists, enrichment and preprocessing values, projected values in views, as well as projected values in aggregated subscriptions. (Z13365, AMPS-6667)

Version 5.3.0.291 (2021-10-28)

  • Fix spark utility to allow it to connect securely over SSL to AMPS TCPS transports (see -secure option in help). Also allow connection over custom URI schemes for cases where a custom client transport is needed to connect to AMPS (see -urischeme option in help). In addition, custom connection URI parameters can be passed in the URI query string using the -uriopts option (see associated spark help for details). The spark utility also now recognizes the AMPS_SPARK_OPTS environment variable for passing Java properties to the underlying JVM. This is needed for SSL properties such as -Djavax.net.ssl.trustStore and -Djavax.net.ssl.trustStorePassword (see the section on SSL in the Advanced Topics chapter of the AMPS Java Developer Guide). (AMPS-6617, Z13253)
  • Fix spark utility to report a proper error message and exit when a message type is not specified, or is invalid, when connecting to an amps protocol transport that isn't explicitly configured with a message type. (AMPS-6607, Z13201)

Version 5.3.0.290 (2021-10-26)

  • Fix calculation of memory use by clients to account for the full size of each buffer that is in use, rather than simply the number of bytes used for data. This could result in undercounting the memory used by a client, particularly in cases where message size is small (less than approximately 1.5K). (AMPS-5165)
  • Fix issue that could cause AMPS to over-allocate memory for SOW queries that use select lists. (AMPS-5165, AMPS-6653, Z13304)

Version 5.3.0.289 (2021-10-20)

  • Fix issue where it is possible for a sow_and_subscribe command with the replace option specified to hang when there are multiple concurrent subscription commands being processed. (AMPS-6611, AMPS-6620, Z13181, Z13279)

Version 5.3.0.288 (2021-10-18)

  • Fix issue where the threads that handle updates to views or conflated topics were not reporting progress to the thread monitor frequently enough, which could cause AMPS to incorrectly log potential stuck thread warnings and prematurely emit minidumps. This issue would occur more frequently during high volumes of updates or during periods of high CPU usage. (AMPS-6066, Z11903, Z13324)

Version 5.3.0.287 (2021-10-17)

  • Improvements to AMPS replication connection handling:

    • Continue to attempt to reconnect to specified replication destination InetAddr on DNS resolution errors.

    • Introduce 1E-0081 warning level log message to provide details on DNS resolution errors from a connection attempt on a specified replication destination InetAddr.

    • Introduce 1E-0082 warning level log message to provide details on socket connection errors from a connection attempt on a specified replication destination InetAddr.

    • Introduce 1E-0083 info level log message to provide DNS resolution details for a successful connection to a specified replication destination InetAddr.

    • Introduce 1E-0084 error level log message if AMPS is unable to connect to a replication destination for a long period of time. (AMPS-6522, Z12919)

Version 5.3.0.286 (2021-10-12)

  • Fix crash when a delta subscription that uses pagination (that is, specifies both the top_n and skip_n options) also specifies per-subscription conflation. This issue happens more frequently when a delta subscription that uses pagination and conflation also uses select lists. (AMPS-6635, Z13337)

Version 5.3.0.285 (2021-10-08)

  • Fix crash when a subscription with the oof option attempts to perform out-of-focus processing for a message type that can't be parsed, such as for a binary message. (AMPS-6614, Z13245)

Version 5.3.0.284 (2021-10-06)

  • Fix issue where a BFlat array that is empty or contains 1 element would be serialized as an individual value, rather than an array (for example, when producing results for a delta_subscribe). (AMPS-6546, Z12733)
AMPS Version 5.3.0.283 was intentionally skipped

Version 5.3.0.282 (2021-08-23)

  • Fix race condition that could result in two consumers incorrectly receiving the same queue message from two different instances of AMPS. This issue could happen if the queue is replicated to at least 3 instances of AMPS and there are subscribers to the queue on at least 2 of those instances. For this issue to happen, an instance of AMPS must be granted ownership of a queue message at the same time that a transfer request for that message arrives. In that case, it was possible for AMPS to both deliver the message to a subscriber and grant ownership of the message to a different instance (which would then deliver the message to a subscriber on that instance). (AMPS-5779)

Version 5.3.0.281 (2021-08-19)

  • Fix crash that can occur when performing a sow_delete by query on a topic with at least one hash index defined while publishes to the topic are happening. (AMPS-6582)
AMPS Version 5.3.0.280 was intentionally skipped

Version 5.3.0.279 (2021-08-10)

  • Fix crash that can occur when performing a sow_delete with filter 1=1 on a topic with at least one hash index defined while publishes to the topic are happening. (AMPS-6566, Z13036)

Version 5.3.0.278 (2021-08-05)

  • Fix crash during startup when a topic that uses the binary message type configures a Key field. AMPS will now properly display an error message and halt startup. (AMPS-6509, Z12860, Z13084)

Version 5.3.0.277 (2021-08-02)

  • Fix crash that may occur when an oof message is delivered on a subscription that uses both conflation and a select list. (AMPS-6565, Z13028)

Version 5.3.0.276 (2021-07-19)

  • Fix issue where the hash index is not updated during SOW synchronization with the transaction log during AMPS startup. This issue could cause incorrect results to be returned when querying a topic by hash index if the SOW file was removed, or if AMPS had previously exited unexpectedly without bring the SOW file up to date with the transaction log. (AMPS-6548)

Version 5.3.0.275 (2021-07-13)

  • Ensure that processing of transaction log records for SOW topics with external keys is compatible with the processing in later releases of AMPS. This change does not fix an issue in this version of AMPS, but instead ensures journal file format compatibility with future improvements planned for replication processing. (AMPS-6543)

Version 5.3.0.274 (2021-07-08)

  • Fix issue where AMPS can incorrectly log 02-0012 stating that replication back tracking has occurred in cases where a rapid sequence of disconnect/reconnect/disconnect/reconnect happens for a replication connection. In this situation, the upstream instance replicating to the downstream instance that logs this error could replicate messages that have already been received by the downstream instance. This would unnecessarily use bandwidth (since the downstream instance would discard them as duplicates). With this fix, this sequence of disconnects and connects will no longer cause the issue. (AMPS-6538, Z12792)
  • Fix issue where AMPS can log spam 1E-0016 when a replication client disconnects during resync. (AMPS-6475, Z12792)

Version 5.3.0.273 (2021-07-07)

  • Fix crash that can occur when processing an IN clause with a large number of strings that hash to the same value (for example, many instances of the empty string ""). (AMPS-6445, Z12970, Z12672)

Version 5.3.0.272 (2021-06-08)

  • Fix issue that prevented amps_sow_dump from being able to output messages containing unicode characters. Prior to this fix, a user would be required to use the --zip-output argument to output messages to a zip archive. (AMPS-6347, Z12707, Z12463)
  • The amps_sow_dump utility now includes a --no-data flag to exclude the stored data, allowing metadata-only dumps. The amps_sow_dump utility now has functionality consistent with other AMPS tools. (AMPS-6347)

Version 5.3.0.271 (2021-06-04)

  • Improve ability of AMPS to recover correctly when journal metadata is damaged or incorrect. Although AMPS is not guaranteed to recover the journal in this situation, this improvement allows AMPS to fix corruption that would previously have caused an error during journal recovery. (AMPS-6285)
AMPS Version 5.3.0.270 was intentionally skipped

Version 5.3.0.269 (2021-05-27)

  • Fix crash caused by replacing an aggregated subscription that does not use the pagination options (skip_n and top_n). With this fix, an attempt to replace an aggregated subscription that does not use these options is correctly rejected as an invalid command. (When skip_n and top_n are specified, changing the value of those options is allowed, but the other options for the aggregated subscription must remain unchanged). (AMPS-6476, Z12799)

Version 5.3.0.268 (2021-05-27)

  • Fix issue where a bookmark subscription that requested a completed acknowledgement would not be sent a completed acknowledgement if the transaction log was empty at the time the subscription was placed. With this defect, AMPS would send the completed acknowledgement once a message was published to a transaction backed topic. With this fix, AMPS will send a completed acknowledgement if requested, even if there are no messages in the transaction log. (AMPS-6473, Z12777)
AMPS Version 5.3.0.267 was intentionally skipped

Version 5.3.0.266 (2021-05-11)

  • Fix scenario where a large number of distinct priority values in a queue (greater than 16k in testing) can cause AMPS to consume a large amount of CPU which can result in message delivery delays and stuck messages in the logs. ( AMPS-5778)

Version 5.3.0.265 (2021-05-06)

  • Fix deadlock that could occur when a client is acknowledging a message from a queue using the expire option, and a write entitlement filter is active for that user for that queue. (AMPS-6446, Z12651)

Version 5.3.0.264 (2021-05-04)

  • Fix crash that can occur when issuing a aggregated sow_and_subscribe command while concurrent publishing to that topic is happening. (AMPS-6309)

Version 5.3.0.263 (2021-04-30)

  • Fix issue where AMPS could skip sending the first message in the transaction log during an EPOCH bookmark replay. This could happen when the transaction log is empty and multiple clients publish a message at the same time that a bookmark replay is started at EPOCH for the empty transaction log. (AMPS-6431)
  • Fix issue where AMPS could stop sending persisted acks to a bookmark replay that uses the live option when storing messages to the transaction log is completing faster than publishing messages to the client. (AMPS-6304)

Version 5.3.0.262 (2021-04-27)

  • Fix issue where, when a bookmark replay provides a timestamp and that timestamp is the timestamp of a message that is in the process of being written to the transaction log then replay begins on that message rather than immediately following that message. (AMPS-6365)

Version 5.3.0.261 (2021-04-23)

  • Fix issue when zstd replication compression is enabled where the downstream instance can stop processing messages. This can happen when a message or batch that is larger than 128K bytes compresses to be less than 128K bytes. When this issue happens, the connection remains active, but no further messages are processed. (AMPS-6432)

Version 5.3.0.260 (2021-04-14)

  • Fix issues related to the BSON message type.
    • Fix crash that may occur during SOW Statistics serialization when using the BSON message type. (AMPS-5022)
    • Prevent buffer overflow crash that may occur when printing invalid BSON message data to the AMPS trace level log or returning invalid BSON message data to a client that has set the pretty option on logon. (AMPS-5103)

Version 5.3.0.259 (2021-04-12)

  • This fixes a deadlock that could occur when a queue receives a sow_delete by bookmark that contains a content filter through two different improvements:
    • Fix deadlock that could occur when a message for a queue topic is not processed by the queue (for example, because the message does not have a valid set of options).
    • Fix to explicitly return an error if a sow_delete by bookmark also contains a content filter. This combination of options is not valid in AMPS, but previously did not return an error. (AMPS-6310, Z12349)

Version 5.3.0.258 (2021-04-07)

  • Fix deadlock in the HTTP authentication and entitlement module that may occur when an entitlement request and disconnection entitlement reset happen at the same time. (AMPS-6408, Z12566)

Version 5.3.0.257 (2021-04-06)

  • Increased stability and performance during shutdown. (AMPS-4883, AMPS-6246, AMPS-6248, AMPS-6270)

Version 5.3.0.256 (2021-03-30)

  • Fix to correctly disallow a sow_delete_by_bookmark command (used for acknowledging queue messages) that uses a regular expression for a topic name. Without this fix, if a queue acknowledgement submitted by constructing the command used a regular expression that matched multiple topics, this could cause AMPS to crash or become unresponsive. With this fix, AMPS will correctly return an error indicating that a regular expression topic name is not supported for this command. (AMPS-6396, Z12539)

Version 5.3.0.255 (2021-03-29)

  • Add option to allow Join expressions in AMPS views to follow conventional SQL behavior for NULL values. Previously, Join expressions would consider empty or NULL fields to be equivalent. This could cause unexpected results and/or add significant unnecessary processing load for Views that join on fields that can contain NULL values.

    A View configuration can now include the JoinNullEquivalency value to control this behavior. When set to disabled, AMPS follows the expected SQL behavior. 60East recommends setting this value to disabled for any view where a field used in a Join may be missing, an empty string, or explicitly set to null in message types such as JSON. (AMPS-6360, Z12415, Z12504)

Version 5.3.0.254 (2021-03-22)

  • Improve performance of sow_delete_by_key in cases where the corresponding message is large. This was caused by a buffer resizing to write the compressed data to the transaction log.(AMPS-6286)
  • Improve performance of zstd stream compression by reducing the resizing required to generate the compressed message. (AMPS-6222)
  • Fix issue when using zstd compression where the output maybe be truncated if the compressed size is larger than the input size. (AMPS-6330)
  • Fixed issues with large messages being sent over compressed client connections that could cause messages to be lost.(AMPS-6217)
  • Fix issue with zlib stream compression where AMPS would not attempt to write additional bytes to the socket in a case where there is a partial write. (AMPS-6218)
  • Fix issue where zstd steam compression could fail to fully decompress a message in a rare edge case. (AMPS-5062)
AMPS Version 5.3.0.253 was intentionally skipped

Version 5.3.0.252 (2021-03-09)

  • Fix deadlock introduced in 5.3.0.236 where AMPS can hang while removing messages from a SOW topic that has History enabled. This issue can cause AMPS to stop processing messages and eventually result in an abnormal shutdown. (AMPS-6349, Z12366)

Version 5.3.0.251 (2021-03-06)

  • Fix crash that could occur during a sow_and_delta_subscribe subscription when pagination (top_n with skip_n), a conflation interval, and oof options are all specified for the subscription. (AMPS-6343, Z12261)
AMPS Version 5.3.0.250 was intentionally skipped

Version 5.3.0.249 (2021-02-18)

  • Fix issue where AMPS incorrectly logs a critical level log message during shutdown. The message indicates the sow_topic_store_manager is unresponsive, even though that is not the case. With this fix, AMPS no longer incorrectly logs the message. (AMPS-6213, AMPS-6056)

Version 5.3.0.248 (2021-02-16)

  • Fix race condition in pagination that can result in a crash or incorrect results being returned. This can occur when clients concurrently request paginated subscriptions while others are unsubscribing. (AMPS-5859)

Version 5.3.0.247 (2021-02-07)

  • Fix regression introduced in 5.3.0.246 where unresponsive clients that use heartbeating may not be disconnected by the AMPS server. (AMPS-6245)

Version 5.3.0.246 (2021-02-01)

  • Fixed issue where clients that use heartbeating could incorrectly disconnect or be disconnected while a long-running sow_delete command is being processed if that command runs for longer than twice the heartbeat interval set by the client. In this case, while the command is running, AMPS defers processing for some clients, which means that AMPS does not process heartbeat messages received from those clients or generate heartbeats to those clients. With this fix, AMPS will continue to generate heartbeats for clients where processing is deferred by a long running sow_delete, and will not disconnect clients while processing is deferred for that client. (AMPS-6208, Z12254)

Version 5.3.0.245 (2021-01-18)

  • Fix deadlock that can hang AMPS when remap is executed while a record is updating. (AMPS-6125)

Version 5.3.0.244 (2021-01-13)

  • Fix issue where AMPS would abort and create a minidump when the SOW file is being extended due to a publish and the new calculated byte count for the topic is inconsistent with the actual file size. This could happen if memory corruption occurs or if the SOW file is corrupted. (AMPS-6109, Z11794)

Version 5.3.0.243 (2021-01-10)

  • Fix issue where AMPS could lease more messages from a Queue than the configured MaxBacklog limit for that Queue when there is more than one subscription active. (AMPS-6199, Z12233)

Version 5.3.0.242 (2020-12-09)

  • Fix issue where a historical query may incorrectly return records that were previously removed from an explicitly keyed SOW topic. This issue happens when no index is being maintained for the topic (that is, when no indices are specified in the configuration file, no queries have referenced a field in the topic, no views use the topic, and so on). (AMPS-6140, Z12107)

Version 5.3.0.241 (2020-12-08)

  • Increase stats.db page cache size for better performance of the admin interface and applications that use it, including Galvanometer, on large instances with slow storage. (AMPS-5963, Z11584)

Version 5.3.0.240 (2020-12-04)

  • Fix issue where AMPS allocates an excessive amount of memory when returning the results of a SOW query. This over-allocation happens when the topic contains one or more messages that are significantly larger than the average message size for the topic. The effect is more severe the larger the message is relative to the average message size. (AMPS-6132, Z11904, Z12043)

Version 5.3.0.239 (2020-12-03)

  • Fix crash when a SOW topic that uses publisher-provided SOW keys receives a replicated sow_delete by data. (AMPS-6122)

Version 5.3.0.238 (2020-12-02)

  • Fix issue where an AMPS restart or SOW compact operation on a historical SOW topic that uses publisher-provided SOW keys could fail to produce index records, which would cause queries that used the index to return no results (even though data was present in the topic). With this fix, queries for these topics return the expected results after the AMPS restart or SOW compact operation completes. (AMPS-6062, Z11894)
AMPS Version 5.3.0.237 was intentionally skipped

Version 5.3.0.236 (2020-11-23)

  • Improve performance and memory usage when rebuilding a historical SOW topic from the transaction log. (AMPS-6024)
  • Fix issue where a SOW topic with history enabled that is also recorded in the transaction log could retain records in the SOW file which were no longer needed. This could lead to a situation where the SOW file was larger than necessary. (Z11833, AMPS-6029)
  • Fix crash when using a SOW topic that has transient durability, has History enabled, and is also recorded in the transaction log when recovering the topic as AMPS starts. (Z11935, AMPS-6082)

Version 5.3.0.235 (2020-11-21)

  • Fix crash caused by a buffer overrun that can occur when AMPS is parsing BFlat messages with invalid information for a field (for example, the incorrect size for a string). (AMPS-6089, Z11863, Z11985)
  • Fix issue where formatting a BFlat message for readability can result in an AMPS crash due to excessive memory allocation. This issue only applies to messages formatted for readability (such as the AMPS event logs, Galvanometer queries, or connections that use the pretty option on logon). This issue is due to AMPS formatting BFlat messages containing invalid header information for a field. AMPS will now format messages containing large arrays of null values up to the first 1024 null elements. If the array is larger, the 1025th element will be a string describing how many additional null elements are in the array. (AMPS-6110)
  • Fix issue where formatting a BSON message for readability can result in an AMPS crash caused by a buffer overrun when the BSON message contains invalid information for a field (for example, the incorrect size for a string). (AMPS-6112)
  • Fix issue where displaying large messages (bigger than 4 MB) on the SQL page of Galvanometer results in a "Maximum call stack size exceeded" error. (AMPS-6114, Z11997)

Version 5.3.0.234 (2020-11-19)

  • Fix issue where a persisted ack may not be sent after a completed ack for bookmark subscriptions. (AMPS-6049)
  • Fix issue where rate limited bookmark subs could receive a persisted ack ahead of a publish for the same transaction id. (AMPS-6055)

Version 5.3.0.233 (2020-11-17)

  • Fix issue where a message may not be detected as a duplicate during replication and incorrectly recorded in the transaction log. This could happen in the case where the same message arrives at AMPS over multiple transports, when one of those transports is not a replication transport, and where the non-replication client has previously been connected to this instance, disconnected, and reconnected. Recording the same message more than once in the transaction log could lead to a bookmark replay starting at the incorrect point, duplicate delivery of messages from AMPS, a message in a queue being undeliverable, and so on. (AMPS-6100, AMPS-6105, AMPS-4875, AMPS-5373, Z11983)

Version 5.3.0.232 (2020-11-15)

  • Fix issue where a SOW delete by query on the underlying topic of a view could cause a SIGABRT. This was introduced in AMPS 5.3.0.227 with changes to the underlying hash functions. (AMPS-6097, Z11982)

Version 5.3.0.231 (2020-11-11)

  • Improve memory usage for SOW topics in cases where messages are short-lived relative to the incoming publish rate. In situations where a slab has become empty (typically through deletes) while that slab is still being used by a message processor, AMPS can now immediately reuse the slab rather than waiting for the slab to be marked empty during SOW maintenance. (AMPS-6007)
  • Fix crash that could occur when a SOW query, SOW delete by filter, coalesce, or remap happens while message processing for a previous message is still in progress. This issue was introduced in 5.3.0.217. (AMPS-6021)
  • Fix crash that could occur when SOW expiration for a topic occurs at the same time that a new record is inserted in the topic. (AMPS-6023)
  • Fix issue that could cause AMPS to crash when inflating a compressed transaction log record that inflates to more than 4GB of data (typically, this could happen when a sow_delete by keys deletes a large amount of data). (AMPS-6053, Z11885)
  • Fix issue where amps_journal_dump could fail to dump records that contain compressed data that would inflate to more than 4GB. (AMPS-6054, Z11885)
  • Fix crash when AMPS attempts to coalesce a slab that recently had all items deleted from the slab. (AMPS-5625, Z11780, Z11920)
  • Fix issue where AMPS would incorrectly attempt to store a message that is larger than the configured slab size. This could happen in cases where the message size was less than 128 bytes larger than the maximum message size. (AMPS-5996)

Version 5.3.0.230 (2020-11-04)

  • Fix issue where a bookmark replay that is paused on the last transaction in the transaction log can start from a slightly earlier point in the transaction log when resumed. This could produce duplicate messages to the subscription. (AMPS-6061)

Version 5.3.0.229 (2020-11-02)

  • Fix issue where replication could fail to replicate messages in a case where:
    • A replication connection between two instances has been previously replicating messages.
    • The downstream instance is taken offline and all journal files and the clients.ack file are removed.
    • The downstream instance is brought back online, the upstream instance reconnects, and no other publish traffic is being received by the downstream instance. In this situation, the downstream instance could fail to receive messages from the upstream instance. (AMPS-6060, Z11796)

Version 5.3.0.228 (2020-10-31)

  • Fix crash caused by a race condition when a client disconnects and reconnects while AMPS is processing a publish that has requested a persisted acknowledgement, and that message is a duplicate. (AMPS-5395, Z11914, Z11879)

Version 5.3.0.227 (2020-10-23)

  • Fix to reduce memory consumed by content filters that use an IN clause. (AMPS-5987, Z11855)

Version 5.3.0.226 (2020-10-21)

  • Fix crash caused by a race condition when processing a command that replaces or removes a subscription where the affected subscription holds messages before delivering them (conflated subscriptions, aggregated subscriptions, or subscriptions that use pagination). (AMPS-6006, Z11818)

Version 5.3.0.225 (2020-10-19)

  • Fix issue where a bookmark subscription that requests persisted acks would not receive them in cases where:

    • The instance of AMPS that hosts the subscription has multiple replication destinations configured for synchronous acknowledgement
    • One or more of the destinations configured for synchronous acknowledgement goes offline and
    • Offline destinations are downgraded to asynchronous acknowledgement, but other destinations are not downgraded

    This could cause a subscriber to restart the subscription further back in the transaction log than necessary. (AMPS-6015, Z11817)

AMPS Version 5.3.0.224 was intentionally skipped
AMPS Version 5.3.0.223 was intentionally skipped

Version 5.3.0.222 (2020-10-13)

  • Fix crash caused by a race condition when AMPS is executing a sow_delete command with a filter of 1=1 (the filter value optimized for clearing a SOW topic) at the same time that expiration processing is happening for the affected topic. (AMPS-6000)

Version 5.3.0.221 (2020-10-10)

  • Fix issue where a client that has disconnected may retain data in an internal client buffer (byte_in) resulting in unnecessary memory growth. (AMPS-5988, AMPS-5991, Z11743)

Version 5.3.0.220 (2020-10-07)

  • Fix issue where resetting entitlements for the Admin interface does not correctly reset permissions or invalidate current cached sessions. This could cause a situation where Admin permissions changes were not detected. This could also allow a Galvanometer session to submit requests after the entitlement reset without re-authenticating, including opening a websocket connection to Transports that use the TrustedAdmin option. With this fix, Admin interface entitlements are correctly reset and in-progress Admin sessions will be required to re-authenticate on the first HTTP request after entitlement reset. (AMPS-5968, Z11423)

Version 5.3.0.219 (2020-10-06)

  • Fix issue where the amps-default-authenticator could leak file descriptors when an outgoing replication connection is created and the authenticator is configured to read a password from a file. This would typically only affect an instance if the outgoing connection is unable to successfully authenticate, causing multiple authentication retries. (AMPS-5980, Z11778)

Version 5.3.0.218 (2020-10-02)

  • Fix crash when the --dump-config command line argument is used for a configuration file that uses an Include directive to include a file that is not valid XML. (AMPS-5799)
  • Improve error reporting when a configuration file uses the Include directive to include a file that is not valid XML. (AMPS-5799, Z11393)

Version 5.3.0.217 (2020-10-01)

  • Fix crash or hang caused by a race condition when executing a sow_delete command with a filter of 1=1 (the filter value optimized for clearing a SOW topic) while there is heavy publishing load to that topic. This issue is more likely to occur when all available CPU cores are fully loaded. (AMPS-5950, Z11641)
  • Fix issue where view processing does not exit in a timely manner during AMPS shutdown. (AMPS-5955)
  • Fix issue where the name of the module that has not exited in a timely manner is misreported in AMPS log messages. (AMPS-5957)

Version 5.3.0.216 (2020-09-27)

  • Fix crash that may occur when there are multiple paginated subscriptions active and a client enters a new sow_and_subscribe command, or replaces an existing paginated subscription. (AMPS-5925, AMPS-5922, Z11676, Z11656)

Version 5.3.0.215 (2020-09-24)

  • Fix issue in AMPS where the HTTP authentication and entitlements module could deadlock. This issue could happen when a client was authenticating at the same time that the module was processing a disconnect for the last existing connection for the same user. (AMPS-5933)

Version 5.3.0.214 (2020-09-23)

  • Fix issue where a 07-0006 message would be logged excessively indicating that a transport send failed in cases where the remote side of the connection has been closed. (AMPS-5574, Z11612)
  • Fix issue where AMPS can excessively log the 70-0011 message when consuming from a view with a paginated sow_and_subscribe. (AMPS-5932)
  • Fix issue in the spark utility where a subscription to a queue topic when using the -limit and -auto flags would fail to acknowledge the last message received. (AC-994,Z11713)

Version 5.3.0.213 (2020-09-17)

  • Fix issue with aggregated queries and subscriptions where a projected field that is not an aggregate and does not appear in the grouping might not produce the most-recently processed value. This issue only affects aggregated subscriptions and queries. Views are not affected. (AMPS-5939, Z11668)

Version 5.3.0.212 (2020-09-16)

  • Fix issue where the CRC64 scalar function and the amps_get_crc64 SDK function would return an incorrect value. (AMPS-5695)

Version 5.3.0.211 (2020-09-09)

  • Fix issue where a bookmark subscription that uses the live option and that is no longer replaying from the transaction log might stop receiving persisted acks when a different client disconnects. This does not affect the data that the subscription receives. However, this could cause recovery for the application to begin at an earlier point in the transaction log than necessary. This issue only affects bookmark subscriptions that use the live option. (AMPS-5912, Z11506)

Version 5.3.0.210 (2020-09-01)

  • Fix issue when parsing a select list that contains redundant XPath identifiers when a field is included in the list after one of the fields that it contains (for example, a select list such as [-/,+/a/b,+/a]). Previously, the message produced would have the contained field (/a/b) only, rather than the full contents of the containing field (/a). With this fix, AMPS produces the fields specified, regardless of the order in the select list. (AMPS-5897, Z11637)
AMPS Version 5.3.0.209 was intentionally skipped

Version 5.3.0.208 (2020-08-29)

  • Fix crash that may occur when pagination data is updated during a SOW delete. This can happen when a SOW delete is executed for a topic that is currently using result set pagination. (AMPS-5743, AMPS-5536)
  • Fix incorrect assert that could cause an assert failure to be reported while updating a SOW index during a SOW delete, even though there is no actual issue. This issue only affects AMPS servers built with Debugging (Debug-ASAN builds), which are sometimes provided by 60East support to help diagnose problems. Servers labeled Release are unaffected. (AMPS-5767)

Version 5.3.0.207 (2020-08-28)

  • Fix issue where a bookmark subscription may not start from the correct point when:

    • The starting point submitted is a list of bookmarks, and
    • That list contains bookmarks from two or more different publishers that are located in the same journal file, and
    • That journal file is not the currently active journal file, and
    • AMPS has performed index maintenance for that journal file (as logged in the 1D-0079 info level message)

    In this case, it is possible for AMPS to start a bookmark subscription from one of the bookmarks in the list that is not the earliest bookmark in the transaction log. (AMPS-5648)

  • Fix issue where AMPS can incorrectly initialize transaction log data during recovery when the last journal file has an index. (AMPS-5755)

Version 5.3.0.206 (2020-08-26)

  • Add functionality to the WebSocket protocol to allow specifying custom HTTP Response headers in configuration using the <HTTPHeader> tag. (AMPS-5888, Z11569)

Version 5.3.0.205 (2020-08-25)

  • Fix issue where a historical sow_and_subscribe or a sow_and_subscribe from NOW that requests out of focus (oof) notifications could prevent AMPS from removing journals that contain messages that were needed for OOF processing but are no longer needed. (AMPS-5844)
AMPS Version 5.3.0.204 was intentionally skipped
AMPS Version 5.3.0.203 was intentionally skipped

Version 5.3.0.203 (2020-08-22)

  • Fix regression introduced in 5.3.0.193 that could cause message pipeline deadlock that may occur when using replicated queues with strict leasing or content-filtered entitlements. This deadlock can result in AMPS initiating an emergency shutdown. (AMPS-5876, Z11560)

Version 5.3.0.202 (2020-08-21)

  • Fix regression introduced in 5.3.0.200 that could cause a SOW query over a queue topic to return no results. (AMPS-5883, Z11348)
AMPS Version 5.3.0.201 was intentionally skipped

Version 5.3.0.200 (2020-08-18)

  • Fix a crash that could occur when SOW expiration is running concurrently with updates to a SOW topic with a View topic declared on top of it. (AMPS-5801, Z11348)

Version 5.3.0.199 (2020-08-17)

  • Fix issue where replicating a transaction that contains data larger than the AMPS single message size limit (approximately 200MB) fails with the downstream instance disconnecting the instance sending the message. Replication connections impacted by this issue would repeatedly disconnect while logging a 01-0012 message (invalid message size) on each attempt to replicate the message. (AMPS-5853, Z11480)
AMPS Version 5.3.0.198 was intentionally skipped

Version 5.3.0.197 (2020-08-14)

  • Fix a crash that could occur when hash index query that specifies an OrderBy clause returns multiple records and the total number of records returned is greater than the number of values used to query the hash index (for example, when a hash index query like /x IN ('A','B','C') matches more than 3 records). (AMPS-5870, Z11414)

Version 5.3.0.196 (2020-08-12)

  • Fix issue where a historical sow_and_subscribe or a sow_and_subscribe from NOW that requests out of focus (oof) notifications did not properly prevent AMPS from removing journals that contained messages needed for oof delivery. This could cause the subscription to fail to deliver the expected oof messages if the journals containing the messages were removed. (AMPS-5838)

Version 5.3.0.195 (2020-08-11)

  • Fix issue where formatting a message for readability can result in malformed JSON in cases where the JSON document produced to represent the message is shorter than the original message (for example, a 50-byte binary message represented as {"binary":"size 50"}). This issue only applies to messages formatted for readability (such as the AMPS event logs, Galvanometer queries, or connections that use the pretty option). The original data is not affected. (AMPS-5668)

Version 5.3.0.194 (2020-08-10)

  • Fix issue that caused AMPS to produce invalid JSON when serializing strings that required escaping unicode characters -- for example, strings that contain characters such as SOH (0x01). This could affect any situation where AMPS is producing a string for JSON (including views, aggregated subscriptions, and so on). With this fix, AMPS correctly provides a unicode escape for these characters. (AMPS-5860, Z11515)

Version 5.3.0.193 (2020-08-08)

  • Fix issue where queue acknowledgements (sow_delete) were recorded verbatim in the transaction log, even in cases where the user was not entitled to acknowledge one or more messages in the command. This command could then be replicated to downstream instances, causing queues on the downstream instances to remove messages that were not removed in the instance that processed the acknowledgement. With this fix, only messages that are removed on the instance that receives the acknowledgement will be written to the transaction log and replicated. (AMPS-5811, Z11383)

Version 5.3.0.192 (2020-08-07)

  • Fix to reduce the memory consumed by a HashIndex. (AMPS-5846, Z11362)
  • Fix to include the memory consumed by a HashIndex in the statistics for the topic that it indexes. Previously, although this memory was consumed by the topic, it was not reflected in the statistics for that topic. (AMPS-5825)

Version 5.3.0.191 (2020-08-03)

  • Fix regression introduced in 5.3.0.155, that could result in AMPS failing to find a message in the transaction log in cases where an operation reading from the transaction log needs to look for a message in a previous journal (for example, when processing a message being returned to a message queue or retrieving the message for an oof from a historical sow_and_subscribe). (AMPS-5843)

Version 5.3.0.190 (2020-07-30)

  • Fix a buffer overflow memory corruption that can occur when an incoming message matches a large number of subscriptions and at least one of those subscriptions uses a select list, is an aggregated subscription, or is a conflated subscription. (AMPS-5845, Z11289)
AMPS Version 5.3.0.189 was intentionally skipped

Version 5.3.0.188 (2020-07-25)

  • Fix issue in connections that use SSL/TLS that could cause message delivery to a client to stop after AMPS logs a "bad write retry" error from the SSL implementation. This could happen in cases where the SSL library requested that AMPS retry sending data and AMPS had moved the data in memory between sending the data the first time and receiving the retry request. With this fix, AMPS explicitly configures the SSL implementation to allow a buffer to move when a retry is requested. (AMPS-5728, Z11221)

Version 5.3.0.187 (2020-07-24)

  • Fix race condition in the HTTP authentication and entitlements module which can cause the permissions list for an entitled user to be empty. This can occur when the last tracked connection for a user is disconnected at the same time that a new connection for the same user is being created. (AMPS-5814, Z11423)

Version 5.3.0.186 (2020-07-23)

  • Fix issue where a replicated queue that uses at-most-once delivery semantics can fail to remove messages on instances other than the one where the message was delivered due to the automatically generated acknowledgements being incorrectly treated as duplicates during replication. (AMPS-5827, Z11341)

Version 5.3.0.185 (2020-07-22)

  • Fix possible message loss caused by an acknowledgement being sent too early to an HA publisher in cases where the publisher is publishing to an instance that has more than one replication destination that uses synchronous acknowledgement (that is, 3 or more servers are involved) and the client or the instance fails before the messages published by the client have been replicated to all synchronous destinations. (AMPS-5800)
  • Fix crash during restart recovery when AMPS attempts to read a partially written entry at the end of the client ack index file. This would only occur when AMPS has been made to exit forcibly (for example, via a kill -9, or when stopped by the Linux OOM killer). (AMPS-5820)

Version 5.3.0.184 (2020-07-19)

  • Fix crash that may occur when multiple primary key or hash index queries that specify an OrderBy clause execute at the same time. (AMPS-5809, Z11414)

Version 5.3.0.183 (2020-07-17)

  • Fix a crash that could happen when a bookmark subscription that uses the live option has finished replay from the transaction log and a publish for that subscription arrives during cutover. (AMPS-5806)

Version 5.3.0.182 (2020-07-15)

  • Improve AMPS stats truncation by breaking large truncation events into 16K rows per deletion to prevent minidumps during truncation. (AMPS-4484)

Version 5.3.0.181 (2020-07-10)

  • Fix issue where amps_fast_journal_dump produced different output than amps_journal_dump. With this fix, both versions produce identical fields, formatting, and whitespace. (AMPS-5650)

Version 5.3.0.180 (2020-07-07)

  • Fix issue where AMPS performs an emergency shutdown in a case where an interrupted system call for an input/output operation is not properly retried. This was most often seen when AMPS is run in a virtualized environment that abstracts storage and the virtualized environment pauses access to storage. (AMPS-5548, Z11365)

Version 5.3.0.179 (2020-07-03)

  • Fix incorrect assert that could cause an assert failure to be reported while AMPS is shutting down, even though there is no actual issue. This issue only affects AMPS servers built with Debugging (Debug-ASAN builds), which are sometimes provided by 60East support to help diagnose problems. Servers labeled Release are unaffected. (AMPS-5738)

Version 5.3.0.178 (2020-07-02)

  • Fix issue where a historical SOW that uses a publisher-provided SOW key could fail to return results from a query after AMPS restarts. (AMPS-5785, Z11183)

Version 5.3.0.177 (2020-07-01)

  • Add functionality to the HTTP authentication and entitlements module to better enable sites that have developed custom modules to use this module as a replacement. This includes the following changes:

    • Make all module context variables available for inclusion in HTTP headers.
    • Allow the module to set the user name of the connection during authentication.

    (AMPS-5160, AMPS-5139, AMPS-3008, Z10894, Z9841)

Version 5.3.0.176 (2020-06-30)

  • Fix crash that could happen when using a select list with a topic recorded in the SOW. (AMPS-5735, Z11240)

Version 5.3.0.175 (2020-06-29)

  • Fix issue where a bookmark subscription that provides a list of bookmarks could start from the end of the transaction log rather than the earliest bookmark if all of the bookmarks in the list are in the journal file that is currently being written to. (AMPS-5646, Z11287)
AMPS Version 5.3.0.174 was intentionally skipped

Version 5.3.0.173 (2020-06-25)

  • Fix issue that could cause a crash or cause a subscription that uses a select list to receive incorrect fields. This could happen when there are two or more subscriptions to the topic that use a select list, at least one of the subscriptions that uses a select list uses pagination, and a publish occurs that produces a message to both that paginated subscription and a subscription to that topic with a different select list. (AMPS-5768, Z11310)
AMPS Version 5.3.0.172 was intentionally skipped
AMPS Version 5.3.0.171 was intentionally skipped
AMPS Version 5.3.0.170 was intentionally skipped

Version 5.3.0.169 (2020-06-20)

  • Fix issue that could cause bookmark replay to progress very slowly in a case where a replay is reading a compressed journal and the total size of the compressed journals open at the time across all replays exceeds 10% of the host memory. (AMPS-5745, Z11213, Z11221)
AMPS Version 5.3.0.168 was intentionally skipped
AMPS Version 5.3.0.167 was intentionally skipped

Version 5.3.0.166 (2020-06-14)

  • Fix issue that could cause a crash or query results with zero length data when querying a SOW topic with an OrderBy clause if records that match the query are concurrently deleted or expire while being sorted for the OrderBy clause. For a concurrent SOW delete to cause this it must be a sow_delete by key or by data. (AMPS-5713, AMPS-5714, Z11245)

Version 5.3.0.165 (2020-06-12)

  • Fix issue where AMPS could incorrectly disconnect a replication connection when a long-running command is executing for a topic that is receiving messages over replication. Previously, AMPS could consider replication to have stopped and disconnect replication. (AMPS-5708, AMPS-5673, Z11193)

Version 5.3.0.164 (2020-06-12)

  • Fix issue that could lead to inconsistent results when issuing a historical sow_and_subscribe for a SOW topic with Granularity set to 0s in a case where a given record was updated more than once with the same timestamp as the bookmark specified in the sow_and_subscribe command (that is, within the same microsecond). In this situation, the query results could receive a message for a given key that is received at the same time as the provided bookmark, but which is later in the transaction log. AMPS now ensures that the correct message is provided for each key. (AMPS-5690, Z11201)

Version 5.3.0.163 (2020-06-04)

  • Fix issue where a bookmark subscription may not start from the correct point when:

    • The starting point submitted is a list of bookmarks, and
    • That list contains bookmarks from two or more different publishers that are located in the same journal file, and
    • That journal file is not the currently active journal file, and
    • AMPS has performed index maintenance for that journal file (as logged in the 1D-0079 info level message)

    In this case, it is possible for AMPS to start a bookmark subscription from one of the bookmarks in the list that is not the earliest bookmark in the transaction log. (AMPS-5648, AMPS-5413)

AMPS Version 5.3.0.162 was intentionally skipped
AMPS Version 5.3.0.161 was intentionally skipped

Version 5.3.0.160 (2020-05-22)

  • Improve how AMPS NUMA tuning allocates threads to NUMA nodes to improve performance in cases where (a) the number of subscribers is greater than one half the number of cores available on a NUMA node and (b) more than two subscribers, on average, receive every message that is published to AMPS. (AMPS-5620, Z9750)

Version 5.3.0.159 (2020-05-20)

  • Fix issue that could cause a crash or an out-of-focus message being incorrectly produced for a conflated topic or a view. This could happen when an entitlement filter is present on a subscription to the conflated topic or view, and AMPS is removing a record from the conflated topic or view (for example, when a message has been deleted from the underlying topic). (AMPS-5632, Z11121)

Version 5.3.0.158 (2020-05-19)

  • Optimize message delivery for queues that have a MaxBacklog configured (that is, queues that limit the total number of leased messages rather than a number per subscription) when the total number of messages leased is equal to the MaxBacklog setting and no publishes are being received for the queue. Previously, subscriptions might have to wait up to 100ms after AMPS received an acknowledgement for the next message to be delivered. (AMPS-5630, Z11099)

Version 5.3.0.157 (2020-05-18)

  • Fix crash caused by a buffer overrun that can occur when AMPS is serializing SOW query results to be returned to the client executing the query. This issue affects amps protocol connections when the query results contain either a SOW key set by the publisher or a correlation id field. This issue affects xml (legacy) protocol connections when query results contain a SOW key set by the publisher. This issue can lead to a result message being truncated/corrupted, the client initiating a disconnect (due to an invalid header), and/or a server crash. (AMPS-5626, Z11127)

Version 5.3.0.156 (2020-05-18)

  • Fix crash when message expiration from a topic happens while AMPS is processing a sow delete by query for that topic. (AMPS-5588)
  • Fix crash when a query uses a field that was not previously indexed, causing AMPS to create an index, and a SOW update modifies a record while AMPS is updating the index entry for that record. (AMPS-5622)

Version 5.3.0.155 (2020-05-17)

  • Fix hang caused when AMPS searches for a transaction ID that does not exist in the transaction log. (AMPS-5606, Z11079)
  • Fix issue where AMPS could write a entry to the client ack index file that is beyond the transaction ID recorded in the transaction log. This could happen if AMPS exits before the transaction has been fully written. (AMPS-5603, Z11079)

Version 5.3.0.154 (2020-05-15)

  • Fix issue where frequently replaying a journal could prevent AMPS from freeing resources for less-frequently replayed journals. This could lead to unnecessary memory growth. With this fix, AMPS will correctly release resources for journals that are not needed for current replays. (AMPS-5619, Z11111)
AMPS Version 5.3.0.153 was intentionally skipped

Version 5.3.0.152 (2020-05-07)

  • Fix crash caused by race condition when a client disconnects and then reconnects immediately after the client session for the previous connection has been reaped. (AMPS-5586)
AMPS Version 5.3.0.151 was intentionally skipped

Version 5.3.0.150 (2020-05-05)

  • Fix shutdown hang introduced in 5.3.0.135 that can occur when AMPS is preparing 1D-0092 log message details from either a bookmark subscription or message queue that is holding up journal removal. (AMPS-5566)

Version 5.3.0.149 (2020-05-02)

  • Fix issue in JSON message type where floating point numbers in scientific notation with an exponent value greater than 307 may incorrectly overflow to infinity during parsing. (AMPS-5569)

Version 5.3.0.148 (2020-05-01)

  • Fix hang that may occur when a message queue is reading from a compressed journal file. (AMPS-5568)
AMPS Version 5.3.0.147 was intentionally skipped

Version 5.3.0.146 (2020-04-23)

  • Fix deadlock that can hang AMPS when remap or coalesce is executed for a topic in the SOW that is also recorded in the transaction log. (AMPS-5553, Z10982)

Version 5.3.0.145 (2020-04-22)

  • Fix issue where a previously-expired record in a SOW topic stored in file can be added back to the topic when AMPS rewrites the file while compacting the topic. (Compacting the topic happens when the amps-action-do-compact-sow action runs.) (AMPS-5531)
  • Fix issue where AMPS would unnecessarily write a SOW slab to the file after coalesce even if the slab was unchanged. Now AMPS will only write the slab if the coalesce updated the slab. (AMPS-5563)
AMPS Version 5.3.0.144 was intentionally skipped

Version 5.3.0.143 (2020-04-16)

  • Fix issue where specifying the pretty print option on a client connection that uses a transport other than websocket can cause AMPS to send invalid data to clients during a SOW query, which could cause a client to disconnect. This issue only applies to messages formatted for readability with pretty print. (AMPS-5560, Z10908)

Version 5.3.0.142 (2020-04-15)

  • Fix timing-dependent crash caused when a record is deleted that is a part of a paginated sow_and_subscribe. (AMPS-5556)

Version 5.3.0.141 (2020-04-11)

  • Fix issue that prevented the amps_journal_dump utility from working on journals owned by a different user. Without this fix, running the utility on files owned by another user required the --python argument. With this fix, the utility works properly so long as the current user has permission to read the file. (AMPS-5239)

Version 5.3.0.140 (2020-04-10)

  • Fix regression introduced in 5.3.0.121 where AMPS could crash when unmapping empty slabs in a SOW topic with transient durability at the same time AMPS is coalescing the topic. (AMPS-5546)

Version 5.3.0.139 (2020-04-07)

  • Fix issue in replication synchronization where messages that arrive during synchronization can be skipped over (not replicated). This can happen when an AMPS instance has four or more replication destinations, those destinations use a mix of sync and async acknowledgement, and there is a high rate of publishes arriving during synchronization. (AMPS-5533, Z10814)

Version 5.3.0.138 (2020-04-07)

  • Fix issue in SOW rewrite where a potential crash or data corruption can occur if AMPS is unable to create the necessary temporary files on startup. (AMPS-5507, AMPS-5508)

Version 5.3.0.137 (2020-04-05)

  • Fix issue where the message pipeline could stall when a bookmark subscription with a completed acknowledgement is requested, and an unsubscribe to the topic is requested with a processed acknowledgement while AMPS is processing the request for the bookmark subscription. This issue is most noticeable with very large or complex filters. With this fix, AMPS will not hold up the pipeline while processing the bookmark subscribe command. (AMPS-5325, Z10315)

Version 5.3.0.136 (2020-04-05)

  • Fix issue where a sow_and_subscribe command for a historical SOW topic that is also recorded in the transaction log would not receive oof notifications for deleted messages. (AMPS-5529, Z10930)
  • Fix issue where the correlation id for sow_delete commands by sow key is not written to the transaction log and thus is not included in an oof message for a historical sow bookmark subscribe with oof enabled. (AMPS-5528, Z10930)

Version 5.3.0.135 (2020-04-04)

  • Fix issue where a journal removal action can be prevented from executing. This can happen when a SOW topic that is recorded in the transaction log has not been updated for longer than the journal retention period. (AMPS-5500, Z10893)
  • Combine the information from events 1D-0099 and 1D-0098 into the 1D-0092 message and reduce the frequency at which 1D-0092 is logged. This should improve the ability to diagnose situations where journal removal does not run, while reducing the amount of redundant logging. (AMPS-5387)

Version 5.3.0.134 (2020-04-03)

  • Fix a crash caused by a race condition when the server is finishing processing for a client that has disconnected. This issue was observed during stress testing of high-velocity connect/disconnect activity. (AMPS-5510)

Version 5.3.0.133 (2020-04-02)

  • Fix issue where a query that uses a hash index or the primary key of a topic could return incorrect results when AMPS combines that query with a query that cannot use a hash index or primary key. (AMPS-5509, Z10898)

Version 5.3.0.132 (2020-04-01)

  • Fix regression introduced in AMPS 5.2.3.35 where AMPS does not coalesce non-transactional SOW topics with persistent durability. This could cause increased memory consumption and SOW file size when AMPS allocates more slabs than needed to hold the message data. (AMPS-5482)

Version 5.3.0.131 (2020-03-31)

  • Fix issue where memory_bytes were incorrectly calculated for SOW topics that are not persisted, including views and topics with transient durability. (AMPS-5506, Z10840, Z10834)

Version 5.3.0.130 (2020-03-31)

  • Fix hang when a sow_delete or message expiration happens while a SOW remap or coalesce procedure is in progress. (AMPS-5512)
AMPS Version 5.3.0.129 was intentionally skipped

Version 5.3.0.128 (2020-03-30)

  • Fix issue where an uninitialized variable could cause replication to miss heartbeat checks. This could result in a connection not being closed for missing heartbeat messages. (AMPS-5495)
AMPS Version 5.3.0.127 was intentionally skipped
AMPS Version 5.3.0.126 was intentionally skipped
AMPS Version 5.3.0.125 was intentionally skipped

Version 5.3.0.124 (2020-03-23)

  • Fix hang that can occur due to a race condition when processing a sow_delete with a content filter when there is a high incoming publish or replication message rate. (AMPS-5485, AMPS-5488, Z10863)
  • Fix issue where AMPS could hang and would fail to shut itself down after 300 seconds. (AMPS-5485, Z10863)

Version 5.3.0.123 (2020-03-22)

  • Fix issue in the HTTP authentication and entitlement module where a topic name that contains non-alphanumeric characters, such as the : symbol, would be considered a regular expression. This meant that a topic name with these characters would match any topic that contained the substring. With this fix, the module now considers only strings that contain one of the following characters to be a regular expression: $, (, ), *, +, ., ?, [, \, ], ^, {, |, } (AMPS-5486, Z10878)

Version 5.3.0.122 (2020-03-20)

  • Fix crash caused by memory corruption due a message's correlation id length not being taken into consideration for some SOW update broadcaster operations. This could cause a buffer overflow when the correlation id is present on messages recorded in a SOW topic. (AMPS-5480, Z10860)

Version 5.3.0.121 (2020-03-18)

  • Fix regression introduced in AMPS 5.2.3.35 where AMPS does not coalesce SOW topics with transient durability. This could cause increased memory consumption when AMPS allocates more slabs than needed to hold the message data. (AMPS-5471, Z10834)
  • Allow AMPS to unmap empty slabs in a SOW topic with transient durability. This change returns unused memory to the operating system for topics with transient durability. (AMPS-5472, Z10834)

Version 5.3.0.120 (2020-03-16)

  • Fix issue to improve concurrency of expiration processing for SOW topics. Previously, expiration processing for a large topic could cause queries and deletes for that topic to wait unnecessarily. This increased the elapsed time for queries, and produced incorrect 16-0032 messages. (AMPS-5470, Z10834)

Version 5.3.0.119 (2020-03-11)

  • Fix issue where a transport that specified an InitialState in the configuration would not be enabled, even if the value of that parameter was enabled. AMPS now properly enables the transport for a value of enabled. (AMPS-5467, Z10818)

Version 5.3.0.118 (2020-02-23)

  • Fix race condition that could cause AMPS to hang. In this case, a publish command provides a SOW key on a publish to a topic where AMPS is configured to compute the SOW key, and AMPS could incorrectly record the SOW key set by the publisher in the transaction log. With this fix, AMPS will record the correct, computed SOW key. (AMPS-5311, Z10212)

Version 5.3.0.117 (2020-02-18)

  • Fix regression that was introduced in 5.3.0.79 where, for the composite-local message type, incorrect results could be returned from a filter. This regression is a race condition that could cause an XPath identifier to sometimes not be properly mapped to the lookup value. (AMPS-5442)
AMPS Version 5.3.0.116 was intentionally skipped

Version 5.3.0.115 (2020-02-06)

  • Fix issue where AMPS could consume an unnecessary amount of memory for large-scale queues (tens of millions of active messages or more) with certain client publishing patterns. With this fix, queues will consume significantly less memory in these cases. (AMPS-5263, AMPS-5363)

Version 5.3.0.114 (2020-02-05)

  • Fix issue in AMPS where, if an instance only received duplicate messages, the message processing rate could significantly decrease. This is most likely to occur during replication re-synchronization when there are no other messages being published to the instance. (AMPS-5409, Z10604)

Version 5.3.0.113 (2020-02-04)

  • Fix issue in AMPS where failover for a replication destination could be delayed for up to 60 seconds. (AMPS-5411, Z10604)

Version 5.3.0.112 (2020-01-24)

  • Fix issue in AMPS where out-of-focus (oof) notifications were not properly deferred during a SOW query in cases where the oof is not due to a sow_delete command. This could cause a client to receive an oof notification before the corresponding publish command (which would be properly deferred). With this fix, both publish commands and oof messages will be delivered in order after the query completes. (AMPS-5354)

Version 5.3.0.111 (2020-01-22)

  • Fix crash when using the LEFT() or RIGHT() functions in an AMPS expression. (AMPS-5391, Z10500)

Version 5.3.0.110 (2020-01-10)

  • Fix issue in AMPS where BFlat serialization was converting empty strings to null values. This issue has the potential to impact internal representation of BFlat data within AMPS. (AMPS-5384)
  • Fix issue in AMPS when representing a BFlat message for readability, a null value in a BFlat message would cause AMPS to fail to show later values in the message. This representation is used for showing data in Galvanometer and logging messages in the event log. The actual message data is unaffected. (AMPS-5381, Z10485)

Version 5.3.0.109 (2020-01-03)

  • Fix to cancel SOW queries more quickly when a client disconnects. Previously, AMPS could do unnecessary work for a query which used a hash index or directly provided SowKeys for the query. (AMPS-5229)
AMPS Version 5.3.0.108 was intentionally skipped

Version 5.3.0.107 (2019-12-29)

  • Fix issue when using the HINT OPTIONAL directive for preprocessing or enrichment on a field that originally contained a subdocument. If the field is updated to NULL, the original subdocument will now be correctly removed completely. (AMPS-5364, Z10397)

Version 5.3.0.106 (2019-12-27)

  • Fix issue that could produce incorrect results when using a content filter to match against arrays containing boolean values. (AMPS-5368, Z10394)

Version 5.3.0.105 (2019-12-22)

  • Fix issue where creating a HashIndex on a field that contains an array would not index all elements of the array, resulting in incorrect query results for a query that used the HashIndex. (AMPS-5362, Z10394)

Version 5.3.0.104 (2019-12-21)

  • Fix AMPS crash when the OrderBy for a paginated subscription or SOW query specifies a field that does not exist, a field that contains values with no defined sort order (such as NULL or NaN), or a field that contains a subdocument rather than a single value. (AMPS-5365, Z10125)

Version 5.3.0.103 (2019-12-20)

  • Fix AMPS crash that can occur in the presence of large number of rapid connect/logon/disconnect (1000's per second) operations. (AMPS-5234)

Version 5.3.0.102 (2019-12-19)

  • Fix issue where one or more bookmark subscriptions can become stuck, causing AMPS to fail to deliver messages or acknowledgements to those subscriptions. This problem occurs when AMPS is at the last transaction in the currently-active journal file, that transaction matches no current subscriptions, and then either a new bookmark subscription is registered at that point in the log, or one of the bookmark subscriptions at that point unsubscribes. Affected subscriptions fail to progress to the next journal file as new publishes arrive, meaning that no further messages are delivered on that subscription. (AMPS-5360, Z10375)

Version 5.3.0.101 (2019-12-17)

  • Fix issue where AMPS would incorrectly allow sow_delete commands to operate on a View or Conflated Topic. (AMPS-5357, Z10385)

Version 5.3.0.100 (2019-12-15)

  • Fix issue where a bookmark subscription will not receive requested persisted acks if it joins an existing bookmark replay cursor where none of the subscriptions in the cursor had requested persisted acks. (AMPS-5353, Z10375)

Version 5.3.0.99 (2019-12-13)

  • Fix race conditions that could occur when updating a queue subscription with the replace option. This issue could cause the queue subscription, or another subscription to the same queue, to no longer receive messages. (AMPS-5317)

Version 5.3.0.98 (2019-12-13)

  • Fix crash or incorrect results when creating a message for a delta subscription where a MessagePack message contains one or more nested arrays or nested maps. Prior to this fix, AMPS could serialize elements from a nested array or map at the wrong level of nesting, leading to incorrect results or a message that is not valid. (AMPS-5316)

Version 5.3.0.97 (2019-12-12)

  • Fix crash when a client requested an aggregated query or subscription for a message type that does not support aggregation (for example, protocol buffer message types). With this change, AMPS will return an error for these requests with a reason of not supported. (AMPS-5333, Z10341)

Version 5.3.0.96 (2019-12-11)

  • Fix issue with BFlat serialization of fields with null values. Previously these values would be skipped and not included in the serialized message. (AMPS-5294)
AMPS Version 5.3.0.95 was intentionally skipped

Version 5.3.0.94 (2019-12-03)

  • Fix hang when a bookmark replay is requested from a bookmark that does not exist, but which would be located in the shadow buffer (the in-memory buffer of the most recent portion of the transaction log) based on other bookmarks present. Previously, if a request for a bookmark within this buffer failed, AMPS would retry the search, resulting in a hang if the bookmark did not arrive. (AMPS-5318, Z10315)

Version 5.3.0.93 (2019-12-03)

  • Improve traceability when clearing empty fragments within a transaction log. This fix adds an alternative, but equivalent, algorithm for clearing fragments. The new algorithm will provide a better indication of progress in the event that a minidump is produced while fragments are being cleared. (AMPS-5311)

Version 5.3.0.92 (2019-12-02)

  • Fix crash or incorrect results when creating a message for a delta subscription where a JSON message contains one or more nested arrays. In this case, AMPS could serialize elements from the nested arrays both in the expected place and at the root level of the message, leading to incorrect results or a crash. (AMPS-5315, Z10312)

Version 5.3.0.91 (2019-11-29)

  • Improve the pretty print serialization of protobuf messages containing repeated fields. Repeated fields are now serialized as array values. Previously, these fields would be serialized as repeated values, which would cause most parsers to return only the last value serialized. (AMPS-5091, Z9649)
  • Fix disconnection and parsing issues for pretty print serialized messages due to incorrect length value in message headers. (AMPS-5208, Z9649, Z10028, Z10245)
  • Fix pretty print serialization issue where trace logging for the 17-0001 message had a missing or empty message body. (AMPS-5208)

Version 5.3.0.90 (2019-11-28)

  • Fix issue where AMPS consumes extra memory when pruning a clients.ack file on startup. (AMPS-5297, Z10229)

Version 5.3.0.89 (2019-11-26)

  • Fix crash caused by race condition that could occur when a queue subscription replace command is immediately followed by an unsubscribe command and then a new subscription is processed. (AMPS-5307)

Version 5.3.0.88 (2019-11-25)

  • Fix issue where AMPS does not create missing journal index files on startup when recovering compressed journal files in an archive directory. With this fix, AMPS will correctly create journal files that are missing (for example, if the index files have been manually deleted, or if the configuration file had been previously set to not persist journal indexes). Without an index file for a journal, AMPS must recreate the index in memory on recovery, so this issue caused longer recovery times for affected instances. (AMPS-5304, Z10246)

Version 5.3.0.87 (2019-11-20)

  • Fix crash caused by using the STRFTIME function on a timestamp field containing an invalid value and using the result in a MIN or MAX aggregate. (AMPS-5301, Z10270)
AMPS Version 5.3.0.86 was intentionally skipped

Version 5.3.0.85 (2019-11-14)

  • Fix issue where a SOW query that uses a regular expression topic and a filter that queries only by primary key incorrectly sets the topic on the messages returned to the regular expression used in the query. The topic on returned messages should be set to the name of the SOW topic that contains the message. This incorrect behavior was introduced in 5.2.1.68. (AMPS-5286)

Version 5.3.0.84 (2019-11-13)

  • Fix issue where AMPS utilities may terminate early with an error when used to iterate through journals that contain messages that are set to expire. (AMPS-4652, Z10218)

Version 5.3.0.83 (2019-11-12)

  • Fix issue with entitlements select list for a paginated sow_and_subscribe command where the entitlements select list is not applied when the subscription is replaced to retrieve the next page of data. This resulted in fields that should be omitted being sent to users. (AMPS-5280)

Version 5.3.0.82 (2019-11-10)

  • Fix for unnecessary memory growth in AMPS when using a SOW topic that is also recorded in the transaction log. This memory growth could occur when messages were removed from the SOW. (AMPS-5275, Z10189)

Version 5.3.0.81 (2019-11-08)

  • Fix issue where a MessagePack message would incorrectly serialize boolean values when a field was parsed and then re-serialized (for example, as the result of a delta publish to the field). (AMPS-5150)
  • Fix issue where a delta publish to a MessagePack message could produce incorrect results when updating a message with nested arrays. (AMPS-5243)

Version 5.3.0.80 (2019-11-07)

  • Fix issue with message queue delivery which would have the effect of causing an unnecessary increase in memory consumption. (AMPS-5263, Z10145)

Version 5.3.0.79 (2019-11-06)

  • Fix issue that could result in a crash or incorrect results being returned from a filter when two different XPath identifiers map to the same lookup value and both identifiers are used for the same message. (AMPS-3609, Z6670, Z9869)
  • Fix performance regression in FIX message processing introduced when strengthening validity checks. In the worst case scenario, this regression could reduce performance by up to 10% to 15%. (AMPS-4936)

Version 5.3.0.78 (2019-11-05)

  • Fix issue with the JSON message type where a delta_publish that involves a large document that contains subtrees with duplicate element paths can cause either data corruption or a crash. With this fix, AMPS can successfully merge JSON documents that have identical element paths at different points in the document. (AMPS-5220)

Version 5.3.0.77 (2019-11-03)

  • Fix crash caused by a race condition during SOW pagination stats collection. This can occur when the pagination data is updated while the pagination coalesce algorithm is triggered, and a SOW query on another topic is concurrently executing. (AMPS-5266, Z10133)

Version 5.3.0.76 (2019-11-02)

  • Fix crash caused by a race condition during SOW recovery. This can occur when the coalesce phase completes and there is an attempt to use thread-local data from a thread that has already terminated. (AMPS-5240)

Version 5.3.0.75 (2019-10-31)

  • Fix issue where AMPS creates an in-memory statistics database and collects metrics even when no Admin element is configured. In this case, there is no way to access the statistics, so there is no need to maintain the database or collect metrics. With this fix, AMPS does not collect statistics unless the statistics are available in the admin interface and/or persisted to disk. (AMPS-5257, Z10146)

Version 5.3.0.74 (2019-10-29)

  • Fix issue that could cause files used for slow client offlining to be retained indefinitely in cases where AMPS was not properly shut down. With this fix, when an instance of AMPS starts, it removes any files for the instance that remain in the offline directory from previous runs of the instance. (AMPS-5225, Z9989, Z10041)

Version 5.3.0.73 (2019-10-28)

  • Fix issue where AMPS could incorrectly report errors and disconnect clients when a message with no information in both the header and the body is generated. Previously, this could happen when sending an empty delta publish message for a paginated subscription. With this fix, AMPS ignores messages that are completely empty. The reported symptom of this problem is AMPS reporting a failure to create an offline file (message 70-0013) and disconnecting a client without any reason for file creation to fail. (AMPS-5252, Z9989)

Version 5.3.0.72 (2019-10-25)

  • Fix replication scenario where AMPS duplicate detection could fail. This would cause duplicate messages to be recorded in the transaction log and delivered to subscribers. This issue can occur in certain replication mesh architectures where a single publish can arrive at an AMPS instance through multiple replication paths, in cases where there is a delay of more than 60 seconds between the time a message arrives on one path and the time that an earlier message from the same publisher arrives on a different path. For this to occur, a message that cannot yet be acknowledged must arrive between these two messages, and that message must have been unable to be acknowledged for more than 60 seconds. (AMPS-5241, Z10060)

Version 5.3.0.71 (2019-10-23)

  • Fix performance issue caused by AMPS doing more work than necessary to manage aggregated subscriptions and aggregated queries. Before this fix, the sow update broadcaster (which manages delivering updates to view processors and so on) would inspect aggregated queries or aggregated subscriptions, even though no updates need to be broadcast for these. In extreme cases, this extra work caused delays in processing the message pipeline. With this fix, the sow update broadcaster ignores aggregated subscriptions and aggregated queries. (AMPS-5236, Z10108)

Version 5.3.0.70 (2019-10-12)

  • Improve performance of SOW query in the case where a large IN clause or query by keys are used by multiple clients so that these queries are concurrent and use all available resources. (AMPS-5210, Z9964)
AMPS Version 5.3.0.69 was intentionally skipped

Version 5.3.0.68 (2019-10-09)

  • Fix issue where AMPS could continuously re-evaluate the last message in a queue when no subscription was entitled to receive the message. This generated excessive 17-2001 messages in the log, and was unnecessary work. With this fix, AMPS will not re-evaluate the message until another subscription is created or there is a change to the messages in the queue (such as a message being published to the queue or a leased message being returned to the queue). (AMPS-5129, Z10042)

Version 5.3.0.67 (2019-10-07)

  • Fix issue where immediately expiring messages from the queue using the expire option on an acknowledgement would not adjust the queue_depth metric for the queue, leading to a mismatch between the statistic and the actual number of messages in the queue. (AMPS-5209, Z10022)

Version 5.3.0.66 (2019-10-06)

  • Fix issue where updating a sow_and_subscribe or sow_and_delta_subscribe command using the replace option could fail to deliver oof notifications when an oof message requires more than one buffer. (AMPS-5213, Z10037)

Version 5.3.0.65 (2019-10-04)

  • Fix for acknowledgement handling when there is a SOW store failure - for example, when a delta publish updates a message to a size that no longer fits within the configured SlabSize for the SOW. (AMPS-5146)

Version 5.3.0.64 (2019-10-01)

  • Fix issue that causes AMPS to crash when the admin interface receives a command to reconnect a replication destination that is not currently connected. (AMPS-5128)

Version 5.3.0.63 (2019-09-30)

  • Fix issue with a bookmark replay starting at the wrong point when an application provides a list of bookmarks that includes both timestamps and message bookmarks and the list contains a timestamp that is previous to the oldest message bookmark that is in the list of bookmarks and present in the journals. In this case, AMPS would incorrectly restart replay from the oldest message bookmark that is in the list of bookmarks rather than the timestamp. With this fix, AMPS will correctly restart replay from the earliest point specified in the bookmark list. (AMPS-5136)

Version 5.3.0.62 (2019-09-28)

  • Improve efficiency of transaction log seeks for message queues in cases where AMPS needs to revisit a message earlier in the transaction log than the current delivery point. This issue could occur when an AMPS process has already read the last transaction in a journal file and the message the process needs is more than 128 transactions prior to the end of the file. AMPS could encounter this issue when delivering from a priority queue, or in the case of a lease expiring or being broken, a client disconnecting or unsubscribing with unacknowledged messages, or a transfer request arriving. (AMPS-5175)

Version 5.3.0.61 (2019-09-26)

  • Improve efficiency of message queue delivery by reducing the overhead when adding messages to the client send queue. This is intended to improve throughput when CPU usage is constrained (that is, CPU is near 100% utilization). (AMPS-5126, Z9508)
AMPS Version 5.3.0.60 was intentionally skipped
AMPS Version 5.3.0.59 was intentionally skipped
AMPS Version 5.3.0.58 was intentionally skipped

Version 5.3.0.57 (2019-09-19)

  • Fix issue where the Admin API would report the current timestamp as the last_active value for a message processor, rather than the expected number of seconds since the processor was last active. This incorrect value was reported in cases where the metric is not relevant for a message processor (the sow, detached, bookmark, and queue message processors). With this fix, the Admin API will report 0 for these processors. (AMPS-5057, Z9606)

Version 5.3.0.56 (2019-09-18)

  • This release provides two fixes designed to improved message throughput:
    • Improve efficiency in tracking client resource consumption. (AMPS-5120, Z9750)
    • Improve distribution of clients across publish engine threads for small numbers of publishers (where the number of publishers is less than the number of threads).(AMPS-5116)

Version 5.3.0.55 (2019-09-17)

  • Fix Galvanometer data export settings to use commas instead of tabs as a column delimiter. (AMPS-5164, Z9934)

Version 5.3.0.54 (2019-09-17)

  • Improve efficiency of message queue lease expiration in long running AMPS instances. To see this problem, AMPS must have been running continuously for longer than the smallest LeasePeriod configured for the instance. Previously, a long-running instance of AMPS where queue subscriptions use content filters could eventually reach a state where the cost of expiration processing could reduce throughput for queue delivery. (AMPS-5154, Z9906)

Version 5.3.0.53 (2019-09-16)

  • Fix issue where replication between AMPS instances could stop because of a defect where AMPS fails to detect if the socket is writable. Included in this fix are new warning messages that will be emitted anytime the replication socket is not writable for more than 5 seconds, or when a replication command takes more than 5 seconds to execute, such as a sow_delete command that matches many records. If the replication connection is not writable for 30 seconds AMPS will close the connection and reconnect. (AMPS-5141, Z9854)

Version 5.3.0.52 (2019-09-10)

  • Fix issue where HTTP clients failing to consume AMPS Admin requests could block other requests. This problem was compounded by the blocked Admin handling threads busy-waiting and increasing the load average on the host. (AMPS-5134, Z9386)
AMPS Version 5.3.0.51 was intentionally skipped
AMPS Version 5.3.0.50 was intentionally skipped

Version 5.3.0.49 (2019-08-28)

  • Fix issue during preprocessing or enriching a BFlat message where an integer value could incorrectly be skipped during serialization. (AMPS-5132, Z9865)
AMPS Version 5.3.0.48 was intentionally skipped

Version 5.3.0.47 (2019-08-23)

  • Fix issue where the HTTP authentication and entitlements module would incorrectly log an error message when used for the admin console. These errors would indicate that no AMPS client name was provided for the connection, which is the expected behavior for the admin console. (AMPS-5115, Z9825)

Version 5.3.0.46 (2019-08-23)

  • Remove extraneous logging related to queue message transfer requests (logging ID 31-0006). Previously, this warning would be logged for transfer requests where the messages involved become owned by the current instance while AMPS is formulating the transfer request, or where the route back to the owning instance involves passthrough and would return back through this instance (that is, a circular route is involved). No warning is required in either case. (AMPS-5064, Z9727)

Version 5.3.0.45 (2019-08-21)

  • Fix race condition that could cause a crash or failure to remove journals when amps-action-on-sow-expire-message is configured to monitor a queue. This issue caused AMPS to retain data for a queue message after that message was removed from the queue. This issue could also contribute to memory consumption and could cause additional work in the message queue admin thread. (AMPS-4693, Z9770)

Version 5.3.0.44 (2019-08-19)

  • Fix an ambiguous column name on the "SOW" page of the AMPS web interface (Galvanometer). The "Size" column was renamed to "Storage", and the "Memory" column was added to display stored and memory bytes for each SOW-based topic. (AMPS-5108)

Version 5.3.0.43 (2019-08-16)

  • Fix issue that could cause AMPS to crash during replication validation when the server accepts incoming replication but does not, itself, have a replication Destination configured. (AMPS-4902, Z9417)

Version 5.3.0.42 (2019-08-15)

  • Fix race condition where, in cases where AMPS has multiple failed publish or sow_delete commands for a specific publisher pending at the same time, persisted acknowledgements for the failures could be delivered out of order. This could result in an AMPS client removing a failed message from the publish store before the failure for that message was reported to the failedWriteHandler. In that case, the application would receive notification of the failure, but would not receive the data of the failed message. This incorrect behavior in reporting failure to an application could make it more difficult to recover from a failed publish or sow_delete. This issue does not affect successful publishes, and has no effect on the actual success or failure of a publish or sow_delete. (AMPS-5084)

Version 5.3.0.41 (2019-08-14)

  • Fix race condition that can occur when executing a sow_and_subscribe command with the replace option. This can manifest as either a publish message arriving on the subscription in between the group_begin and group_end messages, or sometimes as a sow message arriving outside these begin/end messages. This race condition is more common on slow virtual machines with a limited number of CPU cores, or when limiting the AMPS process to use a small number of CPU cores using commands such as taskset. (AMPS-5018)

Version 5.3.0.40 (2019-08-13)

  • Fix issue with JSON serialization of infinity. Previously these values would be serialized as inf or -inf, resulting in invalid JSON. Now, these values will be serialized as null. (AMPS-5100, Z9792)

Version 5.3.0.39 (2019-08-06)

  • Fix race condition in stats collection for SOW topics where valid_keys could be shown as zero while stored_bytes was non-zero. This happened when the delete occurred during stats collection, and the stats returned would be consistent at the next statistics interval. (AMPS-5031)

Version 5.3.0.38 (2019-08-05)

  • Fix issue with providing persisted acknowledgments to publishers in cases where the publisher is publishing some messages that fail entitlement checks and other messages that are permitted. This issue caused two symptoms:

    • A persisted acknowledgement could be received again after the message had already been acknowledged.
    • The second acknowledgment received might have incorrect status (that is, it could indicate success even if the actual publish failed and the original acknowledgement indicated failure).

    This issue does not cause incorrect behavior for the publish stores included with the AMPS clients. However, applications that use custom publish stores or applications that have created their own client libraries might be affected. (AMPS-4993)

Version 5.3.0.37 (2019-08-03)

  • amps_sow_dump now supports -z or --zip-output, which writes the messages dumped from the topic file to a zip archive, with each message contained in a separate file within the zip archive. This matches the format expected by spark publish when used with the -file option. This option is intended to make it easy to dump and republish binary messages. (AMPS-4425, Z7595)

Version 5.3.0.36 (2019-08-02)

  • Fix issue where a historical SOW query by timestamp could return indeterminate results. In cases where multiple messages were received by AMPS for the same SOW key at the same timestamp, AMPS could return any one of these messages in a historical SOW query. With this fix, AMPS always returns the latest message received. (AMPS-2185)
AMPS Version 5.3.0.35 was intentionally skipped
AMPS Version 5.3.0.34 was intentionally skipped

Version 5.3.0.33 (2019-07-30)

  • Add a configuration setting to assist with updating applications that incorrectly submit the oof option on a bookmark subscribe. With this setting, AMPS logs a warning message (07-0076) for the subscription but does not return an error to the client (even though the options are incorrect and no oof messages will be provided). This setting is intended to help identify applications that are submitting incorrect options so those applications can be upgraded. It is not recommended for long-term use, and will be removed in a future release. (AMPS-4945, Z9513)

Version 5.3.0.32 (2019-07-29)

  • Fix race condition in AMPS that can create a hang when processing a bookmark NOW subscription. This can occur when the subscribe command for a bookmark NOW subscription is the first message processed after the publish engine thread pool is expanded to handle a high outbound publish volume. (AMPS-5019)

Version 5.3.0.31 (2019-07-26)

  • Fix issue with the AMPS replication manager which can cause AMPS to hang during shutdown. This can happen when a request to shutdown AMPS is received during replication resynchronization. (AMPS-5041, Z9647, Z9648)

Version 5.3.0.30 (2019-07-26)

  • Fix issue with the AMPS subscription manager that could lead to memory growth in cases where the AMPS instance supports a large number of short-lived ad-hoc topics. Previously, AMPS could maintain data on the order of 384 bytes per message processor per ad-hoc topic, which could lead to noticeable memory growth in some applications. (AMPS-5037)

Version 5.3.0.29 (2019-07-25)

  • Fix crash in AMPS when processing an unsubscribe for the last paginated subscription to use a given result set. In this case, AMPS could remove the result set before all cleanup had occurred. (AMPS-5033)
AMPS Version 5.3.0.28 was intentionally skipped

Version 5.3.0.27 (2019-07-24)

  • Fix issue introduced in 5.3.0.25 that makes utilities that use the process name, such as pgrep, incorrectly detect the AMPS server process as exe instead of ampServer. (AMPS-5053)

Version 5.3.0.26 (2019-07-23)

  • Fix race condition that could cause a hang or crash during duplicate message checking in replication. This condition occurred very infrequently, and was caused by improper reference counting during the duplicate check. (AMPS-5045, Z9664)

Version 5.3.0.25 (2019-07-21)

  • Fix issue with binary tampering detection where AMPS could report a tampered binary if the binary was renamed, or fail to start if AMPS was started without specifying a path on the command line (that is, started with ampServer rather than /path/to/ampServer). (AMPS-5047, Z9677)
AMPS Version 5.3.0.24 was intentionally skipped
AMPS Version 5.3.0.23 was intentionally skipped

Version 5.3.0.22 (2019-07-17)

  • Fix hang in AMPS that can occur when using bookmark live subscriptions if there is a significant gap between the last message in the transaction log that matches your subscription and the cutover point for your subscription. This would manifest as a 2A-0009 pipeline error and can cause a 300 sec shutdown of AMPS. (AMPS-5034)

Version 5.3.0.21 (2019-07-16)

  • Fix the amps-action-on-message-condition-timeout and amps-action-on-alert actions' configuration validation to allow conflated topics and view topics in addition to SOW topics. (AMPS-5039, Z9657)

Version 5.3.0.20 (2019-07-16)

  • Fix crash that can occur when parsing a message that contains illegal JSON. Previously, AMPS would accept a message that contained illegal JSON in the form of concatenated JSON documents. With this fix, AMPS will reject the message and return a parse error. (AMPS-5006, Z9605)

Version 5.3.0.19 (2019-07-15)

  • Fix a potential memory leak on some versions of Linux when AMPS compiles filter expressions. The memory leak in affected environments is small per expression, but may have an impact in deployments that routinely compile millions of filter expressions. (AMPS-5024)

Version 5.3.0.18 (2019-07-10)

  • Fix issue where using amps-action-on-publish-message to run an amps-action-do-publish-message of a different message type would fail. In this case, the amps-action-do-publish-message step would reuse the internal client that received the publish. With this fix, amps-action-do-publish-message will only reuse a client if the client is the same message type as the message to be published. (AMPS-5007, Z9608)

Version 5.3.0.17 (2019-07-09)

  • Improve performance of initial SOW query portion of paginated sow_and_subscribe commands that produce large result sets. (AMPS-5010, z9515, z9612)

Version 5.3.0.16 (2019-07-08)

  • Improve performance of paginated queries when NUMA tuning is enabled. Previously the query dispatcher threads which were created in libgomp would inherit the thread affinity of the query dispatcher thread, constraining all queries to a single CPU. (AMPS-4950, z9515, z9612)

Version 5.3.0.15 (2019-07-06)

  • Fix issue where, when recovering queues, AMPS could track and process sow_delete events that were unneeded to correctly recover the queue. This could cause longer recovery times than necessary. (AMPS-4999, Z9508)
AMPS Version 5.3.0.14 was intentionally skipped

Version 5.3.0.13 (2019-06-30)

  • Fix issue where Galvanometer displays empty graphs on the overview page when first opened. This problem occurs unless the instance has collected 60 statistics samples. A sample is collected on the Interval specified in the Admin settings, or every 10s if no Interval is configured. (AMPS-4982)

Version 5.3.0.12 (2019-06-29)

  • Fix issue that could cause amps_sow_dump to be unable to successfully dump a SOW file. This was caused when AMPS wrote incorrect information into a record when marking the record as empty. This incorrect information was not used by AMPS itself, but it was reported as an error in amps_sow_dump. AMPS now correctly writes this information, allowing amps_sow_dump to successfully process the file. (AMPS-4990)
  • Fix issue where AMPS incorrectly reset statistics for a SOW topic to zero during a compact or coalesce operation. (AMPS-4989)
AMPS Version 5.3.0.11 was intentionally skipped

Version 5.3.0.10 (2019-06-26)

  • Fix crash that could occur when there are multiple subscribers to a priority queue and all messages with a given priority value are deleted or expired while AMPS is simultaneously trying to deliver those messages.(AMPS-4965)

Version 5.3.0.9 (2019-06-24)

  • Fix crash in AMPS that can occur when there are one or more active subscriptions to /AMPS/ClientStatus and a client status event contains an entitlement filter that is larger than 128 bytes (AMPS-4970, z9500).

Version 5.3.0.8 (2019-06-23)

  • Fix issue where publishers that request a persisted acknowledgement and disconnect before receiving the persisted acknowledgement may cause memory growth. (AMPS-4958,Z9473)

Version 5.3.0.7 (2019-06-11)

  • Improve accuracy of rate calculation for rate-limited bookmark replay when a message-per-second option was provided or a bytes per second replay option was provided (for example,rate=3000 or rate=500KB). Previously, AMPS could miscalculate the replay rate, with effects that were particularly noticeable at very low replay rates such as rate=1. With this fix, the replay rate for these options is more accurate, particularly at very low replay rates. (AMPS-4928, Z9480)

Version 5.3.0.6 (2019-06-06)

  • Fix issue where Galvanometer does not support links that include the #! delimiter in a page URL. Current releases of Galvanometer do not produce links in this format, but bookmarked links from older versions of Galvanometer would result in a blank page prior to this fix. (AMPS-4906, Z9419)

Version 5.3.0.5 (2019-06-01)

  • Fix issue where a replication connection attempt that exceeds 250ms may never complete its connection. (AMPS-4905, Z9333)
AMPS Version 5.3.0.4 was intentionally skipped

Version 5.3.0.3 (2019-05-26)

  • Fix issue where expiration of a message from a SOW topic could be delayed due to AMPS incorrectly calculating the next time at which expiration for the topic needs to be processed. This issue does not affect queue expiration. (AMPS-4878)

Version 5.3.0.2 (2019-05-23)

  • Fix race condition where AMPS can crash while writing statistics if a client logon occurs while the statistics are being written. (AMPS-4887)

Version 5.3.0.1 (2019-05-15)

  • Fix issue in libamps_action_on_schedule where daylight savings time was not being properly accounted for when using UTC time. This can result in actions not being triggered at the scheduled time. This issue only applied to actions that specified UTC (for example, 10:20Z) and not to actions that used local time (for example, 10:20). (AMPS-4884, Z9224)

Version 5.3.0.0 (2019-05-06)

This release includes all of the fixes and functionality additions in the 5.2.X preview releases.

  • Compatibility with previous releases:

    • This release fully supports in-place upgrade from 5.0.0, 5.2.0, and 5.2.X data files. There is no need to run the upgrade script for this release when upgrading from release 5.0 or later.
    • This release supports replication to 5.2.0 and 5.2.X versions of AMPS, although features added in later versions of AMPS (for example, the ability of a subscriber to immediately expire a message from an AMPS queue) may be replicated as the nearest equivalent operation to versions of AMPS that do not support that behavior. 60East recommends that replication between 5.2 and 5.3 versions of AMPS is used during a rolling upgrade, but that matching versions of AMPS be used for long-term production.
    • AMPS now returns an error if a bookmark subscription contains the oof option but is not entered as part of a sow_and_subscribe. Previously, these subscriptions did not receive oof messages, but AMPS did not return an error to indicate that this option was not supported. (AMPS-4661)
  • Compatibility changes between 5.3.0 and 5.2.0:

    • Introduced in 5.3.0.0 AMPS now returns an error if a bookmark subscription contains the oof option but is not entered as part of a sow_and_subscribe. Previously, these subscriptions did not receive oof messages, but AMPS did not return an error to indicate that this option was not supported. (AMPS-4661)
    • Introduced in 5.2.1.0 Google protocol buffer files now require a syntax = "protoX"; directive where X indicates the version of the protocol buffer protocol supported. This version of AMPS accepts either 2 or 3 as valid values. If this directive is not present, AMPS emits a warning and defaults to proto2.
    • Introduced in 5.2.1.0 The AMPS_MONTH function now returns a 1-based month, for compatibility with the SQL92 MONTH function. (AMPS-2893)
    • Introduced in 5.2.2.0 The number of fields accepted in an OrderBy clause is now set to a maximum of 64 fields, and the size of the OrderBy clause is limited to 64KB. Previously, no explicit limit was enforced. (AMPS-3838)
    • Introduced in 5.2.2.0 The size of a projection clause for an aggregated subscription is now limited to 64KB. Previously, no explicit limit was enforced. (AMPS-3848)
    • Introduced in 5.2.32 Fix problem where using a Group in a Replication block could cause AMPS to ignore replication validation errors. In particular, cases where queue topics were not correctly configured for passthrough could be ignored in previous versions of AMPS. With this release, those errors are correctly flagged and replication validation fails. In most cases, this validation correctly flags configuration that can produce undeliverable messages on a replicated queue. Some installations have topologies that are deliberately not symmetrical and control publisher and subscriber access to prevent stranded messages. For those cases, excluding queue_passthrough will allow the configuration to pass validation. (AMPS-3962)
  • This release adds the following features:

    • AMPS now supports the ability to return only a subset of the fields in a message for a subscription or query. This feature, called select lists, allows a subscription to retrieve only the fields of interest. For example, when the following option is added to a subscription:

      select_list=[-/,+/id]

      That subscription will only receive the message headers and the id field of the message.

      Select lists are also supported for entitlement purposes, and module writers can now specify that a given user is allowed to see (or restricted from seeing) certain fields. (AMPS-4724)

    • AMPS now supports priority queues. Starting with this release of AMPS, a queue can override the default first-in-first-out delivery by specifying a Priority value. When the queue specifies a Priority value, AMPS delivers messages in descending order of that value. See the chapter on Message Queues in the AMPS User Guide for details.

    • AMPS now includes an entitlement module designed to work with LDAP or Kerberos authentication infrastructures. The intent of the module is to make it straightforward for AMPS to interoperate with existing authentication infrastructure. See the Auxiliary Modules chapter of the User Guide for more details. (AMPS-4291)

  • This release contains the following changes and improvements:

    • Add a warning level log message any time that cursor initialization has to wait for the last submitted transaction ID to reach the transaction ID of the cursor. This could happen in cases where a bookmark subscription to NOW must wait due to a slowdown in processing. (AMPS-4845)
    • AMPS now uses the timestamp at which a message was added to the transaction log to represent the age of a message in the queue. Previously, AMPS used the timestamp at which the message was processed by the queue. Since queues are reprocessed upon recovery, the previous behavior provided less-useful results than the new behavior when a message remained in the queue between restarts. This change only affects statistics for counters like seconds_behind and the display in the new Galvanometer queue widget. (AMPS-4841)
    • Reduce the amount of CPU consumed in cases where a SOW query is waiting for a previous query to complete. This may improve overall performance in cases where AMPS is running on a host that is under severe memory pressure, or is overcommitted for CPU or disk resources. (AMPS-4819)
    • Improve overall performance when a bookmark subscription to NOW (0|1|) must wait because writes to the transaction log are delayed (this can happen when the messages arrive in AMPS at a higher rate or volume than the drive that hosts the transaction log can support). Previously, AMPS would wait for the transaction log to catch up to the point of subscription. With this change, AMPS no longer waits for the transaction log to catch up, but instead tracks subscriptions separately rather than attempting to immediately start the subscription. (AMPS-4781)
    • Improve performance of sow_delete for a SOW topic that is also recorded in the transaction log by combining writes to the underlying storage where possible. (AMPS-4776)
    • Improve performance of statistics collection. (AMPS-4760,AMPS-4663)
    • Improve performance of conflated subscription processing. (AMPS-4749)
    • Improve the ability of AMPS to recover in situations where an index file for the transaction log has been damaged or is incomplete (for example, due to running out of space while writing the file). (AMPS-4720)
    • AMPS now accepts a max_backlog of 0 for a queue subscription. This is particularly useful when a subscriber to a queue is shutting down, and wants to finish processing the messages it has already been delivered, but does not want AMPS to lease any more messages to the subscription. (AMPS-4722)
    • Reduce CPU load when AMPS is unable to make progress due to overall system load (as reported by the 2A-0007 or 2A-0010 log messages). In these cases, AMPS now adjusts the frequency at which it attempts to make progress based on how long the system has been overloaded. (AMPS-4682)
    • The amps_journal_dump utility now provides a --sow-expiration-iso option to show the expiration time of a message as an ISO8601-format string. (AMPS-4652)
    • The amps-default-authenticator-module (which can be used to provide credentials for outgoing replication connections) now includes the ability to specify a password. (AMPS-4610, Z8822)
    • When a client disconnects, the ClientStatus message now includes the reason for the disconnection. (For example, when the remote side of the connection closes the socket, AMPS provides the text connection closed.) (AMPS-2330)
  • This version adds the following improvements to Galvanometer:

    • The Client Details widget now shows RX Queue and TX Queue values (Number of bytes in receive and transmit queues for the client).
    • The Storage widget is switched to show mount points rather than partition names. (AMPS-4665, Z8186)
    • The new Messaging Flow widget provides more details and settings for monitoring of the messaging flow in AMPS. (AMPS-4810)
    • The new SOW Slab Map widget allows to monitor SOW data residency and management in real time. (AMPS-4478)
    • The new Queue Details widget provides useful detailed information about queue topics. (AMPS-4834)
    • The transaction log writing anomalies are reported in a dedicated widget on the Transaction Log page. (AMPS-4587, Z8924)
  • This release contains the following fixes:

    • Fix race condition where internal handling of bookmark subscriptions that use the live option could cause a crash. (AMPS-4846)
    • Add appropriate whitespace to the error reported when AMPS does not have permission to read the config file location. (AMPS-4838)
    • Fix race condition where calling unsubscribe() on a bookmark subscription could cause an unsubscribe command to hang. This would produce potentially stuck thread warnings in AMPS, and eventually lead to minidumps and the instance exiting. This fix also adds event 23-0033 to warn in cases where unsubscribe for a bookmark subscription is waiting. (Z9238, AMPS-4831)
    • Fix race condition where acknowledging or expiring a message at the head of the queue at the same time a transfer request is accepted or a lease expiration occurs could cause queue delivery to stop. (AMPS-4826)
    • Fix race condition where an insert into a SOW topic can fail, resulting in records that cannot be deleted. (AMPS-4813)
    • Fix issue that could result in the header for a message being produced twice for a message delivered on a conflated subscription. (AMPS-4785)
    • Fix issue where an existing replication connection to a replication Destination without an InetAddr would not be used for outbound replication if an existing connection to that Destination failed. In effect, a connection was only checked to see if it was bidirectional when the connection was first established. With this fix, AMPS correctly uses one of the established connections for outbound replication if a connection fails. This issue only affected replication from destinations that do not provide an InetAddr and rely on incoming connections. (AMPS-4866, Z8641)
    • Fix issue that could cause a shutdown hang in cases where replication resynchronization is happening at the time AMPS shuts down. (AMPS-4777)
    • Fix issue where configuring a conflated topic with a queue as the underlying topic would cause AMPS to crash on startup. This configuration is now a configuration error. (AMPS-4729)
    • Fix issue where the thread monitor log message (24-0005) for conflated topics produced incorrect durations for the monitoring interval. The message now provides correct durations. (AMPS-4713)
    • Fix issue where a historical SOW query that uses a regular expression could sometimes return a record that was deleted at the point of the query. (AMPS-4712)
    • Fix issue where a delta subscription that uses conflation and subscribes to a SOW topic that maintains history could sometimes return the incorrect results for the first publish to a given SOW record after the record had been deleted. (AMPS-4711)
    • Fix issue that could cause a fatal error in AMPS when a view or aggregated subscription is registered that uses a SOW topic that maintains history and a record is published to the topic after the record had previously been deleted. (AMPS-4706)
    • Fix issue that would cause AMPS to accept an invalid bookmark string in cases where the string was formatted as a timestamp and bookmark concatenated together. This is now an error. (AMPS-4699)
    • Fix condition where AMPS could produce an unnecessary minidump on shutdown due to the view manager and statistics collection waiting on each other unnecessarily during shutdown. (AMPS-4563)
    • Fixed bug in bookmark subscription resume where messages could be missed when the sub includes multiple topics, and the first txid of the various topics are in different journals. (AMPS-4873)
    • Fix issue where a queue acknowledgement that uses the cancel option to return a message to the queue would cause the message to be fully acknowledged on replicated instances. With this fix, AMPS no longer removes the message from the queue on replicated instances in this case. (AMPS-4849)

AMPS version 5.2.4

PREVIEWVersion 5.2.4.53 (2019-06-06)

  • Fix issue where Galvanometer does not support links that include the #! delimiter in a page URL. Current releases of Galvanometer do not produce links in this format, but bookmarked links from older versions of Galvanometer would result in a blank page prior to this fix. (AMPS-4906, Z9419)

PREVIEWVersion 5.2.4.52 (2019-06-05)

  • Fix issue where an existing replication connection to a replication Destination without an InetAddr would not be used for outbound replication if an existing connection to that Destination failed. In effect, a connection was only checked to see if it was bidirectional when the connection was first established. With this fix, AMPS correctly uses one of the established connections for outbound replication if a connection fails. This issue only affected replication from destinations that do not provide an InetAddr and rely on incoming connections. (AMPS-4866, Z8641)

PREVIEWVersion 5.2.4.51 (2019-06-04)

  • Fix issue where a replication connection attempt that exceeds 250ms may never complete its connection. (AMPS-4905, Z9333)
AMPS Version 5.2.4.50 was intentionally skipped

PREVIEWVersion 5.2.4.49 (2019-05-26)

  • Fix issue where expiration of a message from a SOW topic could be delayed due to AMPS incorrectly calculating the next time at which expiration for the topic needs to be processed. This issue does not affect queue expiration. (AMPS-4878)

PREVIEWVersion 5.2.4.48 (2019-05-15)

  • Fix issue in libamps_action_on_schedule where daylight savings time was not being properly accounted for when using UTC time. This can result in actions not being triggered at the scheduled time. This issue only applied to actions that specified UTC (for example, 10:20Z) and not to actions that used local time (for example, 10:20). (AMPS-4884, Z9224)

PREVIEWVersion 5.2.4.47 (2019-05-04)

  • Fix regression introduced in 5.2.4.16 where clients with aggregate subscriptions may be disconnected for exceeding instance memory limits, because their memory usage is incorrectly calculated. (AMPS-4867, Z9322)
AMPS Version 5.2.4.46 was intentionally skipped

PREVIEWVersion 5.2.4.45 (2019-04-23)

  • Fix issue that could cause an AMPS crash when processing delta subscriptions for BSON messages in cases where a message contains an empty dictionary. AMPS now correctly processes these messages. (AMPS-4836, Z9253)
  • Fix to preserve the type of binary BSON fields. Previously, functionality such as delta processing, preprocessing, and enrichment could change the type of binary fields to string fields. Although no data was changed or lost, it was possible for a binary type to contain byte sequences that are not valid unicode characters, which could cause parse errors for recipients of the data. AMPS now correctly preserves the type of these fields. (AMPS-4837, Z9248)

PREVIEWVersion 5.2.4.44 (2019-04-23)

  • Fix issue where a message queue could deliver replicated messages out of order. This was caused by AMPS issuing transfer requests for those messages out of order. With this fix, AMPS preserves the correct ordering when requesting transfers from another instance. (AMPS-4346, Z9202)

PREVIEWVersion 5.2.4.43 (2019-04-16)

  • Fix a race condition in AMPS that can cause a crash when multiple subscriptions for the same client begin simultaneously offlining. (AMPS-4827, Z9237)

PREVIEWVersion 5.2.4.42 (2019-04-14)

  • Fix race condition that could result in incorrect results or a crash during a SOW query. The symptom of this problem is AMPS writing 15-0300 errors to the logs. This issue was caused by a race where AMPS could attempt to use an expression while that expression was in the process of being compiled and prepared for use. (AMPS-4829, Z9237)
AMPS Version 5.2.4.41 was intentionally skipped

PREVIEWVersion 5.2.4.40 (2019-04-12)

  • Fix issue where a client that has a sow_and_subscribe or sow_and_delta_subscribe to a topic and then issues a sow_delete for that topic could receive the oof for the SOW delete before receiving a publish message that occurred before the deletion. This could occur in cases where AMPS had received the publish command but had not yet delivered it to the subscription at the time the sow_delete was received. Prior to this fix, AMPS would pause message delivery to the client issuing the delete, process the sow_delete, and then resume message delivery, resulting in an out of order message. With this fix, AMPS does not pause message delivery for the client issuing the delete, which preserves the correct order.(AMPS-4816)

PREVIEWVersion 5.2.4.39 (2019-04-10)

  • Fix issue where a string value that could be interpreted as a numeric value could be converted to a numeric representation during preprocessing or enrichment. For example, a JSON value of "42" could be converted to 42. (AMPS-4805, Z9167)

PREVIEWVersion 5.2.4.38 (2019-04-10)

  • Fix issue where the AMPS admin interface does not properly escape topic names and content filters when producing a document in JSON or XML format. This could cause the admin interface to produce invalid documents when a topic name or content filter contained characters that were required to be escaped (or, for XML, which are not valid). When the AMPS admin interface produces an invalid document, this can cause errors or unpredictable behavior in systems that use the admin interface, including the Galvanometer. (AMPS-4761, Z9122)

PREVIEWVersion 5.2.4.37 (2019-04-09)

  • Fixed issue where AMPS fails to send the correct messages and oof messages to a client when the client replaces a sow_and_subscribe command that provided specific SowKeys of interest as part of the original command. (AMPS-4791, AMPS-4800, Z8984)
  • Fixed issue where AMPS does not consider a content filter when a sow_and_subscribe command provides specific SowKeys of interest and a content filter. In this case, AMPS would provide the messages for the requested keys without considering the content filter. AMPS now correctly provides only messages with one of the requested keys that also match the content filter. (AMPS-4792, Z8984)

PREVIEWVersion 5.2.4.36 (2019-04-09)

  • Fixed issue where AMPS would not start on some hosts due to an incompatible version of GLIBC with the error: "version 'GLIBC_2.6' not found (required by ./ampServer)" (AMPS-4786, Z8917)
AMPS Version 5.2.4.35 was intentionally skipped

PREVIEWVersion 5.2.4.34 (2019-03-17)

  • Fix issue where, in the event that a replication connection fails during the logon and validation process, AMPS attempts to reconnect and logon without an adequate timeout between retries. This could consume excessive resources, leading to 30-0000 stuck thread warnings and a server shutdown. (AMPS-4727, Z8579)

PREVIEWVersion 5.2.4.33 (2019-03-15)

  • Fix issue where using delta_publish on a transaction logged topic could cause excessive CPU consumption. (AMPS-4745, Z9064)
  • Fix issue where AMPS NUMA tuning could affinitize a transaction log thread and a publish engine thread to the same CPU. This could cause performance issues when both threads intensively consume CPU. (AMPS-4746, Z9064)
  • Fix issue where a large number of subscriptions that maintain individual state (aggregated subscriptions, conflated subscriptions, or paginated subscriptions) could cause publish engines to go idle and slow performance. In this case, 2A-0008 warnings are logged. Notice that this issue does not affect regular subscriptions to views or conflated topics. (AMPS-4747, Z9064)

PREVIEWVersion 5.2.4.32 (2019-03-13)

  • Fix issue where duplicate values appearing within an IN clause might cause AMPS to leak memory. (AMPS-4737, Z8988)

PREVIEWVersion 5.2.4.31 (2019-03-06)

  • Fix issue where configuration file validation did not correctly detect incorrectly spelled or capitalized tags for some configuration elements. Without this fix, AMPS could ignore some incorrectly-spelled configuration elements. With this fix, AMPS now offers suggestions when these configuration errors are detected. (AMPS-4725, Z9031)

PREVIEWVersion 5.2.4.30 (2019-03-05)

  • Fix issue where a paginated subscription command can cause AMPS to crash if the previous paginated subscription contained an invalid option. (AMPS-4703, Z9006)

PREVIEWVersion 5.2.4.29 (2019-03-03)

  • Fix issue where it is possible for a bookmark subscription to miss messages. This can occur when two or more bookmark subscriptions with different topics fall behind (slow client) and are forced to read from journal files instead of the transaction log shadow buffer. If these subscriptions catch up to each other and transition to a transaction journal boundary together, then it is possible to skip messages for one of the topics. (AMPS-4710, Z8945)

PREVIEWVersion 5.2.4.28 (2019-03-02)

  • Fix issue where the seconds_behind metric for bookmark subscriptions could stop increasing if activity to the transaction log stops and seconds_behind was a non-zero value when this occurred. (AMPS-4660, Z8879)
  • Fix issue where seconds_behind for a bookmark subscription may show a gap of values computed from epoch timestamp. This occurs when the subscription is unable to make progress because the client socket buffer is full. This issue will correct itself when the subscription is able to make progress again. (AMPS-4660)

PREVIEWVersion 5.2.4.27 (2019-03-01)

  • Fix issue where a bookmark subscription that uses a regular expression topic with no content filter could return incorrect results during replay when an entitlement filter is present for one or more of the matching topics. (AMPS-4708, Z9009)

PREVIEWVersion 5.2.4.26 (2019-02-28)

  • Fix issue where AMPS could crash or return incorrect results when executing a SOW query using a regular expression when entitlement filters are present and the regular expression matches more than one topic. (AMPS-4697)

PREVIEWVersion 5.2.4.25 (2019-02-26)

  • Fix issue where Admin API erroneously reported read-only partitions in the /amps/host/disks statistics. A new /amps/host/disks/mount_point resource is added to the Admin interface and Galvanometer now shows the mount point of each storage device on the Host page. (AMPS-4665, Z8186)
AMPS Version 5.2.4.24 was intentionally skipped

PREVIEWVersion 5.2.4.23 (2019-02-21)

  • Fix race condition that could cause an AMPS crash in an instance that has a message queue with at-most-once delivery semantics. (AMPS-4700, Z8975)

PREVIEWVersion 5.2.4.22 (2019-02-20)

  • Fix issue where the STRFTIME() function incorrectly rounds parts of the generated datetime string, producing invalid results when the corresponding value is truncated. For example, an expression such as STRFTIME("%03f", 1.999729) would produce the string "100". With this fix, the expression correctly produces "999". (AMPS-4589)

PREVIEWVersion 5.2.4.21 (2019-02-20)

  • Fix issue where the AMPS engine shutdown process could exit abnormally due to a race condition between disconnecting client sessions and reaping client connections. (AMPS-4667)

PREVIEWVersion 5.2.4.20 (2019-02-16)

  • Fix issue where a bookmark live subscription can receive duplicate messages near the cutover point. (AMPS-4622)

PREVIEWVersion 5.2.4.19 (2019-02-15)

  • Fix issue where a sow_delete command with the special filter value 1=1 issued on a historical SOW topic incorrectly removes the entire SOW topic including the historical portion of the topic data. (AMPS-4670)
AMPS Version 5.2.4.18 was intentionally skipped

PREVIEWVersion 5.2.4.17 (2019-02-14)

  • Fix race condition in AMPS replication resync where AMPS could incorrectly fail to replicate messages. For this condition to occur, publish messages must arrive as the resync is transitioning from historical replay to tailing the transaction log and the resync must not have replayed any messages. (AMPS-4624)

PREVIEWVersion 5.2.4.16 (2019-02-13)

  • Fix issue where publish throughput could be affected when published messages are processed for aggregated subscriptions. This could cause "potentially stuck thread" warnings to be logged for the publish engine thread. (AMPS-4651, Z8904)

PREVIEWVersion 5.2.4.15 (2019-02-12)

  • Fix issue in AMPS where the server could incorrectly produce an io error when starting a bookmark replay in cases where the command specifies a list of bookmarks and one of the bookmarks has a value that corresponds to a specific point in the transaction log, but that bookmark is not present in the transaction log. This could happen if, for example, a given publisher produces gaps in sequence numbers and the bookmark specifies a sequence number that the publisher did not use, or in situations where a filter is specified on a replication destination. (AMPS-4664, Z8921)

PREVIEWVersion 5.2.4.14 (2019-02-11)

  • Fix issue where a subscriber to a conflated topic may receive an oof notification for a message that was never delivered to the subscriber. This would occur when a new message that matched the subscription was both published and then modified to be out of focus during a single conflation interval. (AMPS-4649, Z8789)
AMPS Version 5.2.4.13 was intentionally skipped

PREVIEWVersion 5.2.4.12 (2019-02-04)

  • Fix 17-2001 warning to pretty-print binary message types. AMPS logs this message when a publish message being evaluated for delivery to a subscription does not match the entitlement filter, and is therefore not delivered to the subscription. (AMPS-4317, Z8272)

PREVIEWVersion 5.2.4.11 (2019-01-30)

  • Fix issue that could return incorrect results for functions that reference message metadata in cases where the message is evaluated in the context of a topic that is based on an underlying topic (views, conflated topics, and so on). (AMPS-4617, AMPS-4618)

PREVIEWVersion 5.2.4.10 (2019-01-28)

  • Fix issue where AMPS could return incorrect results for a SOW query when a new record is published during the query and then immediately updated. In this case, AMPS could evaluate the SOW query against the newly published record rather than deferring evaluation of the record and the update until after the SOW query completes. This could also cause AMPS to fail to deliver expected OOF messages during the subscription. (AMPS-4609, Z8789)

PREVIEWVersion 5.2.4.9 (2019-01-27)

  • Fix issue that could cause AMPS to produce invalid JSON when enrichment is used on messages that contain string values or array values inside of arrays. (AMPS-4566, Z8741)
  • Fix regression introduced in 5.2.4.6 that could cause an infinite loop when creating a SOW index record. The infinite loop can only happen if the issue in AMPS-4597 is encountered and an index record is more than 8K in size (typically, more than 256 fields). (AMPS-4615)

PREVIEWVersion 5.2.4.8 (2019-01-25)

  • Fix issue that could cause bookmark replay to skip a message upon resume when a replay was initially paused with a timestamp bookmark that falls in between two transactions. (AMPS-4598)

PREVIEWVersion 5.2.4.7 (2019-01-23)

  • Fixed issue that would cause AMPS to fail to start in cases where the SlabSize for a SOW topic has been changed without removing the file. A change in SlabSize could result in a file with slabs of different sizes, or an empty slab at the end of a file with a size that would extend past the end of the file. In either case, AMPS will now correctly handle recovery. (AMPS-4579, Z8755)

PREVIEWVersion 5.2.4.6 (2019-01-22)

  • Fixed issue where AMPS could fail to create the correct index for a SOW record. This could happen when many high-velocity publishers published to the same topic and a given field was used by a concurrent query or sow_delete by filter for the first time since the instance was restarted (AMPS-4597).
AMPS Version 5.2.4.5 was intentionally skipped

PREVIEWVersion 5.2.4.4 (2019-01-15)

  • Fixed issue where AMPS can fail to remove a message from a SOW topic upon expiration if no existing messages expire within the next 60 seconds and new publishes arrive with expirations greater than 60 seconds. (AMPS-4572, Z8750)

PREVIEWVersion 5.2.4.3 (2019-01-12)

  • Fixed issue where a bookmark subscription can fail if more than one bookmark is provided and none of the bookmarks are present in the transaction logs. (AMPS-4565, Z8745)
AMPS Version 5.2.4.2 was intentionally skipped

PREVIEWVersion 5.2.4.1 (2019-01-08)

  • This version adds the following features:

    • AMPS supports a much wider variety of scalar functions in this release. This includes an expanded set of numeric functions as well as functions that apply to the current message being processed and, in some contexts, the client connection that submitted the message being processed. This release does not change the format of the transaction log or SOW topic files: therefore, not all information about a message or client connection is available in all contexts. (For example, a SOW topic file does not contain the transaction log bookmark assigned to a message, so the function that refers to the message bookmark is not available for a SOW query.) The AMPS User Guide contains details on the new functions. (AMPS-4185, AMPS-4372)
  • This version contains the following improvements:

    • Improve the % (modulus operator) to accept floating point values. (AMPS-4210)
    • Improve performance of delta creation for delta subscriptions that are receiving messages that arrive over replication. This change allows more concurrency when processing replicated messages for delta subscribers. (AMPS-4290, Z8118)
    • Improve the amps-action-on-client-disconnect action to provide the AMPS_AUTHENTICATION_ID in the action context. (AMPS-4287, Z8146)
    • Improve amps-action-do-reset-entitlement to accept an authentication ID to reset. When provided, the action resets only entitlements for that authentication ID rather than all entitlements for the transport. (AMPS-4251)
    • Improve performance of the connection process when processing large numbers of rapid connect or disconnect operations. (AMPS-4280)
    • Improve logging to include the source IP address when the admin console receives a request for a resource that does not exist. (AMPS-3795)
    • Reduce memory allocated during journal recovery, which can potentially reduce overall AMPS memory footprint. (AMPS-4256)
    • Improve logging for CPUs that are unavailable to AMPS. Previously, AMPS would simply log whether the CPU was on a high priority or low priority socket, but would not report that the CPU was unavailable. (AMPS-4309)
    • Add the ability for customer-developed modules to register progress with the AMPS thread monitor. This can prevent AMPS from reporting a thread running in a module as potentially stuck in cases where the module is making progress. (AMPS-3443)
    • Add startup check for the Linux overcommit_memory setting, as reported by /proc/sys/vm/overcommit_memory. This setting should remain at the default setting of 0. Setting this parameter to 1 or 2 can result in out of memory errors. AMPS will now warn if this setting is changed from the default. (Z8533, AMPS-4496)
    • Improve performance of publish operations that require parsing and re-serializing data (delta_publish and preprocessing/enrichment) by streamlining the way parsed value sets are maintained during publish. (AMPS-4357)
  • This version adds the following improvements to Galvanometer:

    • Overall performance has been significantly improved. (AMPS-3915, Z8186)
    • URI paths have been streamlined and no longer include an !. For example, the path http://host:port/#!/base/overview in previous releases is now http://host:port/#/base/overview in this release.
    • New Material Design inspired user interface theme. (AMPS-4397)
    • Dark user interface theme is included. (AMPS-4434)
    • Better handling of BasicAuth authentication scenarios. (AMPS-4382)
    • Sorting and ordering state in grid-based widgets is persistent between page reloads. (AMPS-4320, Z8279)
    • SQL page now supports the options header for the command. The page is more compact, allowing users to hide advanced query parameters to devote more space to displaying data. (AMPS-4435)
  • This version contains the following fixes:

    • Fix issue where AMPS could fail to recover a SOW topic if the file for the topic contained slabs of different sizes. AMPS now correctly handles this case. (AMPS-4471, Z8426)
    • Fix issue where AMPS could exit when an OrderBy option is set for a regular expression SOW query. This option is unsupported, and AMPS now correctly returns an error. (AMPS-4383)
    • Fix issue where AMPS could become unresponsive in cases where a sow_delete by key on a single key was refused due to entitlements. Before this fix, another publish to the same record in the SOW would cause AMPS to become unresponsive. (AMPS-4461)
    • Fix issue where a sow_delete by key that contained multiple keys did not correctly apply entitlement filters. In this case, a client could delete records that should have been denied access by the entitlement filter. (AMPS-4462)
    • Fix issue where a sow_delete by filter that used an IN clause on a single field that was covered by a hash index failed to delete any records. (AMPS-4467)
    • Fix issue where the amps-action-do-extract-values action would ignore values of unsigned long type. These values are now correctly extracted. (AMPS-4459)
    • Fix issue where the amps-action-on-sow-delete-message was not correctly setting AMPS_DATA in the action context. (AMPS-4456)
    • Improve performance of creating logging messages that record the beginning and end of a SOW query. (AMPS-4458)
    • Fix issue where the AMPS engine shutdown process did not correctly set the name of the module issuing the shutdown. This could cause AMPS to log the incorrect module name when reporting the shutdown. (AMPS-4443)
    • Fix issue where AMPS utilities did not gracefully handle SIGPIPE, leading to extraneous text in the output. (AMPS-4264)
    • Fix issue where AMPS could exit abnormally if a shutdown was issued during startup in cases where AMPS has detected clock skew on the host system and is waiting for the clock to stabilize. (AMPS-4442)
    • Fix issue identified in code review where it readers could potentially observe an uninitialized value in an AMPS internal data structure. (AMPS-4547)
    • Fix issue that could cause AMPS to crash while managing journal indexes. (AMPS-4514)
    • Fix issue where only one amps-action-on-delete-sow or amps-action-on-expire-sow condition could be registered in a configuration file for a given topic. (AMPS-4473)
    • Eliminate potential race conditions when AMPS is freeing slabs used by a SOW index. (AMPS-4516)
    • Eliminate condition that could provide a persisted ack on a bookmark subscription before messages that come before that point in the transaction log have been published to the subscriber. (AMPS-4515)
AMPS Version 5.2.4.0 was intentionally skipped

AMPS version 5.2.3

PREVIEWVersion 5.2.3.62 (2019-02-11)

  • Fix issue where a subscriber to a conflated topic may receive an oof notification for a message that was never delivered to the subscriber. This would occur when a new message that matched the subscription was both published and then modified to be out of focus during a single conflation interval. (AMPS-4649, Z8789)
AMPS Version 5.2.3.61 was intentionally skipped

PREVIEWVersion 5.2.3.60 (2019-02-01)

  • Fix issue in publish engine that could cause AMPS to crash when a client is disconnecting and using a conflated, aggregated, or paginated subscription and delta messaging. (AMPS-4636, Z8876)

PREVIEWVersion 5.2.3.59 (2019-01-28)

  • Fix issue where AMPS could return incorrect results for a SOW query when a new record is published during the query and then immediately updated. In this case, AMPS could evaluate the SOW query against the newly published record rather than deferring evaluation of the record and the update until after the SOW query completes. This could also cause AMPS to fail to deliver expected OOF messages during the subscription. (AMPS-4609, Z8789)

PREVIEWVersion 5.2.3.58 (2019-01-27)

  • Fix issue that could cause AMPS to produce invalid JSON when enrichment is used on messages that contain string values or array values inside of arrays. (AMPS-4566, Z8741)
  • Fix regression introduced in 5.2.3.55 that could cause an infinite loop when creating a SOW index record. The infinite loop can only happen if the issue in AMPS-4597 is encountered and an index record is more than 8K in size (typically, more than 256 fields). (AMPS-4615)

PREVIEWVersion 5.2.3.57 (2019-01-25)

  • Fix issue that could cause bookmark replay to skip a message upon resume when a replay was initially paused with a timestamp bookmark that falls in between two transactions. (AMPS-4598)

PREVIEWVersion 5.2.3.56 (2019-01-23)

  • Fixed issue that would cause AMPS to fail to start in cases where the SlabSize for a SOW topic has been changed without removing the file. A change in SlabSize could result in a file with slabs of different sizes, or an empty slab at the end of a file with a size that would extend past the end of the file. In either case, AMPS will now correctly handle recovery. (AMPS-4579, AMPS-4471, Z8755, Z8426)

PREVIEWVersion 5.2.3.55 (2019-01-22)

  • Fixed issue where AMPS could fail to create the correct index for a SOW record. This could happen when many high-velocity publishers published to the same topic and a given field was used by a concurrent query or sow_delete by filter for the first time since the instance was restarted (AMPS-4597).
AMPS Version 5.2.3.54 was intentionally skipped

PREVIEWVersion 5.2.3.53 (2019-01-15)

  • Fixed issue where AMPS can fail to remove a message from a SOW topic upon expiration if no existing messages expire within the next 60 seconds and new publishes arrive with expirations greater than 60 seconds. (AMPS-4572, Z8750)

PREVIEWVersion 5.2.3.52 (2019-01-12)

  • Fixed issue where a bookmark subscription can fail if more than one bookmark is provided and none of the bookmarks are present in the transaction logs. (AMPS-4565, Z8745)
AMPS Version 5.2.3.51 was intentionally skipped
AMPS Version 5.2.3.50 was intentionally skipped

PREVIEWVersion 5.2.3.49 (2019-01-03)

  • Fixed race condition where uninitialized SOW metadata may be read or used for indexing. In some cases, this could lead to a crash when executing a query or attempting to build an index during a query. (AMPS-4538, Z8685, Z7049)

PREVIEWVersion 5.2.3.48 (2018-12-26)

  • Fix issue where a file extend can fail on shutdown for a SOW file that had just been compacted. (AMPS-4524)
  • Improve the efficiency of SOW queries on systems with a small number of cores. (AMPS-4523)
  • Improve the efficiency of SOW queries when there are more queries executed together than the number of slabs in the SOW. (AMPS-4525)
  • Improve efficiency of index initialization for views and conflated topics. Previously, these indexes used 4K slabs. With this change, the indexes use 1MB slabs, requiring fewer mapped regions. (AMPS-4522)

PREVIEWVersion 5.2.3.47 (2018-12-24)

  • Fix issue that can cause AMPS to execute a sow_delete command before it is persisted in the transaction log. (AMPS-4488)

PREVIEWVersion 5.2.3.46 (2018-12-21)

  • Fix issue that can prevent AMPS from sending completed acknowledgements on a bookmark subscription in the case where no messages have been published to a topic in the transaction log since AMPS was started. This can cause applications to appear hung if waiting for the acknowledgement, or, that transaction log replay does not complete. (AMPS-4518, Z8659)

PREVIEWVersion 5.2.3.45 (2018-12-20)

  • Fix issue where AMPS fails to parse a BFlat message that has an empty array as the last value in the message. A 14-0008 error will be logged when this occurs. (AMPS-4519, Z8670)

PREVIEWVersion 5.2.3.44 (2018-12-18)

  • Fix issue where the SOW "page cleaning algo" can run on transient SOWs causing the warning 2C-0013 for a mmap failure to be logged. This is only a warning, the SOW is not affected. (AMPS-4517, Z8659)

PREVIEWVersion 5.2.3.43 (2018-12-13)

  • Fix issue where AMPS could over estimate the size of an index entry leading to an increase of warning messages in the AMPS logs. This issue would manifest as a 15-0302 warning in the AMPS logs. (AMPS-4472, Z8529)

PREVIEWVersion 5.2.3.42 (2018-12-12)

  • Fix issue where AMPS could produce a SOW query batch larger than the expected limit for the protocol (1GB). This could cause clients to reject the message as invalid and either hang or disconnect from the server. With this fix, AMPS will limit the batch size produced to match the maximum message size (200MB). (AMPS-4503, Z8609)

PREVIEWVersion 5.2.3.41 (2018-12-11)

  • Fix issue that could cause AMPS to crash during shutdown if the clients.ack file is concurrently being extended with a new slab allocation. (AMPS-4498)

PREVIEWVersion 5.2.3.40 (2018-12-10)

  • Fix issue where multiple concurrent dynamic aggregate subscriptions that contain both projection and filter expressions that are greater than 1024 bytes can cause threads to become stuck. (Z8618, AMPS-4497)

PREVIEWVersion 5.2.3.39 (2018-12-06)

  • Fix issue where a sow_delete command using the SOW key(s) assigned to the message(s) that fail because of the entitlement can cause subsequent SOW data updates to the record with that key to hang AMPS until it is restarted. (AMPS-4461, Z8425)
  • Fix issue where WRITE entitlement filters were not correctly applied to sow_delete commands in cases where the command used a hash index or the primary key field(s). Without this fix, a user could potentially delete messages that should have been disallowed by the filter. This issue applies to sow_delete commands only. Topic entitlements are not affected, nor are other commands. (AMPS-4462, AMPS-4463, Z8425)
  • Fix issue where a sow_delete by filter command does not work if an IN clause or a hash index is used in the filter expression. (AMPS-4467)

PREVIEWVersion 5.2.3.38 (2018-12-04)

  • Fix issue where large SOW deletes on a SOW topic that is also recorded in the transaction log can cause spikes in AMPS memory consumption. (AMPS-4185, z8269)
  • Improve the overall performance of SOW deletes for a SOW topic that is also recorded in the transaction log. (AMPS-4185, z8269)
  • Fix issue where coalescing of SOW slabs that contained thousands of records in a slab could take an extended period of time, which could make AMPS seem unresponsive. (AMPS-4364, Z8447)
  • Fix issue where the background task that maintains SOW pages could be overly aggressive and consume more CPU time than necessary. AMPS now checks SOW pages no more than once per second per topic, reducing CPU load. (AMPS-4284)

PREVIEWVersion 5.2.3.37 (2018-11-27)

  • Fix issue where, in the process of producing human-readable representations of protobuf messages, AMPS would render the value of sint64 and sint32 fields as double the actual value (so a value of 6 would be rendered as 12). This issue affected trace logging and the pretty-print option used by Galvanometer. Actual message contents are not affected. (AMPS-4457, Z8505)

PREVIEWVersion 5.2.3.36 (2018-11-16)

  • Fix issue where AMPS incorrectly calculates the serialization size of doubles similar to '1.0' as what is required for integer representation '1'. This can create a buffer overflow scenario during serialization of the message. (AMPS-4430, Z8463)

PREVIEWVersion 5.2.3.35 (2018-11-15)

  • Fix issue that can degrade performance when AMPS executes the background SOW "page cleaning algo" that attempts to keep dirty pages clean resulting in reduced RSS. The issue was caused by AMPS being overly aggressive when SOW updates cause dirty pages. (AMPS-4431, Z8499)

PREVIEWVersion 5.2.3.34 (2018-11-14)

  • Fix issue where clients publishing to an AMPS server that has a transaction log defined but without any specified topics will not be reaped after being disconnected. (AMPS-4285)

PREVIEWVersion 5.2.3.33 (2018-11-11)

  • Fix issue where Queue message delivery with multiple content filtered subscriptions can be excessively slow when one or more of the consumers is slow. (AMPS-4413, Z8469)

PREVIEWVersion 5.2.3.32 (2018-11-09)

  • Fix issue that can cause AMPS to shutdown when a large list of bookmarks is provided for AMPS to dynamically determine which of all the bookmarks is the earliest, to begin the transaction log replay. (AMPS-4366, Z8282)

PREVIEWVersion 5.2.3.31 (2018-11-03)

  • Fix issue where a transaction backed SOW could experience memory growth during coalesce. This issue becomes more noticeable as SlabSize becomes a larger proportion of physical memory, and is most likely to cause an impact when slab sizes are multiple gigabytes. (AMPS-4324, Z8180)

PREVIEWVersion 5.2.3.30 (2018-11-01)

  • Fix efficiency issue that could degrade performance of replication when bookmark replays were active. The effect was more noticeable the more bookmark replays were active, particularly when the number of active replays is larger than the number of cores on a CPU socket. (AMPS-4392, Z8430)
AMPS Version 5.2.3.29 was intentionally skipped

PREVIEWVersion 5.2.3.28 (2018-10-29)

  • Fix issue where a full message pipeline could cause AMPS to use large amounts of CPU which might degrade overall AMPS performance. (AMPS-4360)

PREVIEWVersion 5.2.3.27 (2018-10-28)

  • Fix issue where entitlement filters were not correctly applied to queries and sow_deletes in cases where the query used a hash index or consisted only of an IN clause using the primary key field. Without this fix, a user could potentially retrieve or delete messages that should have been disallowed by the filter. This issue applies to sow commands and the sow portion of a sow_and_subscribe as well as sow_delete commands. Topic entitlements are not affected, nor are other commands. (AMPS-4375, Z8389)

PREVIEWVersion 5.2.3.26 (2018-10-27)

  • Fix stats collection issue in AMPS where a message queue delete_count and deletes_per_sec were reporting the number of messages removed during maintenance of the data structure underlying the queue rather then the number of messages acknowledged. This behavior could result in the admin module showing queue_depth decreasing but low to zero deletes_per_sec and delete_count. (AMPS-4334, Z8262)
  • Fix race condition that could cause a replication thread to stop replicating. This issue affected replication replays that had previously logged a 1E-0054, and the problem would be visible in monitoring as a destination that shows seconds_behind as continuing to increase while the messages_out_per_second remains at 0, even though messages that should be replicated continue to be published to the instance. (AMPS-4376)
AMPS Version 5.2.3.25 was intentionally skipped

PREVIEWVersion 5.2.3.24 (2018-10-16)

  • Fix memory leak in the transaction log write latency histogram within the admin interface. (AMPS-4214, AMPS-4255, AMPS-4265)
AMPS Version 5.2.3.23 was intentionally skipped

PREVIEWVersion 5.2.3.22 (2018-10-11)

  • Fix issue that causes AMPS to crash when a definition of a single-topic view that projects from one message type to another contains a filter parameter. (AMPS-4340, Z8324)

PREVIEWVersion 5.2.3.21 (2018-10-10)

  • Fix issue where an upgraded clients.ack file may have slabs that are a different size than expected, which would cause an unnecessary increase in memory usage. (AMPS-4327, Z8282)

PREVIEWVersion 5.2.3.20 (2018-10-09)

  • Fix issue where a call to the amps_extract_config_value external API could segfault if the XPath argument did not match a path in the config file. This function is only used in modules and actions that explicitly request information from the configuration file. Installations that do not use this feature are unaffected by this issue. (AMPS-4328, Z8304)

PREVIEWVersion 5.2.3.19 (2018-10-08)

  • Fix issue that could cause AMPS to crash when a paginated subscription command would be issued to replace an existing paginated subscription, without also specifying skip_n and top_n options. AMPS will now return an ack reporting an invalid options failure in this scenario. (AMPS-4303, Z8094)

PREVIEWVersion 5.2.3.18 (2018-10-07)

  • Fix issue where large memory growth can occur when many concurrent bookmark subscriptions replay data from compressed journals. The max memory used for compressed journal replay will be set to the minimum of 10GB or 10% of the system memory. A new transaction log config parameter, CompressedJournalCacheMemoryLimit, has been added to allow explicit setting of the compressed journal cache size. (AMPS-4318, Z8277)
AMPS Version 5.2.3.17 was intentionally skipped

PREVIEWVersion 5.2.3.16 (2018-10-05)

  • Fix issue with SOW coalesce when different slab sizes are used within a single topic. Previously this could cause an AMPS exit with error code 00-0046 for an mmap failure. (AMPS-4323, Z8273)

PREVIEWVersion 5.2.3.15 (2018-10-04)

  • Fix issue with bookmark subscriptions where a subscription could fail to correctly pace delivery to the rate at which the subscriber is consuming messages. This could cause offlining for all clients. (AMPS-4263)

PREVIEWVersion 5.2.3.14 (2018-10-01)

  • Fix regression introduced in 5.2.2.0 that could cause a crash when a delta subscription has conflation enabled. (AMPS-4311, Z8253)

PREVIEWVersion 5.2.3.13 (2018-09-27)

  • Fix issue where a message queue could deliver replicated messages out of order. This was caused by AMPS issuing transfer requests for those messages out of order. (AMPS-4301, Z8231)

PREVIEWVersion 5.2.3.12 (2018-09-26)

  • Fixed 15-0302 warning logged when the actual length required for an index entry differs from the length estimated based on the input string (for example, indexing values like "1.0" or "007"). This warning was introduced with AMPS-4271. (AMPS-4310)

PREVIEWVersion 5.2.3.11 (2018-09-25)

  • Removing debug logging left in amps_array_to_string UDF. Previous 5.2.3.X versions would display extra logging to the console and AMPS log file. (AMPS-4273)
AMPS Version 5.2.3.10 was intentionally skipped

PREVIEWVersion 5.2.3.9 (2018-09-18)

  • Fix issue that could cause a crash or an unresponsive server when an embedded client was destroyed during entitlement reset. (AMPS-4180, Z7891)

PREVIEWVersion 5.2.3.8 (2018-09-16)

  • Fix issue that could corrupt memory or cause a crash when creating an index for a SOW topic. The problem occurred when one of the messages in the topic had a single element array for the index field, and the index itself was a specific size. (AMPS-4271, Z8182)

PREVIEWVersion 5.2.3.7 (2018-09-13)

  • Improve replication performance by only parsing replicated messages if there is a content filter set for the destination. (AMPS-4266, Z8169)

PREVIEWVersion 5.2.3.6 (2018-09-08)

  • Fix issue where a replication destination that has been disconnected and reconnected could cause a cursor to be left behind and prevent journal removal. This could happen when the destination that disconnected and reconnected had previously been identified as having slow replay. (AMPS-4222, Z8104)

PREVIEWVersion 5.2.3.5 (2018-09-07)

  • Fix issue that could corrupt a SOW file when the file contained slabs of different sizes. (AMPS-4243, Z8099)

PREVIEWVersion 5.2.3.4 (2018-09-05)

  • Fix AMPS crash that occurred when a SOW query using a hash index was executed concurrently with a query that did not use the hash index, and AMPS incorrectly combined these queries for execution. With this fix, these queries are correctly executed independently. (AMPS-4223, Z8107)

PREVIEWVersion 5.2.3.3 (2018-09-02)

  • Fix issue that could cause a crash or an unresponsive server when a client that issues publish, delta_publish or sow_delete commands reconnects after disconnecting. (AMPS-4216)

PREVIEWVersion 5.2.3.2 (2018-08-26)

  • This version introduces the following change that may require an update to configuration files:

    • Fix problem where using a Group in a Replication block could cause AMPS to ignore replication validation errors. In particular, cases where queue topics were not correctly configured for passthrough could be ignored in previous versions of AMPS. With this release, those errors are correctly flagged and replication validation fails. In most cases, this validation correctly flags configuration that can produce undeliverable messages on a replicated queue. Some installations have topologies that are deliberately not symmetrical and control publisher and subscriber access to prevent stranded messages. For those cases, excluding queue_passthrough will allow the configuration to pass validation. (AMPS-3962)
  • This version introduces the following change that may require an update to log analysis applications:

    • Client heartbeat messages are now logged at the trace level under error message 02-0045, rather than being logged at info level under error message 02-0003. Other messages related to client heartbeating are unchanged: this change reduces the log size when logging at info level, while still capturing important events related to client heartbeating (such as heartbeats beginning, heartbeating timeouts, and so on). (AMPS-4149)
  • This version adds the following features:

    • Allow an individual client to set the conflation interval for acknowledgements from the server. This interval is set during logon by providing the ack_conflation option. The option applies to the individual client and sets the conflation interval from AMPS to that client. For replicated topics, the replication Destination can set the AckConflationInterval for the destination. Notice that, for a replicated topic, in order for a publisher to receive acknowledgements for a given message faster than the default settings, it is necessary to configure a lower AckConflationInterval as well as setting a lower conflation interval for the publisher itself. (Z5182, AMPS-2856)
    • AMPS now supports the MessagePack format for messages. (AMPS-3594)
    • AMPS now supports Transport Filters, modules that have the ability to alter incoming messages before they are processed by AMPS. (AMPS-3948)
    • AMPS now provides a built-in transport filter that performs basic topic aliasing by modifying incoming commands to translate a specified topic name into an aliased name. (AMPS-3948)
    • The AMPS Admin interface now supports an AnonymousPath feature, which allows an instance to specify a path or set of paths in the Admin interface that do not require authentication to access. (AMPS-4040)
    • Improve scalability of bookmark replay to provide better performance and responsiveness when large numbers of simultaneous replays (for example, tens of thousands) are active. (AMPS-4045)
    • AMPS now supports treating integers as unsigned long (ulong) types. (AMPS-3512)
    • Added ability to configure arbitrary HTTP response headers to be returned in all responses from the AMPS Admin HTTP server. These are configured using the new <Header> tag inside the <Admin> section of the AMPS configuration file. (AMPS-4433, Z6619)
  • This version adds the following improvements:

    • AMPS authentication modules can now retrieve the message type and remote peer during authentication requests. (AMPS-3970)
    • Added the current count of journal files to stats.db and the administrative interface. (Z6997, AMPS-3722)
    • Improved clarity of the error message produced when AMPS does not have write permission to the clients.ack file. (AMPS-3739)
    • Improve clarity of error messages produced when AMPS attempts to write a minidump but is unable to create the file due to lack of disk space or incorrect permissions. (AMPS-3813)
    • Added additional logging in cases where AMPS intentionally shuts down due to a thread failing to ping the thread monitor for an extended period of time. (AMPS-3972)
    • The ampserr tool is now case-insensitive for error number lookup. (AMPS-3997)
    • Tune SOW memory use on larger systems to reduce unneeded memory allocation. (AMPS-4041)
    • Improve performance of SOW query by primary key when there are multiple concurrent queries to the same key. (AMPS-4112)
    • Improve efficiency of the SOW coalesce algorithm. (AMPS-3102)
    • Allow amps_journal_dump to correctly process the currently-active journal. (AMPS-4061)
    • Record client identifiers in the clients.ack only when a publish or sow_delete is received from the client. Previously, AMPS would record the client identifier in this file even if the client never performed an operation tracked in this file. This change can reduce the size of the clients.ack file for some uses of AMPS. (AMPS-4081, Z8282)
    • Improve validation of transaction log files during recovery, and stop startup if there are files from multiple instances in the same directory. (AMPS-4098, Z7778)
    • Messages to /AMPS/ClientStatus now include the entitlement filter applied to the command when an entitlement filter is present. (AMPS-4128, Z7888)
    • Improve diagnostic logging in situations where an ack file (clients.ack or queues.ack) has become damaged or corrupted. (AMPS-4134)
    • AMPS will now send persisted acknowledgements to a bookmark subscription during replay. This helps the AMPS clients better manage the bookmark store, and prevents a replay from EPOCH if a subscriber becomes disconnected before replay from the transaction log has completed. (AMPS-4142)
    • The utilities shipped with AMPS have been updated to be compatible with Python 3. (AMPS-4143)
  • This version adds the following improvements to Galvanometer:

    • Documentation and hints are provided throughout the interface. (AMPS-3193)
    • Grid-based widgets now support data export in the CSV format.
    • Description and Environment tags are shown, if set in the configuration file. (AMPS-3692)
    • Logon correlation id column is added to the Clients widget.
    • AnonymousPaths option is supported by the Replication page. (AMPS-4040)
    • Configuration parser is improved for the SOW page. (AMPS-4152)
    • Replication crawler performance is significantly improved.
  • This version fixes the following defects:

    • Fix problem that could cause AMPS to crash at the end of a sow_delete command. (AMPS-4094)
    • Fix problem where using a Group in a Replication block could cause AMPS to ignore replication validation errors. (AMPS-3962)
    • Fix problem where notification of deprecated SOW configuration parameters were provided to the console, but were not written to the AMPS log. (AMPS-3961)
    • Fix problem in amps-action-do-execute-event where context variables could be incorrectly expanded in cases where the content of the variable originated in an incoming message. (AMPS-3976)
    • Fix problem in amps-action-do-execute-event where, when provided an invalid combination of options, the module would use the first valid option rather than reporting an error. (AMPS-3977)
    • Fix problem where enrichment and view projection could sometimes leave quotes unescaped in the final message, even when quotes were properly escaped in the source message. With this fix, AMPS now tracks whether fields in the incoming message have been escaped or not, and correctly escapes the final message based on that information. (AMPS-3990)
    • Fix to allow spaces in field names for the conflation key option for conflated subscriptions, and for the grouping key option for aggregated subscription. (AMPS-4004)
    • Fix to correctly parse projection clauses for aggregated subscriptions when the clause begins with the [ character. (AMPS-4007)
    • Fix to ensure that errors encountered when working with the statistics database are correctly logged. (AMPS-4017)
    • Fix to correctly log the wait period in 16-0046, a message that indicates AMPS is waiting for previous updates to complete before performing an operation. Previously, this message always logged a 0 second wait. (AMPS-4029)
    • Fix to ensure that the logging subsystem is initialized before any other module is initialized. (AMPS-4036)
    • Fix incorrect warning from AMPS configuration validation when an Action specifies multiple If elements. (AMPS-4050)
    • Fix to ensure that administrative actions are not run until AMPS is fully initialized. (AMPS-4070, Z7713)
    • Fix to statistics to correctly record seconds_behind for a bookmark subscription in cases where no message has been published to a matching topic. (AMPS-4075)
    • Fix the amps_ack.py library (used for amps_clients_ack_dump and amps_queues_ack_dump) to produce the correct max slab size and offset. (AMPS-4082)
    • Fix problem that prevented AMPS from starting on older versions of RHEL. This problem was reported as an unfound symbol during startup. (AMPS-4108)
    • Fix problem that could cause a crash if a Transport specifies the amps protocol using the deprecated json synonym without specifying a MessageType. With this release, AMPS treats a Protocol value of json as though amps were specified. (AMPS-4124)
    • Fix problem where a module that called functions in the AMPS external API after AMPS had completely shut down could cause the process to crash rather than exiting cleanly. (AMPS-4151, Z7945)
    • Fix issue that could cause a crash when a client that issues publish, delta_publish or sow_delete commands is disconnected due to a name in use error. (AMPS-4187)
    • Improve performance of queues when a sow_delete is run with a filter of only 1=1 and no entitlement filter. Previously, AMPS would process each message in the queue, which could require loading those messages from journal files. With this change, AMPS simply removes all messages in the queue without needing to read the messages. (AMPS-4178, Z7964)
AMPS Version 5.2.3.1 was intentionally skipped
AMPS Version 5.2.3.0 was intentionally skipped

AMPS version 5.2.2

PREVIEWVersion 5.2.2.57 (2018-09-27)

  • Fix issue where a message queue could deliver replicated messages out of order. This was caused by AMPS issuing transfer requests for those messages out of order. (AMPS-4301, Z8231)

PREVIEWVersion 5.2.2.56 (2018-09-26)

  • Fixed 15-0302 warning logged when the actual length required for an index entry differs from the length estimated based on the input string (for example, indexing values like "1.0" or "007"). This warning was introduced with AMPS-4271. (AMPS-4310)

PREVIEWVersion 5.2.2.55 (2018-09-23)

  • Improve performance of queues when a sow_delete is run with a filter of only 1=1 and no entitlement filter. Previously, AMPS would process each message in the queue, which could require loading those messages from journal files. With this change, AMPS simply removes all messages in the queue without needing to read the messages. (AMPS-4178, Z7964)
AMPS Version 5.2.2.54 was intentionally skipped

PREVIEWVersion 5.2.2.53 (2018-09-18)

  • Fix issue that could cause a crash or an unresponsive server when an embedded client was destroyed during entitlement reset. (AMPS-4180, Z7891)

PREVIEWVersion 5.2.2.52 (2018-09-16)

  • Fix issue that could corrupt memory or cause a crash when creating an index for a SOW topic. The problem occurred when one of the messages in the topic had a single element array for the index field, and the index itself was a specific size. (AMPS-4271, Z8182)

PREVIEWVersion 5.2.2.51 (2018-09-08)

  • Fix issue where a replication destination that has been disconnected and reconnected could cause a cursor to be left behind and prevent journal removal. This could happen when the destination that disconnected and reconnected had previously been identified as having slow replay. (AMPS-4222, Z8104)

PREVIEWVersion 5.2.2.50 (2018-09-07)

  • Fix issue that could corrupt a SOW file when the file contained slabs of different sizes. (AMPS-4243, Z8099)

PREVIEWVersion 5.2.2.49 (2018-09-06)

  • Fix issue that could cause a crash when a client that issues publish, delta_publish or sow_delete commands is disconnected due to a name in use error. (AMPS-4187)

PREVIEWVersion 5.2.2.48 (2018-09-02)

  • Fix issue that could cause a crash or an unresponsive server when a client that issues publish, delta_publish or sow_delete commands reconnects after disconnecting. (AMPS-4216)

PREVIEWVersion 5.2.2.47 (2018-08-29)

  • Improve performance of queues by pruning the deferred acknowledgements list at regular intervals. Previously, deferred acknowledgements were pruned during expiration processing. (AMPS-4206, Z8058)

PREVIEWVersion 5.2.2.46 (2018-08-28)

  • Optimized performance of LocalQueues by removing deferred ack processing. Since deferred ack processing is unnecessary for LocalQueues, this change eliminates the unnecessary overhead. (AMPS-4205, Z8058)

PREVIEWVersion 5.2.2.45 (2018-08-24)

  • Fix issue that could cause a crash when MIN and/or MAX is used in a view and the data contains equal float and integer values (for example 1.0 and 1). (AMPS-4093, Z7637)

PREVIEWVersion 5.2.2.44 (2018-08-21)

  • Fixed regression introduced in AMPS 5.2.0.112 that could cause a crash or yield incorrect results when a conflated subscription is issued with a delta option or an explicit conflation_key. (AMPS-4189, Z8039)

PREVIEWVersion 5.2.2.43 (2018-08-21)

  • Fix issue where a wrong last seen sequence number could be returned to a publisher during logon, due to the fact that sow_delete commands for topics that were not recorded in the transaction log were not properly tracked. This could result in a publisher with a persistent publish store assigning the incorrect sequence number for a message, which could cause the message to be rejected as a duplicate. (AMPS-4173)
AMPS Version 5.2.2.42 was intentionally skipped

PREVIEWVersion 5.2.2.41 (2018-08-15)

  • Increased throughput of bookmark replay prior to completed ack by using concurrent send instead of using inline send. (AMPS-4003)

PREVIEWVersion 5.2.2.40 (2018-08-13)

  • Fix issue in amps_upgrade utility to correctly compute journal entry size. Previously, amps_upgrade would produce a misaligned entry size for sizes that were an even multiple of 256. Recent AMPS versions have stronger data integrity checks, which would cause AMPS to fail to recover a journal that contained an entry with a misaligned entry size. (AMPS-4162, Z7948)

PREVIEWVersion 5.2.2.39 (2018-08-09)

  • Fix issue where the sow_and_delta_subscribe command might receive a delta message instead of a full message when the message comes into focus. (AMPS-4119, Z7827)

PREVIEWVersion 5.2.2.38 (2018-08-03)

  • Fix to improve publish throughput performance for topics in the SOW that are monitored by the on-alert module. Previously, the on-alert processing thread would wake up more often than necessary, reducing efficiency. (AMPS-4131, Z7504)

PREVIEWVersion 5.2.2.37 (2018-08-02)

  • Fix issue where unbounded memory growth could occur when a replication connection was not entitled to log on to a downstream instance and continues to retry at a rapid rate. (AMPS-4086, Z7763)

PREVIEWVersion 5.2.2.36 (2018-08-01)

  • Fix crash that could occur when an aggregated subscription that uses a content filter did not also specify the oof option. When the problem occurred, the log would contain an 00-0041 message with the text aggregated sub remove_action found no expression evaluator. (AMPS-4132, Z7724)

PREVIEWVersion 5.2.2.35 (2018-07-31)

  • Fix issue where some commands that use a regular expression to specify the topic did not correctly apply entitlement filters when the entitlement system provided an entitlement filter. This problem affected queue subscriptions, sow query commands (including the sow portion of sow_and_subscribe and sow_and_delta_subscribe), and sow_delete commands when those commands used a regular expression to specify the topics to operate on. Without this fix, when a regular expression was used to specify a topic, a user could potentially retrieve or delete messages that should have been disallowed by an entitlement filter. Access entitlements to the topic were not affected, nor are other commands. Commands that provide a literal topic name were not affected. (AMPS-4113, Z7800)

PREVIEWVersion 5.2.2.34 (2018-07-28)

  • Fix issue where the sow sync thread can shutdown AMPS after 300 seconds. Previously, AMPS would queue up to 1024 coalesce operations, each of which could take a few seconds. With this change, AMPS now only enqueues one operation. (AMPS-3971, Z7584)

PREVIEWVersion 5.2.2.33 (2018-07-27)

  • Fix race condition in SOW dirty page cleaning algorithm that can result in a crash or a shutdown because sow sync thread waits more than 300 seconds for page cleaning to finish. (AMPS-4106, AMPS-4092)

  • Fixed the SOW synchronization process to no longer wait for the page cleaning process to complete. This wait was unnecessary, and could reduce message processing performance which could result in message pipeline throttling. (AMPS-4130)

AMPS Version 5.2.2.32 was intentionally skipped

PREVIEWVersion 5.2.2.31 (2018-07-17)

  • Fix issue where a background task that cleans dirty memory pages of a transaction backed SOW can cause the sow sync thread to become stuck and cause AMPS to shutdown after 300 seconds. (AMPS-4106, AMPS-4092)

PREVIEWVersion 5.2.2.30 (2018-07-13)

  • Fix issue where publishing a SowKey on a record for a topic that is not specified to use a user-generated sowKey could result in the SowKey on the outgoing message to be set as the SowKey on the publish, rather than the actual SowKey. AMPS now correctly ignores the published user-generated sowKey. (AMPS-4088, Z7766)

PREVIEWVersion 5.2.2.29 (2018-07-12)

  • Fix issue in AMPS where destroying and recreating an embedded client during entitlement reset causes a crash. (AMPS-4091, Z7768)

PREVIEWVersion 5.2.2.28 (2018-07-09)

  • Fix issue where Galvanometer did not properly escape HTML symbols in messages received through the SQL page interface. This could potentially lead to execution of JavaScript code from a message within the browser viewing the Galvanometer. (AMPS-4080, Z7751)

PREVIEWVersion 5.2.2.27 (2018-07-07)

  • Fix issue with on-alert module where update messages sent after the alert timeout would cause the OOF message to be lost. (AMPS-4067, Z7504)

PREVIEWVersion 5.2.2.26 (2018-07-05)

  • Upgraded OpenSSL to 1.0.2o and rebuilt in a way that is compatible back to RedHat Enterprise Linux 5. (AMPS-4068, Z7705)

PREVIEWVersion 5.2.2.25 (2018-07-02)

  • Fix issue with expanding array values where amps_expression_value_as_array would sometimes report erroneous array lengths if a user defined function received an array of length one. (AMPS-4060, Z7680)

PREVIEWVersion 5.2.2.24 (2018-06-29)

  • Fix issue where a sow_delete by bookmark for a queue message may arrive before a publish that it corresponds to, either caused by multiple passthrough paths or failover, to be discarded. AMPS now will defer those sow_deletes and hold them up to 1 day periodically checking if they can be processed. (AMPS-4043, Z7652)

PREVIEWVersion 5.2.2.23 (2018-06-29)

  • Fix race condition that can cause AMPS to crash when a transaction log replay (bookmark sub, queue sub or replication) is exactly one journal behind and attempts to read from the transaction log shadow memory concurrent to a shadow memory update. (AMPS-4042)

PREVIEWVersion 5.2.2.22 (2018-06-25)

  • Added message header information to trace log messages for messages sent by embedded clients and actions. (AMPS-3984, Z7504)
AMPS Version 5.2.2.21 was intentionally skipped

PREVIEWVersion 5.2.2.20 (2018-06-20)

  • Fixed issue with amps-action-do-remove-files where compressed journals and journal index files could be removed. This action should be unable to remove any journal files. (AMPS-3197)

PREVIEWVersion 5.2.2.19 (2018-06-18)

  • Add the ability to set a failover timeout for replication destinations in the AMPS configuration file. In the Transport for a Replication Destination, the new ReconnectTimeout option specifies the period for which AMPS will retry a given InetAddr before failing over to the next InetAddr. (AMPS-3947, Z7593)

PREVIEWVersion 5.2.2.18 (2018-06-17)

  • Fix to more efficiently reclaim memory when messages are buffered in memory for a slow client. This fix improves memory usage in cases where the bytes buffered for a slow client were originally allocated as part of a larger allocation, eliminating a situation where AMPS could unnecessarily retain large amounts of memory. This issue can manifest with a 00-0046 critical error in the AMPS log. (AMPS-3749, Z7005, Z7302)

PREVIEWVersion 5.2.2.17 (2018-06-15)

  • Fix issue where specifying a RecoveryPoint of creation for a queue would cause AMPS to recover from that point each time AMPS started, rather than starting from the last processed point in the queue. This could lead to longer recovery times than necessary. (AMPS-4028, Z7619)
  • Fix issue where a RecoveryPoint of creation for a queue could fail to find the correct recovery point in the transaction log, causing AMPS to recover from NOW. This would result in an empty queue. (AMPS-4030, Z7586)

PREVIEWVersion 5.2.2.15 (2018-06-10)

  • Fix possible deadlock that can hang AMPS when the internal data structure that tracks client sequence streams is pruned. (AMPS-4014)

PREVIEWVersion 5.2.2.14 (2018-06-09)

  • Fix issue where AMPS can fail to properly match content filtered subscriptions. This issue only arises when one or more composite messages contain multiple JSON parts and where the non-first JSON part of the message has more than 32 fields are published. (AMPS-4011, Z6351)

PREVIEWVersion 5.2.2.13 (2018-06-04)

  • Fix issue where AMPS incorrectly treated transaction log records with a CRC of 0 as corrupt records. Messages with a CRC of 0 were not deliverable or able to be acknowledged by a queue consumer. AMPS now recognizes 0 as a valid calculated CRC value. (AMPS-3988, Z515)
  • Fix issue where amps_journal_dump would terminate early if a CRC was 0. The utility now correctly outputs the record with a CRC of 0 and anything that follows. (AMPS-3989)

PREVIEWVersion 5.2.2.12 (2018-06-04)

  • Fix crash that may occur when processing replicated messages on an AMPS instance with delta subscribers. (AMPS-3964, Z7425)

PREVIEWVersion 5.2.2.11 (2018-05-30)

  • Fix issue where delta-publishing messages to a message queue with a filter defined was resulting in filter evaluation against the delta instead of the merged message. (AMPS-3950)

PREVIEWVersion 5.2.2.10 (2018-05-28)

  • Fix crash that occurs when AMPS fails to parse a replicated message and attempts to acknowledge it. (AMPS-3948, Z7400)

PREVIEWVersion 5.2.2.9 (2018-05-27)

  • Fixed issue where queue message delivery could stall due to a race condition where queue cursors were being split and repositioned. This can be seen when multiple subscriptions are on a single queue. (AMPS-3946)
AMPS Version 5.2.2.8 was intentionally skipped
AMPS Version 5.2.2.7 was intentionally skipped

PREVIEWVersion 5.2.2.6 (2018-05-24)

  • AMPS now contains a feature to allow actions to fire based on a custom named event. (AMPS-3963, Z6944)
    • An On action may trigger a custom named event by using the new Do action amps-action-do-execute-event that takes an event name as a parameter.
    • All amps-action-on-execute-event actions that match the event name will then execute sequentially.
  • Added the amps-action-on-alert action (AMPS-3963, Z6944). This action monitors a SOW topic for messages that match a filter and triggers a custom named event when either:
    • The message has remained a match on the filter for at least the specified timeout duration, or
    • An out-of-focus message is received for the message, indicating that the message is no longer tracked.

PREVIEWVersion 5.2.2.5 (2018-05-22)

  • Fix issue that could cause replication to incorrectly accept a duplicate message. This could happen when no message from the original publisher had been processed in over an hour, no message from that publisher was present in the last two journal files, and a duplicate publish was then received over replication. (AMPS-3965, Z7415)
AMPS Version 5.2.2.4 was intentionally skipped

PREVIEWVersion 5.2.2.3 (2018-05-11)

  • Fix crash that occurs when a query that specifies aggregation includes a filter that uses a hash index. This includes queries on the key field of the topic in the SOW as well as IN clause queries that use the hash index. (AMPS-3941, Z7370)

PREVIEWVersion 5.2.2.2 (2018-05-09)

  • AMPS can now recover transactional SOW topics that exceed a host's physical memory. (AMPS-3936, Z7286)

PREVIEWVersion 5.2.2.1 (2018-05-03)

  • Fix for parsing and evaluation of complex expressions in field projections, including enrichment clauses that specify OF CURRENT and multi-part field references (such as [Topic]./field_name). Without this fix, in cases where the value of that field was not otherwise needed during processing, AMPS could evaluate the value of the field as NULL. (AMPS-3935, Z7222)

PREVIEWVersion 5.2.2.0 (2018-05-02)

  • The following changes may affect compatibility with previous versions:

    • The number of fields accepted in an OrderBy clause is now set to a maximum of 64 fields, and the size of the OrderBy clause is limited to 64KB. Previously, no explicit limit was enforced. (AMPS-3838)
    • The size of a projection clause for an aggregated subscription is now limited to 64KB. Previously, no explicit limit was enforced. (AMPS-3848)
  • This version adds the following features:

    • Add full support for paginated subscriptions. With this improvement, using sow_and_subscribe or sow_and_delta_subscribe with the TopN and SkipN options will behave as a windowed view of the topic. Updates to the topic that cause messages to enter the window will be published as expected, while updates that cause messages to leave the window can be reported as oof messages. See the User Guide for details. (AMPS-3006)
  • This version adds the following improvements:

    • Improve memory usage for SOW topics that are backed by a transaction log. This change allows pages for the topic to be more efficiently reused and allows more parallelism when maintaining mapped regions for a topic. (AMPS-3769)
    • Improve performance for SOW topic expiration processing when large numbers of messages expire simultaneously. (AMPS-3676)
    • Improve memory management to reduce memory footprint for queues when items are removed (expiration or acknowledgement). (AMPS-3635, AMPS-3121, AMPS-3122)
    • Improve performance of regular (non-delta) publishes to a SOW topic by eliminated unneeded parsing. (AMPS-3537)
    • Improve performance of first publish to a SOW topic after startup by eliminating unneeded parsing. (AMPS-3600)
    • Correctly support NUMA tuning for CPUs that put all odd numbered CPUs on one node and all even numbered CPUs on the other node. Previously, AMPS would not understand this form of CPU enumeration and would disable NUMA tuning. (Z7049, AMPS-3564)
    • Improve consistency of affinity for processing threads created by AMPS. This change is intended to simplify troubleshooting and debugging. (AMPS-3817)
    • Add information about the host operating system to stats.db and the admin console. The admin console path for this is /amps/host/operating_system. (AMPS-2962)
    • Add write latency and write size histograms to stats.db and the admin console at /amps/instance/transaction_log. (AMPS-3081)
    • Add amps-grep utility for easily working with multi-line errors and events contained in AMPS log files. (AMPS-3211)
    • Add amps_sqlite3_report utility for extracting a subset of an AMPS statistics database. (AMPS-2974)
    • Add amps_queues_ack_dump utility for showing the contents of the queues.ack file. The queues.ack file is used for efficient recovery of the head of a queue. (AMPS-3074)
    • Add --dump-config option to ampServer. This option processes the configuration file, fully processing includes and environment variable substitution, outputs the processed file, and then exits. (AMPS-3098)
    • Add the ability to compact SOW topics from the administrative console. Previously, this was only available through an AMPS Action. (AMPS-3111)
    • Add amps-action-do-compress-files for compressing files that are not a part of the transaction log. (Journal files in the transaction log must still use amps-action-do-compress-journal.) (AMPS-3322)
    • Improve performance of queue acknowledgement processing for batched acknowledgements. (AMPS-3126)
    • Add AMPS_VERSION as an internal environment variable during configuration file processing. (AMPS-3123)
    • Add support for Description and Environment tags in the configuration file. These tags are not interpreted by AMPS, but are provided to monitoring tools through the HTTP Admin. (AMPS-3692)
    • Improve performance when reading from compressed transaction log journals. (AMPS-3172)
    • Improve performance for parsing commands in the amps protocol. (AMPS-3185)
    • Allow protocol buffer ProtoPath configuration to be specified without a ; when no alias is provided. This change does not affect compatibility with earlier versions. However, types configured without the leading ; will not be accepted by previous versions of AMPS. (AMPS-3209)
    • Improve formatting of amps_journal_dump to correctly align timestamps. (AMPS-3237)
    • Improve performance of message enrichment in cases where no preprocessing is specified for the topic in the SOW. (AMPS-3246)
    • Improve performance of amps-action-do-extract-values when used with a message saved in the AMPS_DATA context variable. (AMPS-3247)
    • Improve performance of sow_delete using a filter when using a regular expression topic name. (AMPS-3282)
    • The amps-sqlite3 utility now reports a file not found error if the filename provided on the command line does not exist. Previously, the utility would create an empty file and report that an expected table was not found in the file. (AMPS-3445)
    • Improve backward compatibility for amps-sqlite3. This tool now correctly handles queries against statistics databases from previous versions of AMPS. (AMPS-3363)
    • Improve amps_journal_dump to provide the owner and requestPath fields for queue transfer messages. (AMPS-3549)
    • Improve performance of replication acknowledgement for heartbeat acks or duplicate messages. (AMPS-3611)
    • Add /host/memory/memory_available statistics counter. This counter uses MemAvailable on distributions that support this counter, and calculates the counter on older distributions. (AMPS-3667)
    • Log the hashed version of the instance name and provide the hashed version of the instance name through the administrative interface at /amps/instance/name_hash. (AMPS-3398)
    • Add the client name hash to the administrative interface for each client. (AMPS-3398)
    • Add statistics for paginated subscriptions to stats.db and the admin console. (AMPS-3738)
    • Offlining logging for clients now includes information about the total amount of memory used by the client, including memory used for aggregated subscriptions and result set pagination. (AMPS-3069)
    • Log the list of enabled ciphers for SSL during AMPS initialization. (AMPS-2965)
    • AMPS now emits a warning on startup if the JournalDirectory and the JournalArchiveDirectory for an instance are the same directory. When this is true, archiving journal files has no advantage. (AMPS-3334)
    • AMPS now logs the 07-0041 message at developer level rather than warning level. This message indicates that a client was still in use by an internal component at shutdown time. This can be important for troubleshooting in some cases, but does not by itself indicate a problem in AMPS. (AMPS-3521, Z4377)
    • Improve exception handling for AMPS modules to improve resilience of AMPS when an exception escapes the module. While a module should not allow an exception to return to AMPS, this change will treat an exception from a module as a failed request rather than a critical error that requires the server to exit. (AMPS-3773, Z7107)
    • Add logging message that produces a diagnostic message describing the current state of the message pipeline when the pipeline has been stalled for long enough to cause AMPS to exit. (AMPS-3881)
    • Add log message 07-0074 for Authentication reset and 07-0075 for Entitlement reset. (AMPS-3298)
    • Galvanometer includes the following new features:
      • Operating System information is exposed in the Server Info Widget. (AMPS-2962)
      • Admin Update Interval value is exposed in the Server Info Widget.
      • The Graph Builder optionally shows the rate of change of the metric. (AMPS-2908)
      • New widget: Write Latency heatmap on the Transaction Log page.
      • New widget: Write Size heatmap on the Transaction Log page.
      • The Clients widget and the Client Details widget now show more information, such as queued_bytes_out and queue_depth_out.
      • Better topic suggestions on the SQL page. (AMPS-3092)
      • Grid-based widgets, such as SOW and Views show the number of records in the current selection, allowing to quickly detect the total number. (AMPS-3232)
      • Grid-based widgets, such as SOW and Views now support export of records in the current selection as CSV. (Z7030)
      • The Graph Builder allows export of data as CSV or XLS.
      • Environment and Description tags are visible in Galvanometer, if set in the AMPS configuration file. (AMPS-3692, Z6452)
      • Hints added throughout the system to make it easier to access additional information and use Galvanometer.
  • This version fixes the following issues:

    • Fix crash that could occur during filter compilation for very large and complex filters. AMPS will now return an error for filters that would require a large syntax tree (typically, hundreds of thousands of expressions) to evaluate. (AMPS-3673, AMPS-3840, Z6779)
    • Fix crash that could occur in the event a transaction log contains a record with a null client name. (AMPS-2942, Z5364)
    • Fix crash that could occur if an aggregated subscription request was received as AMPS shutdown was beginning. (AMPS-3115)
    • Fix race condition that could cause a crash on client disconnect if an operation attempted to send data just as the client disconnected. (AMPS-3460, Z6373)
    • Fix crash that could occur if expression compilation took an unexpectedly large amount of memory. (AMPS-3141)
    • Fix issue that could cause AMPS to crash while parsing a JSON message with duplicate subdocuments or a JSON message that is more than 64 levels deep. (AMPS-3901)
    • Fix issue that could cause a crash in AMPS when replacing a large filter (greater than 1MB) on a sow_and_subscribe command. With this fix, AMPS correctly handles these replace commands. (AMPS-3849, Z7210)
    • Fix crash when a topic that is not a SOW on the local instance receives a SOW delete over replication. (AMPS-3261, Z6011)
    • Fix crash caused by a race condition in transfer processing for message queues when clients are unsubscribing at the time the transfer request is being processed. (AMPS-3770)
    • Fix issue that could cause missing oof notifications when multiple bookmark replays are active. (AMPS-3874)
    • Fix issue that would return "invalid bookmark" when running a sow_and_subscribe for a SOW topic with History enabled and providing a timestamp as a bookmark. This problem was introduced in the 5.2.1.0 release. (AMPS-3841)
    • Fix small memory leak in the amps_version() external API function call. (AMPS-3469)
    • Fix to more efficiently reclaim memory when messages are buffered in memory for a slow client. This fix improves memory usage in cases where the bytes buffered for a slow client were originally allocated as part of a larger allocation, eliminating a situation where AMPS could unnecessarily retain large amounts of memory. This issue can manifest with a 00-0046 critical error in the AMPS log. (AMPS-3749, Z7005, Z7302)
    • Fix to ensure that queue acknowledgements are fully persisted before the queue processes the acknowledgement in memory. Previously, processing happened in parallel which could cause inconsistent state for replicated queues. (AMPS-3698)
    • Fix problem in cycle detection for queue transfer requests. This could cause a valid transfer request to not be forwarded in some replication topologies after a message has already been transferred at least once. (AMPS-3772)
    • Fix problem that could leave message stranded in a queue in the event that a matching subscription received multiple replace commands in rapid succession. (AMPS-3759)
    • Fix problem in statistics collection for storage that could incorrectly map a logical device to a physical device and report values for the wrong physical device in stats.db, the admin interface, and Galvanometer. (AMPS-2967, Z5396)
    • Fix issue that prevented disk statistics from being collected for some NAS devices. (AMPS-1202)
    • Fix problem where disabling a replication transport from the admin interface did not prevent the transport from attempting to reconnect to the destination. (AMPS-3918)
    • Fix issue where a delta subscription that specifies conflation and uses the no_empties tag could receive empty messages. (AMPS-3696)
    • Fix problem in delta_publish handling when resynchronizing a topic in the SOW from the transaction log. Previously, resynchronization would attempt to merge the message from the transaction log with the message in the SOW. This is unnecessary, since the transaction log contains the fully merged message, and the extra work could lead to longer recovery times and higher memory usage. (AMPS-3584, Z6670)
    • Fix consistency of ack responses during SOW queries. With this fix, ack responses to further commands on the connection will not be delivered between the group_begin and group_end messages for a SOW query. Previously, it was possible for ack messages to be delivered "out of order" and arrive during the query results. (AMPS-3827)
    • Fix processing of fields in an OrderBy clause to provide consistent behavior if a field is provided multiple times with different values for ascending or descending sort. With this fix, the sort provided the first time the field appears in the sort order is used. (AMPS-3833)
    • Fix race condition that could cause a bookmark subscription using a bookmark that is currently being processed by AMPS to evaluate to NOW, which could result in missed messages. This would be most commonly seen during failover for instances with high message velocity and quick failover (for example, a stress test with failover). (AMPS-3761)
    • Fix race condition where AMPS could attempt to publish to a client that had been disconnected. This was detected during internal testing. (AMPS-3811)
    • Fix SSL initialization to follow current recommendations from the OpenSSL project for initialization sequence in multithreaded applications. (AMPS-3701)
    • Improve recovery time for recovering information about the most recently acknowledged message for replication destinations. (AMPS-2736)
    • Fix to improve recovery of a queue when the configuration for a queue that had previously been configured with an explicit RecoveryPoint is changed to remove the RecoveryPoint. Without this fix, AMPS recovers the queue from EPOCH. With this fix, AMPS recovers the queue from the last processed point recorded for the queue in the queues.ack file when the RecoveryPoint is removed. This can substantially improve startup time for large transaction logs on archival storage. (AMPS-3837)
    • Fix to improve ability of AMPS to more gracefully recover from corruption in a clients.ack file or queues.ack. This fix allows AMPS to recover, although recovery may take longer as information is recovered from the journal. (AMPS-3080, AMPS-3083, AMPS-3089)
    • Fix problem where a queue subscriber that disconnects and quickly reconnects could receive messages from the queue out of order. AMPS will now fully process unsubscribes from the disconnect before allowing commands from the new connection to be processed. (AMPS-3688)
    • Fix issue where acknowledgements for a replicated destination were not returned to an upstream instance when that instance was not entitled to replicate the message. Acknowledgements for subsequent messages would be correctly returned. This problem is most noticeable when the upstream instance is only replicating messages that it is not entitled to replicate (for example, in a test harness validating permissions behavior). (AMPS-3878)
    • Fix problem in configuration validation where a downstream replication instance would log an error if the upstream instance used a replication filter containing a user-defined function that was not loaded on the downstream instance. (AMPS-3687)
    • Fix configuration validation issue where providing a Filter in a view that joins topics together would cause AMPS to exit. With this fix, AMPS correctly reports that a view that joins topics cannot include a Filter. (AMPS-2621, Z4906)
    • Fix to correctly disallow replacing the filter on an aggregated sow_and_subscribe command (that is, a command that specifies a projection). This has never been supported, but previously AMPS did not explicitly return an error. (AMPS-2999)
    • Fix to delta determination for nested objects in arrays in JSON messages. Previously, AMPS could incorrectly fail to produce a delta message for delta subscribers if a value in an object inside an array changed. (AMPS-3021)
    • Fix problem with filters where an IN clause that contained duplicate values could return duplicate messages during a SOW query. (AMPS-3401)
    • Fix options string for subscriptions provided in statistics to be the literal string provided by the client during subscription. Previously, the options string included additional information from AMPS. (AMPS-3735)
    • Fix problem where the destination_admin_inet_addr recorded by the statistics database could fail to be correctly updated after failover. (AMPS-3683, Z6861)
    • Fix issue where statistics reported in the messages_in, messages_in_per_sec, messages_out and messages_out_per_sec counters for a client could be incorrect when the client had a bookmark subscription. (AMPS-3028)
    • Fix remote_host in statistics for unix domain sockets connections. AMPS will now show localhost in this field for unix domain sockets. Previously, AMPS left the field blank. (AMPS-3370)
    • Fix statistics reported for an aggregated subscription to match the number of groups (output messages) rather than the number of filter matches (input messages). (AMPS-3539, Z6461)
    • Fix statistics to more accurately track the amount of memory used by queues. (AMPS-3715)
    • Fix problem where disconnected client could still have statistics for a subscription collected. (AMPS-3726, Z6942)
    • Fix to improve logging for the 02-0021 and 02-0022 commands that record replacement of a subscribe or sow_and_subscribe command. Previously, internal enumeration values for the commands were used in these messages. Those values have been replaced with descriptive strings. (AMPS-3076)
    • Fix problem where amps-action-on-startup did not correctly prepare context variables, which could cause subsequent Do steps to receive empty strings in variables. (AMPS-3737, Z7015)
    • Fix to improve performance of unsubscribe. (AMPS-3084)
    • Fix to eliminate trailing 0 on version number of file format version strings in log message 1D-0039. (AMPS-3091)
    • Fix issue that could result in multiple errors reported for the same problem when processing a configuration file that uses Include directives. (AMPS-3099)
    • Fix ambiguous handling of Unix Domain Socket configuration when both FileName and InetAddr are provided and the values differ. AMPS accepts either value as the name of the socket to create. If both are provided, and they do not have the same value, AMPS now reports a configuration error. (AMPS-3143)
    • Fix to allow AMPS to shutdown even if there are pending journal compress or journal archive operations. AMPS continues to wait for journal removal operations to complete before shutting down. (AMPS-3418)
    • Improve reliability of writing slow client offlining files in cases where a write fails. (AMPS-3320)
    • Fix index rebuild logic to consider both topic and message type when evaluating the need for an index rebuild with a regular expression subscription. Previously, AMPS would rebuild the index for any topic matching the regular expression. (AMPS-3565)
    • Fix amps_journal_dump flags output. Previously, amps_journal_dump was incorrectly producing message_queue when string_key should have been produced. (AMPS-3368)
    • Fix to remove incorrect warnings when a configuration file contains only a websocket Transport that accepts all message types. Previously, with only this Transport configured, using any message type (for example, configuring a topic in the SOW) would produce a warning. (AMPS-3372)
    • Fix to remove incorrect warnings when a ConflatedTopic has multiple HashIndex elements. This is a perfectly valid configuration. (AMPS-3390)
    • Fix to produce error if a HashIndex configuration element does not contain at least one Key. (AMPS-3437)
    • Fix to allow spaces around the ; in the ProtoPath element when configuring a protocol buffer message type. Previously, a space after the ; would be reported as a configuration error. (AMPS-3464)
    • Fix to handle aliases in protocol buffer message types more gracefully. When an alias is specified, also add the alias path to the search path: this allows correct import of .proto files that do not use the alias. (AMPS-3465)
    • Fix to verify that for a queue, the Queue topic itself and any UnderlyingTopic are included in the transaction log. Previously, if the UnderlyingTopic was included in the transaction log, AMPS would allow the configuration even if the Queue topic itself was not in the transaction log. AMPS now produces an error if the Queue topic is not in the transaction log. (AMPS-3470)
    • Fix to improve detection of misconfigured replication where an instance attempts to directly connect to itself. AMPS will now detect this as a critical error and shut down. (AMPS-3694, Z6918)
    • Fix shutdown timer to avoid creating a minidump on shutdown before the timer expires. The AMPS shutdown timer is designed to create a minidump in cases where shutdown takes an unexpectedly long time to finish. Previously, if the timer wait returned early, AMPS could create a minidump on shutdown before the timer expiration. (AMPS-3809)
    • Fix message queue shutdown to explicitly release all data structures to prevents incorrect warnings during shutdown. (AMPS-3885)
    • Fix configuration validation issue that did not allow a SOW topic that configures History to also explicitly set Expiration to disabled. This configuration is now accepted. (AMPS-3842)
    • Fix logging to avoid producing a 1E-0068 message when no transaction log or replication is defined in the configuration file. (AMPS-3859)
    • Fix logging to log the failure acknowledgement sent to a client in cases where a client attempts an implicit logon on a transport that accepts any message type. (The logon will always fail because an implicit logon does not provide information as to the message type the client is using.) (AMPS-3870)
    • Fix typo in amps.service file. (AMPS-3284, Z6052)
    • Fix typo in 31-0005 log message. (AMPS-3290)
    • Fix issue with AMPS where an invalid or corrupt BFlat message could cause AMPS to exit unexpectedly. (AMPS-2551, z4714)
    • Fix issue where the AMPS admin interface could produce invalid JSON when a user is not entitled to see some of the field requested. (AMPS-3127, Z5733)
    • Galvanometer fixes:
      • Messaging statistics precision is fixed for the Clients widget and Messaging widget. (AMPS-3028, Z4896)
      • Replication map sorting. (AMPS-2977)
      • Automatic label adjustment for the Replication map nodes.
      • Browser page title is showing current page title instead of a static value.
      • The Time Machine date/time picker allows manually setting precise time.
      • Invalid values in the "Size" column of the SOW table widget. (AMPS-3297, z6068)
      • Various minor fixes of the column data formatting in the grid-based widgets.

AMPS version 5.2.1

PREVIEWVersion 5.2.1.121 (2018-05-30)

  • Fix issue where delta-publishing messages to a message queue with a filter defined was resulting in filter evaluation against the delta instead of the merged message. (AMPS-3950)

PREVIEWVersion 5.2.1.120 (2018-05-28)

  • Fix crash that occurs when AMPS fails to parse a replicated message and attempts to acknowledge it. (AMPS-3948, Z7400)

PREVIEWVersion 5.2.1.119 (2018-05-27)

  • Fix problem where a queue subscriber that disconnects and quickly reconnects could receive messages from the queue out of order. AMPS will now fully process unsubscribes from the disconnect before allowing commands from the new connection to be processed. (AMPS-3688)
  • Fix to ensure that queue acknowledgements are fully persisted before the queue processes the acknowledgement in memory. Previously, processing happened in parallel which could cause inconsistent state for replicated queues. (AMPS-3698)
  • Fix to improve recovery of a queue when the configuration for a queue that had previously been configured with an explicit RecoveryPoint is changed to remove the RecoveryPoint. Without this fix, AMPS recovers the queue from EPOCH. With this fix, AMPS recovers the queue from the last processed point recorded for the queue in the queues.ack file when the RecoveryPoint is removed. This can substantially improve startup time for large transaction logs on archival storage. (AMPS-3837)
  • Fixed issue where queue message delivery could stall due to a race condition where queue cursors were being split and repositioned. This can be seen when multiple subscriptions are on a single queue. (AMPS-3946)
AMPS Version 5.2.1.118 was intentionally skipped

PREVIEWVersion 5.2.1.117 (2018-05-22)

  • Fix issue that could cause replication to incorrectly accept a duplicate message. This could happen when no message from the original publisher had been processed in over an hour, no message from that publisher was present in the last two journal files, and a duplicate publish was then received over replication. This problem was introduced in AMPS 5.2.1.96. (AMPS-3965, Z7415)

PREVIEWVersion 5.2.1.116 (2018-05-16)

  • Fix issue where SOW recovery performed an unnecessary delta merge when recovering from the transaction log. Messages in the transaction log are stored using the fully merged message making delta merge processing unnecessary. (AMPS-3584, Z6670)
AMPS Version 5.2.1.115 was intentionally skipped

PREVIEWVersion 5.2.1.114 (2018-05-11)

  • Fixed a problem where AMPS NUMA was unable to properly tune itself due to unconventional core and socket numbering on some architectures (e.g. Dell Poweredge servers). (AMPS-3564, z7049)

PREVIEWVersion 5.2.1.113 (2018-05-11)

  • Fix crash that occurs when a query that specifies aggregation includes a filter that uses a hash index. This includes queries on the key field of the topic in the SOW as well as IN clause queries that use the hash index. (AMPS-3941, Z7370)
AMPS Version 5.2.1.112 was intentionally skipped

PREVIEWVersion 5.2.1.111 (2018-04-28)

  • Fixed issue with the embedded client that could cause SOW results to be corrupted and could potentially create memory corruption. This issue only occurred with the embedded client, and the most typical symptom was an error parsing the retrieved message. (AMPS-3923, Z7099)

PREVIEWVersion 5.2.1.110 (2018-04-28)

  • Fixed issue where sow_and_subscribe with bookmark, oof, and explicit key on the sow would not generate out-of-focus updates for sow_deletes and cause the stream of messages to be out of sync. (AMPS-3648)

PREVIEWVersion 5.2.1.109 (2018-04-27)

  • Fixed an issue where SOW store could obtain a null slab and crash AMPS. This issue has been reported infrequently when AMPS is under heavy load. It is caused by a race condition between SOW data store and an update to a stored message that causes the message to grow in size. The error code in the logs associated with this issue is 15-0200. (AMPS-3387, Z6244)

PREVIEWVersion 5.2.1.108 (2018-04-24)

  • Fix issue with establishing SSL connections from some SSL implementations. The symptom of this problem is that a client using SSL would be unable to create a connection and log on to AMPS. (AMPS-3888)
  • Fix problem where SSL connections could wait forever in response to renegotiation. AMPS will now time out SSL connections in this state, allowing the connection to be re-established. (Z6724, AMPS-3655)
AMPS Version 5.2.1.107 was intentionally skipped

PREVIEWVersion 5.2.1.106 (2018-04-20)

  • Fixed amps_expression_value_as_array in AMPS Server API. Previously, when a non-array or empty array was passed as input, the length returned was not predictable, which could produce incorrect results or crash. (AMPS-3880, Z7244)

PREVIEWVersion 5.2.1.105 (2018-04-18)

  • Fix issue where AMPS could crash when a composite message that contains a binary part is being enriched. (AMPS-3875, Z7232)

PREVIEWVersion 5.2.1.104 (2018-04-17)

  • Fix issue causing incorrect results of field comparisons performed during enrichment and preprocessing expressions. (AMPS-3866, Z7222)
  • Eliminate unnecessary reparsing of messages for topics configured with enrichment but without preprocessing. (AMPS-3246)

PREVIEWVersion 5.2.1.103 (2018-04-16)

  • Fix field expression parsing to correctly handle whitespace in an aggregation projection. Previously, whitespace in the projection expression could cause field references to always evaluate to NULL. (AMPS-3681)

PREVIEWVersion 5.2.1.102 (2018-04-13)

  • Changed the matches count on a stats ack for an aggregated subscription to be the number of groups created in the aggregation. Previously it was the number of underlying topic rows matching the query filter. (AMPS-3539, Z6461)

PREVIEWVersion 5.2.1.101 (2018-04-11)

  • Fix issue with message queues where acknowledging large numbers of messages that are not currently in the queue could cause the message queue admin thread to report a "potential stuck thread" warning and produce minidumps. This symptom was reported when providing acknowledgements for 100K messages with a single command. (AMPS-3820, Z7195)
AMPS Version 5.2.1.100 was intentionally skipped

PREVIEWVersion 5.2.1.99 (2018-04-06)

  • Fix problem that could cause an SSL handshake timeout for WebSocket connections when the initial GET request was larger than 4096 bytes. (AMPS-3818, Z6351)

PREVIEWVersion 5.2.1.98 (2018-04-06)

  • Fix to verify that for a queue, the Queue topic itself and any UnderlyingTopic are included in the transaction log. Previously, if the UnderlyingTopic was included in the transaction log, AMPS would allow the configuration even if the Queue topic itself was not in the transaction log. AMPS now produces an error if the Queue topic is not in the transaction log. (AMPS-3470, Z7118)

PREVIEWVersion 5.2.1.97 (2018-04-02)

  • Fix issue where it was possible to strand messages in a queue in the event that a client with a queue subscription quickly replaces the same subscription multiple times while the subscription has messages leased. When this happened, the messages could still be acknowledged, but the lease would not be broken if the client disconnected/unsubscribed. The result was that if the subscriber that held the lease did not acknowledge the message, the message would not be delivered to another subscriber until the lease period expired, even if the current subscription would not match the message. (AMPS-3759)

PREVIEWVersion 5.2.1.96 (2018-03-31)

  • Fix issue where a high rate of client logons can negatively impact transaction log throughput resulting in degraded bookmark replay and replication throughput. The fix also addresses replication throughput degradation resulting from a high volume of logons that publish one or more messages that are replicated. (AMPS-3754)

PREVIEWVersion 5.2.1.95 (2018-03-28)

  • Fix problem where publishing to a topic that is not included in the transaction log in an instance that uses a transaction log could cause delays for the last persisted acknowledgement for a sequence of publishes. AMPS now correctly delivers the persisted acknowledgement. (AMPS-3553)

PREVIEWVersion 5.2.1.94 (2018-03-24)

  • Fix issue that could cause log_replay spark command to publish empty messages when the publish command in the error logs contained a sequence number. (AMPS-3755)
AMPS Version 5.2.1.93 was intentionally skipped

PREVIEWVersion 5.2.1.92 (2018-03-20)

  • Fix issue that could cause transaction log recovery to fail when the metadata in a journal file is corrupted to produce an invalid journal size. (AMPS-3538, AMPS-3357)

PREVIEWVersion 5.2.1.91 (2018-03-15)

  • Fix issue with RequiredMinimumVersion configuration check to support specifying hotfix versions with triple-digit version components. Previously, only the first two digits of each version component were being used in the version check, potentially leading to an incorrect comparison. (AMPS-3710, Z6975)

PREVIEWVersion 5.2.1.90 (2018-03-14)

  • Fix issue with sow query and sow delete introduced in AMPS-3420 (5.2.1.68). Using an IN clause with the Key field for the SOW could cause no records to match, which would result in no records returned by a query (or no records to be deleted by a delete). (AMPS-3729)
  • Fix issue where message processors could hang when a filtered query or delete is executed as a query/delete by keys. This issue was introduced in 5.2.1.68. (AMPS-3729)

PREVIEWVersion 5.2.1.89 (2018-03-12)

  • Reduce the volume of logging error code 31-0006 generated when a replicated message queue requests a transfer from a remote instance that is down or disconnected. Warnings will now be logged at a maximum rate of one warning per second. (AMPS-3727, Z7016)

PREVIEWVersion 5.2.1.88 (2018-03-09)

  • Decrease the memory footprint of large views with a large number of projection clauses. (AMPS-3604, Z6634)
  • Fix issue where AMPS was creating false minidumps for view update processing threads during startup. (AMPS-3574, Z6634)
AMPS Version 5.2.1.87 was intentionally skipped

PREVIEWVersion 5.2.1.86 (2018-03-01)

  • Fixed amps_expression_value_is_bool in AMPS Server API to correctly identify boolean variables. (AMPS-3618, Z6620)

PREVIEWVersion 5.2.1.85 (2018-02-28)

  • Fixed optimization in amps_upgrade utility, to simply copy non-transactional sow files, when they use the target sow file format. Previously, these sow files would go through an unnecessary conversion process. Transactional sow files already used the optimized process. (AMPS-3684)
  • Fix issue in sow file recovery of upgraded sow files, from AMPS versions prior to 4.3.2.36, that would not properly "invalidate" the end of a slab, causing AMPS to log warnings and errors of CRC corruption. (AMPS-3684)

PREVIEWVersion 5.2.1.84 (2018-02-27)

This version fixes the following issues:

  • Fixed issue where AMPS could crash when an embedded client (the amps-action-do-publish-message action or a custom module) published a message of composite or protobuf message type and trace logging of publishes was enabled. Only internal publishes from embedded clients are affected. (AMPS-3674, Z6776)

PREVIEWVersion 5.2.1.83 (2018-02-22)

This version fixes the following issues related to queue delivery:

  • Fix queue issue where message delivery could stall if no consumers matched the message at the head of the queue. (AMPS-3660)
  • Fix queue subscription race condition where a queue subscription could stop receiving messages when the subscription for the queue was replaced at the same time AMPS is processing a sow_delete acknowledging a message leased to that subscription. (AMPS-3670)
  • Optimize bi-directional AMPS connections to wait to disconnect until the initial resync between the instances has completed. Waiting until resync completes eliminates a delay in delivering messages from a queue when an instance starts. (AMPS-3412)
AMPS Version 5.2.1.82 was intentionally skipped

PREVIEWVersion 5.2.1.81 (2018-02-20)

  • Optimize sow expiration processing to execute more accurately and reduce memory consumed. (AMPS-3573)

PREVIEWVersion 5.2.1.80 (2018-02-17)

  • Fix issue when AMPS incorrectly identifies a SOW topic with regular expression characters as a transactional topic. (AMPS-3668, Z6838)
AMPS Version 5.2.1.79 was intentionally skipped

PREVIEWVersion 5.2.1.78 (2018-02-15)

  • Fix race condition introduced in fix for AMPS-3573 (5.2.1.65) that can lead to a crash during sow query execution in the presence of high velocity concurrent sow inserts to the topic of the query. (AMPS-3671).

PREVIEWVersion 5.2.1.77 (2018-02-14)

  • Fix crash when a SOW query that uses aggregation is canceled (typically due to the client disconnecting) as AMPS is sending the final results to the client and when the cancellation is not fully processed until after the results were sent. This problem required very specific timing, and was most often seen when large numbers of clients were disconnected unexpectedly (for example, due to network instability). (AMPS-3643, Z6792, Z6844)

PREVIEWVersion 5.2.1.76 (2018-02-13)

  • Fix crash when a JSON SOW topic that is configured to perform preprocessing receives a delta_publish command. (AMPS-3661, Z6835)

PREVIEWVersion 5.2.1.75 (2018-02-13)

  • AMPS embedded message parser (used by the embedded client for extension modules) now supports array parsing. Previously, arrays were presented as single values. (AMPS-3250, Z5697)

PREVIEWVersion 5.2.1.74 (2018-02-10)

  • Fix crash when a client attempts to execute a sow_and_subscribe replace with OOF where the topic is changed. (Z6808, AMPS-3651).

PREVIEWVersion 5.2.1.73 (2018-02-10)

  • Fix race condition between client unsubscribe 'all' and client disconnect that can lead to unexpected behavior or memory corruption. In some cases, this is observed as glibc double free message logged to stderr. (AMPS-3646)

PREVIEWVersion 5.2.1.72 (2018-02-08)

  • Fix array handling when processing delta_publish for a topic that uses enrichment. Without this fix, if the previous state of a message contained an array value, the merged message would only retain the first element of that array. With this fix, the full array is preserved. (AMPS-3638, Z6793)

PREVIEWVersion 5.2.1.71 (2018-02-08)

  • Fixed crash when calling amps_client_create from a custom authentication module's amps_authentication_create_context implementation. (AMPS-3613, Z6717)

PREVIEWVersion 5.2.1.70 (2018-02-07)

  • Fixed issue where the binary message type could not be part of an enriched message. (AMPS-3610, Z6717)

PREVIEWVersion 5.2.1.69 (2018-02-06)

  • Fix issue where AMPS would fail to start and log message 15-0078 stating SOW slabs do not fit in the file. This issue happened when the SlabSize of the SOW had been changed at some point in the past without removing the SOW file. This issue was caused by incorrect management of empty slabs, and did not affect data in the SOW file. (AMPS-3601, Z6698, Z6640)

PREVIEWVersion 5.2.1.68 (2018-02-05)

  • Performance increase for SOW queries that use regex topics. AMPS will now use the most efficient method of query based on the topic. For example AMPS will use a hash index or primary key search for a topic when available rather than using a parallel query for all topics. (AMPS-3420, Z6285)
  • Fixed issue where in some cases SOW queries that only have a single result of execution set the batch_size on the reply to the batch size provided on the command, rather than the setting it to 1 (the number of messages actually returned). (AMPS-3403, Z6239)

PREVIEWVersion 5.2.1.67 (2018-02-02)

  • Fix crash that occurs if more memory is allocated to a SOW topic while the SOW topic memory residency statistics are being collected. (AMPS-3625, Z6661)

PREVIEWVersion 5.2.1.66 (2018-02-01)

  • Fix crash when an amps-action-on-expire-sow-message action is configured for a queue and an embedded client receives a message from the queue and then allows the lease for that message to expire. (AMPS-3583, Z6675)

PREVIEWVersion 5.2.1.65 (2018-01-30)

  • This release contains various changes to memory management to reduce memory growth and overall memory consumption:

    • The memory for SOW query results will use a special high performance slab allocator instead of using a memory cache. This change allows large queries that need a lot of memory to allocate the required memory but return it to the operating system after the results have been delivered. (AMPS-3335, AMPS-3494)
    • The management and processing of SOW expirations has been changed which greatly reduces the memory requirement, especially for expirations that are greater than a few minutes. The biggest benefit will be observed by use cases where the expiration is days or weeks or when the expirations are greater than 60 seconds but the data has a relatively high update frequency. (AMPS-3573)
    • Improved execution of sow delete by query for topics that are not backed by a transaction log and for which no internal notification is required (that is, where the topic does not have a hash index, is not the underlying topic for a view or conflated topic and where there are no "oof" enabled subscriptions). Previously, AMPS was incorrectly creating internal messages for each delete. This slowed down execution and unnecessarily used memory. (AMPS-3591)
    • Reduced per thread "byte out buffer" memory cache's max cache size from 1GB to 64MB. This helps lower overall memory footprint on large core count boxes. Beyond 64MB, a special high performance slab allocator is used that returns memory to the operating system after use. (AMPS-3556)

PREVIEWVersion 5.2.1.64 (2018-01-26)

  • Fix an issue that could cause queries using dynamic aggregation with a content filter to include messages that do not match the filter, in the query results. This can occur when multiple queries are batched and executed together by the AMPS server. (AMPS-3607)
AMPS Version 5.2.1.63 was intentionally skipped

PREVIEWVersion 5.2.1.62 (2018-01-24)

  • Fix an issue where Galvanometer required a third party cloud service to save Graph Builder output as PDF, PNG, JPG or SVG. You can now download all said formats while being offline. (AMPS-3567, Z6656)

PREVIEWVersion 5.2.1.61 (2018-01-23)

  • Fix an issue where a new system call, used for tracking SOW topic memory residency, could fail and cause AMPS to crash or produce incorrect residency metrics. (AMPS-3459)

PREVIEWVersion 5.2.1.60 (2018-01-22)

  • This release contains the following customer-requested improvements:
    • The STRPTIME function now supports format specifier %f to format microseconds, and %03f to format milliseconds. (AMPS-3203, Z5830)
    • Fixed a bug in STRPTIME where timestamps were being evaluated with the host local time rather than UTC. AMPS now treats all timestamps as UTC timestamps. (AMPS-3203, Z5830)

PREVIEWVersion 5.2.1.59 (2018-01-17)

  • Fix issue where AMPS incorrectly performed OOF processing on the first insertion of a message into a topic in the SOW. This fix both improves performance and eliminates incorrect oof messages that had been produced when a subscription filter matched an empty message. OOF processing for updates to existing messages is unaffected by this change. (AMPS-3245, Z5310)

PREVIEWVersion 5.2.1.58 (2018-01-14)

  • Fix issues with large numbers of concurrent logons. This problem could cause two different symptoms:
    • The on-publish action was causing a new client to be logged on each time it was executed. This flooded the log with 1F-0004 messages. (AMPS-3559, Z6641)
    • Applications that use many concurrent short-lived clients could create a situation where a publish message could be incorrectly identified as having been received from a publisher that had not logged on. This problem would record large numbers of 1F-0004 messages as well as 02-0011 messages. (AMPS-3568, Z6605, Z6659)

PREVIEWVersion 5.2.1.57 (2018-01-12)

  • This release contains the following customer-requested improvement that may require a change to monitoring thresholds for message queues:

    • The seconds_behind admin counter for queues now shows the age of the oldest unacknowledged message rather than the age of the oldest message that is both unacknowledged and unleased. This change should provide a more consistent seconds_behind for replicated queues. This also prevents a situation where a problematic message is preventing journal removal and the seconds_behind metrics are high for instances of the queue that do not own (and therefore do not lease) the message, but low (or 0) for the queue that owns the message. This was misleading and made troubleshooting problems with processing messages more difficult. (AMPS-3540)

PREVIEWVersion 5.2.1.56 (2018-01-09)

  • Fix issue where a queue message may fail to transfer if the message has already been transferred, and the current owning instance is shut down and restarted before it attempts to transfer again. (AMPS-3550)
AMPS Version 5.2.1.55 was intentionally skipped

PREVIEWVersion 5.2.1.54 (2018-01-07)

  • Fix crash that can result from improved transfer algorithm (AMPS-3535) when a message queue becomes empty. (AMPS-3545)
AMPS Version 5.2.1.53 was intentionally skipped

PREVIEWVersion 5.2.1.52 (2018-01-01)

  • Improve replicated message queue delivery performance by allowing message queue delivery to proceed for locally-owned messages when waiting for transfer of remotely-owned messages. This may result in out of order message delivery when queue consumers are receiving from multiple instances and queue publishers are publishing to multiple instances. (AMPS-3535, Z6352)
  • Reduce usage of file descriptors when re-delivering message queue messages. This prevents a situation where AMPS could run out of file descriptors. (AMPS-3525, Z6352)

PREVIEWVersion 5.2.1.51 (2017-12-31)

  • Fix possible deadlock in queues when an AMPS instance requesting a transfer is not directly connected to the instance that owns the message. (AMPS-3536, Z6556)

PREVIEWVersion 5.2.1.50 (2017-12-29)

  • Fix response to out of space errors for the transaction log journal directory during runtime and upon recovery. In certain out of space scenarios AMPS could shutdown and not be able to successfully restart until the last index file for the transaction log was removed (transaction log data itself was not affected). With this fix, AMPS will attempt to remain running as long as possible, and will correctly write index files. (AMPS-2994, Z5698, Z5448)
  • Fix startup bug where if one of the last two journals had one or more corrupted records then AMPS would fail to start. (AMPS-3001)

PREVIEWVersion 5.2.1.49 (2017-12-23)

  • Fix race condition that can cause transaction log entries for publishes to SOW topics with external keys to be reported as having CRC corruption. (AMPS-3278, Z6150)

PREVIEWVersion 5.2.1.48 (2017-12-22)

  • Fix possibility of bookmark subscriptions being incorrectly resumed when a replace command is sent while the subscription is paused. (AMPS-2968)

PREVIEWVersion 5.2.1.47 (2017-12-21)

  • Fix possibility of crash on the logging of removal of journals. (AMPS-3355)

PREVIEWVersion 5.2.1.46 (2017-12-21)

  • Ensure startup actions are fully processed before accepting client connections. This fix prevents the potential for internal clients, including on- actions, to miss messages between AMPS startup and subscriptions being placed. (AMPS-2983, Z5318)

PREVIEWVersion 5.2.1.45 (2017-12-20)

  • Fix message corruption caused by simultaneous delta_publish and topic enrichment executing on the same topic. (AMPS-3522, Z6489)

PREVIEWVersion 5.2.1.44 (2017-12-20)

  • Fix crash immediately after startup when using the amps_on_message_condition_timeout module, when starting with existing data in the topic configured for this action. (AMPS-3520, Z5310)

PREVIEWVersion 5.2.1.43 (2017-12-19)

This release contains fixes for the following issues:

  • Fix failure to request transfers for filtered queue subscriptions on replicated queues resulting in messages not being delivered when consumers with available backlog are present. (AMPS-3508, Z6547)

PREVIEWVersion 5.2.1.42 (2017-12-16)

This release contains fixes for the following issues:

  • Fix async replication seconds_behind stat where it can report incorrect values when the AMPS Admin Interval is greater than 2 seconds. (AMPS-3516, Z6500)

PREVIEWVersion 5.2.1.41 (2017-12-15)

This release contains fixes for the following issues:

  • Fix internal data structure implementation that could lead to AMPS becoming unresponsive with large message queues (300-600+ million messages). (AMPS-3498, Z6450)

PREVIEWVersion 5.2.1.40 (2017-12-14)

This release contains fixes for the following issues:

  • Fix crash caused by use of freed sow topic metadata memory in dynamic aggregation query compilation. (AMPS-3499, Z6404)

PREVIEWVersion 5.2.1.39 (2017-12-11)

This release contains fixes for the following issues:

  • Fix possibility for premature removal of journals when an async replication link is disconnected, new journals are produced and AMPS restarts. (AMPS-3467)

PREVIEWVersion 5.2.1.38 (2017-12-07)

This hotfix contains fixes for issues that customers have reported with distributed message queues in multi-instance mesh configurations as well as fixes to improve queue administration and monitoring.

This release contains fixes for the following issues:

  • Fixed server-assigned sequence numbers to eliminate incorrect duplicate detection in a mesh configuration. Previously, if a client published messages with server-assigned sequence numbers on one instance, then failed over to a second instance and published another message with a server-assigned sequence number before the messages from the first instance were replicated to the second instance, the messages published to the first instance could be incorrectly identified as duplicates. This was most commonly seen with clients that only publish sow_delete messages used for queue acknowledgements, and could result in messages stranded in a queue. This change creates independent sequence number series for each client/instance combination, which preserves ordering and allows duplicate detection to work as designed. This change also improves sequence numbering for queue ownership transfer messages, preventing incorrect duplicate detection on those messages, as well. (AMPS-3457)

  • Added instance name to replication path to more accurately terminate replication loops. Previously, AMPS was using the group name to identify loops, but in a mesh configuration with queues, AMPS must consider the instance name to determine if a loop has occurred. This change is fully backward compatible. (AMPS-3476).

  • Fixed a bug in message queue sow delete processing where it was possible for a sow_delete to be received and not processed. This occurs in situations where a sow delete for a non-existent queue topic is received followed by a sow delete for a defined queue topic. (AMPS-3477)

  • Added a bookmark option to sow queries on message queue topics. When this option is provided on a query, the bookmarks for the messages in the queue are returned in the query results. This makes it possible to browse a queue and obtain bookmarks that can be used to remove messages from the queue. (AMPS-3463)

  • Removed configuration validation warnings when regular expressions appear in both the underlying topic definition for a queue and the replication configuration. (AMPS-3408)

  • Added missing client_name_hash to replication publish and sow delete trace log messages. (AMPS-3478)

  • Added queue ownership statistics to track number of messages owned by the queue, number of messages transferred out and number of messages transferred in. (AMPS-3479)

PREVIEWVersion 5.2.1.37 (2017-12-06)

This release contains fixes for the following issues:

  • Improved client disconnect logging (07-0013) to include the peer name and disconnect type for a disconnected client. (AMPS-3255, Z5885)

PREVIEWVersion 5.2.1.36 (2017-12-04)

This release contains fixes for the following issues:

  • Changed automatic client sequence number generation in the AMPS server to ensure that messages are always unique and never observed as duplicates in failover scenarios. Automatic sequence number generation is used when a client does not provide a sequence number on a publish, delta_publish or sow_delete command. (AMPS-3457, Z6373)

PREVIEWVersion 5.2.1.35 (2017-11-30)

This release contains fixes for the following issues:

  • Fixed issue that could cause a SOW file to grow on startup in cases where the host does not have enough free memory during startup to hold the contents of the SOW. (AMPS-3410, Z6063)

PREVIEWVersion 5.2.1.34 (2017-11-28)

This release contains fixes for the following issues:

  • Fix three issues where a replicated message queue may fail to deliver messages when the queue is replicated across more than two AMPS instances. (AMPS-3428, AMPS-3405, AMPS-3404)
  • Fix issue where sow_delete of a message queue message occasionally did not result in removal of the message until the instance was restarted. (AMPS-3438)
  • Add critical error 31-0011 when an inconsistency is discovered between internal message queue metadata. (AMPS-3424)
  • Add journal location to message queue diagnostics dump. (AMPS-3435)
  • Add new --journal-extents option to amps_journal_dump utility, and allow message bookmarks to be printed when using the --no-data option. (AMPS-3424)
  • Add new utility amps_journal_search for quickly locating journal entries by transaction id, bookmark, or data. (AMPS-3434)

PREVIEWVersion 5.2.1.33 (2017-11-22)

This release contains fixes for the following issues:

  • Ensure that message enrichment and preprocessing rules are only applied when a message is first published or updated to an AMPS instance, not when the message is received through replication. (AMPS-3254)
  • Fix issue where message enrichment results were not always written to the transaction log. (AMPS-3042)
  • Additional fixes to improve the replication pacing algorithm to achieve more consistent throughput. (AMPS-3157)
AMPS Version 5.2.1.32 was intentionally skipped
AMPS Version 5.2.1.31 was intentionally skipped

PREVIEWVersion 5.2.1.30 (2017-11-21)

This release contains fixes for the following issues:

  • Add new internal tuning option to control the amount of CPU used by View topics. This can improve performance when there are a large number of views defined in the system, many of those views are being updated at the same time, and the rate of updates is fast enough that view threads are consuming a large share of system resources. (AMPS-3251)
  • Add new internal tuning option to control the amount of CPU used by embedded client subscriptions. This can improve performance when there are a large number of embedded client subscriptions (for example, amps-action-on-publish-message actions) and the rate of message delivery to those subscriptions is relatively high. (AMPS-3258)

PREVIEWVersion 5.2.1.29 (2017-11-15)

This hotfix contains fixes for issues that customers have reported with message queues.

This release contains fixes for the following issues:

  • Fix issue where queue cursors failed to advance when there were no messages arriving for the queue. The result was that the cursor would remain in the journal with the last message received for the queue, preventing journal removal even when all messages were acknowledged. (AMPS-3241)
  • Fix issue that could result in queue delivery stopping when multiple queues with different message types are simultaneously consumed. (AMPS-3299)
  • Fix issue where sow_delete by filter for messages in a queue does not successfully return all messages to the queue. (AMPS-2863)
  • Fix issue where a sow query that included a bookmark for a queue (which is not a supported command) could cause AMPS to exit. Attempting to run this command now reports an error. (AMPS-3058)
  • Improve accuracy of queue_depth statistics for at-most-once queues during message processing. Previously, the statistics were updated when a client acknowledged the message to update the available backlog for the client. With this fix, the statistics are updated as soon as the message is delivered, which is more accurate since the message will not be delivered again. (AMPS-3135)
  • Fix potential memory issue when a queue consumer is experiencing rapid connect/disconnect cycles. (AMPS-3285)
  • Fix issue where enabling proxied transfer could make a message end up in an undeliverable state. This could happen when the instance originally owned the message, but does not currently own the message (due to having previously processed a transfer request for the message). With this fix, the instance correctly processes the proxied transfer and delivers the message. (AMPS-3289)
  • Fix issue where AMPS might not re-send a transfer request sent over a replication connection that immediately disconnects after the first request is sent. (AMPS-3275)
  • Fix issue where AMPS could process and log a duplicate sow_delete command if that command was the last message received from a client before restart and the first message received from a client after recovery. With this fix, AMPS duplicate detection now tracks sow_delete messages during recovery as well as during normal operation. (AMPS-3393)
  • Fix issue where repeated transfers could lose track of message ownership, resulting in undeliverable messages. This problem is dependent on replication topology. (AMPS-3399)
  • Fix bug in seconds_behind statistics for replicated queues. Previously, when queue messages were processed from another replicated instance, seconds_behind would not be correctly updated. This could result in a completely empty queue showing a large seconds_behind. (AMPS-3136)
  • Fix queue_depth statistics to correctly skip messages that are expired when AMPS starts. This could result in a queue_depth never reaching zero, even when no messages were in the queue. (AMPS-2729)
  • Fix issue where a queue subscription that specifies a regular expression topic would not set max_backlog correctly and use the default value of 1. (AMPS-3385, Z6193)

This hotfix contains the following performance improvements:

  • Improve performance when replaying from the transaction log by reducing reads from storage when the data needed is already in a memory buffer. (AMPS-3181)
  • Improve performance of message delivery processing for at-most-once queues. (AMPS-3090)
  • Improve queue performance and reduce cases where the message processing thread can report pushback in the messaging pipeline (2A-0007 messages for the message queue processing thread). This fix allows the data structure that tracks queue messages to be resized in parallel with other operations. (AMPS-3202)
  • Improve performance when processing replication acknowledgement messages. This has the effect of improving performance of transfer requests for queue messages. (AMPS-3167)
  • Improve performance of transfer requests for queue messages by streamlining internal processing and allowing an instance to request multiple messages for transfer. (AMPS-3162, AMPS-3168)
  • Improve performance of sow_delete with a filter for message queues. (AMPS-3212)
  • Improve queue performance by optimizing data structures used for queues and avoiding a case where sow_delete processing could take more time than necessary. (AMPS-3192)
  • Improve routing for queue transfer messages. With this change, if the requesting instance is directly connected to the owning instance, the requesting instance will send the transfer message directly to the owning instance, even in cases where the message itself arrived via a different route. (AMPS-3294)
  • Improve performance and reduce memory footprint for message queue expiration data. (AMPS-3207)
  • Reduce the number of memory maps created when consuming messages from a queue. Previously, map fragmentation could cause the number of maps used to grow rapidly as memory was released when messages were consumed. With this change, AMPS manages maps to prevent fragmentation and reduce the overall number of maps required. (AMPS-3280)

This release contains the following improvements for logging and diagnostics:

  • Improve logging message for queue initialization (31-0001). With this change, the queue logs comprehensive information about the configuration of the queue. (AMPS-3239)
  • Adds on-demand diagnostic logging for queues. With this change, AMPS adds a resource to the administration path of the administrative console that allows an administrator to trigger an on-demand log message that records information about the current state of the queues in the instance. Triggering this action does not change the logging configuration. To record the log message, AMPS must be configured to record info level log messages or record message 31-0010. (AMPS-3319)
  • Improve accuracy of log messages that record remaining message count when messages are expired from a queue. (AMPS-3286)

PREVIEWVersion 5.2.1.28 (2017-11-13)

  • This release contains the following fixes:
    • Increase local queue performance. (AMPS-3132, Z6217, Z5953, Z6223, Z6141)
    • Fix issue where sow_delete commands can be recorded out of order, which prevents the sow_delete from being correctly replicated. This affects both delete commands from SOW topics and queue acknowledgements. (AMPS-3354, AMPS-3367, Z6159, Z5581, Z6223, Z6141)

PREVIEWVersion 5.2.1.27 (2017-11-9)

  • This release contains the following fixes:
    • Fix issue that could cause AMPS to exit with error code 00-0041 while processing NULL values in views that used multiple topics. (AMPS-3376, Z5644)

PREVIEWVersion 5.2.1.26 (2017-11-1)

  • This release contains the following fixes:
    • Fix BSON delta_publish to correctly serialize array data in messages. Previously, arrays in BSON messages would be serialized as NULL if a delta_publish changed the array value. (AMPS-3267)

PREVIEWVersion 5.2.1.25 (2017-10-27)

  • This release contains the following fixes:
    • Improve the replication pacing algorithm to achieve more consistent throughput. (AMPS-3157)

PREVIEWVersion 5.2.1.24 (2017-10-25)

  • This release contains the following fixes:
    • Fixed issue where a JSON string with an embedded { or } symbol inside of a JSON sub-document could result in AMPS failing to parse the message. (AMPS-3050, Z5984)

PREVIEWVersion 5.2.1.23 (2017-10-23)

  • This release contains the following fixes:
    • Fixed issue with delta_publish of JSON messages where adding new fields in the delta message could cause some fields to be missing in the final result. (AMPS-3295, AMPS-3301, Z6075, Z6084)

PREVIEWVersion 5.2.1.22 (2017-10-22)

  • This release contains the following fixes:
    • Fixed issue where stale heartbeat timestamps could cause clients to be disconnected for exceeding the ClientMessageAgeLimit threshold. (AMPS-3275, Z5941, Z5983)
    • Fixed issue where storage-imposed delays writing to offline files can cause clients to be disconnected due to missed heartbeats. (AMPS-3244, Z5829)

PREVIEWVersion 5.2.1.21 (2017-10-18)

  • This release contains the following fixes:
    • Fixed issue where querying a conflated topic could return incorrect results when the underlying topic specified a hash index and the query on the conflated topic would have used that hash index. (AMPS-3262, Z5940)

PREVIEWVersion 5.2.1.20 (2017-10-14)

  • This release contains the following fixes:
    • Fixed issue where replication with compression enabled could be unnecessarily slowed due to incorrect processing. (AMPS-3180)

PREVIEWVersion 5.2.1.19 (2017-10-10)

  • This release contains the following fixes:
    • Fixed amps-action-do-downgrade-replication to start tracking the configured grace period only after AMPS initialization is completed. This change helps prevent premature replication link downgrade. (AMPS-3170)

PREVIEWVersion 5.2.1.18 (2017-09-27)

  • This release contains the following fixes:
    • Fix issue when multiple clients send SOW queries on a hash-index providing a multi value IN clause could result in one client receiving results for all queries. (AMPS-3221, Z5931)

PREVIEWVersion 5.2.1.17 (2017-09-20)

  • This release contains the following fixes:
    • Added STRPTIME function to AMPS. STRPTIME takes a string representing a time and a string containing the format in which the time is represented, then returns a double that contains the UNIX_TIMESTAMP value for the provided time. (AMPS-3161, Z5830)

PREVIEWVersion 5.2.1.16 (2017-09-15)

  • This release contains the following fixes:
    • Fixed crash when multiple hash-index sow_deletes execute at the same time. (AMPS-3159, Z5814)

PREVIEWVersion 5.2.1.15 (2017-09-13)

  • This release contains the following fixes:
    • Fixed issue that leaked memory when a transport disconnects a client, resulting in memory growth over time. (AMPS-3154, Z5793)

PREVIEWVersion 5.2.1.14 (2017-09-04)

  • This release contains the following fixes:
    • Fixed issue where hash index was not rebuilt properly after a sow compaction is executed. This can result in incorrect sow query results when the query uses the hash index. (AMPS-3134)

PREVIEWVersion 5.2.1.13 (2017-09-01)

  • This release contains the following fixes:
    • Fixed regression in AMPS 5.2.1.10 that could cause a crash when multiple threads would be using the ID chaining SOW key generator. (AMPS-3130, Z5310)

PREVIEWVersion 5.2.1.12 (2017-08-30)

  • This release contains the following fixes:
    • Fixed issue in replication replay pacing that could cause replication replays to run slowly. (AMPS-3005, Z5428)

PREVIEWVersion 5.2.1.11 (2017-08-24)

  • This release contains the following fixes for queue messages:
    • Fixed issue that could cause message expiration to be bypassed when the queue is busy. (AMPS-3077,Z5634)
    • Fixed race condition in processing replicated queue acknowledgements and publish messages that could result in unexpected ordering. (AMPS-3078, Z5634)
    • Fixed issue that would prevent a subscription on an at-most-once queue to be replaced. (AMPS-3088,Z5650)
    • Fixed a potential ordering problem where a transfer request could be processed before the publish that introduces the message to be transferred, resulting in the transfer being ignored. (AMPS-2949)
    • Allow AMPS 5.0.0.X and 5.2.0.X to handle replication transfer messages from AMPS 5.2.1.X. (AMPS-3073)
  • This release contains the following fixes:
    • Fix issue that can cause AMPS to hang during restart due to deadlock when inserting to an internal data structure. (AMPS-3068)

PREVIEWVersion 5.2.1.10 (2017-08-17)

  • This release contains the following fixes:
    • Support up to 8 chaining keys in the ID chaining SOW key generator module. (AMPS-3026)
    • Fix issue that could lead to incorrect offlining or disconnection of a client with a conflated subscription. This issue would also cause queued_bytes_out metrics for that client to be inaccurate. (AMPS-2995)
AMPS Version 5.2.1.9 was intentionally skipped

PREVIEWVersion 5.2.1.8 (2017-08-07)

  • This release contains the following fixes:
    • Remove fatal abort if SOW recovery detects a SOW file size that is not a multiple of system page size. (AMPS-2984)
    • Fix issue that could cause loss of data in a SOW file upon detection of CRC corruption during recovery. (AMPS-2986)

PREVIEWVersion 5.2.1.7 (2017-08-04)

  • This release contains the following fixes:
    • Prevent amps-action-on-message-condition-timeout from running more than once for the same message unless that message has gone out of focus and come back into focus. Previously, a change to the message could cause amps-action-on-message-condition-timeout to start tracking the message again, and run actions again. (AMPS-2990,Z5310)

PREVIEWVersion 5.2.1.6 (2017-08-04)

  • This release contains the following fixes:
    • Fixed issue that could cause AMPS to crash when rebuilding a view in cases where the view used a SOW topic being recovered from the transaction log and the transaction log recovery contained both publish and sow_delete messages. (AMPS-3007, Z5473)

PREVIEWVersion 5.2.1.5 (2017-08-03)

  • This release contains the following fixes:
    • Fixed issue where the TODAY_UTC() and DATE_UTC() UDF functions were not properly setting the time within the UTC day to midnight. (AMPS-3017, Z5495).

PREVIEWVersion 5.2.1.4 (2017-08-02)

  • This release contains the following fixes for out-of-focus messages:
    • Fixed issue where a bookmark replay thread could get stuck when handling an OOF message. (AMPS-3011, Z4873)
    • Fixed issue where an OOF message may contain corrupt data if the publish that caused the message to go out-of-focus was received through replication. (AMPS-3014)

PREVIEWVersion 5.2.1.3 (2017-07-25)

  • This release contains the following fixes:
    • Fix issue where aggregated sow_and_subscribe followed by an unsubscribe before the initial aggregation was processed resulted in a fatal server error. (AMPS-3000)
AMPS Version 5.2.1.2 was intentionally skipped
AMPS Version 5.2.1.1 was intentionally skipped

PREVIEWVersion 5.2.1.0 (2017-07-10)

  • The following changes may affect compatibility with previous versions:

    • Google protocol buffer files now require a syntax = "protoX"; directive where X indicates the version of the protocol buffer protocol supported. This version of AMPS accepts either 2 or 3 as valid values. If this directive is not present, AMPS emits a warning and defaults to proto2.
    • The AMPS_MONTH function now returns a 1-based month, for compatibility with the SQL92 MONTH function. (AMPS-2893)
  • This version adds the following features:

    • Google protocol buffers version 3 is now supported. Version 3 messages provide fixed values for fields that are not present in a message and does not serialize fields with these values. This design choice in the message format makes it impossible to distinguish between values that that are set to the default and values that are not present, which means that version 3 message types do not support delta messaging. There are no changes to protocol buffer configuration or usage. When a specified .proto file declares that the files is version 3, AMPS uses protocol buffer version 3. Otherwise, AMPS uses protocol buffer version 2. (AMPS-2679)
    • AMPS now provides additional options for expiring messages in a queue (AMPS-2675):
      • The new MaxCancels option sets the maximum number of times a message can be returned to the queue by a subscriber.
      • The new MaxDeliveries options sets the maximum number of times a message can be delivered.
      • A new expire option on the sow_delete command lets subscribers immediately remove the message from the queue, without the message being considered to have been acknowledged.
      • The amps-action-on-sow-expire-message Action supports these new expiration types, and adds an AMPS_REASON context variable that contains the reason the message expired.
    • Hash indexes now support arrays of strings. When a field in a hash index contains an array, each individual value in the array is added to the hash index. (AMPS-2598)
    • The IN operator now supports hash indexes, when present. (AMPS-2599)
    • Basic Authentication is now supported in the Admin console. To enable Basic Authentication, include the directive <WWWAuthenticate>Basic</WWWAuthenticate> in the Admin configuration block. (AMPS-2589)
    • The Admin console now supports https connections when a Certificate and PublicKey are provided. (AMPS-2205)
    • Improve handling of embedded clients to reduce or eliminate special case code. This provides more capability for embedded clients in this release, and makes it so that the embedded client will have parity with external clients in future releases. (AMPS-2582)
    • Float and int values are now supported as the output of expressions in the amps-action-do-extract-values action. (AMPS-2547)
    • AMPS now includes a CRC32() function. (AMPS-2911)
    • The STRFTIME function is now available in AMPS by default, and no longer requires that the legacy messaging compatibility functions are loaded before using the function. (AMPS-2897)
    • The STRFTIME function now supports format specifier %f to format microseconds, and %03f to format milliseconds. (AMPS-2820)
    • AMPS now includes a ARRAY_TO_STRING function for formatting an array as a string, with optional delimiters and null substitution. (AMPS-2834)
    • Added new log message 31-0009 at info level to indicate the start of message queue recovery. (AMPS-2917)
    • Galvanometer includes the following new features:
      • Auto-refresh option in the Graph Builder.
      • Refresh button on the Replication page.
      • Improved user experience with Replication Matrix on the Replication page.
      • New Query and Subscribe mode on the SQL page. (AMPS-2586)
      • New/Update/Delete animations added for SQL page result rows.
      • Galvanometer prevents potentially destructive SQL queries. (AMPS-2580)
      • Message details available for each message on the SQL page.
      • SQL page supports BasicAuth authorization. (AMPS-2822, Z4755, Z5151)
      • New message types supported on the SQL page: Composite, Google Protocol Buffer, BFLAT, BSON (in addition to JSON, FIX/NVFIX, XML, and Binary).
    • AMPS expression language field identifiers now allow the percent sign character (%) when the field identifier is isolated inside square brackets (e.g. [/change%]). This is intended to aid working with existing message formats that can't be easily changed. 60East doesn't recommend creating new apps with such identifiers. (AMPS-2939, Z5337)
  • This version fixes the following issues:

    • Message queue recovery performance is improved. (AMPS-2918)
    • Log messages referring to SOW records now use the terminology valid entries. Previously, these messages referred to valid keys. The statistics reported are unchanged. (AMPS-2459)
    • Memory footprint reduction in server when AMPS is maintaining large numbers of parsed values. (AMPS-2480)
    • Fix incorrect handling of duplicate values in a JSON message that could result in an AMPS crash on delta merge (Z5251, AMPS-2950)
    • Fix issue where replays that use a rate specification without a max_gap setting could stop replaying if there are large sections of the transaction log without matching messages. (AMPS-2501)
    • Performance improvements to I/O on some Linux distributions (work around for performance degradation when O_DIRECT is used). (AMPS-2502)
    • Improve performance of various hash lookups in AMPS (including lookup for SOW keys). (AMPS-2504, AMPS-2545)
    • Fixed undefined behavior when issuing a sow_and_subscribe or sow_and_delta_subscribe on a message queue. These commands now fail with reason "invalid topic". Previously, this would result in a SOW query without a subsequent subscribe. (AMPS-2605)
    • Fix issue where a queue message that expired from the queue while the lease was still held would not be correctly delivered to action-on-sow-expire-message if the client disconnected before the lease timed out. (AMPS-2616)
    • Increase the frequency with which rate specifiers on bookmark replays are evaluated. This prevents unexpected gaps in replay. (AMPS-2629)
    • Improve ability of AMPS to handle cases where the server is rapidly stopped and started while clock drift is occurring. Previously, small clock drifts accompanied by rapid restarts could result in rejected publishes. (AMPS-2655)
    • Fix issue where a replication client and a connected application could appear to have the same client ID in the administrative interface. (AMPS-2661)
    • Failure to start a thread that AMPS requires for correct operation (for example, threads that accept incoming client connections) is now treated as an emergency level error. These failures will cause AMPS to exit. Previously, AMPS could remain running, even though some required threads had not started. (AMPS-2718)
    • Failure to start a thread associated with an operation that can be canceled (specifically, a bookmark replay) will now include more detailed information as to why the thread failed to start. As in previous releases, AMPS will report an error for that task and continue running. (AMPS-2718)
    • Fix issue where AMPS would refuse to start up in cases where the last journal file in a transaction log is indexed. (AMPS-2726)
    • Fix issue where, on recovery, statistics for a queue could include information for messages that had expired at the time of recovery. (AMPS-2728)
    • Fix condition that could cause a deadlock in connections that use SSL. (AMPS-2741, AMPS-2825)
    • Improve performance of preprocessing and enrichment in cases where the preprocessing or enrichment step does not result in changes to the message. (AMPS-2805, AMPS-2806)
    • Fix crash during synchronization between SOW topic and journal file when processing a sow_delete by filter that uses a regular expression topic. (AMPS-2809, Z5136)
    • Provide the correct acknowledgement semantics when replicating between two servers and replication in one direction is sync while replication in the other direction is async. (AMPS-2844)
    • Persisted acknowledgements delivered on a bookmark subscription are now logged with message number 17-0002, rather than incorrectly being logged as publishes (message number 17-0001). (AMPS-2862)
    • Improve handling of expressions in aggregated subscriptions. Previously, a projection that calls a UDF with an incorrect number of parameters could cause an AMPS crash. (AMPS-2865)
    • AMPS configuration validation will now warn when a gzip logging target specifies a file name that does not end in gz. (AMPS-2868)
    • Improve tracking of durability for subscriptions that use the fully_durable option. (AMPS-2880)
    • Improve handling of malformed Include directives in the AMPS configuration file. Previously, some errors could result in an AMPS crash at startup. (AMPS-2884)
    • Fix crash when reading an invalid client name hash from the transaction log while recovering replication state. (Z5364, AMPS-2492)
    • Fix bug that could cause AMPS to crash when a publish occurred to a transaction-backed SOW topic with regular expression characters in the name. (AMPS-2885, Z5072, Z5080, Z6210)
    • Fix bug that could cause replication to ignore transaction-backed SOW topics with regular expression characters in the name. (AMPS-2885, Z5130, Z5001)
    • Fix bug where an invalid sow_delete command is replicated and could cause a crash in the replication destination. (AMPS-2889, Z5293)
    • Fix bug where a replicated sow_delete that uses a filter that does not compile in the destination instance (for example, a filter that uses a UDF that is not present in the destination) could cause the destination instance to crash. (AMPS-2896)
    • Fix issue that could cause loss of data in a SOW file upon compaction or recovery. (AMPS-2937, Z5415)
    • Fix issue that could cause bookmark replay to skip a message when a replay client is evicted to the slow lane. (AMPS-2958)
    • Fix issue initializing transaction log cursors near the end of the transaction log. Requests for a transaction at the end of the log (specifically, for a transaction that is known to AMPS but has not yet been known to be persisted to the journal file) could previously have resulted in NOW, skipping transactions. (AMPS-2948)
    • Fix issue that could result in leaked memory associated with hash index data, producing memory growth and unreclaimed mmap regions. (AMPS-2934, Z5380)
    • Fixed problem where fields in /AMPS/ClientStatus message were incorrectly populated. (AMPS-2567)
    • The query_count metric for an instance now tracks the count of queries for the lifetime of the instance. (AMPS-2827, Z5159)
    • AMPS now creates one transport thread for every two physical cores by default when AMPS NUMA tuning is disabled. (AMPS-2770)
    • Galvanometer fixes:
      • SOW data parsing. (AMPS-2904, Z5258)
      • Sow Key / Timestamp column name on the SQL page. (AMPS-2539, Z4747)
      • Replication map crawling issues. (AMPS-2704, AMPS-2788, Z4982, Z5005, Z5148)
      • Graph Builder 'rounds' floating values. (AMPS-2587)
      • Overview / Host graph are falling behind due to a lag that is caused by the time that takes to load data. (AMPS-2860, Z5209)
      • Replication page does not restore previously selected tab.
      • Messaging widget shows matches_found_per_sec as the out value. (AMPS-2577)
      • AdBlock detection added to prevent random Galvanometer issues. (AMPS-2871, Z5219).
    • Fixed issue that could result in duplicate queue message transfer requests causing a queue deadlock. (AMPS-2947)
    • Fixed a problem where AMPS did not update the last processed transaction log id for a topic in the SOW. This could cause the server to recover the topic from the transaction log when starting, which could take an extended period of time. This problem would also cause AMPS to log a 15-0045 warning regardless of whether the SOW file for the topic was present or not. (AMPS-2615, Z4892)
    • Fix issue with AMPS where using subId to cancel a sow query didn't properly cancel the query compared to using queryId. With this fix, AMPS will now properly cancel the query when using subId. (AMPS-2663)

AMPS version 5.2.0

AMPS Version 5.2.0.343 was intentionally skipped

Version 5.2.0.342 (2020-02-10)

  • Fix AMPS crash when a SOW query content filter uses a primary key or a hash index on a topic name that is a regular expression. This fix enables these queries to use the primary key index, which both resolves the crash and improves performance. (AMPS-5424, Z10656)

Version 5.2.0.341 (2019-12-28)

  • Fix AMPS crash when the OrderBy for a SOW query specifies a field that does not exist, a field that contains values with no defined sort order (such as NULL or NaN), or a field that contains a subdocument rather than a single value. (AMPS-5365, Z10421)

Version 5.2.0.340 (2019-12-11)

  • Fix issue with BFlat serialization of fields with null values. Previously these values would be skipped and not included in the serialized message. (AMPS-5294)
AMPS Version 5.2.0.339 was intentionally skipped

Version 5.2.0.338 (2019-11-28)

  • Fix issue where AMPS consumes extra memory when pruning a clients.ack file on startup. (AMPS-5297, Z10229)

Version 5.2.0.337 (2019-11-20)

  • Fix crash caused by using the STRFTIME function on a timestamp field containing an invalid value and using the result in a MIN or MAX aggregate. (AMPS-5301, Z10270)
AMPS Version 5.2.0.336 was intentionally skipped

Version 5.2.0.335 (2019-11-07)

  • Fix issue with message queue delivery which would have the effect of causing an unnecessary increase in memory consumption. (AMPS-5263, Z10145)

Version 5.2.0.334 (2019-11-02)

  • Fix crash caused by a race condition during SOW recovery. This can occur when the coalesce phase completes and there is an attempt to use thread-local data from a thread that has already terminated. (AMPS-5240)

Version 5.2.0.333 (2019-10-31)

  • Fix issue where AMPS creates an in-memory statistics database and collects metrics even when no Admin element is configured. In this case, there is no way to access the statistics, so there is no need to maintain the database or collect metrics. With this fix, AMPS does not collect statistics unless the statistics are available in the admin interface and/or persisted to disk. (AMPS-5257, Z10146)

Version 5.2.0.332 (2019-10-29)

  • Fix issue that could cause files used for slow client offlining to be retained indefinitely in cases where AMPS was not properly shut down. With this fix, when an instance of AMPS starts, it removes any files for the instance that remain in the offline directory from previous runs of the instance. (AMPS-5225, Z9989, Z10041)

Version 5.2.0.331 (2019-10-25)

  • Fix replication scenario where AMPS duplicate detection could fail. This would cause duplicate messages to be recorded in the transaction log and delivered to subscribers. This issue can occur in certain replication mesh architectures where a single publish can arrive at an AMPS instance through multiple replication paths, in cases where there is a delay of more than 60 seconds between the time a message arrives on one path and the time that an earlier message from the same publisher arrives on a different path. For this to occur, a message that cannot yet be acknowledged must arrive between these two messages, and AMPS must still be waiting to have been unable to be acknowledged for more than 60 seconds. (AMPS-5241, Z10060)

Version 5.2.0.330 (2019-10-23)

  • Fix performance issue caused by AMPS doing more work than necessary to manage aggregated subscriptions and aggregated queries. Before this fix, the sow update broadcaster (which manages delivering updates to view processors and so on) would inspect aggregated queries or aggregated subscriptions, even though no updates need to be broadcast for these. In extreme cases, this extra work caused delays in processing the message pipeline. With this fix, the sow update broadcaster ignores aggregated subscriptions and aggregated queries. (AMPS-5236, Z10108)

Version 5.2.0.329 (2019-10-11)

  • Fix issue introduced in AMPS 5.2.0.318 that could cause AMPS not to slow down replication replay in cases where a destination is not able to keep up with the full rate of replay. When that happens, the AMPS instance uses increased memory to hold the messages for the destination and the queued_bytes_out value for the destination grows beyond the expected limits.(AMPS-5224, Z10030)
AMPS Version 5.2.0.328 was intentionally skipped

Version 5.2.0.327 (2019-10-09)

  • Fix issue where AMPS could continuously re-evaluate the last message in a queue when no subscription was entitled to receive the message. This generated excessive 17-2001 messages in the log, and was unnecessary work. With this fix, AMPS will not re-evaluate the message until another subscription is created or there is a change to the messages in the queue (such as a message being published to the queue or a leased message being returned to the queue). (AMPS-5129, Z10042)

Version 5.2.0.326 (2019-10-06)

  • Fix issue where updating a sow_and_subscribe or sow_and_delta_subscribe command using the replace option could fail to deliver oof notifications when an oof message requires more than one buffer. (AMPS-5213, Z10037)

Version 5.2.0.325 (2019-10-01)

  • Fix issue that causes AMPS to crash when the admin interface receives a command to reconnect a replication destination that is not currently connected. (AMPS-5128)

Version 5.2.0.324 (2019-09-30)

  • Fix issue with a bookmark replay starting at the wrong point when an application provides a list of bookmarks that includes both timestamps and message bookmarks and the list contains a timestamp that is previous to the oldest message bookmark that is in the list of bookmarks and present in the journals. In this case, AMPS would incorrectly restart replay from the oldest message bookmark that is in the list of bookmarks rather than the timestamp. With this fix, AMPS will correctly restart replay from the earliest point specified in the bookmark list. (AMPS-5136)

Version 5.2.0.323 (2019-09-28)

  • Improve efficiency of transaction log seeks for message queues in cases where AMPS needs to revisit a message earlier in the transaction log than the current delivery point. This issue could occur when an AMPS process has already read the last transaction in a journal file and the message the process needs is more than 128 transactions prior to the end of the file. AMPS could encounter this issue when delivering from a priority queue, or in the case of a lease expiring or being broken, a client disconnecting or unsubscribing with unacknowledged messages, or a transfer request arriving. (AMPS-5175)

Version 5.2.0.322 (2019-09-26)

  • Improve efficiency of message queue delivery by reducing the overhead when adding messages to the client send queue. This is intended to improve throughput when CPU usage is constrained (that is, CPU is near 100% utilization). (AMPS-5126, Z9508)
AMPS Version 5.2.0.321 was intentionally skipped
AMPS Version 5.2.0.320 was intentionally skipped

Version 5.2.0.319 (2019-09-17)

  • Improve efficiency of message queue lease expiration in long running AMPS instances. To see this problem, AMPS must have been running continuously for longer than the smallest LeasePeriod configured for the instance. Previously, a long-running instance of AMPS where queue subscriptions use content filters could eventually reach a state where the cost of expiration processing could reduce throughput for queue delivery. (AMPS-5154, Z9906)

Version 5.2.0.318 (2019-09-16)

  • Fix issue where replication between AMPS instances could stop because of a defect where AMPS fails to detect if the socket is writable. Included in this fix are new warning messages that will be emitted anytime the replication socket is not writable for more than 5 seconds, or when a replication command takes more than 5 seconds to execute, such as a sow_delete command that matches many records. If the replication connection is not writable for 30 seconds AMPS will close the connection and reconnect. (AMPS-5141, Z9854)

Version 5.2.0.317 (2019-09-10)

  • Fix issue where HTTP clients failing to consume AMPS Admin requests could block other requests. This problem was compounded by the blocked Admin handling threads busy-waiting and increasing the load average on the host. (AMPS-5134, Z9386)

Version 5.2.0.316 (2019-08-28)

  • Fix issue during preprocessing or enriching a BFlat message where an integer value could incorrectly be skipped during serialization. (AMPS-5132, Z9865)
AMPS Version 5.2.0.315 was intentionally skipped

Version 5.2.0.314 (2019-08-23)

  • Remove extraneous logging related to queue message transfer requests (logging ID 31-0006). Previously, this warning would be logged for transfer requests where the messages involved become owned by the current instance while AMPS is formulating the transfer request, or where the route back to the owning instance involves passthrough and would return back through this instance (that is, a circular route is involved). No warning is required in either case. (AMPS-5064, Z9727)

Version 5.2.0.313 (2019-08-21)

  • Fix race condition that could cause a crash or failure to remove journals when amps-action-on-sow-expire-message is configured to monitor a queue. This issue caused AMPS to retain data for a queue message after that message was removed from the queue. This issue could also contribute to memory consumption and could cause additional work in the message queue admin thread. (AMPS-4693, Z9770)

Version 5.2.0.312 (2019-08-19)

  • Fix an ambiguous column name on the "SOW" page of the AMPS web interface (Galvanometer). The "Size" column was renamed to "Storage", and the "Memory" column was added to display stored and memory bytes for each SOW-based topic. (AMPS-5108)
AMPS Version 5.2.0.311 was intentionally skipped

Version 5.2.0.310 (2019-08-15)

  • Fix race condition where, in cases where AMPS has multiple failed publish or sow_delete commands for a specific publisher pending at the same time, persisted acknowledgements for the failures could be delivered out of order. This could result in an AMPS client removing a failed message from the publish store before the failure for that message was reported to the failedWriteHandler. In that case, the application would receive notification of the failure, but would not receive the data of the failed message. This incorrect behavior in reporting failure to an application could make it more difficult to recover from a failed publish or sow_delete. This issue does not affect successful publishes, and has no effect on the actual success or failure of a publish or sow_delete. (AMPS-5084)

Version 5.2.0.309 (2019-08-14)

  • Fix race condition that can occur when executing a sow_and_subscribe command with the replace option. This can manifest as either a publish message arriving on the subscription in between the group_begin and group_end messages, or sometimes as a sow message arriving outside these begin/end messages. This race condition is more common on slow virtual machines with a limited number of CPU cores, or when limiting the AMPS process to use a small number of CPU cores using commands such as taskset. (AMPS-5018)

Version 5.2.0.308 (2019-08-13)

  • Fix issue with JSON serialization of infinity. Previously these values would be serialized as inf or -inf, resulting in invalid JSON. Now, these values will be serialized as null. (AMPS-5100, Z9792)

Version 5.2.0.307 (2019-08-03)

  • amps_sow_dump now supports -z or --zip-output, which writes the messages dumped from the topic file to a zip archive, with each message contained in a separate file within the zip archive. This matches the format expected by spark publish when used with the -file option. This option is intended to make it easy to dump and republish binary messages. (AMPS-4425, Z7595)

Version 5.2.0.306 (2019-08-02)

  • Fix issue where a historical SOW query by timestamp could return indeterminate results. In cases where multiple messages were received by AMPS for the same SOW key at the same timestamp, AMPS could return any one of these messages in a historical SOW query. With this fix, AMPS always returns the latest message received. (AMPS-2185)
AMPS Version 5.2.0.305 was intentionally skipped
AMPS Version 5.2.0.304 was intentionally skipped

Version 5.2.0.303 (2019-07-26)

  • Fix issue with the AMPS subscription manager that could lead to memory growth in cases where the AMPS instance supports a large number of short-lived ad-hoc topics. Previously, AMPS could maintain data on the order of 384 bytes per message processor per ad-hoc topic, which could lead to noticeable memory growth in some applications. (AMPS-5037)
AMPS Version 5.2.0.302 was intentionally skipped
AMPS Version 5.2.0.301 was intentionally skipped
AMPS Version 5.2.0.300 was intentionally skipped

Version 5.2.0.299 (2019-07-16)

  • Fix the amps-action-on-message-condition-timeout action's configuration validation to allow conflated topics and view topics in addition to SOW topics. (AMPS-5039, Z9657)

Version 5.2.0.298 (2019-07-16)

  • Fix crash that can occur when parsing a message that contains illegal JSON. Previously, AMPS would accept a message that contained illegal JSON in the form of concatenated JSON documents. With this fix, AMPS will reject the message and return a parse error. (AMPS-5006, Z9605)

Version 5.2.0.297 (2019-07-15)

  • Fix a potential memory leak on some versions of Linux when AMPS compiles filter expressions. The memory leak in affected environments is small per expression, but may have an impact in deployments that routinely compile millions of filter expressions. (AMPS-5024)

Version 5.2.0.296 (2019-07-06)

  • Fix issue where, when recovering queues, AMPS could track and process sow_delete events that were unneeded to correctly recover the queue. This could cause longer recovery times than necessary. (AMPS-4999, Z9508)
AMPS Version 5.2.0.295 was intentionally skipped

Version 5.2.0.294 (2019-06-29)

  • Fix issue where AMPS incorrectly reset statistics for a SOW topic to zero during a compact or coalesce operation. (AMPS-4989)

Version 5.2.0.293 (2019-06-23)

  • Fix issue where publishers that request a persisted acknowledgement and disconnect before receiving the persisted acknowledgement may cause memory growth. (AMPS-4958,Z9473)

Version 5.2.0.292 (2019-06-02)

  • Fix issue that could cause AMPS to crash when a bookmark live subscription would cutover to "live". (AMPS-4901, Z9374)

Version 5.2.0.291 (2019-06-01)

  • Fix issue where a replication connection attempt that exceeds 250ms may never complete its connection. (AMPS-4905, Z9333)
AMPS Version 5.2.0.290 was intentionally skipped

Version 5.2.0.289 (2019-05-26)

  • Fix issue where expiration of a message from a SOW topic could be delayed due to AMPS incorrectly calculating the next time at which expiration for the topic needs to be processed. This issue does not affect queue expiration. (AMPS-4878)

Version 5.2.0.288 (2019-05-15)

  • Fix issue in libamps_action_on_schedule where daylight savings time was not being properly accounted for when using UTC time. This can result in actions not being triggered at the scheduled time. This issue only applied to actions that specified UTC (for example, 10:20Z) and not to actions that used local time (for example, 10:20). (AMPS-4884, Z9224)

Version 5.2.0.287 (2019-05-04)

  • Fix regression introduced in 5.2.0.271 where clients with aggregate subscriptions may be disconnected for exceeding instance memory limits, because their memory usage is incorrectly calculated. (AMPS-4867, Z9322)
AMPS Version 5.2.0.286 was intentionally skipped

Version 5.2.0.285 (2019-04-23)

  • Fix issue that could cause an AMPS crash when processing delta subscriptions for BSON messages in cases where a message contains an empty dictionary. AMPS now correctly processes these messages. (AMPS-4836, Z9253)
  • Fix to preserve the type of binary BSON fields. Previously, functionality such as delta processing, preprocessing, and enrichment could change the type of binary fields to string fields. Although no data was changed or lost, it was possible for a binary type to contain byte sequences that are not valid unicode characters, which could cause parse errors for recipients of the data. AMPS now correctly preserves the type of these fields. (AMPS-4837, Z9248)

Version 5.2.0.284 (2019-04-23)

  • Fix issue where a message queue could deliver replicated messages out of order. This was caused by AMPS issuing transfer requests for those messages out of order. With this fix, AMPS preserves the correct ordering when requesting transfers from another instance. (AMPS-4346, Z9202)

Version 5.2.0.283 (2019-04-16)

  • Fix a race condition in AMPS that can cause a crash when multiple subscriptions for the same client begin simultaneously offlining. (AMPS-4827, Z9237)

Version 5.2.0.282 (2019-04-14)

  • Fix race condition that could result in incorrect results or a crash during a SOW query. The symptom of this problem is AMPS writing 15-0300 errors to the logs. This issue was caused by a race where AMPS could attempt to use an expression while that expression was in the process of being compiled and prepared for use. (AMPS-4829, Z9237)

Version 5.2.0.281 (2019-04-12)

  • Fix issue where a client that has a sow_and_subscribe or sow_and_delta_subscribe to a topic and then issues a sow_delete for that topic could receive the oof for the SOW delete before receiving a publish message that occurred before the deletion. This could occur in cases where AMPS had received the publish command but had not yet delivered it to the subscription at the time the sow_delete was received. Prior to this fix, AMPS would pause message delivery to the client issuing the delete, process the sow_delete, and then resume message delivery, resulting in an out of order message. With this fix, AMPS does not pause message delivery for the client issuing the delete, which preserves the correct order.(AMPS-4816)

Version 5.2.0.280 (2019-04-10)

  • Fix issue where a string value that could be interpreted as a numeric value could be converted to a numeric representation during preprocessing or enrichment. For example, a JSON value of "42" could be converted to 42. (AMPS-4805, Z9167)

Version 5.2.0.279 (2019-04-10)

  • Fix issue where the AMPS admin interface does not properly escape topic names and content filters when producing a document in JSON or XML format. This could cause the admin interface to produce invalid documents when a topic name or content filter contained characters that were required to be escaped (or, for XML, which are not valid). When the AMPS admin interface produces an invalid document, this can cause errors or unpredictable behavior in systems that use the admin interface, including the Galvanometer. (AMPS-4761, Z9122)

Version 5.2.0.278 (2019-04-09)

  • Fixed issue where AMPS fails to send the correct messages and oof messages to a client when the client replaces a sow_and_subscribe command that provided specific SowKeys of interest as part of the original command. (AMPS-4791, AMPS-4800, Z8984)
  • Fixed issue where AMPS does not consider a content filter when a sow_and_subscribe command provides specific SowKeys of interest and a content filter. In this case, AMPS would provide the messages for the requested keys without considering the content filter. AMPS now correctly provides only messages with one of the requested keys that also match the content filter. (AMPS-4792, Z8984)

Version 5.2.0.277 (2019-04-09)

  • Fixed issue where AMPS would not start on some hosts due to an incompatible version of GLIBC with the error: "version 'GLIBC_2.6' not found (required by ./ampServer)" (AMPS-4786, Z8917)
AMPS Version 5.2.0.276 was intentionally skipped

Version 5.2.0.275 (2019-03-17)

  • Fix issue where, in the event that a replication connection fails during the logon and validation process, AMPS attempts to reconnect and logon without an adequate timeout between retries. This could consume excessive resources, leading to 30-0000 stuck thread warnings and a server shutdown. (AMPS-4727, Z8579)

Version 5.2.0.274 (2019-03-15)

  • Fix crash when AMPS creates a client status event and the size of the correlationId is greater than 128 bytes. (AMPS-3563, z8917)

Version 5.2.0.273 (2019-03-15)

  • Fix issue where using delta_publish on a transaction logged topic could cause excessive CPU consumption. (AMPS-4745, Z9064)
  • Fix issue where AMPS NUMA tuning could affinitize a transaction log thread and a publish engine thread to the same CPU. This could cause performance issues when both threads intensively consume CPU. (AMPS-4746, Z9064)
  • Fix issue where a large number of subscriptions that maintain individual state (aggregated subscriptions or conflated subscriptions) could cause publish engines to go idle and slow performance. In this case, 2A-0008 warnings are logged. Notice that this issue does not affect regular subscriptions to views or conflated topics. (AMPS-4747, Z9064)

Version 5.2.0.272 (2019-03-13)

  • Fix issue where duplicate values appearing within an IN clause might cause AMPS to leak memory. (AMPS-4737, Z8988)

Version 5.2.0.271 (2019-03-13)

  • Fix issue where publish throughput could be affected when published messages are processed for aggregated subscriptions. This could cause "potentially stuck thread" warnings to be logged for the publish engine thread. (AMPS-4651, Z8904)

Version 5.2.0.270 (2019-03-11)

  • Fix issue where AMPS could crash or return incorrect results when executing a SOW query using a regular expression when entitlement filters are present and the regular expression matches more than one topic. (AMPS-4697)

Version 5.2.0.269 (2019-03-06)

  • Fix issue where configuration file validation did not correctly detect incorrectly spelled or capitalized tags for some configuration elements. Without this fix, AMPS could ignore some incorrectly-spelled configuration elements. With this fix, AMPS now offers suggestions when these configuration errors are detected. (AMPS-4725, Z9031)
AMPS Version 5.2.0.268 was intentionally skipped

Version 5.2.0.267 (2019-03-02)

  • Fix issue where the seconds_behind metric for bookmark subscriptions could stop increasing if activity to the transaction log stops and seconds_behind was a non-zero value when this occurred. (AMPS-4660, Z8879)
  • Fix issue where seconds_behind for a bookmark subscription may show a gap of values computed from epoch timestamp. This occurs when the subscription is unable to make progress because the client socket buffer is full. This issue will correct itself when the subscription is able to make progress again. (AMPS-4660)
AMPS Version 5.2.0.266 was intentionally skipped

Version 5.2.0.265 (2019-02-26)

  • Fix issue in AMPS where the server could incorrectly produce an io error when starting a bookmark replay in cases where the command specifies a list of bookmarks and one of the bookmarks has a value that corresponds to a specific point in the transaction log, but that bookmark is not present in the transaction log. This could happen if, for example, a given publisher produces gaps in sequence numbers and the bookmark specifies a sequence number that the publisher did not use, or in situations where a filter is specified on a replication destination. (AMPS-4664, Z8921)
AMPS Version 5.2.0.264 was intentionally skipped

Version 5.2.0.263 (2019-02-21)

  • Fix race condition that could cause an AMPS crash in an instance that has a message queue with at-most-once delivery semantics. (AMPS-4700, Z8975)

Version 5.2.0.262 (2019-02-20)

  • Fix issue where the STRFTIME() function incorrectly rounds parts of the generated datetime string, producing invalid results when the corresponding value is truncated. For example, an expression such as STRFTIME("%03f", 1.999729) would produce the string "100". With this fix, the expression correctly produces "999". (AMPS-4589)
AMPS Version 5.2.0.261 was intentionally skipped

Version 5.2.0.260 (2019-02-14)

  • Fix race condition in AMPS replication resync where AMPS could incorrectly fail to replicate messages. For this condition to occur, publish messages must arrive as the resync is transitioning from historical replay to tailing the transaction log and the resync must not have replayed any messages. (AMPS-4264)

Version 5.2.0.259 (2019-02-11)

  • Fix issue where a subscriber to a conflated topic may receive an oof notification for a message that was never delivered to the subscriber. This would occur when a new message that matched the subscription was both published and then modified to be out of focus during a single conflation interval. (AMPS-4649, Z8789)
AMPS Version 5.2.0.258 was intentionally skipped

Version 5.2.0.257 (2019-02-01)

  • Fix issue in publish engine that could cause AMPS to crash when a client is disconnecting and using a conflated or aggregated subscription and delta messaging. (AMPS-4636, Z8876)

Version 5.2.0.256 (2019-01-28)

  • Fix issue where AMPS could return incorrect results for a SOW query when a new record is published during the query and then immediately updated. In this case, AMPS could evaluate the SOW query against the newly published record rather than deferring evaluation of the record and the update until after the SOW query completes. This could also cause AMPS to fail to deliver expected OOF messages during the subscription. (AMPS-4609, Z8789)

Version 5.2.0.255 (2019-01-27)

  • Fix issue that could cause AMPS to produce invalid JSON when enrichment is used on messages that contain string values or array values inside of arrays. (AMPS-4566, Z8741)
  • Fix regression introduced in 5.2.0.253 that could cause an infinite loop when creating a SOW index record. The infinite loop can only happen if the issue in AMPS-4597 is encountered and an index record is more than 8K in size (typically, more than 256 fields). (AMPS-4615)

Version 5.2.0.254 (2019-01-23)

  • Fixed issue that would cause AMPS to fail to start in cases where the SlabSize for a SOW topic has been changed without removing the file. A change in SlabSize could result in a file with slabs of different sizes, or an empty slab at the end of a file with a size that would extend past the end of the file. In either case, AMPS will now correctly handle recovery. (AMPS-4579, AMPS-4471, Z8755, Z8426)

Version 5.2.0.253 (2019-01-22)

  • Fixed issue where AMPS could fail to create the correct index for a SOW record. This could happen when many high-velocity publishers published to the same topic and a given field was used by a concurrent query or sow_delete by filter for the first time since the instance was restarted (AMPS-4597).
AMPS Version 5.2.0.252 was intentionally skipped

Version 5.2.0.251 (2019-01-15)

  • Fixed issue where AMPS can fail to remove a message from a SOW topic upon expiration if no existing messages expire within the next 60 seconds and new publishes arrive with expirations greater than 60 seconds. (AMPS-4572, Z8750)
AMPS Version 5.2.0.250 was intentionally skipped
AMPS Version 5.2.0.249 was intentionally skipped

Version 5.2.0.248 (2019-01-03)

  • Fixed race condition where uninitialized SOW metadata may be read or used for indexing. In some cases, this could lead to a crash when executing a query or attempting to build an index during a query. (AMPS-4538, AMPS-3774, Z8685, Z7049)

Version 5.2.0.247 (2019-01-01)

  • Fix issue that could cause a crash in AMPS when replacing a large filter (greater than 1MB) on a sow_and_subscribe command. With this fix, AMPS correctly handles these replace commands. (AMPS-3849, Z7210, Z7673)
AMPS Version 5.2.0.246 was intentionally skipped

Version 5.2.0.245 (2018-12-13)

  • Fix issue where AMPS could over estimate the size of an index entry leading to an increase of warning messages in the AMPS logs. This issue would manifest as a 15-0302 warning in the AMPS logs. (AMPS-4472, Z8529)

Version 5.2.0.244 (2018-12-12)

  • Fix issue where AMPS could produce a SOW query batch larger than the expected limit for the protocol (1GB). This could cause clients to reject the message as invalid and either hang or disconnect from the server. With this fix, AMPS will limit the batch size produced to match the maximum message size (200MB). (AMPS-4503, Z8609)

Version 5.2.0.243 (2018-12-11)

  • Fix issue that could cause AMPS to crash while parsing a JSON message with duplicate subdocuments or a JSON message that is more than 64 levels deep. (AMPS-3901)

Version 5.2.0.242 (2018-12-10)

  • Fix issue where multiple concurrent dynamic aggregate subscriptions that contain both projection and filter expressions that are greater than 1024 bytes can cause threads to become stuck. (Z8618, AMPS-4497)

Version 5.2.0.241 (2018-12-06)

  • Fix issue where a sow_delete command using the SOW key(s) assigned to the message(s) that fail because of the entitlement can cause subsequent SOW data updates to the record with that key to hang AMPS until it is restarted. (AMPS-4461, Z8425)
  • Fix issue where WRITE entitlement filters were not correctly applied to sow_delete commands in cases where the command used a hash index or the primary key field(s). Without this fix, a user could potentially delete messages that should have been disallowed by the filter. This issue applies to sow_delete commands only. Topic entitlements are not affected, nor are other commands. (AMPS-4462, AMPS-4463, Z8425)
  • Fix issue where an incorrect entitlement filter can be applied to a regular expression topic subscription. (AMPS-4146, Z8269)

Version 5.2.0.240 (2018-11-16)

  • Fix issue where AMPS incorrectly calculates the serialization size of doubles similar to '1.0' as what is required for integer representation '1'. This can create a buffer overflow scenario during serialization of the message. (AMPS-4430, Z8463)

Version 5.2.0.239 (2018-11-15)

  • Added ability to configure arbitrary HTTP response headers to be returned in all responses from the AMPS Admin HTTP server. These are configured using the new <Header> tag inside the <Admin> section of the AMPS configuration file. (AMPS-4433, Z6619, Z8424)

Version 5.2.0.238 (2018-11-11)

  • Fix issue where Queue message delivery with multiple content filtered subscriptions can be excessively slow when one or more of the consumers is slow. (AMPS-4413, Z8469)

Version 5.2.0.237 (2018-11-09)

  • Fix issue that can cause AMPS to shutdown when a large list of bookmarks is provided for AMPS to dynamically determine which of all the bookmarks is the earliest, to begin the transaction log replay. (AMPS-4366, Z8282)

Version 5.2.0.236 (2018-11-03)

  • Fix issue where a transaction backed SOW could experience memory growth during coalesce. This issue becomes more noticeable as SlabSize becomes a larger proportion of physical memory, and is most likely to cause an impact when slab sizes are multiple gigabytes. (AMPS-4324, Z8180)

Version 5.2.0.235 (2018-11-01)

  • Fix efficiency issue that could degrade performance of replication when bookmark replays were active. The effect was more noticeable the more bookmark replays were active, particularly when the number of active replays is larger than the number of cores on a CPU socket. (AMPS-4392, Z8430)
AMPS Version 5.2.0.234 was intentionally skipped

Version 5.2.0.233 (2018-10-29)

  • Fix issue where a full message pipeline could cause AMPS to use large amounts of CPU which might degrade overall AMPS performance. (AMPS-4360)

Version 5.2.0.232 (2018-10-28)

  • Fix issue where entitlement filters were not correctly applied to queries and sow_deletes in cases where the query used a hash index or consisted only of an IN clause using the primary key field. Without this fix, a user could potentially retrieve or delete messages that should have been disallowed by the filter. This issue applies to sow commands and the sow portion of a sow_and_subscribe as well as sow_delete commands. Topic entitlements are not affected, nor are other commands. (AMPS-4375, Z8389)

Version 5.2.0.231 (2018-10-27)

  • Fix stats collection issue in AMPS where a message queue delete_count and deletes_per_sec were reporting the number of messages removed during maintenance of the data structure underlying the queue rather then the number of messages acknowledged. This behavior could result in the admin module showing queue_depth decreasing but low to zero deletes_per_sec and delete_count. (AMPS-4334, Z8262)
  • The query_count metric for an instance now tracks the count of queries for the lifetime of the instance. (AMPS-2827, Z5159)
  • Fix race condition that could cause a replication thread to stop replicating. This issue affected replication replays that had previously logged a 1E-0054, and the problem would be visible in monitoring as a destination that shows seconds_behind as continuing to increase while the messages_out_per_second remains at 0, even though messages that should be replicated continue to be published to the instance. (AMPS-4376)
AMPS Version 5.2.0.230 was intentionally skipped

Version 5.2.0.229 (2018-10-16)

  • Fix race condition between concurrent client connect and disconnect that could result in AMPS incorrectly disconnecting a client or crashing. This problem is more likely in instances that process large numbers of simultaneous connections and disconnections. (AMPS-3234, AMPS-3155, Z8338)

Version 5.2.0.228 (2018-10-11)

  • Fix issue that causes AMPS to crash when a definition of a single-topic view that projects from one message type to another contains a filter parameter. (AMPS-4340, Z8324)

Version 5.2.0.227 (2018-10-10)

  • Fix issue where an upgraded clients.ack file may have slabs that are a different size than expected, which would cause an unnecessary increase in memory usage. (AMPS-4327, Z8282)
  • Record client identifiers in the clients.ack only when a publish or sow_delete is received from the client. Previously, AMPS would record the client identifier in this file even if the client never performed an operation tracked in this file. This change can reduce the size of the clients.ack file for some uses of AMPS. (AMPS-4081, Z8282)

Version 5.2.0.226 (2018-10-09)

  • Fix issue where a call to the amps_extract_config_value external API could segfault if the XPath argument did not match a path in the config file. This function is only used in modules and actions that explicitly request information from the configuration file. Installations that do not use this feature are unaffected by this issue. (AMPS-4328, Z8304)
AMPS Version 5.2.0.225 was intentionally skipped

Version 5.2.0.224 (2018-09-27)

  • Fix issue where a message queue could deliver replicated messages out of order. This was caused by AMPS issuing transfer requests for those messages out of order. (AMPS-4301, Z8231)

Version 5.2.0.223 (2018-09-26)

  • Fixed 15-0302 warning logged when the actual length required for an index entry differs from the length estimated based on the input string (for example, indexing values like "1.0" or "007"). This warning was introduced with AMPS-4271. (AMPS-4310)

Version 5.2.0.222 (2018-09-26)

  • Fix issue that could result in AMPS hanging on start up when CPUs are unavailable for use by AMPS. (AMPS-4304, Z8198, Z5240)

Version 5.2.0.221 (2018-09-23)

  • Improve performance of queues when a sow_delete is run with a filter of only 1=1 and no entitlement filter. Previously, AMPS would process each message in the queue, which could require loading those messages from journal files. With this change, AMPS simply removes all messages in the queue without needing to read the messages. (AMPS-4178, Z7964)
AMPS Version 5.2.0.220 was intentionally skipped

Version 5.2.0.219 (2018-09-18)

  • Fix issue that could cause a crash or an unresponsive server when an embedded client was destroyed during entitlement reset. (AMPS-4180, Z7891)
  • Fix issue that causes AMPS to hang while processing a logon message over an SSL transport. (AMPS-4160, Z7891)

Version 5.2.0.218 (2018-09-16)

  • Fix issue that could corrupt memory or cause a crash when creating an index for a SOW topic. The problem occurred when one of the messages in the topic had a single element array for the index field, and the index itself was a specific size. (AMPS-4271, Z8182)

Version 5.2.0.217 (2018-09-13)

  • Improve replication performance by only parsing replicated messages if there is a content filter set for the destination. (AMPS-4266, Z8169)

Version 5.2.0.216 (2018-09-08)

  • Fix issue where a replication destination that has been disconnected and reconnected could cause a cursor to be left behind and prevent journal removal. This could happen when the destination that disconnected and reconnected had previously been identified as having slow replay. (AMPS-4222, Z8104)

Version 5.2.0.215 (2018-09-07)

  • Fix issue that could corrupt a SOW file when the file contained slabs of different sizes. (AMPS-4243, Z8099)

Version 5.2.0.214 (2018-09-02)

  • Fix issue that could cause a crash or an unresponsive server when a client that issues publish, delta_publish or sow_delete commands reconnects after disconnecting. (AMPS-4216)
  • Fix issue that could cause a crash when a client that issues publish, delta_publish or sow_delete commands is disconnected due to a name in use error. (AMPS-4187)

Version 5.2.0.213 (2018-08-29)

  • Improve performance of queues by pruning the deferred acknowledgements list at regular intervals. Previously, deferred acknowledgements were pruned during expiration processing. (AMPS-4206, Z8058)

Version 5.2.0.212 (2018-08-28)

  • Optimized performance of LocalQueues by removing deferred ack processing. Since deferred ack processing is unnecessary for LocalQueues, this change eliminates the unnecessary overhead. (AMPS-4205, Z8058)

Version 5.2.0.211 (2018-08-24)

  • Fix issue that could cause a crash when MIN and/or MAX is used in a view and the data contains equal float and integer values (for example 1.0 and 1). (AMPS-4093, Z7637)

Version 5.2.0.210 (2018-08-21)

  • Fixed regression introduced in AMPS 5.2.0.112 that could cause a crash or yield incorrect results when a conflated subscription is issued with a delta option or an explicit conflation_key. (AMPS-4189, Z8039)

Version 5.2.0.209 (2018-08-20)

  • Fix issue where a wrong last seen sequence number could be returned to a publisher during logon, due to the fact that sow_delete commands for topics that were not recorded in the transaction log were not properly tracked. This could result in a publisher with a persistent publish store assigning the incorrect sequence number for a message, which could cause the message to be rejected as a duplicate. (AMPS-4173)
AMPS Version 5.2.0.208 was intentionally skipped

Version 5.2.0.207 (2018-08-15)

  • Increased throughput of bookmark replay prior to completed ack by using concurrent send instead of using inline send. (AMPS-4003)

Version 5.2.0.206 (2018-08-13)

  • Fix issue in amps_upgrade utility to correctly compute journal entry size. Previously, amps_upgrade would produce a misaligned entry size for sizes that were an even multiple of 256. Recent AMPS versions have stronger data integrity checks, which would cause AMPS to fail to recover a journal that contained an entry with a misaligned entry size. (AMPS-4162, Z7948)

Version 5.2.0.205 (2018-08-09)

  • Fix issue where the sow_and_delta_subscribe command might receive a delta message instead of a full message when the message comes into focus. (AMPS-4119, Z7827)

Version 5.2.0.204 (2018-08-08)

  • Fix issue where a bookmark subscribe could be evicted to a self-paced thread and skip a transaction causing the subscription to miss a message. (AMPS-2958)

Version 5.2.0.203 (2018-08-04)

  • Fix issue where AMPS could produce a core dump on startup if a view definition contains both underlying topic joins and a filter value. This combination of options is not a valid configuration. (AMPS-2621, Z5573, Z6484, Z7162, Z7948)

Version 5.2.0.202 (2018-08-02)

  • Fix issue where unbounded memory growth could occur when a replication connection was not entitled to log on to a downstream instance and continues to retry at a rapid rate. (AMPS-4086, Z7763)

Version 5.2.0.201 (2018-07-31)

  • Fix issue where some commands that use a regular expression to specify the topic did not correctly apply entitlement filters when the entitlement system provided an entitlement filter. This problem affected queue subscriptions, sow query commands (including the sow portion of sow_and_subscribe and sow_and_delta_subscribe), and sow_delete commands when those commands used a regular expression to specify the topics to operate on. Without this fix, when a regular expression was used to specify a topic, a user could potentially retrieve or delete messages that should have been disallowed by an entitlement filter. Access entitlements to the topic were not affected, nor are other commands. Commands that provide a literal topic name were not affected. (AMPS-4113, Z7800)

Version 5.2.0.200 (2018-07-28)

  • Fix issue where the sow sync thread can shutdown AMPS after 300 seconds. Previously, AMPS would queue up to 1024 coalesce operations, each of which could take a few seconds. With this change, AMPS now only enqueues one operation. (AMPS-3971, Z7584)

Version 5.2.0.199 (2018-07-13)

  • Fix issue where publishing a SowKey on a record for a topic that is not specified to use a user-generated sowKey could result in the SowKey on the outgoing message to be set as the SowKey on the publish, rather than the actual SowKey. AMPS now correctly ignores the published user-generated sowKey. (AMPS-4088, Z7766)

Version 5.2.0.198 (2018-07-09)

  • Fix issue where Galvanometer did not properly escape HTML symbols in messages received through the SQL page interface. This could potentially lead to execution of JavaScript code from a message within the browser viewing the Galvanometer. (AMPS-4080, Z7751)

Version 5.2.0.197 (2018-07-06)

  • Fix issue that prevents AMPS from hanging on startup if an index exists for the last journal file in the transaction log. (AMPS-2726)

Version 5.2.0.196 (2018-07-03)

  • Fix race condition that can cause AMPS to crash when an aggregated subscription from a connected client is processed during server shutdown. (AMPS-3115)

Version 5.2.0.195 (2018-07-02)

  • Fix issue with expanding array values where amps_expression_value_as_array would sometimes report erroneous array lengths if a user defined function received an array of length one. (AMPS-4060, Z7680)
AMPS Version 5.2.0.194 was intentionally skipped

Version 5.2.0.193 (2018-06-29)

  • Fix issue where a sow_delete by bookmark for a queue message may arrive before a publish that it corresponds to, either caused by multiple passthrough paths or failover, to be discarded. AMPS now will defer those sow_deletes and hold them up to 1 day periodically checking if they can be processed. (AMPS-4043, Z7652)

Version 5.2.0.192 (2018-06-29)

  • Fix race condition that can cause AMPS to crash when a transaction log replay (bookmark sub, queue sub or replication) is exactly one journal behind and attempts to read from the transaction log shadow memory concurrent to a shadow memory update. (AMPS-4042)

Version 5.2.0.191 (2018-06-26)

  • Fix race condition that could cause a crash on client disconnect if an operation attempted to send data just as the client disconnected. (AMPS-3460, Z6373)

Version 5.2.0.190 (2018-06-25)

  • Added message header information to trace log messages for messages sent by embedded clients and actions. (AMPS-3984, Z7504)

Version 5.2.0.189 (2018-06-23)

  • Fix AMPS configuration file validation that would emit an incorrect warning at startup when more than one 'If' statement is present in an Action block. (AMPS-4050, Z7681)

Version 5.2.0.188 (2018-06-21)

  • Fix various issues where Galvanometer fails to crawl the replication map when a group of instances asynchronously replicates to a single instance. (AMPS-4044, Z7649)
AMPS Version 5.2.0.187 was intentionally skipped

Version 5.2.0.186 (2018-06-20)

  • Fixed issue with amps-action-do-remove-files where compressed journals and journal index files could be removed. This action should be unable to remove any journal files. (AMPS-3197)

Version 5.2.0.185 (2018-06-18)

  • Add the ability to set a failover timeout for replication destinations in the AMPS configuration file. In the Transport for a Replication Destination, the new ReconnectTimeout option specifies the period for which AMPS will retry a given InetAddr before failing over to the next InetAddr. (AMPS-3947, Z7593)

Version 5.2.0.184 (2018-06-17)

  • Fix to more efficiently reclaim memory when messages are buffered in memory for a slow client. This fix improves memory usage in cases where the bytes buffered for a slow client were originally allocated as part of a larger allocation, eliminating a situation where AMPS could unnecessarily retain large amounts of memory. This issue can manifest with a 00-0046 critical error in the AMPS log. (AMPS-3749, Z7005, Z7302)
  • Fixed a problem were AMPS would sometimes initialize the last transaction id value incorrectly causing AMPS not to release a client session. (AMPS-3900)

Version 5.2.0.183 (2018-06-15)

  • Fix issue where specifying a RecoveryPoint of creation for a queue would cause AMPS to recover from that point each time AMPS started, rather than starting from the last processed point in the queue. This could lead to longer recovery times than necessary. (AMPS-4028, Z7619)
  • Fix issue where a RecoveryPoint of creation for a queue could fail to find the correct recovery point in the transaction log, causing AMPS to recover from NOW. This would result in an empty queue. (AMPS-4030, Z7586)

Version 5.2.0.182 (2018-06-12)

  • Fixed issue where host disk statistics would not be populated if the device is a network drive. These drives will now be populated, but some statistics may not be available. (AMPS-1202, Z7473)
  • Fixed issue where disks only used by JournalArchiveDirectory or MessageDiskPath would not have their statistics tracked. (AMPS-3973, Z7473)

Version 5.2.0.181 (2018-06-12)

  • Fix crash that can occur if an aggregated subscription or aggregated SOW query is placed using a regular expression topic that matches a single SOW topic. (AMPS-3002, Z7574)

Version 5.2.0.180 (2018-06-10)

  • Fix possible deadlock that can hang AMPS when the internal data structure that tracks client sequence streams is pruned. (AMPS-4014)

Version 5.2.0.179 (2018-06-09)

  • Fix regression introduced in 5.2.0.112 where AMPS can fail to properly match content filtered subscriptions. This issue only arises when one or more composite messages contain multiple JSON parts and where the non-first JSON part of the message has more than 32 fields are published. (AMPS-4011, Z6351)
AMPS Version 5.2.0.178 was intentionally skipped

Version 5.2.0.177 (2018-06-04)

  • Fix issue where AMPS incorrectly treated transaction log records with a CRC of 0 as corrupt records. Messages with a CRC of 0 were not deliverable or able to be acknowledged by a queue consumer. AMPS now recognizes 0 as a valid calculated CRC value. (AMPS-3988, Z515)
  • Fix issue where amps_journal_dump would terminate early if a CRC was 0. The utility now correctly outputs the record with a CRC of 0 and anything that follows. (AMPS-3989)

Version 5.2.0.176 (2018-06-04)

  • Fix crash that may occur when processing replicated messages on an AMPS instance with delta subscribers. (AMPS-3964, Z7425)

Version 5.2.0.175 (2018-05-30)

  • Fix issue where delta-publishing messages to a message queue with a filter defined was resulting in filter evaluation against the delta instead of the merged message. (AMPS-3950)

Version 5.2.0.174 (2018-05-28)

  • Fix crash that occurs when AMPS fails to parse a replicated message and attempts to acknowledge it. (AMPS-3948, Z7400)

Version 5.2.0.173 (2018-05-27)

  • Fix problem where a queue subscriber that disconnects and quickly reconnects could receive messages from the queue out of order. AMPS will now fully process unsubscribes from the disconnect before allowing commands from the new connection to be processed. (AMPS-3688)
  • Fix to ensure that queue acknowledgements are fully persisted before the queue processes the acknowledgement in memory. Previously, processing happened in parallel which could cause inconsistent state for replicated queues. (AMPS-3698)
  • Fix to improve recovery of a queue when the configuration for a queue that had previously been configured with an explicit RecoveryPoint is changed to remove the RecoveryPoint. Without this fix, AMPS recovers the queue from EPOCH. With this fix, AMPS recovers the queue from the last processed point recorded for the queue in the queues.ack file when the RecoveryPoint is removed. This can substantially improve startup time for large transaction logs on archival storage. (AMPS-3837)
  • Fixed issue where queue message delivery could stall due to a race condition where queue cursors were being split and repositioned. This can be seen when multiple subscriptions are on a single queue. (AMPS-3946)
AMPS Version 5.2.0.172 was intentionally skipped

Version 5.2.0.171 (2018-05-22)

  • Fix issue that could cause replication to incorrectly accept a duplicate message. This could happen when no message from the original publisher had been processed in over an hour, no message from that publisher was present in the last two journal files, and a duplicate publish was then received over replication. This problem was introduced in AMPS 5.2.0.141. (AMPS-3965, Z7415)

Version 5.2.0.170 (2018-05-16)

  • Fix issue where SOW recovery performed an unnecessary delta merge when recovering from the transaction log. Messages in the transaction log are stored using the fully merged message making delta merge processing unnecessary. (AMPS-3584, Z6670)
AMPS Version 5.2.0.169 was intentionally skipped

Version 5.2.0.168 (2018-05-11)

  • Fixed a problem where AMPS NUMA was unable to properly tune itself due to unconventional core and socket numbering on some architectures (e.g. Dell Poweredge servers). (AMPS-3564, z7049)

Version 5.2.0.167 (2018-05-11)

  • Fix crash that occurs when a query that specifies aggregation includes a filter that uses a hash index. This includes queries on the key field of the topic in the SOW as well as IN clause queries that use the hash index. (AMPS-3941, Z7370)

Version 5.2.0.166 (2018-05-10)

  • Fixed a problem where AMPS did not update the last processed transaction log id for a topic in the SOW. This could cause the server to recover the topic from the transaction log when starting, which could take an extended period of time. This problem would also cause AMPS to log a 15-0045 warning regardless of whether the SOW file for the topic was present or not. (AMPS-2615, Z4892)
AMPS Version 5.2.0.165 was intentionally skipped

Version 5.2.0.164 (2018-05-03)

  • Fix for parsing and evaluation of complex expressions in field projections, including enrichment clauses that specify OF CURRENT and multi-part field references (such as [Topic]./field_name). Without this fix, in cases where the value of that field was not otherwise needed during processing, AMPS could evaluate the value of the field as NULL. (AMPS-3935, Z7222)

Version 5.2.0.163 (2018-05-03)

  • Fix problem where disabling a replication transport from the admin interface did not prevent the transport from attempting to reconnect to the destination. (AMPS-3918)

Version 5.2.0.162 (2018-05-02)

  • Fixed an issue where AMPS would crash when a client using the websocket transport specified an unknown message type. This issue was observed when a client connected to AMPS with an unknown message type in the URI and then sent a subscribe, sow_and_subscribe, sow_and_delta_subscribe or delta_subscribe command using that message type. (AMPS-3914, AMPS-2832)

Version 5.2.0.161 (2018-04-30)

  • Improve handling of expressions in aggregated subscriptions. Previously, a projection that calls a UDF with an incorrect number of parameters could cause an AMPS crash. (AMPS-2865)

Version 5.2.0.160 (2018-04-28)

  • Fixed issue with the embedded client that could cause SOW results to be corrupted and could potentially create memory corruption. This issue only occurred with the embedded client, and the most typical symptom was an error parsing the retrieved message. (AMPS-3923, Z7099)

Version 5.2.0.159 (2018-04-28)

  • Fixed issue where sow_and_subscribe with bookmark, oof, and explicit key on the sow would not generate out-of-focus updates for sow_deletes and cause the stream of messages to be out of sync. (AMPS-3648)

Version 5.2.0.158 (2018-04-27)

  • Fixed an issue where SOW store could obtain a null slab and crash AMPS. This issue has been reported infrequently when AMPS is under heavy load. It is caused by a race condition between SOW data store and an update to a stored message that causes the message to grow in size. The error code in the logs associated with this issue is 15-0200. (AMPS-3387, Z6244)

Version 5.2.0.157 (2018-04-26)

  • Fix issue where publishing null values in a BSON message resulted in the parser skipping the field. This was most noticeable when using delta_publish to replace an existing field value with a null value, or when using enrichment with the HINT OPTIONAL directive. (AMPS-3908, Z7292)

Version 5.2.0.156 (2018-04-24)

  • Fix issue with establishing SSL connections from some SSL implementations. The symptom of this problem is that a client using SSL would be unable to create a connection and log on to AMPS. (AMPS-3888)
  • Fix problem where SSL connections could wait forever in response to renegotiation. AMPS will now time out SSL connections in this state, allowing the connection to be re-established. (Z6724, AMPS-3655)
AMPS Version 5.2.0.155 was intentionally skipped

Version 5.2.0.154 (2018-04-23)

  • Fixed an issue where disabling coalesce for a SOW topic that is backed by a transaction log could cause messages for that topic to be corrupted. (Disabling coalesce for a topic is a workaround that had been provided by 60East support on infrequent occasions on older versions of AMPS using slow storage for high-volume topics with large variation in numbers of active keys.) (AMPS-2881, Z5048)

Version 5.2.0.153 (2018-04-20)

  • Fixed amps_expression_value_as_array in AMPS Server API. Previously, when a non-array or empty array was passed as input, the length returned was not predictable, which could produce incorrect results or crash. (AMPS-3880, Z7244)

Version 5.2.0.152 (2018-04-18)

  • Fix issue where AMPS could crash when a composite message that contains a binary part is being enriched. (AMPS-3875, Z7232)

Version 5.2.0.151 (2018-04-17)

  • Fix issue causing incorrect results of field comparisons performed during enrichment and preprocessing expressions. (AMPS-3866, Z7222)
  • Eliminate unnecessary re-parsing of messages for topics configured with enrichment but without preprocessing. (AMPS-3246)

Version 5.2.0.150 (2018-04-16)

  • Fix field expression parsing to correctly handle whitespace in an aggregation projection. Previously, whitespace in the projection expression could cause field references to always evaluate to NULL. (AMPS-3681)

Version 5.2.0.149 (2018-04-13)

  • Changed the matches count on a stats ack for an aggregated subscription to be the number of groups created in the aggregation. Previously it was the number of underlying topic rows matching the query filter. (AMPS-3539, Z6461)

Version 5.2.0.148 (2018-04-12)

  • Fix issue where inbound and outbound replication transports were being reported in the admin interface under /amps/instance/transports. Only the listening transport will now be reported. (AMPS-2631)

Version 5.2.0.147 (2018-04-11)

  • Fix issue with message queues where acknowledging large numbers of messages that are not currently in the queue could cause the message queue admin thread to report a "potential stuck thread" warning and produce minidumps. This symptom was reported when providing acknowledgements for 100K messages with a single command. (AMPS-3820, Z7195)
AMPS Version 5.2.0.146 was intentionally skipped

Version 5.2.0.145 (2018-04-06)

  • Fix problem that could cause an SSL handshake timeout for WebSocket connections when the initial GET request was larger than 4096 bytes. (AMPS-3818, Z6351)

Version 5.2.0.144 (2018-04-06)

  • Fix to verify that for a queue, the Queue topic itself and any UnderlyingTopic are included in the transaction log. Previously, if the UnderlyingTopic was included in the transaction log, AMPS would allow the configuration even if the Queue topic itself was not in the transaction log. AMPS now produces an error if the Queue topic is not in the transaction log. (AMPS-3470, Z7118)

Version 5.2.0.143 (2018-04-04)

  • AMPS now includes a CRC32() function. (AMPS-2911, AMPS-2916, AMPS-3803, Z7141)

Version 5.2.0.142 (2018-04-02)

  • Fix issue where it was possible to strand messages in a queue in the event that a client with a queue subscription quickly replaces the same subscription multiple times while the subscription has messages leased. When this happened, the messages could still be acknowledged, but the lease would not be broken if the client disconnected/unsubscribed. The result was that if the subscriber that held the lease did not acknowledge the message, the message would not be delivered to another subscriber until the lease period expired, even if the current subscription would not match the message. (AMPS-3759)

Version 5.2.0.141 (2018-03-31)

  • Fix issue where a high rate of client logons can negatively impact transaction log throughput resulting in degraded bookmark replay and replication throughput. The fix also addresses replication throughput degradation resulting from a high volume of logons that publish one or more messages that are replicated. (AMPS-3754)

Version 5.2.0.140 (2018-03-28)

  • Fix problem where publishing to a topic that is not included in the transaction log in an instance that uses a transaction log could cause delays for the last persisted acknowledgement for a sequence of publishes. AMPS now correctly delivers the persisted acknowledgement. (AMPS-3553)

Version 5.2.0.139 (2018-03-24)

  • Fix issue that could cause log_replay spark command to publish empty messages when the publish command in the error logs contained a sequence number. (AMPS-3755)
AMPS Version 5.2.0.138 was intentionally skipped

Version 5.2.0.137 (2018-03-20)

  • Fix issue that could cause transaction log recovery to fail when the metadata in a journal file is corrupted to produce an invalid journal size. (AMPS-3538, AMPS-3357)

Version 5.2.0.136 (2018-03-15)

  • Fix issue with RequiredMinimumVersion configuration check to support specifying hotfix versions with triple-digit version components. Previously, only the first two digits of each version component were being used in the version check, potentially leading to an incorrect comparison. (AMPS-3710, Z6975)

Version 5.2.0.135 (2018-03-12)

  • Reduce the volume of logging error code 31-0006 generated when a replicated message queue requests a transfer from a remote instance that is down or disconnected. Warnings will now be logged at a maximum rate of one warning per second. (AMPS-3727, Z7016)

Version 5.2.0.134 (2018-03-09)

  • Decrease the memory footprint of large views with a large number of projection clauses. (AMPS-3604, Z6634)
  • Fix issue where AMPS was creating false minidumps for view update processing threads during startup. (AMPS-3574, Z6634)

Version 5.2.0.133 (2018-03-02)

  • Fixed issue where in some cases SOW queries that only have a single result of execution set the batch_size on the reply to the batch size provided on the command, rather than the setting it to 1 (the number of messages actually returned). (AMPS-3403, Z6239)

Version 5.2.0.132 (2018-03-01)

  • Fixed amps_expression_value_is_bool in AMPS Server API to correctly identify boolean variables. (AMPS-3618, Z6620)

Version 5.2.0.131 (2018-02-28)

  • Fixed optimization in amps_upgrade utility, to simply copy non-transactional sow files, when they use the target sow file format. Previously, these sow files would go through an unnecessary conversion process. Transactional sow files already used the optimized process. (AMPS-3684)
  • Fix issue in sow file recovery of upgraded sow files, from AMPS versions prior to 4.3.2.36, that would not properly "invalidate" the end of a slab, causing AMPS to log warnings and errors of CRC corruption. (AMPS-3684)

Version 5.2.0.130 (2018-02-27)

This version fixes the following issues:

  • Fixed issue where AMPS could crash when an embedded client (the amps-action-do-publish-message action or a custom module) published a message of composite or protobuf message type and trace logging of publishes was enabled. Only internal publishes from embedded clients are affected. (AMPS-3674, Z6776)

Version 5.2.0.129 (2018-02-22)

This version fixes the following issues related to queue delivery:

  • Fix queue issue where message delivery could stall if no consumers matched the message at the head of the queue. (AMPS-3660)
  • Fix queue subscription race condition where a queue subscription could stop receiving messages when the subscription for the queue was replaced at the same time AMPS is processing a sow_delete acknowledging a message leased to that subscription. (AMPS-3670)
  • Optimize bi-directional AMPS connections to wait to disconnect until the initial resync between the instances has completed. Waiting until resync completes eliminates a delay in delivering messages from a queue when an instance starts. (AMPS-3412)
AMPS Version 5.2.0.128 was intentionally skipped

Version 5.2.0.127 (2018-02-20)

  • Optimize sow expiration processing to execute more accurately and reduce memory consumed. (AMPS-3573)

Version 5.2.0.126 (2018-02-17)

  • Fix issue when AMPS incorrectly identifies a SOW topic with regular expression characters as a transactional topic. (AMPS-3668, Z6838)
AMPS Version 5.2.0.125 was intentionally skipped

Version 5.2.0.124 (2018-02-15)

  • Fix race condition introduced in fix for AMPS-3573 (5.2.0.112) that can lead to a crash during sow query execution in the presence of high velocity concurrent sow inserts to the topic of the query. (AMPS-3671).

Version 5.2.0.123 (2018-02-14)

  • Fix crash when a SOW query that uses aggregation is canceled (typically due to the client disconnecting) as AMPS is sending the final results to the client and when the cancellation is not fully processed until after the results were sent. This problem required very specific timing, and was most often seen when large numbers of clients were disconnected unexpectedly (for example, due to network instability). (AMPS-3643, Z6792, Z6844)

Version 5.2.0.122 (2018-02-13)

  • Fix crash when a JSON SOW topic that is configured to perform preprocessing receives a delta_publish command. (AMPS-3661, Z6835)

Version 5.2.0.121 (2018-02-13)

  • AMPS now includes a ARRAY_TO_STRING function for formatting an array as a string, with optional delimiters and null substitution. (AMPS-2834)
  • AMPS embedded message parser (used by the embedded client for extension modules) now supports array parsing. Previously, arrays were presented as single values. (AMPS-3250, Z5697)

Version 5.2.0.120 (2018-02-10)

  • Fix crash when a client attempts to execute a sow_and_subscribe replace with OOF where the topic is changed. (Z6808, AMPS-3651).

Version 5.2.0.119 (2018-02-10)

  • Fix race condition between client unsubscribe 'all' and client disconnect that can lead to unexpected behavior or memory corruption. In some cases, this is observed as glibc double free message logged to stderr. (AMPS-3646)

Version 5.2.0.118 (2018-02-08)

  • Fix array handling when processing delta_publish for a topic that uses enrichment. Without this fix, if the previous state of a message contained an array value, the merged message would only retain the first element of that array. With this fix, the full array is preserved. (AMPS-3638, Z6793)

Version 5.2.0.117 (2018-02-07)

  • Fixed issue where the binary message type could not be part of an enriched message. (AMPS-3610, Z6717)

Version 5.2.0.116 (2018-02-06)

  • Fix issue where AMPS would fail to start and log message15-0078 stating SOW slabs do not fit in the file. This issue happened when the SlabSize of the SOW had been changed at some point in the past without removing the SOW file. This issue was caused by incorrect management of empty slabs, and did not affect data in the SOW file. (AMPS-3601, Z6698, Z6640)

Version 5.2.0.115 (2018-02-02)

  • The STRFTIME and STRPTIME functions now support format specifier %f to format microseconds, and %03f to format milliseconds. (AMPS-2820, AMPS-3203, Z6758)

Version 5.2.0.114 (2018-01-31)

  • Fix race condition between a message queue unsubscribe (either direct or from client disconnect) and replicated message queue transfer processing that can cause AMPS to crash. (AMPS-3608)

Version 5.2.0.113 (2018-01-31)

  • This release contains various fixes and improvements to the AMPS Galvanometer (graphical web interface):

    • Auto-refresh option in the Graph Builder.
    • Refresh button on the Replication page.
    • Improved user experience with Replication Matrix on the Replication page.
    • New Query and Subscribe mode on the SQL page. (AMPS-2586)
    • New/Update/Delete animations added for SQL page result rows.
    • Galvanometer prevents potentially destructive SQL queries. (AMPS-2580)
    • Message details available for each message on the SQL page.
    • SOW data parsing error causes the SOW page to hang. (AMPS-2904, Z6747, Z5258)
    • Sow Key / Timestamp column name on the SQL page. (AMPS-2539, Z4747)
    • Replication map crawling issues. (AMPS-2704, AMPS-2788, Z4982, Z5005, Z5148)
    • Graph Builder rounds floating values. (AMPS-2587)
    • Overview / Host graph are falling behind due to a lag that is caused by the time that takes to load data. (AMPS-2860, Z5209)
    • Replication page does not restore previously selected tab.
    • Messaging widget shows matches_found_per_sec as the out value. (AMPS-2577)
    • AdBlock detection added to prevent random Galvanometer issues. (AMPS-2871, Z5219)

Version 5.2.0.112 (2018-01-30)

  • This release contains various changes to memory management to reduce memory growth and overall memory consumption:

    • The memory for SOW query results will use a special high performance slab allocator instead of using a memory cache. This change allows large queries that need a lot of memory to allocate the required memory but return it to the operating system after the results have been delivered. (AMPS-3335, AMPS-3494)
    • The management and processing of SOW expirations has been changed which greatly reduces the memory requirement, especially for expirations that are greater than a few minutes. The biggest benefit will be observed by use cases where the expiration is days or weeks or when the expirations are greater than 60 seconds but the data has a relatively high update frequency. (AMPS-3573)
    • Improved execution of sow delete by query for topics that are not backed by a transaction log and for which no internal notification is required (that is, where the topic does not have a hash index, is not the underlying topic for a view or conflated topic and where there are no "oof" enabled subscriptions). Previously, AMPS was incorrectly creating internal messages for each delete. This slowed down execution and unnecessarily used memory. (AMPS-3591)
    • Reduced per thread "byte out buffer" memory cache's max cache size from 1GB to 64MB. This helps lower overall memory footprint on large core count boxes. Beyond 64MB, a special high performance slab allocator is used that returns memory to the operating system after use. (AMPS-3556)

Version 5.2.0.111 (2018-01-26)

  • Fix an issue that could cause queries using dynamic aggregation with a content filter to include messages that do not match the filter, in the query results. This can occur when multiple queries are batched and executed together by the AMPS server. (AMPS-3607)
AMPS Version 5.2.0.110 was intentionally skipped

Version 5.2.0.109 (2018-01-24)

  • Fix an issue where Galvanometer required a third party cloud service to save Graph Builder output as PDF, PNG, JPG or SVG. You can now download all said formats while being offline. (AMPS-3567, Z6656)

Version 5.2.0.108 (2018-01-17)

  • Fix issue where AMPS incorrectly performed OOF processing on the first insertion of a message into a topic in the SOW. This fix both improves performance and eliminates incorrect oof messages that had been produced when a subscription filter matched an empty message. OOF processing for updates to existing messages is unaffected by this change. (AMPS-3245, Z5310)

Version 5.2.0.107 (2018-01-14)

  • Fix issues with large numbers of concurrent logons. This problem could cause two different symptoms:
    • The on-publish action was causing a new client to be logged on each time it was executed. This flooded the log with 1F-0004 messages. (AMPS-3359, Z6641)
    • Applications that use many concurrent short-lived clients could create a situation where a publish message could be incorrectly identified as having been received from a publisher that had not logged on. This problem would record large numbers of 1F-0004 messages as well as 02-0011 messages. (AMPS-3568, Z6605, Z6659)

Version 5.2.0.106 (2018-01-12)

  • This release contains the following customer-requested improvement that may require a change to monitoring thresholds for message queues:

    • The seconds_behind admin counter for queues now shows the age of the oldest unacknowledged message rather than the age of the oldest message that is both unacknowledged and unleased. This change should provide a more consistent seconds_behind for replicated queues. This also prevents a situation where a problematic message is preventing journal removal and the seconds_behind metrics are high for instances of the queue that do not own (and therefore do not lease) the message, but low (or 0) for the queue that owns the message. This was misleading and made troubleshooting problems with processing messages more difficult. (AMPS-3540)

Version 5.2.0.105 (2018-01-09)

  • Fix issue where a queue message may fail to transfer if the message has already been transferred, and the current owning instance is shut down and restarted before it attempts to transfer again. (AMPS-3550)

Version 5.2.0.104 (2018-01-07)

  • Fix crash that can result from improved transfer algorithm (AMPS-3535) when a message queue becomes empty. (AMPS-3545)
AMPS Version 5.2.0.103 was intentionally skipped

Version 5.2.0.102 (2018-01-01)

  • Improve replicated message queue delivery performance by allowing message queue delivery to proceed for locally-owned messages when waiting for transfer of remotely-owned messages. This may result in out of order message delivery when queue consumers are receiving from multiple instances and queue publishers are publishing to multiple instances. (AMPS-3535, Z6352)
  • Reduce usage of file descriptors when re-delivering message queue messages. This prevents a situation where AMPS could run out of file descriptors. (AMPS-3525, Z6352)

Version 5.2.0.101 (2017-12-31)

  • Fix possible deadlock in queues when an AMPS instance requesting a transfer is not directly connected to the instance that owns the message. (AMPS-3536, Z6556)

Version 5.2.0.100 (2017-12-29)

  • Fix response to out of space errors for the transaction log journal directory during runtime and upon recovery. In certain out of space scenarios AMPS could shutdown and not be able to successfully restart until the last index file for the transaction log was removed (transaction log data itself was not affected). With this fix, AMPS will attempt to remain running as long as possible, and will correctly write index files. (AMPS-2994, Z5698, Z5448)
  • Fix startup bug where if one of the last two journals had one or more corrupted records then AMPS would fail to start. (AMPS-3001)

Version 5.2.0.99 (2017-12-23)

  • Fix race condition that can cause transaction log entries for publishes to SOW topics with external keys to be reported as having CRC corruption. (AMPS-3278, Z6150)

Version 5.2.0.98 (2017-12-22)

  • Fix possibility of bookmark subscriptions being incorrectly resumed when a replace command is sent while the subscription is paused. (AMPS-2968)

Version 5.2.0.97 (2017-12-21)

  • Fix possibility of crash on the logging of removal of journals. (AMPS-3355)

Version 5.2.0.96 (2017-12-21)

  • Ensure startup actions are fully processed before accepting client connections. This fix prevents the potential for internal clients, including on- actions, to miss messages between AMPS startup and subscriptions being placed. (AMPS-2983, Z5318)

Version 5.2.0.95 (2017-12-20)

  • Fix message corruption caused by simultaneous delta_publish and topic enrichment executing on the same topic. (AMPS-3522, Z6489)

Version 5.2.0.94 (2017-12-19)

This release contains fixes for the following issues:

  • Fix failure to request transfers for filtered queue subscriptions on replicated queues resulting in messages not being delivered when consumers with available backlog are present. (AMPS-3508, Z6547)

Version 5.2.0.93 (2017-12-16)

This release contains fixes for the following issues:

  • Fix async replication seconds_behind stat where it can report incorrect values when the AMPS Admin Interval is greater than 2 seconds. (AMPS-3516, Z6500)

Version 5.2.0.92 (2017-12-15)

This release contains fixes for the following issues:

  • Fix internal data structure implementation that could lead to AMPS becoming unresponsive with large message queues (300-600+ million messages). (AMPS-3498, Z6450)

Version 5.2.0.91 (2017-12-14)

This release contains fixes for the following issues:

  • Fix crash caused by use of freed sow topic metadata memory in dynamic aggregation query compilation. (AMPS-3499, Z6404)

Version 5.2.0.90 (2017-12-11)

This release contains fixes for the following issues:

  • Fix the match count on SOW query stats message that sometimes returns a number greater than topic match count. (AMPS-2521, Z6302, Z6435, Z6445)

Version 5.2.0.89 (2017-12-11)

This release contains fixes for the following issues:

  • Fix possibility for premature removal of journals when an async replication link is disconnected, new journals are produced and AMPS restarts. (AMPS-3467)

Version 5.2.0.88 (2017-12-07)

This hotfix contains fixes for issues that customers have reported with distributed message queues in multi-instance mesh configurations as well as fixes to improve queue administration and monitoring.

This release contains fixes for the following issues:

  • Fixed server-assigned sequence numbers to eliminate incorrect duplicate detection in a mesh configuration. Previously, if a client published messages with server-assigned sequence numbers on one instance, then failed over to a second instance and published another message with a server-assigned sequence number before the messages from the first instance were replicated to the second instance, the messages published to the first instance could be incorrectly identified as duplicates. This was most commonly seen with clients that only publish sow_delete messages used for queue acknowledgements, and could result in messages stranded in a queue. This change creates independent sequence number series for each client/instance combination, which preserves ordering and allows duplicate detection to work as designed. This change also improves sequence numbering for queue ownership transfer messages, preventing incorrect duplicate detection on those messages, as well. (AMPS-3457)

  • Added instance name to replication path to more accurately terminate replication loops. Previously, AMPS was using the group name to identify loops, but in a mesh configuration with queues, AMPS must consider the instance name to determine if a loop has occurred. This change is fully backward compatible. (AMPS-3476).

  • Fixed a bug in message queue sow delete processing where it was possible for a sow_delete to be received and not processed. This occurs in situations where a sow delete for a non-existent queue topic is received followed by a sow delete for a defined queue topic. (AMPS-3477)

  • Added a bookmark option to sow queries on message queue topics. When this option is provided on a query, the bookmarks for the messages in the queue are returned in the query results. This makes it possible to browse a queue and obtain bookmarks that can be used to remove messages from the queue. (AMPS-3463)

  • Removed configuration validation warnings when regular expressions appear in both the underlying topic definition for a queue and the replication configuration. (AMPS-3408)

  • Added missing client_name_hash to replication publish and sow delete trace log messages. (AMPS-3478)

  • Added queue ownership statistics to track number of messages owned by the queue, number of messages transferred out and number of messages transferred in. (AMPS-3479)

Version 5.2.0.87 (2017-12-06)

This release contains fixes for the following issues:

  • Improved client disconnect logging (07-0013) to include the peer name and disconnect type for a disconnected client. (AMPS-3255, Z5885)

Version 5.2.0.86 (2017-12-04)

This release contains fixes for the following issues:

  • Changed automatic client sequence number generation in the AMPS server to ensure that messages are always unique and never observed as duplicates in failover scenarios. Automatic sequence number generation is used when a client does not provide a sequence number on a publish, delta_publish or sow_delete command. (AMPS-3457, Z6373)

Version 5.2.0.85 (2017-12-03)

This release contains fixes for the following issues:

  • Fix condition that could cause a deadlock in connections that use SSL. (z6251, AMPS-2741, AMPS-2825)
AMPS Version 5.2.0.84 was intentionally skipped

Version 5.2.0.83 (2017-11-30)

This release contains fixes for the following issues:

  • Fixed issue that could cause a SOW file to grow on startup in cases where the host does not have enough free memory during startup to hold the contents of the SOW. (AMPS-3410, Z6063)

Version 5.2.0.82 (2017-11-28)

This release contains fixes for the following issues:

  • Fix three issues where a replicated message queue may fail to deliver messages when the queue is replicated across more than two AMPS instances. (AMPS-3428, AMPS-3405, AMPS-3404)
  • Fix issue where sow_delete of a message queue message occasionally did not result in removal of the message until the instance was restarted. (AMPS-3438)
  • Add critical error 31-0011 when an inconsistency is discovered between internal message queue metadata. (AMPS-3424)
  • Add journal location to message queue diagnostics dump. (AMPS-3435)
  • Add new --journal-extents option to amps_journal_dump utility, and allow message bookmarks to be printed when using the --no-data option. (AMPS-3424)
  • Add new utility amps_journal_search for quickly locating journal entries by transaction id, bookmark, or data. (AMPS-3434)

Version 5.2.0.81 (2017-11-22)

This release contains fixes for the following issues:

  • Ensure that message enrichment and preprocessing rules are only applied when a message is first published or updated to an AMPS instance, not when the message is received through replication. (AMPS-3254)
  • Fix issue where message enrichment results were not always written to the transaction log. (AMPS-3042)
  • Additional fixes to improve the replication pacing algorithm to achieve more consistent throughput. (AMPS-3157)
  • Improve performance of preprocessing and enrichment in cases where the preprocessing or enrichment step does not result in changes to the message. (AMPS-2805, AMPS-2806)
AMPS Version 5.2.0.80 was intentionally skipped
AMPS Version 5.2.0.79 was intentionally skipped
AMPS Version 5.2.0.78 was intentionally skipped

Version 5.2.0.77 (2017-11-19)

  • This release contains the following fixes:
    • Fix issue where view processing thread would not update the thread monitor during view updates, which could cause stuck thread messages to be logged. (AMPS-3413)

Version 5.2.0.76 (2017-11-15)

This hotfix contains fixes for issues that customers have reported with message queues.

This release contains fixes for the following issues:

  • Fix issue where queue cursors failed to advance when there were no messages arriving for the queue. The result was that the cursor would remain in the journal with the last message received for the queue, preventing journal removal even when all messages were acknowledged. (AMPS-3241)
  • Fix issue that could result in queue delivery stopping when multiple queues with different message types are simultaneously consumed. (AMPS-3299)
  • Fix issue where sow_delete by filter for messages in a queue does not successfully return all messages to the queue. (AMPS-2863)
  • Fix issue where a sow query that included a bookmark for a queue (which is not a supported command) could cause AMPS to exit. Attempting to run this command now reports an error. (AMPS-3058)
  • Improve accuracy of queue_depth statistics for at-most-once queues during message processing. Previously, the statistics were updated when a client acknowledged the message to update the available backlog for the client. With this fix, the statistics are updated as soon as the message is delivered, which is more accurate since the message will not be delivered again. (AMPS-3135)
  • Fix potential memory issue when a queue consumer is experiencing rapid connect/disconnect cycles. (AMPS-3285)
  • Fix issue where enabling proxied transfer could make a message end up in an undeliverable state. This could happen when the instance originally owned the message, but does not currently own the message (due to having previously processed a transfer request for the message). With this fix, the instance correctly processes the proxied transfer and delivers the message. (AMPS-3289)
  • Fix issue where AMPS might not re-send a transfer request sent over a replication connection that immediately disconnects after the first request is sent. (AMPS-3275)
  • Fix issue where AMPS could process and log a duplicate sow_delete command if that command was the last message received from a client before restart and the first message received from a client after recovery. With this fix, AMPS duplicate detection now tracks sow_delete messages during recovery as well as during normal operation. (AMPS-3393)
  • Fix issue where repeated transfers could lose track of message ownership, resulting in undeliverable messages. This problem is dependent on replication topology. (AMPS-3399)
  • Fix bug in seconds_behind statistics for replicated queues. Previously, when queue messages were processed from another replicated instance, seconds_behind would not be correctly updated. This could result in a completely empty queue showing a large seconds_behind. (AMPS-3136)
  • Fix queue_depth statistics to correctly skip messages that are expired when AMPS starts. This could result in a queue_depth never reaching zero, even when no messages were in the queue. (AMPS-2729)
  • Fix issue where a queue subscription that specifies a regular expression topic would not set max_backlog correctly and use the default value of 1. (AMPS-3385, Z6193)

This hotfix contains the following performance improvements:

  • Improve performance when replaying from the transaction log by reducing reads from storage when the data needed is already in a memory buffer. (AMPS-3181)
  • Improve performance of message delivery processing for at-most-once queues. (AMPS-3090)
  • Improve queue performance and reduce cases where the message processing thread can report pushback in the messaging pipeline (2A-0007 messages for the message queue processing thread). This fix allows the data structure that tracks queue messages to be resized in parallel with other operations. (AMPS-3202)
  • Improve performance when processing replication acknowledgement messages. This has the effect of improving performance of transfer requests for queue messages. (AMPS-3167)
  • Improve performance of transfer requests for queue messages by streamlining internal processing and allowing an instance to request multiple messages for transfer. (AMPS-3162, AMPS-3168)
  • Improve performance of sow_delete with a filter for message queues. (AMPS-3212)
  • Improve queue performance by optimizing data structures used for queues and avoiding a case where sow_delete processing could take more time than necessary. (AMPS-3192)
  • Improve routing for queue transfer messages. With this change, if the requesting instance is directly connected to the owning instance, the requesting instance will send the transfer message directly to the owning instance, even in cases where the message itself arrived via a different route. (AMPS-3294)
  • Improve performance and reduce memory footprint for message queue expiration data. (AMPS-3207)
  • Reduce the number of memory maps created when consuming messages from a queue. Previously, map fragmentation could cause the number of maps used to grow rapidly as memory was released when messages were consumed. With this change, AMPS manages maps to prevent fragmentation and reduce the overall number of maps required. (AMPS-3280)

This release contains the following improvements for logging and diagnostics:

  • Improve logging message for queue initialization (31-0001). With this change, the queue logs comprehensive information about the configuration of the queue. (AMPS-3239)
  • Adds on-demand diagnostic logging for queues. With this change, AMPS adds a resource to the administration path of the administrative console that allows an administrator to trigger an on-demand log message that records information about the current state of the queues in the instance. Triggering this action does not change the logging configuration. To record the log message, AMPS must be configured to record info level log messages or record message 31-0010. (AMPS-3319)
  • Improve accuracy of log messages that record remaining message count when messages are expired from a queue. (AMPS-3286)

Version 5.2.0.75 (2017-11-14)

  • This release contains the following fixes:
    • Fix bug that could cause AMPS to crash when a publish occurred to a transaction-backed SOW topic with regular expression characters in the name. (AMPS-2885, Z5072, Z5080, Z6210)
    • Fix bug that could cause replication to ignore transaction-backed SOW topics with regular expression characters in the name. (AMPS-2885, Z5130, Z5001)

Version 5.2.0.74 (2017-11-13)

  • This release contains the following fixes:
    • Increase local queue performance. (AMPS-3132, Z6217, Z5953, Z6223, Z6141)
    • Fix issue where sow_delete commands can be recorded out of order, which prevents the sow_delete from being correctly replicated. This affects both delete commands from SOW topics and queue acknowledgements. (AMPS-3354, AMPS-3367, Z6159, Z5581, Z6223, Z6141)

Version 5.2.0.73 (2017-11-9)

  • This release contains the following fixes:
    • Fix issue that could cause AMPS to exit with error code 00-0041 while processing NULL values in views that used multiple topics. (AMPS-3376, Z5644)

Version 5.2.0.72 (2017-11-1)

  • This release contains the following fixes:
    • Fix BSON delta_publish to correctly serialize array data in messages. Previously, arrays in BSON messages would be serialized as NULL if a delta_publish changed the array value. (AMPS-3267)

Version 5.2.0.71 (2017-10-27)

  • This release contains the following fixes:
    • Improve the replication pacing algorithm to achieve more consistent throughput. (AMPS-3157)

Version 5.2.0.70 (2017-10-25)

  • This release contains the following fixes:
    • Fixed issue where a JSON string with an embedded { or } symbol inside of a JSON sub-document could result in AMPS failing to parse the message. (AMPS-3050, Z5984)

Version 5.2.0.69 (2017-10-23)

  • This release contains the following fixes:
    • Fixed issue with delta_publish of JSON messages where adding new fields in the delta message could cause some fields to be missing in the final result. (AMPS-3295, AMPS-3301, Z6075, Z6084)

Version 5.2.0.68 (2017-10-22)

  • This release contains the following fixes:
    • Fixed issue where stale heartbeat timestamps could cause clients to be disconnected for exceeding the ClientMessageAgeLimit threshold. (AMPS-3275, Z5941, Z5983)
    • Fixed issue where storage-imposed delays writing to offline files can cause clients to be disconnected due to missed heartbeats. (AMPS-3244, Z5829)

Version 5.2.0.67 (2017-10-18)

  • This release contains the following fixes:
    • Fixed issue where querying a conflated topic could return incorrect results when the underlying topic specified a hash index and the query on the conflated topic would have used that hash index. (AMPS-3262, Z5940)

Version 5.2.0.66 (2017-10-14)

  • This release contains the following fixes:
    • Fixed issue where replication with compression enabled could be unnecessarily slowed due to incorrect processing. (AMPS-3180)

Version 5.2.0.65 (2017-10-10)

  • This release contains the following fixes:
    • Fixed amps-action-do-downgrade-replication to start tracking the configured grace period only after AMPS initialization is completed. This change helps prevent premature replication link downgrade. (AMPS-3170)
    • Improve tracking of durability for subscriptions that use the fully_durable option. (AMPS-2880)

Version 5.2.0.64 (2017-09-20)

  • This release contains the following fixes:
    • Added STRPTIME function to AMPS. STRPTIME takes a string representing a time and a string containing the format in which the time is represented, then returns a double that contains the UNIX_TIMESTAMP value for the provided time. (AMPS-3161, Z5830)

Version 5.2.0.63 (2017-09-15)

  • This release contains the following fixes:
    • Fixed crash when multiple hash-index sow_deletes execute at the same time. (AMPS-3159, Z5814)

Version 5.2.0.62 (2017-09-13)

  • This release contains the following fixes:
    • Fixed issue that leaked memory when a transport disconnects a client, resulting in memory growth over time. (AMPS-3154, Z5793)

Version 5.2.0.61 (2017-09-04)

  • This release contains the following fixes:
    • Fixed issue where hash index was not rebuilt properly after a sow compaction is executed. This can result in incorrect sow query results when the query uses the hash index. (AMPS-3134)

Version 5.2.0.60 (2017-09-01)

  • This release contains the following fixes:
    • Fixed regression in AMPS 5.2.0.55 that could cause a crash when multiple threads would be using the ID chaining SOW key generator. (AMPS-3130, Z5310)

Version 5.2.0.59 (2017-08-31)

  • This release contains the following fixes:
    • Performance improvements to I/O on some Linux distributions (work around for performance degradation when O_DIRECT is used). (AMPS-2502)

Version 5.2.0.58 (2017-08-30)

  • This release contains the following fixes:
    • Fixed issue in replication replay pacing that could cause replication replays to run slowly. (AMPS-3005, Z5428)

Version 5.2.0.57 (2017-08-27)

  • This release contains the following fixes:
    • Fixed issue where a hash index query, after a SOW compact is executed, can cause AMPS to crash. (AMPS-3110, Z5380)

Version 5.2.0.56 (2017-08-24)

  • This release contains the following fixes for queue messages:
    • Fixed issue that could cause message expiration to be bypassed when the queue is busy. (AMPS-3077,Z5634)
    • Fixed race condition in processing replicated queue acknowledgements and publish messages that could result in unexpected ordering. (AMPS-3078, Z5634)
    • Fixed issue that would prevent a subscription on an at-most-once queue to be replaced. (AMPS-3088,Z5650)
    • Fixed a potential ordering problem where a transfer request could be processed before the publish that introduces the message to be transferred, resulting in the transfer being ignored. (AMPS-2949)
    • Allow AMPS 5.0.0.X and 5.2.0.X to handle replication transfer messages from AMPS 5.2.1.X. (AMPS-3073)
    • Fixed issue that could result in duplicate queue message transfer requests causing a queue deadlock. (AMPS-2947)

Version 5.2.0.55 (2017-08-17)

  • This release contains the following fixes:
    • Support up to 8 chaining keys in the ID chaining SOW key generator module. (AMPS-3026)
    • Fix issue that could lead to incorrect offlining or disconnection of a client with a conflated subscription. This issue would also cause queued_bytes_out metrics for that client to be inaccurate. (AMPS-2995)
    • Fix issue that can cause AMPS to hang during restart due to deadlock when inserting to an internal data structure. (AMPS-3068)
AMPS Version 5.2.0.54 was intentionally skipped

Version 5.2.0.53 (2017-08-08)

  • This release contains the following fixes:
    • Message queue recovery performance is improved. (AMPS-2918)

Version 5.2.0.52 (2017-08-07)

  • This release contains the following fixes:
    • Remove fatal abort if SOW recovery detects a SOW file size that is not a multiple of system page size. (AMPS-2984)
    • Fix issue that could cause loss of data in a SOW file upon compaction or recovery. (AMPS-2937, Z5415)
    • Fix issue that could cause loss of data in a SOW file upon detection of CRC corruption during recovery. (AMPS-2986)

Version 5.2.0.51 (2017-08-04)

  • This release contains the following fixes:
    • Prevent amps-action-on-message-condition-timeout from running more than once for the same message unless that message has gone out of focus and come back into focus. Previously, a change to the message could cause amps-action-on-message-condition-timeout to start tracking the message again, and run actions again. (AMPS-2990,Z5310)

Version 5.2.0.50 (2017-08-04)

  • This release contains the following fixes:
    • Fixed issue that could cause AMPS to crash when rebuilding a view in cases where the view used a SOW topic being recovered from the transaction log and the transaction log recovery contained both publish and sow_delete messages. (AMPS-3007, Z5473)

Version 5.2.0.49 (2017-08-03)

  • This release contains the following fixes:
    • Fixed issue where the TODAY_UTC() and DATE_UTC() UDF functions were not properly setting the time within the UTC day to midnight. (AMPS-3017, Z5495).

Version 5.2.0.48 (2017-08-02)

  • This release contains the following fixes for out-of-focus messages:
    • Fixed issue where a bookmark replay thread could get stuck when handling an OOF message. (AMPS-3011, Z4873)
    • Fixed issue where an OOF message may contain corrupt data if the publish that causes the message to go out-of-focus was received through replication. (AMPS-3014)
    • Fixed issue where a memory corruption can occur on shutdown if there is an active bookmark subscription with OOF enabled. (AMPS-2768)

Version 5.2.0.47 (2017-07-27)

  • This release contains the following fixes:
    • Fix issue that could result in leaked memory associated with hash index data, producing memory growth and unreclaimed mmap regions. (AMPS-2934, Z5380)

Version 5.2.0.46 (2017-07-25)

  • This release contains the following fixes:
    • Fix issue where aggregated sow_and_subscribe followed by an unsubscribe before the initial aggregation was processed resulted in a fatal server error. (AMPS-3000).

Version 5.2.0.45 (2017-07-23)

  • This release contains the following fixes:
    • Fix issue where a replicated sow_delete that contains a regular expression topic can cause AMPS to hang during restart. (AMPS-2809, Z5136)
    • Fix bug where an invalid sow_delete command is replicated and could cause a crash in the replication destination. (AMPS-2889, Z5293)

Version 5.2.0.44 (2017-07-18)

  • This release contains the following fixes:
    • Fix crash that can occur while delta publishing JSON messages having duplicate values. (AMPS-2950, Z5251)
AMPS Version 5.2.0.43 was intentionally skipped
AMPS Version 5.2.0.42 was intentionally skipped

Version 5.2.0.41 (2017-07-14)

  • This release contains the following fixes:
    • Fix crash when reading an invalid client name hash from the transaction log while recovering replication state. (Z5364, AMPS-2492)
AMPS Version 5.2.0.40 was intentionally skipped

Version 5.2.0.39 (2017-07-10)

  • This release contains the following fixes:
    • Fixed issue where amps_journal_dump failed to output all records from compressed journals. (AMPS-2776, AMPS-2852)
    • Fixed issue where amps_journal_dump would output incorrect aggregate metadata for compressed journals. (AMPS-2960)

Version 5.2.0.38 (2017-07-06)

  • This release contains the following fixes:
    • Fixed issue where AMPS can fail to start up if one of the SOW key field values is an array of more than 2 items. (AMPS-2892, Z5252)

Version 5.2.0.37 (2017-07-06)

  • This release contains the following fixes:
    • Fixed issue where expression value lists that contain just a single, non-literal expression (mathematical expressions in "IN" clause filter) can cause a crash. (AMPS-2919, Z5292)

Version 5.2.0.36 (2017-07-05)

  • This release contains the following fixes:
    • Fixed issue where AMPS could receive a truncated command from the JavaScript client due to random Continuation frames sent via WebSocket connection. (AMPS-2945, Z5134)

Version 5.2.0.35 (2017-06-22)

  • This release contains the following fixes:

    • Fixed crash that can occur when "on oof action" events feed into a "do publish action" where the "do publish" format string contains {{AMPS_TIMESTAMP}}. (AMPS-2869, Z5221)
    • Fixed regression in AMPS 5.2.0.25 where AMPS_TIMESTAMP and AMPS_BOOKMARK would not always be set. Previously, they were always set for action "on" events messages. (AMPS-2890)

Version 5.2.0.34 (2017-06-18)

  • This release contains the following fixes:
    • Fixed issue where AMPS could crash when the projection clause of an aggregated subscription or aggregated query was longer than 1024 bytes. (AMPS-2861, Z5211)
    • Fixed issue with --verify-config flag where AMPS could either produce a core dump or incorrectly report errors on fully instrumented builds used for testing. (AMPS-2855, Z5205)

Version 5.2.0.33 (2017-06-14)

  • This release contains the following fixes:
    • Fixed several issues with --verify-config flag where AMPS could either core or incorrectly report errors. (AMPS-2855, Z5205)

Version 5.2.0.32 (2017-06-12)

  • This release contains the following fixes:
    • Fixed issue where journal compress and archive operations would not execute if there were active bookmark replays that were further beyond the journal to be compressed or archived. (AMPS-2848,Z5161)
    • Fixed issue when providing TopN for a bookmark subscribe where, if the transaction log did not contain at least N messages that matched the subscription at the time of the subscription, the subscription would remain open and journals would not be removed. (AMPS-2673,Z5161)
    • Fixed issue where bookmark subscribe from a specific bookmark could cause heartbeats to be delayed resulting in client disconnects. (AMPS-2851,Z5161)
    • Fixed amps_journal_dump to dump all records in the journal instead of stopping at the compressed file size. (AMPS-2604, AMPS-2852)

Version 5.2.0.31 (2017-06-09)

  • This release contains the following fixes:
    • Fixed JSON delta serialization issue that could produce invalid JSON when the first element of a subdocument was an array. (Z5168, AMPS-2836)

Version 5.2.0.30 (2017-06-08)

  • This release contains the following fixes for transaction log replay:

    • Fixed issue where a bookmark subscribe pause or resume command that requested a processed ack could cause a bookmark replay thread to become unresponsive. (Z5046, AMPS-2774)
    • Fixed several transaction log replay issues that could cause bookmark subscriptions and replication to stop making progress. (Z5161, AMPS-2793, AMPS-2794, AMPS-2815)
    • Fixed issue where a bookmark subscription could fail to deliver queued messages when the subscription was evicted to the slow client processing lane and there were no additional messages that matched the subscription after the eviction to the slow lane. (AMPS-2779)
    • Fixed issue where a bookmark subscription with OOF enabled would stop delivering OOFs if the subscription was evicted to the slow client processing lane. (AMPS-2747)
  • This release contains the following fix that affects both transaction log replay and other subscriptions:

    • Fixed bug in client resource management that incorrectly caused subscriptions to be offlined and then disconnected. This bug could affect both bookmark subscriptions and non-bookmark subscriptions. (Z4979, AMPS-2778, AMPS-2814)

Version 5.2.0.29 (2017-06-01)

  • This release contains the following fixes:
    • AMPS would not send stats and completed acks for SOW queries using aggregated subscriptions. (AMPS-2787, Z5079)
    • Entitlement filters are now checked properly for aggregated subscriptions. (AMPS-2791)

Version 5.2.0.28 (2017-05-30)

  • This release contains the following fixes:
    • Fixed issue when Galvanometer failed to crawl the replication map in cases when the destination_name and name of the replication destination differ. (AMPS-2788, Z4982)

Version 5.2.0.27 (2017-05-25)

  • This release contains the following fixes:
    • Fixed issue where parsing a protobuf message that contains a sub-message after a missing, optional field could cause a SEGV. (AMPS-2712)
    • Improved performance in protobuf message type parsing when parsing messages where optional fields are sparsely populated. (AMPS-2637, Z4899)

Version 5.2.0.26 (2017-05-24)

  • This release contains the following fixes:
    • Fixed issue where sow_and_subscribe and sow_and_delta_subscribe will not send OOF messages when both a bookmark and the oof option are provided on the subscription. (AMPS-2743)
    • Fixed issue where one or more sow_and_subscribe or sow_and_delta_subscribe with the oof option and a bookmark may result in other bookmark subscriptions failing to receive data, or receiving the wrong data. (AMPS-2747)

Version 5.2.0.25 (2017-05-23)

  • This release contains the following fixes:
    • Fixed issue where amps-action-on-publish-message was unable to request a delta subscription. (AMPS-2734, Z5017)
    • Fixed issue where incorrect value provided in the Delta option of amps-action-do-publish-message could cause a crash during startup. (AMPS-2760)
    • Fixed issue where amps_journal_dump could fail to print a small record at the end of a journal file. (AMPS-2769)
AMPS Version 5.2.0.24 was intentionally skipped

Version 5.2.0.23 (2017-05-11)

  • This release contains the following fixes:
    • Fixed issue where AMPS was converting replication destination addresses to IP addresses. This prevents the Galvanometer from displaying replication data graphs. (AMPS-2530, Z4712)
    • Fixed issue where the Galvanometer would attempt to gain replication data from destinations that are not connected, which could cause the Galvanometer to wait indefinitely. (AMPS-2704, Z4987)

Version 5.2.0.22 (2017-05-09)

  • This release contains the following fixes:
    • Fixed crash when delta_publishing a JSON message that is just a scalar value such as 1, true, or null, instead of a document. (AMPS-2475, Z4990)
    • Fixed invalid JSON message sent to delta subscribers when the changed values in a message are located in nested JSON objects later in the message than the first nested JSON object. (AMPS-2709)
AMPS Version 5.2.0.21 was intentionally skipped

Version 5.2.0.20 (2017-05-08)

  • This release contains the following fixes for upgraded instances:
    • Fixed issue where the last synced txid was not correctly persisted to the SOW when upgrading from 3.9. (AMPS-1506, Z4511)
    • Fixed issue in SOW upgrade that could lead to long SOW recovery times and incorrect SOW record counts. (AMPS-2640, Z4511)
    • Fixed issue while upgrading journals from 3.9 that could lead to missing upgraded journal entries. (AMPS-2656, Z4511)

Version 5.2.0.19 (2017-05-05)

  • This release contains the following fixes:
    • Fix issue where an upgraded journal may not be properly aligned which could cause AMPS to fail to recover transactions. (AMPS-2522)
AMPS Version 5.2.0.18 was intentionally skipped

Version 5.2.0.17 (2017-05-01)

  • This release contains the following fixes:
    • Fixed issue where amps_journal_dump would not print all records in the active journal when AMPS was running. (AMPS-2604, Z4581)

Version 5.2.0.16 (2017-04-27)

  • This release contains the following fixes:
    • Fixed issue where action-on-message-condition-timeout could log warning messages indicating that a SOW key could not be found after the action had already alerted for that SOW key. (AMPS-2559, Z4768)

Version 5.2.0.15 (2017-04-26)

  • This release contains the following fixes:
    • Fixed issue where AMPS can stop reading from the transaction log until the next journal was completely written. This could cause replication and bookmark subscriptions to stall. (AMPS-2644, AMPS-2645, Z4664)

Version 5.2.0.14 (2017-04-25)

  • This release contains the following fixes:
    • Fixed AMPS crash reported as a fatal view replace_action error. This occurred after an aggregated subscription or SOW query was placed on a topic underlying a view. (AMPS-2650,Z4785)
AMPS Version 5.2.0.13 was intentionally skipped
AMPS Version 5.2.0.12 was intentionally skipped

Version 5.2.0.11 (2017-04-21)

  • This release contains the following fixes:
    • Fixed journal recovery bugs that conspire to "bloat" the memory footprint of AMPS at startup for configurations using journal archives. (AMPS-2624, Z4892)

Version 5.2.0.10 (2017-04-18)

  • This release contains the following fixes:
    • Fixed crash caused by race condition in an internal data structure. (AMPS-2532, Z4898)

Version 5.2.0.9 (2017-04-07)

  • This release contains the following fixes:
    • Fixed issue where large messages sent over an SSL transport could cause the client to hang. This issue could also cause a client to timeout at logon. (AMPS-2594, Z4769, Z4842)
    • Fixed issue where AMPS could crash while attempting to authenticate using the amps-debug-authentication module. (AMPS-2581)

Version 5.2.0.8 (2017-04-06)

  • This release contains the following fixes:
    • Fixed crash when a message queue message is being checked for lease expiration concurrently with the message being deleted. (AMPS-2538,Z4727)

Version 5.2.0.7 (2017-04-05)

  • This release contains the following fixes:
    • Fixed issue where AMPS could crash due to an internal data structure attempting to free memory that it had not allocated. (AMPS-2012)

Version 5.2.0.6 (2017-04-01)

  • This release contains the following fixes:
    • Fixed issue where it was possible for a conflated subscription to not receive an OOF if there were multiple concurrent delta publishes to the same conflation key that caused a message to go in and out of focus within the same conflation interval. (AMPS-2579, Z4804)

Version 5.2.0.5 (2017-03-30)

  • This release contains the following fixes:
    • Fixed fatal error that could occur when processing an update to a SOW after processing a query that causes the SOW index entry to exceed 1K of storage space. (AMPS-2566)

Version 5.2.0.4 (2017-03-29)

  • This release contains the following fixes:
    • Fixed issue that could cause AMPS to crash when parsing messages if AMPS failed to pad the message as expected. (AMPS-2513, Z4763)

Version 5.2.0.3 (2017-03-29)

  • This release contains the following fixes:
    • Fixed issue where a client with only READ permissions on a queue would not be able to ack messages. (AMPS-2529, Z4727)

Version 5.2.0.2 (2017-03-27)

  • This release contains the following fixes:
    • Added extra diagnostic logging when a fatal shutdown occurs due to an internal error when processing views and aggregates. (AMPS-2509)

Version 5.2.0.1 (2017-03-20)

  • This release contains the following fixes:
    • Fixed several race conditions that could result in AMPS replication failing to recognize a disconnected replication destination. AMPS would then fail to recognize the need for reconnection attempts, leaving the destination unconnected until a restart of AMPS. (AMPS-2503,Z4727)

Version 5.2.0.0 (2017-03-08)

  • The following changes may affect compatibility with previous versions:

    • Empty strings are now treated as NULL for binary boolean operators. Expressions such as /field = '' will always return false in this version of AMPS. To check for empty strings, use IS NULL rather than equality comparison. (AMPS-1899)
    • Changed the data type of TOTAL_TIME in ISTATISTICS_DYNAMIC from integer to real. (AMPS-2142)
    • In this release, persisted acknowledgements for publish and sow_delete commands are conflated at a 1 second interval when a transaction log is configured, regardless of whether the topic is recorded in the transaction log or not. Applications that do not use a transaction log, but request persisted acknowledgements from an instance with a transaction log configured, will need to update the application logic to account for the change in behavior.
    • The following subscription properties have been removed from the HTTP interface and are visible under the new options property: subscription_type, is_bookmark, send_empties, is_oof_enabled. (AMPS-2407)
    • Authentication requests are now run on multiple threads, and requests can be simultaneous on multiple threads. In the previous version of AMPS, AMPS used a single thread for authentication requests. (AMPS-1971)
    • AMPS now reports failure for additional logon commands from a client that has already logged on.
  • This release adds the following features:

    • AMPS includes an improved administrative interface, called Galvanometer. This interface is enabled by default when an Admin console is enabled. Galvanometer is available at the root level of the Admin console, while the previous statistics interface continues to be available underneath the /amps path of the Admin console.

      To disable Galvanometer, set <Galvanometer>disabled</Galvanometer> in the Admin configuration.

    • SOW topics now support inline enrichment of messages. When a message is published to AMPS, AMPS can perform enrichment or transformation of the message before the message is stored to the SOW, written to the transaction log, or delivered to subscribers.

    • AMPS now allows individual subscriptions to request aggregation and analytics. (AMPS-2076)

    • AMPS now allows individual subscriptions to request conflation.

    • Views can now conflate incoming updates to improve performance and reduce latency, typically decreasing memory consumption when underlying topics change quickly.

    • SSL/TLS connections from clients are now fully supported for all client types.

    • Bookmark subscriptions now support a fully_durable option which will only provide messages that have been fully persisted to the local transaction log and all synchronous replication destinations.

    • A new message queue type, LocalQueue, is now available to specify a message queue that is not replicated, even when the underlying topics for the queue are replicated. (AMPS-1601)

    • AMPS includes the following new functions for the AMPS expression language:

      • A new function CONCAT() was added to the expression language. CONCAT allows concatenating the string representations of one or more fields into a single string value. CONCAT may be called with any number of arguments.
      • Added a new expression language function COALESCE() that returns the first non-NULL argument. (AMPS-1733)
      • A new function ROUND() was added to the expression language. ROUND rounds values to the nearest integer, or to the nearest specified decimal place if one is specified. (AMPS-1364)
      • Added new expression language functions REPLACE() and REGEXP_REPLACE() to search and replace all occurrences of a string or regular expression and return the resulting string. (AMPS-2279)
      • New functions UPPER() and LOWER() were added to the AMPS expression language. These functions provide the ability to convert ASCII strings to their upper and lower case equivalents. (AMPS-1630)
      • New aggregate functions were added:
        • COUNT_DISTINCT() was added that takes a single argument and returns the number of distinct values within the aggregate group. (AMPS-2222,z4398)
        • STDDEV_POP() and STDDEV_SAMP() were added to return the population standard deviation and sample standard deviation, respectively. (AMPS-2244,z4388)
    • Support added for <Include> elements in AMPS server configuration file to manage complex configurations. (Z1927, AMPS-724)

    • XML comments can be dynamically generated to document <Include> element expansion of the AMPS config file. (AMPS-1259)

    • A new action amps-action-if-file-system-usage was added. This action will run the defined Do actions if the file system usage level exceeds a specified limit. If not, the action stops further Do actions from running.

    • A new action amps-action-do-compact-sow was added to allow compaction of SOW files while an AMPS instance is running. (AMPS-352, AMPS-1520, AMPS-1583)

    • amps-action-do-remove-files was enhanced to include two new options. Count removes up to a specified number of files that match the Pattern. The action will only remove a maximum of this many files each time the action runs. Keep will remove all files that match the Pattern leaving behind only a specified number of files. Files are removed in order of age, starting with the oldest first.

    • AMPS now supports a skip_n option for SOW queries, which specifies that AMPS skip a specified number of results before returning records. (AMPS-2167).

    • AMPS now allows replays from the transaction log to occur at a multiple of the original replay rate (for example, 5X or .25X). (AMPS-1095)

    • Added support for order-id chaining logic to SOW key generation.

    • An optional module "libamps_udf_legacy_compatibility.so" was added that contains UDFs that ease migration from legacy messaging products. (AMPS-1686)

    • Added a new log message 31-0008 that indicates when Message Queue expirations are processed. (AMPS-1712)

    • Added a new column TOTAL_COMMIT_TIME to the stats.db table ISTATISTICS_DYNAMIC to capture the cumulative clock time spent committing instance statistics to the admin database. (AMPS-2142)

    • A new transport amps-unix was added to support Unix domain sockets connectivity. This transport is available for use with the C++ and Python clients.(AMPS-2029)

    • AMPS expressions may now be used in the configuration of the libamps_action_do_extract_values action module. (AMPS-2305)

    • AMPS now provides a module for generating a SOW key based on a a hierarchical structure of documents, most commonly used for FIX order chaining.

    • Validate that explicit topic names given in Group fields match the UnderlyingTopic of a view. (AMPS-1368)

    • Added support for user-defined key generator functions that compute a SOW key programmatically as records arrive. These functions are implemented as AMPS modules.

    • Added a new configuration parameter ProcessName that allows customization of the command name seen in ps and top. (AMPS-1699)

    • AMPS now includes an optional authentication and entitlement module that calls an external web service to establish identity and permissions. (AMPS-1332)

    • AMPS now includes an optional entitlement module for enforcing simple restrictions on the set of topics a transport is allowed to access. (AMPS-2377)

    • Add ability to override existing message types. (AMPS-1646,Z3725)

    • The AMPS server API added a new function amps_expression_value_set_value to assign one expression value to another. (AMPS-1734)

    • Subscriptions to topics in the SOW can now be filtered by SowKey, which allows an application to restrict a subscription to specific records. (AMPS-1570)

    • Performance of sow_delete by filter command has been improved when the provided filter is 1=1, indicating that all records in the SOW are to be removed. (AMPS-1910)

  • This release contains the following fixes:

    • The conflation_ratio Admin metric for Conflated topics is now computed correctly. Previously, it was always 0.0.
    • Fix issue preventing Internet Explorer from correctly displaying AMPS config XML that contains entity references. (Z2232)
    • Fix crash when using a parent or document element in an arithmetic expression in a content filter. (AMPS-1284)
    • Fixed issue where AMPS could exit with a fatal error during view processing when using a floating-point value as a grouping field and the FIX or NVFIX message types. (AMPS-1293,Z3052)
    • Fixed issue following delta_publish for FIX and NVFIX types that could cause index values to be updated incorrectly. This problem could cause those records to be ignored during a SOW query until AMPS rebuilt the index. (Z3506)
    • AMPS no longer warns on multiple values with the same XML element name in configuration Options blocks. (AMPS-1297)
    • Fix crash on startup when a view is configured with multiple Projection fields with the same field name. (AMPS-1316)
    • Allow one-argument user defined functions (UDFs) to be passed the result of an expression, instead of just a single value reference or literal. (AMPS-1363)
    • Fix evaluation of content filters and projection expressions that contain embedded newline characters. (AMPS-1422)
    • Fix crash when replication is configured with a transport named something other than amps-replication. (AMPS-1336)
    • Reduce memory growth associated with large SOW queries of message queues. (AMPS-1634)
    • Allow message queue SOW queries to be canceled when the client unsubscribes or disconnects. (AMPS-1674)
    • Demoted SOW coalescing message 15-0061 to "developer" level. (AMPS-1677)
    • Fixed issue with long-running SOW queries on message queues that could cause the message queue admin thread to become temporarily stuck. (AMPS-1682)
    • Fixed issue where a - in a device name would prevent the device from providing statistics about the disk to the Admin Interface. (AMPS-1709)
    • Demoted the info-level 03-0006 message regarding message expiration to developer level. (AMPS-1737)
    • Corrected calculation of expiration time for message queue messages. Previously, it was possible for expiration to be calculated from the time that a message was recovered from the transaction log, rather than the time the message was originally published. (AMPS-1781)
    • Reduce the memory consumption and time associated with recovering message queue messages that are expired or acknowledged. (AMPS-1780, AMPS-1796)
    • Fix for AMPS crash that can occur in a rapid connect/logon/disconnect scenario where the logon process completes during a disconnect. (AMPS-1724, Z3925)
    • Fix to process conflated topics at the correct conflation interval on systems where the processor may run at variable speeds while waiting for an interval (for example, laptops with power management available). Previously, AMPS could miss a conflation interval on these systems due to differences in the elapsed time reported between the real time clock and the processor. (AMPS-1622, Z3747)
    • Empty strings are now treated as NULL for binary boolean operators. (AMPS-1899)
    • Fixed issue where duplicate fields in a JSON message could result in fields after the duplicates being treated as NULL during filter, SOW Key, and projection evaluation. (AMPS-2044,Z4249)
    • Changed the definition of TOTAL_TIME in ISTATISTICS_DYNAMIC to include the time spent committing statistics to the admin database. (AMPS-2142)
    • Corrected results of a delta_subscribe to JSON topics when publishing messages with repeated keys. (AMPS-2095, Z4305)
    • Fixed unpredictable behavior in amps-action-do-extract-values when extracting duplicate Value expressions. (AMPS-2201,Z4267)
    • Fixed issue where a content filter beginning with ./ would cause an exception to be recorded in the log file. This issue could cause a core dump if the Projection or Grouping fields of a View contained an XPath beginning with ./. (AMPS-2196)
    • Fixed issue where configuration options may not be applied if a comment is embedded in the XML text node. (AMPS-2250)
    • Fix for AMPS crash that can occur when merging a delta_publish containing one or more empty JSON arrays. (AMPS-2259)
    • Fixed issue where the Admin interface would not display the underlying topic of a View when the underlying topic was a Join. (AMPS-1614)
    • Improved ability for AMPS to correctly recover corrupted SOW files. (AMPS-1268)
    • Join tuples are now guaranteed to be processed in order, which helps stabilize the projection of fields that are not contained within an aggregate function or the Grouping clause. (AMPS-2199)
    • Added the source of an HTTP Admin request to the 05-0017 log message. (AMPS-744)
    • Correctly return HTTP 1.0 headers from the Admin console when the request uses HTTP 1.0. (AMPS-2287)
    • Preserved the boolean values true and false through projections of JSON values instead of converting them to integers 1 and 0. (AMPS-2354)
    • Fixed SOW message expiration to not start until after AMPS has fully started. (AMPS-2159, Z4323)
    • Fix for AMPS crash that can occur when multiple bookmark subscriptions are being joined and/or unsubscribed. (AMPS-2068, AMPS-1987, Z5431)
    • Fixed issue where a bookmark subscription could build up persisted acks causing the subscription to offline and eventually cause a disconnect. (AMPS-2368)

AMPS version 5.0.0

AMPS Version 5.0.0.158 was intentionally skipped
AMPS Version 5.0.0.157 was intentionally skipped

Version 5.0.0.156 (2018-08-24)

  • Fix issue that could cause a crash when MIN and/or MAX is used in a view and the data contains equal float and integer values (for example 1.0 and 1). (AMPS-4093, Z7637)

Version 5.0.0.155 (2018-08-13)

  • Fix issue in amps_upgrade utility to correctly compute journal entry size. Previously, amps_upgrade would produce a misaligned entry size for sizes that were an even multiple of 256. Recent AMPS versions have stronger data integrity checks, which would cause AMPS to fail to recover a journal that contained an entry with a misaligned entry size. (AMPS-4162, Z7948)

Version 5.0.0.154 (2018-08-09)

  • Fix issue where the sow_and_delta_subscribe command might receive a delta message instead of a full message when the message comes into focus. (AMPS-4119, Z7827)
AMPS Version 5.0.0.153 was intentionally skipped

Version 5.0.0.152 (2018-08-04)

  • Fix issue where AMPS could produce a core dump on startup if a view definition contains both underlying topic joins and a filter value. This combination of options is not a valid configuration. (AMPS-2621, Z5573, Z6484, Z7162, Z7948)

Version 5.0.0.151 (2018-07-31)

  • Fix issue where some commands that use a regular expression to specify the topic did not correctly apply entitlement filters when the entitlement system provided an entitlement filter. This problem affected queue subscriptions, sow query commands (including the sow portion of sow_and_subscribe and sow_and_delta_subscribe), and sow_delete commands when those commands used a regular expression to specify the topics to operate on. Without this fix, when a regular expression was used to specify a topic, a user could potentially retrieve or delete messages that should have been disallowed by an entitlement filter. Access entitlements to the topic were not affected, nor are other commands. Commands that provide a literal topic name were not affected. (AMPS-4113, Z7800)

Version 5.0.0.150 (2018-07-28)

  • Fix issue where the sow sync thread can shutdown AMPS after 300 seconds. Previously, AMPS would queue up to 1024 coalesce operations, each of which could take a few seconds. With this change, AMPS now only enqueues one operation. (AMPS-3971, Z7584)

Version 5.0.0.149 (2018-07-13)

  • Fix issue where publishing a SowKey on a record for a topic that is not specified to use a user-generated sowKey could result in the SowKey on the outgoing message to be set as the SowKey on the publish, rather than the actual SowKey. AMPS now correctly ignores the published user-generated sowKey. (AMPS-4088, Z7766)

Version 5.0.0.148 (2018-07-06)

  • Fix issue that prevents AMPS from hanging on startup if an index exists for the last journal file in the transaction log. (AMPS-2726)

Version 5.0.0.147 (2018-06-29)

  • Fix race condition that can cause AMPS to crash when a transaction log replay (bookmark sub, queue sub or replication) is exactly one journal behind and attempts to read from the transaction log shadow memory concurrent to a shadow memory update. (AMPS-4042)

Version 5.0.0.146 (2018-06-28)

  • Fix inadvertent inclusion of new functionality and fixes on the 5.0.0 release branch. Those fixes were introduced in 5.0.0.142. This release contains the intended functionality for 5.0.0.142 and 5.0.0.143.
  • Fixed issue where replication acknowledgment processing for sync connections could be slow due to inefficient handling of multiple consecutive duplicate and/or heartbeat messages. (Released in 5.0.0.142) (AMPS-3611)
  • Fixed issue with amps-action-do-remove-files where compressed journals and journal index files could be removed. This action should be unable to remove any journal files. (Released in 5.0.0.143) (AMPS-3197)
AMPS Version 5.0.0.145 was intentionally skipped
AMPS Version 5.0.0.144 was intentionally skipped
AMPS Version 5.0.0.143 was intentionally removed and no longer exists
AMPS Version 5.0.0.142 was intentionally removed and no longer exists

Version 5.0.0.143 (2018-06-20)

  • ATTENTION: This release included new functionality and fixes that were not intended to be incorporated in this branch. 60East recommends against deploying this release, and suggests that customers deploy 5.0.0.146, or greater, instead.
  • Fixed issue with amps-action-do-remove-files where compressed journals and journal index files could be removed. This action should be unable to remove any journal files. (AMPS-3197)

Version 5.0.0.142 (2018-06-12)

  • ATTENTION: This release included new functionality and fixes that were not intended to be incorporated in this branch. 60East recommends against deploying this release, and suggests that customers deploy 5.0.0.146, or greater, instead.
  • Fixed issue where replication acknowledgment processing for sync connections could be slow due to inefficient handling of multiple consecutive duplicate and/or heartbeat messages. (AMPS-3611)

Version 5.0.0.141 (2018-06-12)

  • Fixed issue where host disk statistics would not be populated if the device is a network drive. These drives will now be populated, but some statistics may not be available. (AMPS-1202, Z7473)
  • Fixed issue where disks only used by JournalArchiveDirectory or MessageDiskPath would not have their statistics tracked. (AMPS-3973, Z7473)

Version 5.0.0.140 (2018-06-04)

  • Fix issue where AMPS incorrectly treated transaction log records with a CRC of 0 as corrupt records. Messages with a CRC of 0 were not deliverable or able to be acknowledged by a queue consumer. AMPS now recognizes 0 as a valid calculated CRC value. (AMPS-3988, Z515)
  • Fix issue where amps_journal_dump would terminate early if a CRC was 0. The utility now correctly outputs the record with a CRC of 0 and anything that follows. (AMPS-3989)

Version 5.0.0.139 (2018-06-04)

  • Fix crash that may occur when processing replicated messages on an AMPS instance with delta subscribers. (AMPS-3964, Z7425)
AMPS Version 5.0.0.138 was intentionally skipped
AMPS Version 5.0.0.137 was intentionally skipped

Version 5.0.0.136 (2018-05-16)

  • Fix issue where SOW recovery performed an unnecessary delta merge when recovering from the transaction log. Messages in the transaction log are stored using the fully merged message making delta merge processing unnecessary. (AMPS-3584, Z6670)

Version 5.0.0.135 (2018-05-11)

  • Fixed a problem where AMPS NUMA was unable to properly tune itself due to unconventional core and socket numbering on some architectures (e.g. Dell Poweredge servers). (AMPS-3564, z7049)

Version 5.0.0.134 (2018-05-10)

  • Fixed a problem where AMPS did not update the last processed transaction log id for a topic in the SOW. This could cause the server to recover the topic from the transaction log when starting, which could take an extended period of time. This problem would also cause AMPS to log a 15-0045 warning regardless of whether the SOW file for the topic was present or not. (AMPS-2615, Z4892)

Version 5.0.0.133 (2018-05-03)

  • Fix problem where disabling a replication transport from the admin interface did not prevent the transport from attempting to reconnect to the destination. (AMPS-3918)

Version 5.0.0.132 (2018-04-26)

  • Fix issue where publishing null values in a BSON message resulted in the parser skipping the field. This was most noticeable when using delta_publish to replace an existing field value with a null value. (AMPS-3908, Z7292)
AMPS Version 5.0.0.131 was intentionally skipped

Version 5.0.0.130 (2018-04-23)

  • Fixed an issue where disabling coalesce for a SOW topic that is backed by a transaction log could cause messages for that topic to be corrupted. (Disabling coalesce for a topic is a workaround that had been provided by 60East support on infrequent occasions on older versions of AMPS using slow storage for high-volume topics with large variation in numbers of active keys.) (AMPS-2881, Z5048)

Version 5.0.0.129 (2018-04-12)

  • Fix issue where inbound and outbound replication transports were being reported in the admin interface under /amps/instance/transports. Only the listening transport will now be reported. (AMPS-2631)
AMPS Version 5.0.0.128 was intentionally skipped

Version 5.0.0.127 (2018-03-24)

  • Fix issue that could cause log_replay spark command to publish empty messages when the publish command in the error logs contained a sequence number. (AMPS-3755)
AMPS Version 5.0.0.126 was intentionally skipped

Version 5.0.0.125 (2018-03-20)

  • Fix issue that could cause transaction log recovery to fail when the metadata in a journal file is corrupted to produce an invalid journal size. (AMPS-3538, AMPS-3357)

Version 5.0.0.124 (2018-03-17)

  • AMPS will now generate minidumps when it detects it is operating in an unhealthy state prior to a critical shutdown. (AMPS-2403, Z7041)

Version 5.0.0.123 (2018-03-15)

  • Fix issue with RequiredMinimumVersion configuration check to support specifying hotfix versions with triple-digit version components. Previously, only the first two digits of each version component were being used in the version check, potentially leading to an incorrect comparison. (AMPS-3710, Z6975)

Version 5.0.0.122 (2018-03-09)

  • Decrease the memory footprint of large views with a large number of projection clauses. (AMPS-3604, Z6634)
  • Fix issue where AMPS was creating false minidumps for view update processing threads during startup. (AMPS-3574, Z6634)

Version 5.0.0.121 (2018-03-02)

  • Fixed issue where in some cases SOW queries that only have a single result of execution set the batch_size on the reply to the batch size provided on the command, rather than the setting it to 1 (the number of messages actually returned). (AMPS-3403, Z6239)

Version 5.0.0.120 (2018-02-28)

  • Fixed optimization in amps_upgrade utility, to simply copy non-transactional sow files, when they use the target sow file format. Previously, these sow files would go through an unnecessary conversion process. Transactional sow files already used the optimized process. (AMPS-3684)
  • Fix issue in sow file recovery of upgraded sow files, from AMPS versions prior to 4.3.2.36, that would not properly "invalidate" the end of a slab, causing AMPS to log warnings and errors of CRC corruption. (AMPS-3684)

Version 5.0.0.119 (2018-02-20)

  • The management and processing of SOW expirations has been changed which greatly reduces the memory requirement, especially for expirations that are greater than a few minutes. The biggest benefit will be observed by use cases where the expiration is days or weeks or when the expirations are greater than 60 seconds but the data has a relatively high update frequency. (AMPS-3573)
  • Optimize sow expiration processing to execute more accurately and reduce memory consumed. (AMPS-3573)

Version 5.0.0.118 (2018-02-17)

  • Fix issue when AMPS incorrectly identifies a SOW topic with regular expression characters as a transactional topic. (AMPS-3668, Z6838)

Version 5.0.0.117 (2018-02-10)

  • Fix crash when a client attempts to execute a sow_and_subscribe replace with OOF where the topic is changed. (Z6808, AMPS-3651).

Version 5.0.0.116 (2018-02-10)

  • Fix race condition between client unsubscribe 'all' and client disconnect that can lead to unexpected behavior or memory corruption. In some cases, this is observed as glibc double free message logged to stderr. (AMPS-3646)

Version 5.0.0.115 (2018-02-06)

  • Fix issue where AMPS would fail to start and log message 15-0078 stating SOW slabs do not fit in the file. This issue happened when the SlabSize of the SOW had been changed at some point in the past without removing the SOW file. This issue was caused by incorrect management of empty slabs, and did not affect data in the SOW file. (AMPS-3601, Z6698, Z6640)

Version 5.0.0.114 (2018-01-17)

  • Fix issue where AMPS incorrectly performed OOF processing on the first insertion of a message into a topic in the SOW. This fix both improves performance and eliminates incorrect oof messages that had been produced when a subscription filter matched an empty message. OOF processing for updates to existing messages is unaffected by this change. (AMPS-3245, Z5310)
AMPS Version 5.0.0.113 was intentionally skipped

Version 5.0.0.112 (2017-12-29)

  • Fix response to out of space errors for the transaction log journal directory during runtime and upon recovery. In certain out of space scenarios AMPS could shutdown and not be able to successfully restart until the last index file for the transaction log was removed (transaction log data itself was not affected). With this fix, AMPS will attempt to remain running as long as possible, and will correctly write index files. (AMPS-2994, Z5698, Z5448)
  • Fix startup bug where if one of the last two journals had one or more corrupted records then AMPS would fail to start. (AMPS-3001)

Version 5.0.0.111 (2017-12-23)

  • Fix race condition that can cause transaction log entries for publishes to SOW topics with external keys to be reported as having CRC corruption. (AMPS-3278, Z6150)

Version 5.0.0.110 (2017-12-22)

  • Fix possibility of bookmark subscriptions being incorrectly resumed when a replace command is sent while the subscription is paused. (AMPS-2968)

Version 5.0.0.109 (2017-12-21)

  • Ensure startup actions are fully processed before accepting client connections. This fix prevents the potential for internal clients, including on- actions, to miss messages between AMPS startup and subscriptions being placed. (AMPS-2983, Z5318)

Version 5.0.0.108 (2017-12-11)

This release contains fixes for the following issues:

  • Fix possibility for premature removal of journals when an async replication link is disconnected, new journals are produced and AMPS restarts. (AMPS-3467)
AMPS Version 5.0.0.107 was intentionally skipped

Version 5.0.0.106 (2017-12-04)

This release contains fixes for the following issues:

  • Changed automatic client sequence number generation in the AMPS server to ensure that messages are always unique and never observed as duplicates in failover scenarios. Automatic sequence number generation is used when a client does not provide a sequence number on a publish, delta_publish or sow_delete command. (AMPS-3457, Z6373)

Version 5.0.0.105 (2017-11-30)

This release contains fixes for the following issues:

  • Fixed issue that could cause a SOW file to grow on startup in cases where the host does not have enough free memory during startup to hold the contents of the SOW. (AMPS-3410, Z6063)
AMPS Version 5.0.0.104 was intentionally skipped

Version 5.0.0.103 (2017-11-19)

  • This release contains the following fixes:
    • Fix issue where view processing thread would not update the thread monitor during view updates, which could cause stuck thread messages to be logged. (AMPS-3413)

Version 5.0.0.102 (2017-11-17)

  • This release contains the following fixes:
    • Improve performance when replaying from the transaction log by reducing reads from storage when the data needed is already in a memory buffer. (AMPS-3181)
    • Fix issue where AMPS could process and log a duplicate sow_delete command if that command was the last message received from a client before restart and the first message received from a client after recovery. With this fix, AMPS duplicate detection now tracks sow_delete messages during recovery as well as during normal operation. (AMPS-3393)

Version 5.0.0.101 (2017-11-14)

  • This release contains the following fixes:
    • Fix bug that could cause AMPS to crash when a publish occurred to a transaction-backed SOW topic with regular expression characters in the name. (AMPS-2885, Z5072, Z5080, Z6210)
    • Fix bug that could cause replication to ignore transaction-backed SOW topics with regular expression characters in the name. (AMPS-2885, Z5130, Z5001)

Version 5.0.0.100 (2017-11-13)

  • This release contains the following fixes:
    • Increase local queue performance. (AMPS-3132, Z6217, Z5953, Z6223, Z6141)
    • Fix issue where sow_delete commands can be recorded out of order, which prevents the sow_delete from being correctly replicated. This affects both delete commands from SOW topics and queue acknowledgements. (AMPS-3354, AMPS-3367, Z6159, Z5581, Z6223, Z6141)

Version 5.0.0.99 (2017-11-9)

  • This release contains the following fixes:
    • Fix issue that could cause AMPS to exit with error code 00-0041 while processing NULL values in views that used multiple topics. (AMPS-3376, Z5644)
    • Additional fixes for issue where AMPS could crash due to an internal data structure attempting to free memory that it had not allocated. (AMPS-2012, Z6111)

Version 5.0.0.98 (2017-11-1)

  • This release contains the following fixes:
    • Fix BSON delta_publish to correctly serialize array data in messages. Previously, arrays in BSON messages would be serialized as NULL if a delta_publish changed the array value. (AMPS-3267)

Version 5.0.0.97 (2017-10-27)

  • This release contains the following fixes:
    • Improve the replication pacing algorithm to achieve more consistent throughput. (AMPS-3157)

Version 5.0.0.96 (2017-10-25)

  • This release contains the following fixes:
    • Fixed issue where a JSON string with an embedded { or } symbol inside of a JSON sub-document could result in AMPS failing to parse the message. (AMPS-3050, Z5984)

Version 5.0.0.95 (2017-10-22)

  • This release contains the following fixes:
    • Fixed issue where stale heartbeat timestamps could cause clients to be disconnected for exceeding the ClientMessageAgeLimit threshold. (AMPS-3275, Z5941, Z5983)
    • Fixed issue where storage-imposed delays writing to offline files can cause clients to be disconnected due to missed heartbeats. (AMPS-3244, Z5829)

Version 5.0.0.94 (2017-10-18)

  • This release contains the following fixes:
    • Fixed issue where querying a conflated topic could return incorrect results when the underlying topic specified a hash index and the query on the conflated topic would have used that hash index. (AMPS-3262, Z5940)

Version 5.0.0.93 (2017-10-14)

  • This release contains the following fixes:
    • Fixed issue where replication with compression enabled could be unnecessarily slowed due to incorrect processing. (AMPS-3180)

Version 5.0.0.92 (2017-09-15)

  • This release contains the following fixes:
    • Fixed crash when multiple hash-index sow_deletes execute at the same time. (AMPS-3159, Z5814)
AMPS Version 5.0.0.91 was intentionally skipped

Version 5.0.0.90 (2017-09-05)

  • This release contains the following fixes:
    • Fix for AMPS crash that can occur when multiple bookmark subscriptions are being joined and/or unsubscribed. (AMPS-2068, AMPS-1987, Z5431)

Version 5.0.0.89 (2017-08-31)

  • This release contains the following fixes:
    • Performance improvements to I/O on some Linux distributions (work around for performance degradation when O_DIRECT is used). (AMPS-2502)

Version 5.0.0.88 (2017-08-30)

  • This release contains the following fixes:
    • Fixed issue in replication replay pacing that could cause replication replays to run slowly. (AMPS-3005, Z5428)

Version 5.0.0.87 (2017-08-24)

  • This release contains the following fixes for queue messages:
    • Fixed issue that could cause message expiration to be bypassed when the queue is busy. (AMPS-3077,Z5634)
    • Fixed race condition in processing replicated queue acknowledgements and publish messages that could result in unexpected ordering. (AMPS-3078, Z5634)
    • Fixed issue that would prevent a subscription on an at-most-once queue to be replaced. (AMPS-3088,Z5650)
    • Fixed a potential ordering problem where a transfer request could be processed before the publish that introduces the message to be transferred, resulting in the transfer being ignored. (AMPS-2949)
    • Allow AMPS 5.0.0.X and 5.2.0.X to handle replication transfer messages from AMPS 5.2.1.X. (AMPS-3073)
    • Fixed issue that could result in duplicate queue message transfer requests causing a queue deadlock. (AMPS-2947)
    • Fixed crash when a message queue message is being checked for lease expiration concurrently with the message being deleted. (AMPS-2538,Z4727)
  • This release contains the following fixes:
    • Fix issue that can cause AMPS to hang during restart due to deadlock when inserting to an internal data structure. (AMPS-3068)
AMPS Version 5.0.0.86 was intentionally skipped

Version 5.0.0.85 (2017-08-08)

  • This release contains the following fixes:
    • Message queue recovery performance is improved. (AMPS-2918)

Version 5.0.0.84 (2017-08-07)

  • This release contains the following fixes:
    • Remove fatal abort if SOW recovery detects a SOW file size that is not a multiple of system page size. (AMPS-2984)
    • Fix issue that could cause loss of data in a SOW file upon compaction or recovery. (AMPS-2937, Z5415)
    • Fix issue that could cause loss of data in a SOW file upon detection of CRC corruption during recovery. (AMPS-2986)

Version 5.0.0.83 (2017-08-04)

  • This release contains the following fixes:
    • Fixed issue that could cause AMPS to crash when rebuilding a view in cases where the view used a SOW topic being recovered from the transaction log and the transaction log recovery contained both publish and sow_delete messages. (AMPS-3007, Z5473)

Version 5.0.0.82 (2017-08-02)

  • This release contains the following fixes for out-of-focus messaging:
    • Fixed issue where a bookmark replay thread could get stuck when handling an OOF message. (AMPS-3011, Z4873)
    • Fixed issue where an OOF message may contain corrupt data if the publish that causes the message to go out-of-focus was received through replication. (AMPS-3014)
    • Fixed issue where a memory corruption can occur on shutdown if there is an active bookmark subscription with OOF enabled. (AMPS-2768)
    • Fixed issue where a historical sow_and_subscribe with OOF enabled may only receive OOFs during the replay portion if the OOF is due to a message being deleted. (AMPS-2743, AMPS-2747)

Version 5.0.0.81 (2017-07-23)

  • This release contains the following fix:
    • Fix issue where a replicated sow_delete that contains a regular expression topic can cause AMPS to hang during restart. (AMPS-2809, Z5136)

Version 5.0.0.80 (2017-07-18)

  • This release contains the following fixes:
    • Corrected results of a delta_subscribe to JSON topics when publishing messages with repeated keys. (AMPS-2095, Z4305)
    • Fix for AMPS crash that can occur when merging a delta_publish containing one or more empty JSON arrays. (AMPS-2259)
    • Fix crash that can occur while delta publishing JSON messages having duplicate values. (AMPS-2950, Z5251)
AMPS Version 5.0.0.79 was intentionally skipped

Version 5.0.0.78 (2017-07-14)

  • This release contains the following fixes:
    • Fix crash when reading an invalid client name hash from the transaction log while recovering replication state. (Z5364, AMPS-2492)
AMPS Version 5.0.0.77 was intentionally skipped

Version 5.0.0.76 (2017-07-10)

  • This release contains the following fixes:
    • Fixed issue where amps_journal_dump failed to output all records from compressed journals. (AMPS-2776, AMPS-2852)
    • Fixed issue where amps_journal_dump would output incorrect aggregate metadata for compressed journals. (AMPS-2960)

Version 5.0.0.75 (2017-07-06)

  • This release contains the following fixes:
    • Fixed issue where AMPS can fail to start up if one of the SOW key field values is an array of more than 2 items. (AMPS-2892, Z5252)

Version 5.0.0.74 (2017-07-06)

  • This release contains the following fixes:
    • Fixed issue where expression value lists that contain just a single, non-literal expression (mathematical expressions in "IN" clause filter) can cause a crash. (AMPS-2919, Z5292)

Version 5.0.0.73 (2017-06-18)

  • This release contains the following fixes:
    • Fixed issue with --verify-config flag where AMPS could either produce a core dump or incorrectly report errors on fully instrumented builds used for testing. (AMPS-2855, Z5205)

Version 5.0.0.72 (2017-06-14)

  • This release contains the following fixes:
    • Fixed several issues with --verify-config flag where AMPS could either core or incorrectly report errors. (AMPS-2855, Z5205)
AMPS Version 5.0.0.71 was intentionally skipped

Version 5.0.0.70 (2017-05-25)

  • This release contains the following fixes:
    • Fixed issue where parsing a protobuf message that contains a sub-message after a missing, optional field could cause a SEGV. (AMPS-2712)
    • Improved performance in protobuf message type parsing when parsing messages where optional fields are sparsely populated. (AMPS-2637, Z4899)

Version 5.0.0.69 (2017-05-23)

  • This release contains the following fix:
    • Fixed issue where amps_journal_dump could fail to print a small record at the end of a journal file. (AMPS-2769)
AMPS Version 5.0.0.68 was intentionally skipped
AMPS Version 5.0.0.67 was intentionally skipped

Version 5.0.0.66 (2017-05-08)

  • This release contains the following fixes for upgraded instances:
    • Fixed issue in SOW upgrade that could lead to long SOW recovery times and incorrect SOW record counts. (AMPS-2640, Z4511)
    • Fixed issue while upgrading journals from 3.9 that could lead to missing upgraded journal entries. (AMPS-2656, Z4511)

Version 5.0.0.65 (2017-05-01)

  • This release contains the following fixes:
    • Fixed issue where amps_journal_dump would not print all records in the active journal when AMPS was running. (AMPS-2604, Z4581)

Version 5.0.0.64 (2017-04-26)

  • This release contains the following fixes:
    • Fixed issue where AMPS can stop reading from the transaction log until the next journal was completely written. This could cause replication and bookmark subscriptions to stall. (AMPS-2644, AMPS-2645, Z4664)
AMPS Version 5.0.0.63 was intentionally skipped

Version 5.0.0.62 (2017-04-21)

  • This release contains the following fixes:
    • Fixed journal recovery bugs that conspire to "bloat" the memory footprint of AMPS at startup for configurations using journal archives. (AMPS-2624, Z4892)

Version 5.0.0.61 (2017-04-18)

  • This release contains the following fixes:
    • Fixed crash caused by race condition in an internal data structure. (AMPS-2532, Z4898)

Version 5.0.0.60 (2017-04-11)

  • This release contains the following fixes:
    • Fixed issue where replicated sow_deletes that specify a regular expression for the topic name may produce an invalid topic error on downstream instances rather than being correctly processed. (AMPS-2414,Z4580)

Version 5.0.0.59 (2017-04-05)

  • This release contains the following fixes:
    • Fixed issue where AMPS could crash due to an internal data structure attempting to free memory that it had not allocated. (AMPS-2012)
    • Fixed issue where an entry in a data structure could be lost if the entry hashed to either 0 or -1. (AMPS-2012)

Version 5.0.0.58 (2017-03-30)

  • This release contains the following fixes:
    • Fixed issue where the seconds_behind metric where could erroneously be reported as a very large value for bookmark subscriptions. (AMPS-1975, Z4141)

Version 5.0.0.57 (2017-03-29)

  • This release contains the following fixes:
    • Fixed issue that could cause AMPS to crash when parsing messages if AMPS failed to pad the message as expected. (AMPS-2513, Z4763)

Version 5.0.0.56 (2017-03-29)

  • This release contains the following fixes:
    • Fixed issue where a client with only READ permissions on a queue would not be able to ack messages. (AMPS-2529, Z4727)

Version 5.0.0.55 (2017-03-23)

  • This release contains the following fixes:
    • Fixed several race conditions that could result in AMPS replication failing to recognize a disconnected replication destination. AMPS would then fail to recognize the need for re-connection attempts, leaving the destination unconnected until a restart of AMPS. (AMPS-2503,Z4689)
    • Fix race condition where replication publish can be observed prior to replication logon completion. (AMPS-2400)

Version 5.0.0.54 (2017-03-22)

  • This release contains the following fixes:
    • Added extra diagnostic logging when a fatal shutdown occurs due to an internal error when processing views and aggregates. (AMPS-2509)

Version 5.0.0.53 (2017-03-21)

  • This release contains the following fixes for upgraded instances:
    • Fix for AMPS crash that can occur when trying to start AMPS with transaction logs that have been upgraded. (AMPS-1467,Z4736)
    • Fix for issue where upgraded SOW files were not recognized, resulting in empty SOW topics on restart. (AMPS-1506,Z4511)
    • Fix issue where an upgraded journal may not be properly aligned which could cause AMPS to fail to recover transactions. (AMPS-2522)

Version 5.0.0.52 (2017-03-09)

  • This release contains the following fixes:
    • Fix for AMPS crash that can occur when merging a delta_publish containing one or more empty JSON arrays. (AMPS-2259,Z4659)
    • amps_upgrade now supports configuration synonym tags for SOW and View sections. These synonyms were added in 5.0. (AMPS-2259)

Version 5.0.0.51 (2017-03-05)

  • This release contains the following fixes:
    • Fix issue where OOF messages could be corrupted during message serialization. This issue was observed when processing large volumes of OOF messages on smaller hosts (for example, deleting every record in a large SOW on a host with limited available CPUs). (AMPS-2395, Z4479)

Version 5.0.0.50 (2017-03-02)

  • This release contains the following fixes:
    • Fix issue where a JSON message may be stored in the SOW under more than one SOW key if a JSON message has the same key more than once in a single message or if a SOW query was issued with a filter that references an array value. (AMPS-2453, AMPS-2045, Z4108, Z4249)

Version 5.0.0.49 (2017-02-08)

  • This release contains the following fixes:
    • Fix issues with replication acknowledgements:
      • AMPS can fail to process replication acks when in resync mode. In this case, acks can stop flowing back to publishing clients and journal removal can be incorrectly stopped. (AMPS-2343,Z4352,Z4391)
      • Replication acks can stop flowing if the destination specifies passthrough using a regular expression and the source of a replicated message matches the regular expression for passthrough. (AMPS-2344)
      • Fixed a rapid replication connect/logon/disconnect that can result in an AMPS crash. (AMPS-1624,Z4497)
      • Fixed an issue where persisted acknowledgements could be delayed if there is a steady stream of non-transactional messages that prevent automatic flushing of pending transactional messages. (AMPS-2039)

Version 5.0.0.48 (2017-02-07)

  • This release contains the following fixes:
    • Fix entitlement issue with sow_delete and regular expression topics.
      • When providing a regular expression as the topic to a sow_delete by key or sow_delete by data, a user with read permission to matching topics could be allowed to delete records even if the user did not have write permission to those topics. The ability to use regular expression topics with sow_delete by key and sow_delete by data was introduced in AMPS 5.0.0.3.
      • When providing a regular expression as the topic for a sow_delete, a user that had only write permission to matching topics would not be allowed to delete records.
    • Fix issue with sow, sow_and_subscribe, and sow_and_delta_subscribe when used with a regular expression subscription. For these commands, a regular expression subscription could return no records from the SOW query the first time the query was run, even if there were matching records in the SOW.

Version 5.0.0.47 (2017-02-03)

  • This release contains the following fixes:
    • Fixed issue where SOW query results using a hash index can be incorrect. There was a small gap of time at the end of a query where updates that were deferred during the query might be applied out of order leading to incorrect results in subsequent queries. (AMPS-2327,Z4453)

Version 5.0.0.46 (2017-01-29)

  • This release contains the following fixes:
    • Fixed transaction recovery issue that can cause AMPS to hang at startup. If the transaction journal file that contains the lowest acked txid (lowest one across all destinations) can't be found, then AMPS will hang attempting to find the txid. (AMPS-2243,Z4441,Z4391)
    • Changed journal removal algorithm to not allow AMPS to remove a journal that has the lowest acked txid (even though technically it can be removed).
    • AMPS will log a critical warning if it recovers and the transaction journal that contains the lowest acked txid cannot be found. The rationale is that AMPS cannot determine if there are any messages that have not been replicated if it can't find the journal.
    • Improved logging for transaction journal removal. AMPS will now log the details that allow it to remove a journal in addition to logging details when it cannot remove a journal.

Version 5.0.0.45 (2017-01-18)

  • This release contains the following fixes:
    • Fixed issue in SOW initialization that could cause SOW file corruption, missing SOW records, or incorrect truncation of SOW files. During SOW initialization, the SOW slabs are coalesced, combined, and moved to the beginning of the SOW file for the topic. The file is then truncated. It was possible for the combine operation to incorrectly identify deleted records, especially for topics that maintain historical records. (AMPS-2182)

Version 5.0.0.44 (2017-01-16)

  • This release contains the following fixes:
    • Fixed issue where adding a SOW topic to the AMPS configuration when messages for that topic are already present in existing journals could cause a crash on startup. This only occurs if the journal containing these messages has been indexed. (AMPS-1748,Z3899)

Version 5.0.0.43 (2017-01-09)

  • This release contains the following fixes:
    • Fix to out-of-focus (OOF) processing which could cause OOF messages to be delivered to a subscription that did not request OOF notification when any other subscription to the same topic has ever requested OOF notification. (AMPS-2118,Z4184)

Version 5.0.0.42 (2017-01-08)

  • This release contains the following fixes:
    • Fixed issue where replication stopped when replication resync was in progress and a concurrent disconnect occurred during the changeover to use a bidirectional connection. (AMPS-1788)

Version 5.0.0.41 (2017-01-06)

  • This release contains the following fixes:
    • Fixed issue that caused AMPS to stop processing "do-publish" actions and grow in memory until the operating system forced AMPS to exit. (AMPS-2172,Z3959)

Version 5.0.0.40 (2017-01-03)

  • This release contains the following fixes:
    • Fixed several issues in AMPS internal management:
      • Fixed issue where the protocol buffer message type did not correctly declare delta messaging support to AMPS, which caused delta subscriptions to provide the full message rather than omitting optional fields where the value was unchanged. (AMPS-1936, Z4098)
      • Fix to more accurately track the number of bytes currently queued for a bookmark subscription, improving memory management. (AMPS-1784)
      • Fixed issue with internal hash data structures to reserve slightly more space when initially constructed. (AMPS-2070)

Version 5.0.0.39 (2016-12-29)

  • This release contains the following fixes:
    • Fixed issues that can cause AMPS to prematurely terminate when processing an update to a View's underlying topic and AMPS is unable to find an existing grouping for aggregation. (AMPS-2041, AMPS-2070, Z4194)

Version 5.0.0.38 (2016-12-27)

  • This release contains the following fixes:
    • Fix a race condition during replication resync that can cause replication to stop flowing. If the replication connection receives significant push back during replication resync and is evicted to a self paced replication thread then it is possible that replication will stop flowing after the resync has completed. (AMPS-2124,Z4323).

Version 5.0.0.37 (2016-12-21)

  • This release contains the following fixes:
    • Fix a condition that could cause logging to deadlock. The problem was detected in a case where AMPS attempted to log a "stuck thread" warning and a deadlock occurred. (AMPS-2117,Z4332,Z3959).

Version 5.0.0.36 (2016-12-14)

  • This release contains the following fixes:
    • Fixed issues with replication disconnect handling:
      • Fixed issue where replication logon failures (usually after an authentication or entitlement reset) could cause the replication connection to remain idle without retrying the logon. The replication link would remain disconnected, and no messages would be replicated. (AMPS-1497,AMPS-2007,Z4147,Z3634)
      • Fixed a rapid replication connect/disconnect that can result in crash of AMPS. (AMPS-1624,Z3614,Z3853)
      • Fixed entitlement reset to properly disconnect replication connections. (AMPS-1998,Z4147)

Version 5.0.0.35 (2016-12-13)

  • This release contains the following fixes:
    • Fix issue where slow clients that stop consuming could cause AMPS to use large amounts of CPU while trying to send data to the client. The fix introduces a "back off" period when waiting for a connection to indicate that it is able to receive data. This change also applies to clients with bookmark subscriptions and replication connections. (AMPS-1988,Z4172,Z4088)

Version 5.0.0.34 (2016-12-08)

  • This release contains the following fixes:
    • Fixed issues with seconds_behind metric:
      • Fix issue where the seconds_behind metric could erroneously be reported as 0 or a very large value for queue subscriptions and replication connections.(AMPS-1439,AMPS-2022)
      • The seconds_behind counter for regular subscriptions will now always report as 0. Use the queue_max_latency statistic for the client as a metric for determining if your subscriptions are falling behind. (AMPS-1974)

Version 5.0.0.33 (2016-11-22)

  • This release contains the following fixes:
    • Fixed AMPS crash resulting from a "divide by zero" SIGFPE (floating point exception) when checking if a SOW slab should be coalesced and the SOW slab is empty. (AMPS-1957)

Version 5.0.0.32 (2016-11-17)

  • This release contains the following fixes:
    • Fixed issues with views:
      • Fixed AMPS crash that could happen during a record update for a view that joins several topics together where the rightmost topic is not directly joined to the leftmost topic (for example, a join from A -> B -> C is susceptible, whereas a join from A->{B,C} is not). (AMPS-1961,Z2187,Z4039)
      • Fixed issue where a view may not reflect an update to an underlying join topic when topics are joined by more than one key field. Previously, some configurations would project a NULL value for a field even when data existed. (AMPS-1976,Z3830,Z4152)

Version 5.0.0.31 (2016-11-15)

  • This release contains the following fixes:
    • Fixed several bookmark replay issues:
      • Fixed two bookmark unsubscribe/disconnect scenarios that can cause AMPS to crash. Both scenarios involve either an unsubscribe or a disconnect during replay cutover (the point when a bookmark subscription is transitioning from a replay from the transaction log to delivering messages as they are added to the log). (AMPS-1941,AMPS-1954,Z4079).
      • Fixed a scenario where rapid bookmark resume/pause just before replay cutover could result in skipping the message at the cutover point. (AMPS-1799).
      • Improved the 1D-0092, 1D-0098 and 1D-0099 log messages to include journal details that make it easier to understand which journal contains messages that prevent journal removal. (AMPS-1939,AMPS-1964).

Version 5.0.0.30 (2016-11-07)

  • This release contains the following fixes:
    • Fixed problem that could cause incorrect evaluation of publish entitlement filters. For a topic that did not have a SOW, or where the SOW used user-provided keys, if no subscriptions used a content filter and no filtering was in use for replication and a message processor was receiving publishes for two or more topics, AMPS could skip the parsing step for incoming messages and evaluate all fields in the filter as NULL. This problem did not affect subscription entitlement filters or publish entitlement filters that did not reference the content of the message (for example, calling a user-defined function with a constant value). (AMPS-1878, Z4108)

Version 5.0.0.29 (2016-11-03)

  • This release contains the following fixes:
    • Fixed two bookmark unsubscribe scenarios that can cause AMPS to crash. Both scenarios involve the use of the pause/resume feature of bookmark subscriptions. The first scenario occurs when a bookmark replay is replaying multiple subscriptions (as the result of a pause/resume sequence) and all subscriptions are simultaneously unsubscribed after receiving the completed ack. The second scenario occurs when an unsubscribe is sent almost immediately after the resume command that starts the replay. (AMPS-1775,Z4079)
    • Fixed issue that could cause an AMPS crash when a journal is removed and a client requests a replay for a bookmark inside the removed journal before the journal removal has been fully processed. (AMPS-1927)

Version 5.0.0.28 (2016-11-01)

  • This release contains the following fixes:
    • Fixed several replication issues that allowed replication acknowledgements to return too soon or stop entirely. (AMPS-1859)
      • When a downstream instance went offline and then reconnected, it was possible to send a logon acknowledgement that was not yet guaranteed to have been acknowledged from all sync destinations.
      • Handling duplicate replication messages, particularly with passthrough replication, could create a situation where two instances were each waiting on acknowledgements from the other instance, causing replication acknowledgements to stop flowing.
      • Replicated sow_delete messages were not properly checking for loops in the replication path, and could thus be sent back to the source of the sow_delete, causing replication acknowledgments to stop flowing.

Version 5.0.0.27 (2016-10-28)

  • This release contains the following fixes:
    • Fixed issue where under heavy load on fast storage AMPS could close a journal before all transactions were written. This resulted in multiple critical 'pwrite' error messages and an emergency shutdown of AMPS. This issue caused no damage to the transaction log or loss of persisted messages. (AMPS-1909)

Version 5.0.0.26 (2016-10-27)

  • This release contains the following fixes:
    • Fixed issue where amps-action-on-oof-message would not run Do actions if the OOF was the result of a SOW delete. (AMPS-1704, Z3832)

Version 5.0.0.25 (2016-10-26)

  • This release contains the following fixes:
    • Fixed issue where providing an explicit SowKey on a message published to a topic that uses an AMPS-generated SOW key could cause AMPS to fail to store the update and, in certain scenarios, cause AMPS to crash. (AMPS-1885, AMPS-1381, Z4022)

Version 5.0.0.24 (2016-10-21)

  • This release contains the following fixes:
    • Fixed issue where passthrough replication could fail to replicate a message if four or more replication destinations were configured. (AMPS-1861, Z3898)

Version 5.0.0.23 (2016-10-20)

  • This release contains the following fixes:
    • Fix for AMPS crash that can occur in a rapid connect/logon/disconnect scenario. This crash occurred when the logon process completed during a disconnect. (AMPS-1724, Z3925)

Version 5.0.0.22 (2016-10-10)

  • This release contains the following fixes that were aimed at reducing the amount of memory used at runtime.
    • Optimized the SOW coalesce algorithm to coalesce the SOW slab that will free the largest amount of memory. (AMPS-1581, Z3949)
    • Fixed an issue with SOW expiration where some expirations would not expire properly if the time on the expiration being processed did not exactly match the time the expiration was being checked. (AMPS-1831, Z3949)
    • Limited the memory used by AMPS startup for transaction log recovery. Previously, memory would be allocated and cached in the main thread without being used at runtime. (AMPS-1809, Z3949)
    • Reduced the amount of memory used for small transactions (less than 512 bytes). (AMPS-1824, Z3949)
    • Fixed "byte out buffer" cache statistics which were slightly over-reporting the byte count. (AMPS-1810, Z3949)
    • Fixed an issue which could cause bookmark subscriptions to stop receiving messages after being evicted to a "slow lane" thread. (AMPS-1829, Z3949)
    • Reduced the amount of memory allocated by transaction log shadow buffers. (AMPS-1811, Z3949)

Version 5.0.0.21 (2016-09-27)

  • This release contains the following fixes:
    • Reduce amount of memory used by bookmark subscriptions, especially for slow consumers. The bookmark replay pacing algorithm was too liberal and would accumulate queued bytes if a client was making slow progress. All bookmark replays will be limited to queuing either 1MB of data or one message, whichever is larger. (AMPS-1736)

Version 5.0.0.20 (2016-09-23)

  • This release contains the following fixes:
    • Added new <PerMessageDeflate> option for websocket protocol configurations to provide method to disable server-side support. (AMPS-1740)

Version 5.0.0.19 (2016-09-19)

  • This release contains the following fixes:
    • Fixed bug that would cause a stuck thread if an empty message is published to a topic that a client is delta-subscribed to. (AMPS-1635, Z3783)

Version 5.0.0.18 (2016-09-16)

  • This release contains the following fixes:
    • Fixed bug that could cause replication to pause when replication for all journal files that contain records completes while AMPS is in the process of transitioning to an empty journal file. In this event, replication could pause until the next journal file is filled. (AMPS-1645, Z3613)

Version 5.0.0.17 (2016-09-14)

  • This release contains the following fixes:
    • Fixed bug in ampServer-compat that could cause incorrect results when working with strings shorter than 16 bytes. This bug could result in corrupted merged messages after a delta_publish, failure to start AMPS due to a SOW key change, or incorrect results where a filter or expression is used. (AMPS-1413)

Version 5.0.0.16 (2016-09-12)

  • This release contains the following fixes:
    • Fixed issue with internal hash map maintenance that could cause an AMPS crash when processing very large IN clauses. This problem was reported with an IN clause larger than 40MB that contained more than 500,000 entries. (AMPS-1673, Z3818)

Version 5.0.0.15 (2016-09-08)

  • This release contains the following fixes:
    • Fixed issue where replication compression auto-detection would incorrectly detect incoming streams as uncompressed, causing the connection to remain uncompressed. (AMPS-1579)

Version 5.0.0.14 (2016-08-19)

  • This release contains the following fixes:
    • Fixed issue where a client with multiple active bookmarks subs was disconnected and journal removal would be prevented. (AMPS-1599,Z3723)

Version 5.0.0.13 (2016-08-19)

  • This release contains the following fixes:
    • Fix to preserve original UserId on replicated messages. (AMPS-1608,Z3528)

Version 5.0.0.12 (2016-08-12)

  • This release contains the following fixes:
    • Fixed rapid start/stop bug that can cause AMPS to produce an emergency minidump on shutdown. (AMPS-1558,Z3676)

Version 5.0.0.11 (2016-08-12)

  • This release contains the following fixes:
    • Fixed issue with ClientMessageAgeLimit that would subject bookmark subscriptions to slow client management, which could lead to clients being disconnected. Now bookmark subscriptions without the "live" option are no longer subject to slow client management, as expected. (AMPS-1468, Z3569)

Version 5.0.0.10 (2016-08-09)

  • This release contains the following fixes:
    • Fixed BFlat delta publish merge bug that can cause AMPS to crash. The issue can occur when the BFlat message contains values of double type that are merged into an existing SOW record. (AMPS-1540,Z3662)

Version 5.0.0.9 (2016-08-08)

  • This release contains the following fixes:
    • Fixed multiple bookmark replay scenarios involving various sequences of subscribe/pause/replace/resume/unsubscribe where either subscriptions were not resumed or where journals would not be removed correctly after an unsubscribe. (Z3643, AMPS-1459, AMPS-1490, AMPS-1491, AMPS-1510)

Version 5.0.0.8 (2016-07-25)

  • This release contains the following fixes:
    • Fixed issue where journals would not be removed correctly after a client with bookmark subscriptions disconnected. (AMPS-1449, Z3587)

Version 5.0.0.7 (2016-07-21)

  • This release contains the following fixes:
    • Fixed issue where unprojected grouping fields were evaluated to the wrong value, causing the grouping to be incorrect, which produced incorrect results. (AMPS-1435,Z3602)

Version 5.0.0.6 (2016-07-19)

  • This release contains the following fixes:
    • Fixed issue where AMPS could disconnect an incoming replication connection when modifying a replication link to be bidirectional. This can result in AMPS failing to finalize replication connections and prevent replication from starting. (AMPS-1249,Z3572)

Version 5.0.0.5 (2016-07-17)

  • This release contains the following fixes:
    • Fixed issue where AMPS can fail to parse floating points with too many digits of precision to permit lossless round-tripping to decimal. This defect could yield strange results in View projections and incorrect query results when filtering on fields containing these large floating point values. (Z3567, AMPS-1430)

Version 5.0.0.4 (2016-07-15)

  • This release contains the following fixes:
    • Fixed bug in embedded client command processing that could result in a crash. This was most frequently observed on 4 socket systems with heavy use of on-publish/do-publish actions. (AMPS-1325,Z3507,Z3402)
    • Fix crash that can occur in message queue acknowledgement handling when the message queue is trimmed after delivery is complete. (AMPS-1307,Z3443)
    • Fixed bug where sending 'stop_timer' command to AMPS before sending a 'start_timer' would cause AMPS to crash. (AMPS-1334)
    • Fixed issue where AMPS could project a "0" in place of a NULL field in a view. (AMPS-1294)
    • Fix for WebSocket continuation frames. Previously, AMPS would disconnect a client when sending a continuation frame. (AMPS-1304)
    • Fix for AMPS crash when a client logon for an existing client, e.g. "name in use" forces a disconnect while the existing client is processing a duplicate. (AMPS-1306, Z3501).
    • Fix for sow query that might not return all matching records. The bug can occur when there are many high velocity publishes to the same SOW topic. A race condition could cause AMPS to record the number of valid records incorrectly, causing queries to not evaluate some records despite the records being physically present in the SOW. (AMPS-1308, Z3483)
    • Fixed bug in ampServer-compat that caused SOW binary message data to incorrectly be detected as corrupt with an invalid CRC. (AMPS-1407).
    • Fixed two bugs in transaction-log backed SOW "coalesce" that could result in either SOW corruption or a hang. The scenarios involve a coalesce execution where one of the messages being coalesced is deleted just before the execution of the coalesce. (AMPS-1403).
    • Fix to allow shutdown actions that involve journal compress, archive or removal to execute and complete before AMPS shuts down. (AMPS-1298, Z3414)
    • Added IQUEUE table support to the amps-sqlite3 utility. (AMPS-1296)
    • Corrected age_of_oldest_lease and seconds_behind queue statistics calculations. (AMPS-1301)
    • Fixed issue where AMPS crashes when using the do-extract-values action with a large number of fields. (AMPS-1318)
    • Add MiniDumpFileMask to allow users to set a different file mask for minidumps. The value of MiniDumpFileMask is a numeric octal file mask that would be used by 'chmod'. For example, you'd set the MiniDumpFileMask to 0664 for -rw-rw-r-- permissions. (Z3481, AMPS-1289)
    • Fixed amps protocol parser bug where a field placed at the end of the header with an empty string value would cause the parser to incorrectly return "unknown command". (AMPS-1309).
    • Fix for reporting seconds_behind for bookmark subscriptions in the admin statistics. Previously, this metric was always 0. (AMPS-1295,Z3473)
    • Fixed receive jitter that might observed when one or more offlined clients are disconnected and AMPS removes a large number of offline files in the sending threads. (AMPS-1369).
    • Fix to do a graceful shutdown with an 00-0041 message, rather than hanging, if SOW sync processing is unable to locate a sow update in the transaction log for more than 30 seconds. (AMPS-1370)
    • Fixed two bugs in sow data inflate that create the potential for a corrupted sow record to cause a crash. (AMPS-1395, AMPS-1373, Z3539)

Version 5.0.0.3 (2016-06-18)

  • This release contains the following fixes:
    • Fixed issue that would cause AMPS to crash when processing a primary key SOW query from a client that had an entitlement filter set. (AMPS-1282, Z3451)
    • Fix issue in NVFIX/FIX that could cause AMPS to crash when using OrderBy in a SOW query that contains a message larger than 1400 bytes.
    • Fix issue introduced in AMPS 5.0.0.1 where a SOW might contain a record that causes AMPS to crash on recovery when AMPS incorrectly attempts to decompress data that is not compressed. (AMPS-1225,Z3333)
    • Fix issue where the system CPUID function returns a brand string that is larger than expected. This could cause AMPS to exit. (AMPS-1238,Z3402)
    • Fix SOW recovery in cases where a message in the SOW cannot be parsed to generate a SOW key. Previously, AMPS would log a message and shut down. With this fix, AMPS produces an error, removes the unparseable message from the SOW, and continues recovery. (Z3463, Z3321, AMPS-1281)
    • Fix for performance degradation in JOIN updates following an update involving many grouping tuples. (AMPS-1250, Z3225)
    • Fix for handling of messages that could not be successfully stored in a SOW or transaction log (for example, due to the message being larger than the SOW slab size). Before this fix, failures could result in messages being delivered to the wrong subscription or AMPS crashes. (Z3324,Z3820)
    • Fix for SSL_write failures indicating SSL_ERROR_NONE. AMPS was previously not tracking bytes already sent during an SSL write failure when it went to retry the write. This error resulted in excessive logging of the failure condition. (AMPS-1221,Z3317)
    • Fix serialization of NaN values in JSON views to conform to the JSON specification. (Z3435)
    • Fix bookmark replay failure when a timestamp that lies between two journals is specified. (AMPS-1212, Z3379)
    • Fix unexpected SOW growth that could occur when a 4.X SOW is loaded into a 5.X server. The slab size was incorrectly calculated and would lead to very large slabs being added to the SOW. (AMPS-1222)
    • Fixed issue in tracking memory bytes used by all clients that could cause premature and unnecessary offlining. A common symptom of this problem was a 70-0011 message showing an extremely large number of bytes in use (often petabytes or exabytes). (AMPS-1242)
    • Fix client sequence auto-generation to start with a large number based on the current timestamp. This approach prevents auto-generation from creating duplicate sequence numbers even if the server state is cleared by removing clients.ack. (Z3342)
    • AMPS service install scripts now support a wider variety of Linux distributions. As a part of this change, the scripts now configure the service to look for the AMPS configuration file at /opt/etc/amps/config.xml, since the previous directory was cleared on startup on some distributions. (AMPS-1217, Z3395)
    • Fix to correctly log the replay name of a transaction log replay for logging messages that are recorded before replay begins. Previously, the name would be unset until the replay was initialized. (Z3419, AMPS-1243).
    • Fix bug in JSON delta merge for nested arrays. When the last element in a JSON array was an array, merge processing would emit a single closing bracket rather than multiple closing brackets. This produced invalid JSON. (Z3463, Z3321, AMPS-1281)
    • Fix journal archival failure when running on Linux kernels prior to 2.6.33 and when the journal archive directory is mounted on a separate device from the journal directory. In these cases, sendfile is not supported and AMPS will fall back to use a user space copy implementation (read from source file and write to destination file). (AMPS-1252,Z3414).
    • Fix problem in configuration file parsing that could cause AMPS to ignore instance-level configuration parameters if the configuration file contained a non-content node (such as DOCTYPE) before the AMPSConfig element. (AMPS-1239)
    • Fix the 1D-0099 "unable to execute journal action" log messages to correctly enumerate the replication replay processing threads and fixed a bug that prevented the detailed 1D-0098 log message from being logged more than one time. (AMPS-1243,Z3419).
    • Fix bugs that could cause replication connections to be disconnected due to incorrect calculations in internal resource monitoring. An instance that encountered this problem would see repeated replication client disconnections.

Version 5.0.0.2 (2016-05-19)

  • This release contains the following fixes:
    • Fix to allow all command types after a "retry" response from an authentication module. Previously, a "retry" would be classified as a failure and forbid specific commands from being executed. (Z3056,Z3294)
    • Fix to prevent a server deadlock when a SOW coalesce operation occurs at the same time as a SOW update that expands the size of a record.
    • The amps_journal_dump tool now accepts a --no-data flag. When provided, this flag excludes message data from the dump. (AMPS-1185)
    • Fix incomplete results when a bookmark subscription transitions across journal files. (Z3304)
    • Fix to correctly check for distinct replication destination names when the Name is implicitly set by specifying the Group for the Destination.
    • The is_connected Admin property for replication destinations now reports connectivity correctly. Previously, it would only report this correctly when the destination fell behind, otherwise always reporting that the destination was connected. (Z3332)
    • Fix to preserve the storeCount, deleteCount, and updateCount for a SOW when a slab is cleared for reuse. Previously, the count for the slab would be lost when the slab was cleared.
    • Fix to correctly log trace log messages from the amps_log_sprintf() function when trace level logging is on but developer level logging is off. (Z3280)
    • Only load the protobuf module if the version of glibc on the host system is compatible with the version of glibc required by protobuf. (AMPS-1184)
    • Fix issue that could cause messages that should have been recovered to the SOW to be missed when AMPS is recovering a SOW that was incorrectly synchronized on shutdown (due to hardware failure or similar event).

Version 5.0.0.1 (2016-05-02)

  • This release contains the following fixes:
    • Fix crash when using the ENDS_WITH content filtering predicate on large SOW queries. (Z2994)
    • Fix bug in buffer management that could cause a crash in AMPS. This could occur with the amps or xml protocols when processing messages that contained escaped characters in a header field (such as the contents of a filter). (Z3065, Z3035)
    • Fix race condition when a "name in use" disconnection happened with two clients that were simultaneously publishing updates to a SOW. This problem could cause AMPS to attempt to process a SOW update without proper metadata for the update. When this happened, AMPS would log a message and shut down to protect data integrity.(Z3024)
    • Fix for two edge cases in the new pause/resume functionality where entitlements could be inconsistently applied when an application creates a subscription in the paused state and subsequently resumes the subscription. In the first case, a subscription submitted in the "paused" state that failed entitlement check could be resumed and receive messages if the client ignored the failure acknowledgement from AMPS. In the second case, a subscription submitted in the "paused" state would not have an entitlement filter applied if the application resumed the subscription. (Z3080)
    • Add support for InetAddr "0.0.0.0:0" binding to a real address and log the actual listen port (Z2742)
    • Increased precision of double to string serialization in the fix, nvfix, and xml message types. (Z3051)
    • Fix problem where default ClientMaxCapacity was incorrectly calculated. (Z3098)
    • Improved large SOW delete by filter performance where clients might be disconnected because of missed heartbeat deadlines. In addition, stuck thread messages are logged that indicate that processing of messages is delayed. (Z3110,Z3216)
    • Fix bug where bookmark subscriptions using the "live" option would not receive persisted acknowledgements for the subscription. AMPS internal workload management infrastructure would usually correct this problem after a period of time. Applications are most likely to see the incorrect behavior immediately after subscribing or on very lightly-loaded instances. (Z3106)
    • Fix shutdown issue caused by external clients being destructed inside authentication module. (Z3194)
    • Fix for allowing individual clients to be disconnected from the Admin client disconnect action. Previously, an HTTP 404 would be returned and the client would not be disconnected. (Z3196)
    • Fix for race condition on subscriptions to /AMPS topics that could cause problems when an application is subscribed to one of those topics using a filter, and the application unsubscribes or disconnects at the same time that messages are published to that topic. (Z3096)
    • Fix BFlat decoding of LEB128 where large negative numbers could be incorrectly decoded.

Version 5.0.0.0 (2016-02-24)

  • This release adds functionality to AMPS and includes changes to existing functionality.

  • Compatibility:

    • This release disallows implicit authentication by default. This means that, in the default configuration, all clients must issue an explicit logon() command before they send any other command.

      Notice that this change does not affect any instance or any Transport that already uses a different Authentication method.

      To revert to the default authentication behavior in previous AMPS releases, include this element at the root level of your AMPS configuration file:

      <Authentication>
      <Module>amps-implicit-authentication-module</Module>
      </Authentication>
      • This release adds automated replication configuration validation. By default, AMPS enforces all of the validation checks for replication. If your replication topology does not require one or more of these checks you may need to specify that the validation check is excluded. For example, if your topology intentionally includes one-way replication, you would exclude the check that ensures that the destination instance replicates topics back to the source instance.
    • This release verifies that replication connections are made to the expected destination. AMPS validates that the Group of the replication Destination matches the Group of the remote instance. To update your replication configurations:

      • For destinations that connect to a single instance, set the Group to the Group name of the downstream instance. (If the downstream instance does not explicitly specify a Group, the Group is is the instance Name.)
      • For destinations that provide alternative addresses for failover destinations, set the Group to the Group name of the failover instances.
      • When your configuration specifies multiple Destinations to the same Group, add a unique Name (by convention, the Name of the remote instance) to each Destination.
    • Slow client offlining has been simplified, and AMPS now enforces limits on the total amount of space consumed as well as per-client limits. AMPS also allows you to disconnect clients based on progress (seconds behind in consuming messages) in addition to space consumed. See the User Guide for information on slow client handling and the Configuration Guide for advice on updating settings to the new system.

    • The spark tool no longer treats the -type flag as a synonym for -proto. Instead, -type can only be used with amps protocol connections that accept any known message type, and is used to set the message type for the connection. If you have any existing scripts or processes that use -type, update these to use -proto instead.

    • For module writers, the functions previously provided by api/amps_external_api.h are now provided in sdk/include/amps_api.h. If your module uses these functions, you will need to update the #include directives and include paths.

    • The AMPS default authenticator now uses system calls to determine the current user name rather than the USER environment variable when no user name is provided in the configuration file. This approach is more reliable in environments where the environment variable remains unset. If your processes explicitly set this environment variable, update the configuration file to explicitly set the user for the default authenticator to ${USER}. (AMPS-1033)

    • This release adds server infrastructure to support an enriched administrative interface. This interface will be hosted at the root directory of the administrative interface. To reach AMPS statistics or administrative actions in a web browser, visit /amps rather than /. All other URIs are unaffected by this change. This affects only the page returned when no further path is present.

    • The debug log level is now obsolete. AMPS will continue to accept this level, but no longer produces messages at the debug level. Configurations that use this will continue to function, but 60East recommends updating logging levels to one of trace (for investigating data flow issues), developer for debugging the server, or info for general operation without logging information on the flow of data into and out of the server.

  • This release adds the following features:

    • Message queues are now included in AMPS as an alternative to the the pub/sub delivery strategy. Message queues are particularly useful when an application needs to ensure that an individual message is processed once. Message queues make it easy to build applications that need those semantics with AMPS. AMPS replication fully supports AMPS queues for both high-availability and distributed delivery. Since AMPS supports both pub/sub and queued delivery models, an application can combine delivery models as needed. For example, an application could receive reference data distributed on a pub/sub topic, while processing work orders from a message queue.
    • AMPS now provides automatic validation for replication configuration to help ensure that a set of replicated instances have the intended behavior. By default, AMPS performs validation suitable for a high-availability / disaster recovery topology. If your replication serves a different purpose (for example, replicating messages to a view server that does not replicate back to the source instance), you can exclude the validation rules that do not apply. When migrating from a previous version of AMPS, you may need to update your replication configuration or exclude validation rules that do not apply to your application.
    • This release simplifies the configuration of slow client offlining, and provides instance-wide capacity limits as well as per-client limits. If your configuration specifies slow client offlining, AMPS will process the existing configuration options and emit warnings with information on how the existing items translate to the new configuration, as well as cases where AMPS detects a potential problem with the new instance-wide defaults.
    • Google protocol buffer messages are now supported by the AMPS engine.
    • This release introduces a new message format, BFlat, which combines a lightweight, schema-free message format with a very efficient, lossless representation of numeric data and support for embedded binary data.
    • AMPS now allows a subscriber to limit the rate of bookmark replay by specifying either the maximum messages per second to deliver or the maximum bytes per second to deliver.
    • AMPS now allows a subscriber to issue commands to pause and resume message delivery on a bookmark subscription. This is particularly useful in cases where the client will process messages more slowly than the messages can be delivered, but does not want to consume the TCP buffers on the client and server. Previously, a subscriber would have needed to unsubscribe and resubscribe to get equivalent behavior.
    • New actions for working with messages have been added. These actions allow you to respond to publishes, query the SOW and construct and publish messages from within AMPS. Supporting actions have been added for processing and constructing messages.
    • Full duplex replication allows a single TCP connection to service replication of topics between two servers bidirectionally. Only one of the instances must specify an InetAddr on its destination, and AMPS will automatically eliminate redundant connections when they are specified and established.
    • The amps protocol now supports transports that can accept any known message type. This feature allows connections for different message types to be accepted over a single transport. Each connection specifies the message type that the connection will use in the logon command.
    • Support for using the IN clause with array values. (AMPS-901)
    • amps_upgrade now writes a detailed log of its activity in amps_upgrade.log inside the configured temp directory. (AMPS-743)
    • added new amps_file utility for identifying filetypes and versions of AMPS data files like sow, journal, or ack files. (AMPS-1023)
    • JSON messages are no longer restricted to JSON objects, but may include simple JSON values not enclosed in an object. (AMPS-1052)
    • The amps-sqlite3 script has been added as a convenience utility to make it easier to query the AMPS statistics database.
  • This release contains the following fixes and improvements:

    • Enhance authentication failure message to include the IP address of the failing client. (Z2044)
    • Added configuration validation to warn when topics end in a /* suffix. AMPS supports PCRE regular expressions (which should end in .*) rather than "glob"-style expansion.
    • ClientStatus messages now include the IP address of the client for connect, disconnect, and logon events. (Z1944)
    • AMPS correctly returns a status of failure in persisted acks for not entitled messages that are on a topic in the transaction log.
    • The amps_journal_dump utility now displays warning messages with counts of messages that had an unknown command type or an unknown message type. (AMPS-663)
    • Added a new "message_type" field to /AMPS/SOWStats messages. (AMPS-748)
    • Support storage of JSON documents whose outermost element is an array. (AMPS-630)
    • In certain failover cases involving sync replication destinations, it was possible for AMPS to send repeated persisted acks to a client that indicated the last replicated sequence number as a duplicate message. This is now fixed so that only a single ack indicating duplicate will be sent and the ack will only be sent for the sequence number of the duplicate message. (Z1651)
    • Delta subscriptions to JOINs are now sent messages including any projected grouping columns as keys. (Z1790)
    • Regular expressions in Replication Destination blocks are now allowed when the TransactionLog topics do not use regular expressions so long as at least one topic in the TransactionLog matches the regular expression in the destination. (Z2574)
    • Produce a warning when internal topics (/AMPS/ClientStatus or /AMPS/SOWStats) are configured to be stored in a transaction log or replicated to another instance. AMPS does not log or replicate internal topics. (AMPS-654)
    • amps_journal_dump and amps_sow_dump no longer produce the Compression field in their output. This field indicated the compression type that would be used if the file were to be compressed: this field did not indicate the current state of the file, and was not useful. (AMPS-926)
    • Fix for capturing empty SOW results with the amps-action-do-sow-query module when no DefaultData parameter is specified. Previously, the captured data could contain invalid data when no matching SOW records are returned.
    • Admin console /amps/instance/replication/*/replication_type now displays the current replication type. Previously, it would remain sync when a synchronous replication destination was downgraded to asynchronous.
    • amps_sow_dump and amps_journal_dump now format timestamps with a trailing 'Z' character when run without the --localtime option. (AMPS-971)
    • AMPS now produces a human-readable representation of built-in binary message types in trace messages. This avoids producing unprintable or control characters in the logs while still providing information on the message contents.
    • amps_sow_dump emits records tagged historical_delete more accurately, their 'expiration' time is now omitted and the records' deletion times are emitted with the field name "deleted" (AMPS-1002).
    • amps_sow_dump now omits expired records by default, this can be disabled by by using the new --include-expired option. (AMPS-500).
    • Aggregate functions SUM and AVG now use 80-bit extended precision for floating point values. (AMPS-613, Z1431)
    • Add safeguards to detect when the keys specified in a SOW definition do not match the keys that were used to generate an existing SOW file. When a mismatch is detected, AMPS emits an error and halts the startup process rather than rather than risking potential data loss or incorrect results. (AMPS-365)
    • Added the client authentication identifier to the 1F-0004 log message to correlate the authentication with the other client session parameters.

Version 4.3.3.0 (YYYY-XX-ZZ)

  • This release contains the following fixes:
    • Fix for allowing individual clients to be disconnected from the Admin client disconnect action. Previously, an HTTP 404 would be returned and the client would not be disconnected. (Z3196)
    • Fix incomplete results when a bookmark subscription transitions across journal files. (Z3304)
    • Fix to prevent a server deadlock when a SOW coalesce operation occurs at the same time as a SOW update that expands the size of a record.
    • Fixed issue that would cause AMPS to crash when issuing a primary key SOW query on client that has entitlement filters set.(AMPS-1282, Z3451)
    • Fix bug in JSON delta merge for nested arrays. When the last element in a JSON array was an array, merge processing would emit a single closing bracket rather than multiple closing brackets. This produced invalid JSON. (Z3463, Z3321, AMPS-1281)
    • Fix SOW recovery in cases where a message in the SOW cannot be parsed to generate a SOW key. Previously, AMPS would log a message and shut down. With this fix, AMPS produces an error, removes the unparseable message from the SOW, and continues recovery. (Z3463, Z3321, AMPS-1281)
    • Fixed issue where AMPS could project a "0" in place of a NULL field in a view. (AMPS-1294)
    • Fixed issue where AMPS could exit with a fatal error during view processing when using a floating-point value as a grouping field and the FIX or NVFIX message types. (AMPS-1293,Z3052)
    • Fixed issue following delta_publish for FIX and NVFIX types that could cause index values to be updated incorrectly. This problem could cause those records to be ignored during a SOW query until AMPS rebuilt the index. (Z3506)
    • Fixed issue where AMPS crashes when using the do-extract-values action with a large number of fields. (AMPS-1318)
    • Fix for reporting seconds_behind for bookmark subscriptions in the admin statistics. Previously, this metric was always 0. (AMPS-1295,Z3473)
    • Fix crash on startup when a view is configured with multiple Projection fields with the same field name. (AMPS-1316)
    • Improved large SOW delete by filter performance where clients might be disconnected because of missed heartbeat deadlines. In addition, stuck thread messages are logged that indicate that processing of messages is delayed. (Z3110,Z3216,Z3157)
    • Fixed issue with amps_action_on_offline_stop where the module was not being registered in AMPS. (AMPS-1562)

AMPS version 4.3.2

Version 4.3.2.92 (2018-04-23)

  • Fixed an issue where disabling coalesce for a SOW topic that is backed by a transaction log could cause messages for that topic to be corrupted. (Disabling coalesce for a topic is a workaround that had been provided by 60East support on infrequent occasions on older versions of AMPS using slow storage for high-volume topics with large variation in numbers of active keys.) (AMPS-2881, Z5048)

Version 4.3.2.91 (2018-03-20)

  • Fix issue that could cause transaction log recovery to fail when the metadata in a journal file is corrupted to produce an invalid journal size. (AMPS-3538, AMPS-3357)

Version 4.3.2.90 (2018-03-02)

  • Fixed issue where in some cases SOW queries that only have a single result of execution set the batch_size on the reply to the batch size provided on the command, rather than the setting it to 1 (the number of messages actually returned). (AMPS-3403, Z6239)

Version 4.3.2.89 (2018-02-17)

  • Fix issue when AMPS incorrectly identifies a SOW topic with regular expression characters as a transactional topic. (AMPS-3668, Z6838)

Version 4.3.2.88 (2017-02-10)

  • Fix crash when a client attempts to execute a sow_and_subscribe replace with OOF where the topic is changed. (Z6808, AMPS-3651).

Version 4.3.2.87 (2017-01-21)

  • This release contains the following fixes:
    • Fixed issue where adding a SOW topic to the AMPS configuration when messages for that topic are already present in existing journals could cause a crash on startup. This only occurs if the journal containing these messages has been indexed. (AMPS-1748,Z3899)
    • Fixed bug in embedded client command processing that could result in a crash. This was most frequently observed on 4 socket systems with heavy use of on-publish/do-publish actions. (AMPS-1325,Z3507,Z3402)
    • Fixed issue where the AMPS admin console would show an incorrect replication_type. Previously, it would display sync even when a synchronous replication destination had been downgraded to async. (AMPS-2782,Z5054)
    • Fix issue where a client's subscription_count in the admin console could be a negative value. (AMPS-792,Z5050)
AMPS Version 4.3.2.86 was intentionally skipped

Version 4.3.2.85 (2017-12-29)

  • Fix response to out of space errors for the transaction log journal directory during runtime and upon recovery. In certain out of space scenarios AMPS could shutdown and not be able to successfully restart until the last index file for the transaction log was removed (transaction log data itself was not affected). With this fix, AMPS will attempt to remain running as long as possible, and will correctly write index files. (AMPS-2994, Z5698, Z5448)
  • Fix startup bug where if one of the last two journals had one or more corrupted records then AMPS would fail to start. (AMPS-3001)

Version 4.3.2.84 (2017-12-23)

  • Fix race condition that can cause transaction log entries for publishes to SOW topics with external keys to be reported as having CRC corruption. (AMPS-3278, Z6150)

Version 4.3.2.83 (2017-12-21)

  • Ensure startup actions are fully processed before accepting client connections. This fix prevents the potential for internal clients, including on- actions, to miss messages between AMPS startup and subscriptions being placed. (AMPS-2983, Z5318)
AMPS Version 4.3.2.82 was intentionally skipped

Version 4.3.2.81 (2017-12-11)

This release contains fixes for the following issues:

  • Fix possibility for premature removal of journals when an async replication link is disconnected, new journals are produced and AMPS restarts. (AMPS-3467)
AMPS Version 4.3.2.80 was intentionally skipped

Version 4.3.2.79 (2017-11-30)

This release contains fixes for the following issues:

  • Fixed issue that could cause a SOW file to grow on startup in cases where the host does not have enough free memory during startup to hold the contents of the SOW. (AMPS-3410, Z6063)
AMPS Version 4.3.2.78 was intentionally skipped

Version 4.3.2.77 (2017-11-19)

  • This release contains the following fixes:
    • Fix issue where view processing thread would not update the thread monitor during view updates, which could cause stuck thread messages to be logged. (AMPS-3413)

Version 4.3.2.76 (2017-11-17)

  • This release contains the following fixes:
    • Improve performance when replaying from the transaction log by reducing reads from storage when the data needed is already in a memory buffer. (AMPS-3181)
    • Fix issue where AMPS could process and log a duplicate sow_delete command if that command was the last message received from a client before restart and the first message received from a client after recovery. With this fix, AMPS duplicate detection now tracks sow_delete messages during recovery as well as during normal operation. (AMPS-3393)

Version 4.3.2.75 (2017-11-14)

  • This release contains the following fixes:
    • Fix bug that could cause AMPS to crash when a publish occurred to a transaction-backed SOW topic with regular expression characters in the name. (AMPS-2885, Z5072, Z5080, Z6210)
    • Fix bug that could cause replication to ignore transaction-backed SOW topics with regular expression characters in the name. (AMPS-2885, Z5130, Z5001)

Version 4.3.2.74 (2017-11-13)

  • This release contains the following fixes:
    • Fix issue where sow_delete commands can be recorded out of order, which prevents the sow_delete from being correctly replicated. (AMPS-3354, AMPS-3367, Z6159, Z5581, Z6223, Z6141)

Version 4.3.2.73 (2017-11-9)

  • This release contains the following fixes:
    • Fix issue that could cause AMPS to exit with error code 00-0041 while processing NULL values in views that used multiple topics. (AMPS-3376, Z5644)
    • Additional fixes for issue where AMPS could crash due to an internal data structure attempting to free memory that it had not allocated. (AMPS-2012, Z6111)

Version 4.3.2.72 (2017-10-22)

  • This release contains the following fixes:
    • Fixed issue where storage-imposed delays writing to offline files can cause clients to be disconnected due to missed heartbeats. (AMPS-3244, Z5829)

Version 4.3.2.71 (2017-10-18)

  • This release contains the following fixes:
    • Fixed issue where querying a conflated topic could return incorrect results when the underlying topic specified a hash index and the query on the conflated topic would have used that hash index. (AMPS-3262, Z5940)

Version 4.3.2.70 (2017-10-14)

  • This release contains the following fixes:
    • Fixed issue where replication with compression enabled could be unnecessarily slowed due to incorrect processing. (AMPS-3180)

Version 4.3.2.69 (2017-09-05)

  • This release contains the following fixes:
    • Fix for AMPS crash that can occur when multiple bookmark subscriptions are being joined and/or unsubscribed. (AMPS-2068, AMPS-1987, Z5431)

Version 4.3.2.68 (2017-08-24)

  • This release contains the following fixes:
    • Fix issue that can cause AMPS to hang during restart due to deadlock when inserting to an internal data structure. (AMPS-3068)
AMPS Version 4.3.2.67 was intentionally skipped

Version 4.3.2.66 (2017-08-07)

  • This release contains the following fixes:
    • Remove fatal abort if SOW recovery detects a SOW file size that is not a multiple of system page size. (AMPS-2984)
    • Fix issue that could cause loss of data in a SOW file upon compaction or recovery. (AMPS-2937, Z5415)
    • Fix issue that could cause loss of data in a SOW file upon detection of CRC corruption during recovery. (AMPS-2986)

Version 4.3.2.65 (2017-08-04)

  • This release contains the following fixes:
    • Fixed issue that could cause AMPS to crash when rebuilding a view in cases where the view used a SOW topic being recovered from the transaction log and the transaction log recovery contained both publish and sow_delete messages. (AMPS-3007, Z5473)

Version 4.3.2.64 (2017-07-23)

  • This release contains the following fix:
    • Fix issue where a replicated sow_delete that contains a regular expression topic can cause AMPS to hang during restart. (AMPS-2809, Z5136)
AMPS Version 4.3.2.63 was intentionally skipped
AMPS Version 4.3.2.62 was intentionally skipped

Version 4.3.2.61 (2017-07-10)

  • This release contains the following fixes:
    • Fixed issue where amps_journal_dump failed to output all records from compressed journals. (AMPS-2776, AMPS-2852)
    • Fixed issue where amps_journal_dump would output incorrect aggregate metadata for compressed journals. (AMPS-2960)

Version 4.3.2.60 (2017-07-06)

  • This release contains the following fixes:
    • Fixed issue where AMPS can fail to start up if one of the SOW key field values is an array of more than 2 items. (AMPS-2892, Z5252)

Version 4.3.2.59 (2017-07-06)

  • This release contains the following fixes:
    • Fixed issue where expression value lists that contain just a single, non-literal expression (mathematical expressions in "IN" clause filter) can cause a crash. (AMPS-2919, Z5292)

Version 4.3.2.58 (2017-06-14)

  • This release contains the following fixes:
    • Fixed several issues with --verify-config flag where AMPS could either core or incorrectly report errors. (AMPS-2855, Z5205)
AMPS Version 4.3.2.57 was intentionally skipped
AMPS Version 4.3.2.56 was intentionally skipped

Version 4.3.2.55 (2017-05-08)

  • This release contains the following fixes for upgraded instances:
    • Fixed issue where the last synced txid was not correctly persisted to the SOW when upgrading from 3.9. (AMPS-1506, Z4511)
    • Fixed issue in SOW upgrade that could lead to long SOW recovery times and incorrect SOW record counts. (AMPS-2640, Z4511)
    • Fixed issue while upgrading journals from 3.9 that could lead to missing upgraded journal entries. (AMPS-2656, Z4511)

Version 4.3.2.54 (2017-05-05)

  • This release contains the following fixes:
    • Fix issue where an upgraded journal may not be properly aligned which could cause AMPS to fail to recover transactions. (AMPS-2522)

Version 4.3.2.53 (2017-05-01)

  • This release contains the following fixes:
    • Fixed issue where amps_journal_dump would not print all records in the active journal when AMPS was running. (AMPS-2604, Z4581)

Version 4.3.2.52 (2017-04-26)

  • This release contains the following fixes:
    • Fixed issue where AMPS can stop reading from the transaction log until the next journal was completely written. This could cause replication and bookmark subscriptions to stall. (AMPS-2644, AMPS-2645, Z4664)

Version 4.3.2.51 (2017-04-21)

  • This release contains the following fixes:
    • Fixed journal recovery bugs that conspire to "bloat" the memory footprint of AMPS at startup for configurations using journal archives. (AMPS-2624, Z4892)

Version 4.3.2.50 (2017-04-18)

  • This release contains the following fixes:
    • Fixed crash caused by race condition in an internal data structure. (AMPS-2532, Z4898)

Version 4.3.2.49 (2017-04-11)

  • This release contains the following fixes:
    • Fixed issue where replicated sow_deletes that specify a regular expression for the topic name may produce an invalid topic error on downstream instances rather than being correctly processed. (AMPS-2414,Z4580)

Version 4.3.2.48 (2017-04-05)

  • This release contains the following fixes:
    • Fixed issue where AMPS could crash due to an internal data structure attempting to free memory that it had not allocated. (AMPS-2012)
    • Fixed issue where an entry in a data structure could be lost if the entry was hashed to either 0 or -1. (AMPS-2012)

Version 4.3.2.47 (2017-03-22)

  • This release contains the following fixes:
    • Added extra diagnostic logging when a fatal shutdown occurs due to an internal error when processing views and aggregates. (AMPS-2509)
AMPS Version 4.3.2.46 was intentionally skipped

Version 4.3.2.45 (2017-03-08)

  • This release contains the following fixes:
    • Fix for AMPS crash that can occur when merging a delta_publish containing one or more empty JSON arrays. (AMPS-2259,Z4659)

Version 4.3.2.44 (2017-03-02)

  • This release contains the following fixes:
    • Fix issue where a JSON message may be stored in the SOW under more than one SOW key if a JSON message has the same key more than once in a single message or if a SOW query was issued with a filter that references an array value. (AMPS-2453, AMPS-2045, Z4108, Z4249)

Version 4.3.2.43 (2017-02-03)

  • This release contains the following fixes:
    • Fixed issue where SOW query results using a hash index can be incorrect. There was a small gap of time at the end of a query where updates that were deferred during the query might be applied out of order leading to incorrect results in subsequent queries. (AMPS-2327,Z4453)

Version 4.3.2.42 (2017-02-02)

  • This release contains the following fixes:
    • Fix entitlement issue with sow_delete and regular expression topics.
      • Fix issue with sow, sow_and_subscribe, and sow_and_delta_subscribe when used with a regular expression subscription. For these commands, a regular expression subscription could return no records from the SOW query the first time the query was run, even if there were matching records in the SOW. (AMPS-2281, z4454)
      • When providing a regular expression as the topic for a sow_delete, a user that had only write permission to matching topics would not be allowed to delete records. (AMPS-2281)

Version 4.3.2.41 (2017-01-18)

  • This release contains the following fixes:

    • Fixed issue in SOW initialization that could cause SOW file corruption, missing SOW records, or incorrect truncation of SOW files. During SOW initialization, the SOW slabs are coalesced, combined, and moved to the beginning of the SOW file for the topic. The file is then truncated. It was possible for the combine operation to incorrectly identify deleted records, especially for topics that maintain historical records. (AMPS-2182)

Version 4.3.2.40 (2017-01-09)

  • This release contains the following fixes for the seconds_behind metric:
    • Fixed issues with seconds_behind metric:
      • Fix issue where the seconds_behind metric could erroneously be reported as a very large value for bookmark subscriptions. (AMPS-1975)
      • The seconds_behind counter for regular subscriptions will now always report as 0. Use the queue_max_latency statistic for the client as a metric for determining if your subscriptions are falling behind. (AMPS-1974)

Version 4.3.2.39 (2017-01-04)

  • This release contains the following fixes:
    • Fixed issue where offlined clients can be incorrectly disconnected due to a race condition while calculating ClientMaxBufferThreshold. (AMPS-2137,Z4169)

Version 4.3.2.38 (2016-12-28)

  • This release contains the following fixes:
    • Fix to out-of-focus (OOF) processing which could cause OOF messages to be delivered to a subscription that did not request OOF notification when another subscription to the same topic has requested OOF notification. (AMPS-2118,Z4184)

Version 4.3.2.37 (2016-12-20)

  • This release contains the following fixes:
    • Fixed issues that can cause AMPS to prematurely terminate when processing an update to a View's underlying topic and AMPS is unable to find an existing grouping for aggregation. (AMPS-2041, AMPS-2070, Z4194)

Version 4.3.2.36 (2016-11-22)

  • This release contains the following fixes:
    • Optimized the SOW coalesce algorithm to coalesce the SOW slab that will free the largest amount of memory. (AMPS-1581, Z3949)
    • Fixed two bugs in transaction-log backed SOW "coalesce" that could result in either SOW corruption or a hang. The scenarios involve a coalesce execution where one of the messages being coalesced is deleted just before the execution of the coalesce. (AMPS-1403).
    • Fix to prevent a server deadlock when a SOW coalesce operation occurs at the same time as a SOW update that expands the size of a record.
    • Fixed AMPS crash resulting from a "divide by zero" SIGFPE (floating point exception) when checking if a SOW slab should be coalesced and the SOW slab is empty. (AMPS-1957)

Version 4.3.2.35 (2016-11-17)

  • This release contains the following fixes:
    • Fixed an issue where the AMPS admin console could return malformed XML or an HTTP 404 error for some URIs when the statistics database was removed while AMPS was running or the disk containing the database became full. AMPS now returns an HTTP 500 internal server error when AMPS cannot return statistics due to problems with the statistics database file. (AMPS-1668,Z3748)

Version 4.3.2.34 (2016-11-17)

  • This release contains the following fixes:
    • Fixed an issue where the /amps/host/disks admin URI did not contain data for devices with a name that contains a - character. (AMPS-1709,Z3748)

Version 4.3.2.33 (2016-11-16)

  • This release contains the following fixes:
    • Fixed issues with views:
      • Fixed AMPS crash that could happen during a record update for a view that joins several topics together where the rightmost topic is not directly joined to the leftmost topic (for example, a join from A -> B -> C is susceptible, whereas a join from A->{B,C} is not). (AMPS-1961,Z2187,Z4039)
      • Fixed issue where a view may not reflect an update to an underlying join topic when topics are joined by more than one key field. Previously, some configurations would project a NULL value for a field even when data existed. (AMPS-1976,Z3830,Z4152)

Version 4.3.2.32 (2016-11-14)

  • This release contains the following fixes:
    • Fixed bug in ampServer-compat that could cause incorrect results when working with strings shorter than 16 bytes. This bug could result in corrupted merged messages after a delta_publish, failure to start AMPS due to a SOW key change, or incorrect results where a filter or expression is used. (AMPS-1413)

Version 4.3.2.31 (2016-11-09)

  • This release contains the following fixes:
    • Fix to preserve original UserId on replicated messages. (AMPS-1608,Z3528)

Version 4.3.2.30 (2016-11-07)

  • This release contains the following fixes:
    • Fixed problem that could cause incorrect evaluation of publish entitlement filters. For a topic that did not have a SOW, or where the SOW used user-provided keys, if no subscriptions used a content filter and no filtering was in use for replication and a message processor was receiving publishes for two or more topics, AMPS could skip the parsing step for incoming messages and evaluate all fields in the filter as NULL. This problem did not affect subscription entitlement filters or publish entitlement filters that did not reference the content of the message (for example, calling a user-defined function with a constant value). (AMPS-1878, Z4108)

Version 4.3.2.29 (2016-11-02)

  • This release contains the following fixes:
    • Fixed bug that could cause replication to pause when replication for all journal files that contain records completes while AMPS is in the process of transitioning to an empty journal file. In this event, replication could pause until the next journal file is filled. (AMPS-1645, Z3613)

Version 4.3.2.28 (2016-10-29)

  • This release contains the following fixes:
    • Fixed issue where under heavy load on fast storage AMPS could close a journal before all transactions were written. This resulted in multiple critical 'pwrite' error messages and an emergency shutdown of AMPS. This issue caused no damage to the transaction log or loss of persisted messages. (AMPS-1909)

Version 4.3.2.27 (2016-10-27)

  • This release contains the following fixes:
    • Fixed issue where a stuck thread will occur if an empty message is published to a topic that has a delta-subscriber. (AMPS-1635, Z3783)

Version 4.3.2.26 (2016-10-27)

  • This release contains the following fixes:
    • Fix for allowing individual clients to be disconnected from the Admin client disconnect action. Previously, an HTTP 404 response would be returned without disconnecting the client. (AMPS-1616, Z3196, Z3748, Z4025)

Version 4.3.2.25 (2016-10-25)

  • This release contains the following fixes:
    • Fix for sow query that might not return all matching records. The bug can occur when there are many high velocity publishes to the same SOW topic. A race condition could cause AMPS to record the number of valid records incorrectly, causing queries to not evaluate some records despite the records being physically present in the SOW. (AMPS-1308, Z3483)

Version 4.3.2.24 (2016-10-21)

  • This release contains the following fixes:
    • Fixed issue where passthrough replication could fail to replicate a message if four or more replication destinations were configured. (AMPS-1861, Z3898)

Version 4.3.2.23 (2016-10-12)

  • This release contains the following fixes and updates:
    • Fixed issue with internal hash map maintenance that could cause an AMPS crash when processing very large IN clauses. This problem was reported with an IN clause larger than 40MB that contained more than 500,000 entries. (AMPS-1673, Z3818)
    • The amps-sqlite3 script has been included as a convenience utility to make it easier to query the AMPS statistics database.

Version 4.3.2.22 (2016-10-11)

  • This release contains the following fixes:
    • Fix client sequence auto-generation to start with a large number based on the current timestamp. This approach prevents auto-generation from creating duplicate sequence numbers even if the server state is cleared by removing clients.ack. (AMPS-1597, Z3724, Z3342)

Version 4.3.2.21 (2016-10-08)

  • This release contains the following fixes:
    • Fix for AMPS crash when a client logon for an existing client, e.g. name in use forces a disconnect while the existing client is processing a duplicate. (AMPS-1306, Z3272)
    • Fix for AMPS crash that can occur in a rapid connect/logon/disconnect scenario where the logon process completes during a disconnect. (AMPS-1724, Z3925)

Version 4.3.2.20 (2016-09-23)

  • This release contains the following fixes:
    • Fix issue where replication resync or bookmark subscription can unexpectedly pause while trying to use a journal that was partially filled at startup. The resync process or subscription continues when additional data is published and the partially filled journal file is filled. (AMPS-1722)

Version 4.3.2.19 (2016-09-18)

  • This release contains the following fixes:
    • Fix issue where the seconds behind metric could erroneously be reported as 0 or a very large value for bookmark subscriptions and replication connections. (AMPS-1295,AMPS-1439)
    • Documentation was not included in the release tarball. Please use the following links.

Version 4.3.2.18 (2016-08-21)

  • This release contains the following fixes:
    • Fixed issue where a replication destination reconnect would prevent journals from being removed. (AMPS-1586)
    • Fixed issue that prevented journals from being removed when journals were being marked for both compression and removal and the removal was not the first journal in the transaction log. (AMPS-1602)

Version 4.3.2.17 (2016-08-17)

  • This release contains the following fixes:
    • Fixed issue where using an entitlement filter with a sow query by primary key would cause AMPS to do an emergency minidump and shutdown. (AMPS-1282,Z3451)

Version 4.3.2.16 (2016-07-25)

  • This release contains the following fixes:
    • Fixed issue where AMPS could exit with a fatal error during view processing when using a floating-point value as a grouping field and the FIX or NVFIX message types. (AMPS-1293,Z3052)
    • Fixed issue following delta_publish for FIX and NVFIX types that could cause index values to be updated incorrectly. This problem could cause those records to be ignored during a SOW query until AMPS rebuilt the index. (Z3506)

Version 4.3.2.15 (2016-07-21)

  • This release contains the following fixes:
    • Fix for performance degradation in JOIN updates following an update involving many grouping tuples. (AMPS-1250, Z3225)

Version 4.3.2.14 (2016-07-18)

  • This release contains the following fixes:
    • Fixed issue where AMPS would not start on some hosts due to an incompatible version of GLIBC with the error: "version 'GLIBC_2.14' not found (required by ./ampServer)" (Z3579, AMPS-1441)

Version 4.3.2.13 (2016-07-17)

  • This release contains the following fixes:
    • Fixed issue where AMPS can fail to parse floating points with too many digits of precision to permit lossless round-tripping to decimal. This defect could yield strange results in View projections and incorrect query results when filtering on fields containing these large floating point values. (Z3567, AMPS-1430)

Version 4.3.2.12 (2016-03-28)

  • This release contains the following fixes and changes:
    • Fix bug in buffer management that could cause a crash in AMPS. This could occur with the amps or xml protocols when processing messages that contained escaped characters in a header field (such as the contents of a filter). (Z3065, Z3035)
    • Improve configuration validation to report a configuration error for projecting the same field name more than once in a single view. Previously, AMPS would produce undefined results, and in some cases crash, if a view projected the same field more than once. (Z3137)
    • Increased precision of double to string serialization in the fix, nvfix, and xml message types. (Z3051)
    • Fix bug where bookmark subscriptions using the "live" option would not receive persisted acknowledgements for the subscription. AMPS internal workload management infrastructure would usually correct this problem after a period of time. Applications are most likely to see the incorrect behavior immediately after subscribing or on very lightly-loaded instances. (Z3106)
    • Fix for invalid ephemeral port warning of InetAddr in configuration file validation. (Z3046)
    • Fix bug where bookmark unsubscribe after cutover occurs was not properly processed, which could result in messages being delivered to the subscription after unsubscribe.
    • Fix for SOW delete by filter to prevent race condition that could result in a stuck thread when the delete runs concurrently with another SOW delete.
    • Fix where an unentitled subscription could be placed even though an error would be returned and the failure communicated to the subscribing client. This would leave an unentitled subscription visible in the Admin subscription list until the client unsubscribes "all" subscriptions or disconnects. No messages would be delivered to the client.

Version 4.3.2.11 (2016-03-04)

  • This release contains the following fixes:
    • Fix crash when querying a JSON SOW topic using a filter that references a set of elements that contains one or more booleans. (Z2666)
    • Fix crash when using the ENDS_WITH content filtering predicate on large SOW queries. (Z2994)
    • Add support for InetAddr "0.0.0.0:0" binding to a real address and log the actual listen port. (Z2742)
    • Fix bug that could interfere with journal removal. In some situations, after all replays from the transaction log were complete, AMPS would not reset the lowest transaction log point until a new replay began. (Z2725)
    • Fix crash caused by a defect in buffer handling. This problem was seen when processing high volumes of sow queries containing large filters. (Z3027)
    • Fix stack overflow that could occur during delta publish of large BSON messages. (Z2949)
    • Correctly handle negative 4-byte signed integers from BSON messages (AMPS-1042)
    • Fix journal removal race condition that could cause the memory list of journal files to be out of sync with the set of files on disk. This problem could cause gaps or errors in bookmark replay.

Version 4.3.2.10 (2016-01-21)

  • This release contains the following fixes:
    • Fix for memory growth issues when publishers are providing relatively large messages (> 1MB) at a slow rate. (Z2686)
    • Fix crash when querying by hash index on an empty SOW. (Z2692)
    • Fix crash when using IS NOT NULL with a JSON array. (Z2677)
    • AMPS again includes a build of libxml2 (used for configuration parsing) that works on older Linux installations that use glibc 2.5. (Z2666)
    • Fix bug in spark that produced incorrectly formatted logon commands, causing logon from spark to fail. (Z2644)
    • Fix bug that could cause filtered replication to ignore the filter in a configuration that does not otherwise parse the replicated messages.

Version 4.3.2.9 (2016-01-13)

  • This release contains the following fixes and improvements:

    • Passthrough replication now correctly passes through sow_delete by filter. (Z2562)
    • Delta subscriptions to JOINs are now sent messages including any projected grouping columns as keys. (Z1790)
    • Delta subscriptions to a composite-local message type now results in publishes sent to the user with a delta of each part. (AMPS-916)
    • amps_upgrade now recognizes RecordSize specifiers that use unit suffixes (KB, MB, etc.) (Z2602)
    • Fix to correctly re-size journal entries during upgrade (Z2602)
    • sow_delete commands now provide a persisted ack in cases where the SOW topic is not recorded in the transaction log and this acknowledgment has been requested. (Z2643)
  • Compatibility: This release of AMPS includes the following breaking changes from 4.3.2.8 versions.

    • When using delta_publish with composite message types that contain binary parts, a 0-byte binary part leaves the previous contents of that part unchanged. Previously, a delta_publish with an empty binary part would erase the existing data in that binary part, meaning that publishers had to fully republish binary data even when using delta publish. (AMPS-916)

Version 4.3.2.8 (2015-12-10)

This release includes all bug fixes and features present in 4.3.1.8 and previous 4.3.1.X releases.

Version 4.3.2.6 (2015-11-15)

This release includes all bug fixes and features present in 4.3.1.6.

Version 4.3.2.5 (2015-10-21)

This release includes all bug fixes and features present in 4.3.1.5.

The 4.3.2.X line of AMPS releases updates the infrastructure for the AMPS executable to improve performance and stability. The core functionality of AMPS is identical to the corresponding 4.3.1.X release.

With these improvements, AMPS 4.3.2.X can outperform version 4.3.1.X in many applications. For example, filter compilation that uses large string literals can be more than an order of magnitude more efficient.

60East recommends using the 4.3.2.X releases to take advantage of the performance improvements. In some cases, these improvements may provoke different behavior in the applications that use AMPS: for example, an application that previously relied on a filter taking a specific amount of time to compile may now behave differently due to performance improvements in filter compilation. 60East will continue to provide 4.3.1.X builds to provide a transition for these applications.

AMPS version 4.3.1

Version 4.3.1.8 (2015-12-08)

  • This hot-fix release does not add or change major functionality.
  • Compatibility: This release is fully compatible with 4.3.1.7.
  • Migration: This release is fully compatible with 4.3.1.7.
  • This release contains the following fixes:
    • Fix bug where non-journal files present in the journal directory, for example, "A.0000000036.journal.bak.gz" cause AMPS to exit on startup. (Z2529)
    • Fix bug where an incorrect validity check in AMPS SOW query by hash index or primary key would cause "emergency: 00-0041" and force AMPS to exit. (Z2530)
    • Fix bug where a replication destination that goes down without sending any replication messages could incorrectly try to replay from a missing journal. In this scenario, A replicates to B, but goes down without sending any messages. Upon replay, B requests replay from EPOCH, since no messages have been received. In this case, A could attempt to replay from journals that have been removed, even though those journals contained no messages for B. AMPS now records heartbeats in the clients.ack file to allow A to resume replication at the correct starting point. (Z2539)
    • Fix bug in journal replay code that incorrectly detects a read error at the end of a journal in scenarios where a journal is smaller than the configured max journal size. (Z2529)
    • Fix to correctly parse FIX and NVFIX message types that use the FieldSeparator configuration item to set a custom separator character. (Z2518)
    • Fix skipped messages when issuing a bookmark subscribe by timestamp.
    • Fix bug where, when historical and non-historical queries are executed at the same time, the non-historical query receives results as if it was run as a historical query.

Version 4.3.1.7 (2015-11-30)

  • This hot-fix release does not add or change major functionality.
  • Compatibility: This release is fully compatible with 4.3.1.6.
  • Migration: This release is fully compatible with 4.3.1.6.
  • This release contains the following fixes and improvements:
    • Fixes to I/O handling for journal files. AMPS now correctly manages buffering for journal files with a "no-op" transaction (used for aligned writes) at the end of the file. This fix prevents an AMPS hang and/or read errors on some devices. (Z2483, Z2498, Z2504)
    • Fix to replication to prevent an intermittent failure to send a logon request to a remote instance when the remote instance restarts. In this case, the local instance reconnects and logs that the logon request is sent, but the local instance does not actually send the logon. The remote instance does not receive a logon so no messages are replicated. (Z2482)
    • Admin console now correctly formats queries that use a time series when returning JSON-format results. (Z2507)
    • Fix to signal handling where signals could cause AMPS to reprocess the configuration file, incorrectly report duplicate configuration entries, and shut down. (Z2508)
    • Fix to prevent crash when AMPS is started with -validate-config flag and the provided configuration file is not valid XML. (Z2495)

Version 4.3.1.6 (2015-11-06)

  • This hot-fix release does not add or change major functionality.
  • Compatibility: This release is fully compatible with 4.3.1.5.
  • Migration: This release is fully compatible with 4.3.1.5.
  • This release of AMPS includes the following new features:
    • Adds support for InitialState property each configured Transport. If it is set to disabled, the Transport will not be started when AMPS is started. The default for this property is enabled. (Z2163) (AMPS-806)
  • This release contains the following additional fixes and improvements:
    • Fixes for a number of race conditions in bookmark replay that could cause replays tailing the transaction log to not deliver messages. Under load, these conditions could cause stuck thread messages for the bookmark replay thread or AMPS crashes. (Z2364, Z2310, Z2363, Z2427)
    • Fix to correctly allow journal files to be removed in cases where a file has no messages for a specific replication destination. Previously, AMPS would consider that journal file to still be required because the destination has not acknowledged any message in the file. (Z2342)
    • Fix for memory leak in SOW updates with hash index. (Z2383)
    • Fix for ignoring trailing whitespace on filters during the quick-pass heuristic that determines if the filter is a candidate for a hash indexed query. Previously, trailing whitespace would fail the quick-pass heuristic and fall-back to the standard parallel-query. (Z2330)
    • Fix for bug that caused AMPS to crash when serializing /AMPS/SOWStats messages in XML format. (Z2325)
    • Fix for is_enabled flag on transports in administrator to show correct status. Previously it always was 0. (AMPS-789)
    • Fix occasional 0-length data in publishes to delta_subscribers on journaled SOW topics when other non-delta subscribers are connected. (Z2323)
    • Fix for delta subscriptions to correctly enforce no_empties when send_keys is set and the message type does not represent empty messages as a zero length string (for example, {} as an empty document in JSON). (Z2411)
    • Improve Admin HTTP response times for large statistics roll-ups. Previously, it could take AMPS many seconds to respond to an /amps.json roll-up when thousands of clients are connected with thousands of subscriptions. This improvement decreases the response time to a function of network bandwidth (i.e. fast networks will see sub-second responses, even when the roll-up payload is many megabytes.) (Z2091)

Version 4.3.1.5 (2015-10-14)

  • This hot-fix release does not add or change major functionality.

  • Compatibility: This release is fully compatible with 4.3.1.4.

  • Migration: This release is fully compatible with 4.3.1.4.

  • This release contains the following additional fixes and improvements:

    • Fix JSON delta serialization for zero length strings. If a field is published as a zero length string then the delta message should also contain a zero length string, denoted by "". (Z2307)
    • Fix message pipeline throttling caused by incorrect handling of replicated sow delete when the sow delete had already been received (for example, after failover). (Z1956)
    • Fix for problem where simultaneous SOW queries on a primary key could result in a query not receiving results. (Z2322)
    • Fix problem that could cause transaction log replay to end prematurely at the end of a journal file when the sequence of reads produced a zero length read that was incorrectly interpreted as an error.
    • Fix amps_journal_dump total bytes calculations that were previously misreported as being 3584 (4096-512) bytes too small.

Version 4.3.1.4 (2015-09-28)

  • This hot-fix release does not add or change major functionality.

  • Compatibility: This release is fully compatible with 4.3.1.3.

  • Migration: This release is fully compatible with 4.3.1.3.

  • Security note: Releases from 4.3.1.2 onward (including this release) contain a fix for vulnerability AMPS 2015-01, which could result in successful replication logins for users that were not permitted to log on to replication connections. Read/write entitlements were not affected and were correctly enforced. The full vulnerability note is available at http://support.crankuptheamps.com/hc/en-us/articles/209369958

  • This release contains the following additional fixes and improvements:

    • Fix for projection of values from arrays in Views/Joins. Previously, any projection that used an array index > 0 would project as a 0, rather than the value contained in the message at that array index. (Z2192)
    • Improvements to configuration file validation when using a topic specifiers inside of View (non-Join) projection expressions. Previously, AMPS would only validate that the topic specifiers were valid in Join configurations. (Z2212)
    • In certain failover cases involving sync replication destinations, it was possible for AMPS to send repeated persisted acks to a client that indicated the last replicated sequence number as a duplicate message. This is now fixed so that only a single ack indicating duplicate will be sent and that they will only be sent for the sequence number of the duplicate message. (Z1651)
    • Fix regression in JSON parsing introduced in 4.3.1.3. A node that contains children should not be considered NULL. (Z2088, Z2193)
    • Improve the NUMA tuning for SOW queries to use all available CPUs. Previously, AMPS could run all query threads on a single CPU, even when there were many CPUs where the threads could run.
    • Allow the OS to schedule low-priority services on any CPU that is a member of the low-priority NUMA node. Previously, AMPS could constrain the low-priority services on the same CPU which would cause interference between these services even when there was plentiful CPU capacity on the low-priority NUMA node.

Version 4.3.1.3 (2015-08-31)

  • This hot-fix release does not add or change major functionality.

  • Compatibility: This release is fully compatible with 4.3.1.2.

  • Migration: This release is fully compatible with 4.3.1.2, except with regard to support for 'explicitly keyed' SOW topics (see below).

  • This release contains several fixes for transaction logging and replication of SOW delete by key:

    • Replication of SOW delete by key for explicitly keyed SOW topics did not work in previous versions of AMPS.
    • Recovery of a SOW from a transaction log did not function correctly when the transaction log contained SOW delete by key with multiple keys. The transaction log did not log these deletes properly, and deletes did not occur on recovery.
    • Fixed bug in processing SOW delete by single key in transaction log recovery that would prevent specific keys from being deleted.

    Migration and upgrade: If your application uses SOW delete by key with replication or transaction logging, 60East recommends verifying and republishing the full contents of the SOW as part of the upgrade process.

  • This release contains the following additional fixes and improvements:

    • Fix data corruption that could cause a crash when using JSON or XML. Corruption occurred when the total size of string fields containing escaped characters was larger than 1024 bytes in a single message. (Z2088)

    • Fixed sow/sow_and_subscribe with regex topic where sow delete by filter does not produce OOF messages. (Z2033)

    • Optimized the python data access modules, greatly improving amps_upgrade and amps_*_dump performance (Z1994)

    • Fixed bug where keys were not removed from a hash index when SOW records expired. This would result in returning empty messages from a SOW query.(Z2084)

    • Fixed bug in processing replicated duplicate publishes on a transactional SOW topic that caused errors regarding a slow "AMPS sow update broadcaster" process, and subsequent server unresponsiveness. (Z2092)

    • Enabled heartbeat support for 'composite-global' and 'binary' message types. (Z2097)

    • Corrected format of messages sent when subscribing to explicitly keyed SOW topics. (Z2097)

    • Corrected delta and merge of JSON and BSON documents with single-element arrays in the delta. (Z2088)

    • Added NUMA visibility within the AMPS admin at the path:

      /amps/instance/tuning/NUMA/enabled. This value will be 1 when enabled and 0 when disabled. (Z2018)

    • Added support for any function (whether it is deterministic or not) to View projection expressions. This means the behavior of non-deterministic functions used within projection expressions take the value at the point of evaluation and can have unpredictable behavior, just as using a field reference that is not part of the grouping clause. (Z2133)

    • Improve recovery time with large numbers of SOW topics by rebuilding topics with a single pass through the transaction log. (Z2137)

    • The version of spark included with this release of AMPS now prints the contents of OOF messages. These messages are prefaced with 'oof: '.

    • Added AMPS_PLATFORM_COMPAT environment variable to allow forcing of the platform compatibility mode. We don't recommend users run with this setting, since the performance is degraded on hosts that support the base requirements of all AMPS optimizations.

    • Added support for aggregate functions within the IF ternary function. (Z2133)

    • Added a helpful error message for when the loader can't find a custom Module Library because the LD_LIBRARY_PATH or path needs to be set. (AMPS-770)

    • Fix to take into account total size of messages as well as number of messages when pacing bookmark subscriptions. This fix should prevent bookmark subscriptions from being incorrectly offlined.

    • Fix race condition that could cause all publish engine threads to become stuck when rebalancing due to changes in load. When this happened, AMPS would issue a warning (2A-0009) and then shut itself down 300 seconds later when it is clear the issue can not be resolved.

    • Upgrade HTTP Admin to support HTTP/1.1 and persistent connections. (Z2162)

    • The SOW batch size is limited to a max of 10000 to prevent enormous batch size allocations that might lead to out of memory scenario on larger boxes where each query thread will allocate a batch message. (Z2156)

    • For transaction log journal files, the "instance name" validation has been reduced to a warning instead of an error that causes AMPS to fail to start. This change allows journal files to be moved to another instance with a different name. Notice that the journal files will need to renamed, otherwise the new instance will not find the files. For example, journal files produced on instance name "A" can be copied to instance with name "B" as long as the journal file names change to use "B" instead of "A". (Z2163)

Version 4.3.1.2 (2015-08-05)

  • This hot-fix release does not add or change major functionality.

  • Migration: This release is fully compatible with 4.3.1.1 and requires no migration.

  • Compatibility: This release is fully compatible with 4.3.1.1.

  • This release contains the following fixes to address customer issues:

    • Fix to no longer delay persisted acknowledgements (with failure status) for messages that fail entitlement and are published to topics recorded in the transaction log. Previously, the acknowledgement would be held until another logged message arrived. (Z1961)
    • Fix JSON parser bug where very large integer values could cause incorrect filter evaluation. (Z2011)
    • Fix xml and amps protocol bug where header fields that were larger than 1K and contained escape sequences would lead to a crash. (Z2000)
    • amps_upgrade now handles SOW configurations where no SOW file is present by issuing a warning. (Z2032, Z1994)
  • This release contains the following additional fixes and improvements:

    • Fix SOW query defect for explicitly keyed SOW topics where a query without a filter or a query that did not contain an XPath identifier in a filter (for example, "1=1") would not return results. This could happen when no SOW query containing an XPath had been previously executed for the topic.
    • Fixed a bug in journal index recovery that could lead to a crash or prevent replication and message replay from the journal.

Version 4.3.1.1 (2015-07-07)

  • This hot-fix release does not add or change major functionality.

  • Migration: This release is fully compatible with 4.3.1.0 and requires no migration.

  • Compatibility: This release is fully compatible with 4.3.1.0.

  • This release contains the following fixes to address customer issues:

    • Fix defect in AMPS NUMA auto-tuning that could not figure out how to best map components onto 8-core Hyper-Threading capable CPU's where Hyper-Threading has been turned off. This version of AMPS only tries to auto-tune itself on CPU's without Hyper-Threading support or those with it enabled. (Z1829)
    • Fix crash on shutdown when a plugin module fails to initialize during startup. (Z1828)
    • Fix to correctly remove journals on a standby instance. Previously, if an instance was not actively replicating, the journals would not be removed. (Z1916)
    • The Admin path to fetch the configuration file now expands entity references so that users can see the active configuration. The 00-0030 log message that contains the configuration file also has expanded entity references. (Z1866)
    • AMPS distribution includes header files for external API omitted from 4.3.1.0 distribution. (Z1883)
    • Remove unneeded information from journal indexes. This saves space and further improves recovery time.
    • Potentially stuck thread messages now include a thread log ID to help identify the thread reporting the message.
    • Added SUBSTR and INSTR functions to expression grammar.
    • Fixed explicit SOW key queries in compatibility mode. Previously, AMPS wouldn't return any data for these queries.
    • Fixed memory growth observed when publishing large messages. AMPS processing threads are now capped at having 128MB of total messages in flight at a time (or a single message that is more than 128MB in size). When that memory usage threshold is exceeded, AMPS will reclaim message objects to drop below that threshold before processing a new message. (Z1909)

Version 4.3.1.0 (2015-06-02)

  • This release adds functionality to AMPS and includes changes to existing functionality.
  • Compatibility: This release of AMPS includes the following breaking changes from 4.0 versions.
    • No breaking changes.

This release of AMPS includes the following new features:

  • Adds support for composite message types, which allow message types to be combined into a single message type consisting of multiple parts. See the AMPS User Guide for usage, and the AMPS Configuration Reference for configuration information.

  • Adds support for hash indexes on SOW topics. Hashed index provide extremely high-performance retrieval for SOW queries that are covered by an index.

    Each hash index can specify multiple fields for the index, and each SOW topic can have multiple hash indexes. A hash index need not contain the fields used to form the SOW key.

    AMPS automatically creates a hash index that covers the fields that define the SOW key.

    Primary key and hash index lookup is now used as the optimized path for sow_delete and sow_and_subscribe where applicable.

    Hash indexes are included in the TopicDefinition for a SOW topic using the following format:

<TopicDefinition>
...
<HashIndex>
<Key>/agentId</Key>
<Key>/orderId</Key>
</HashIndex>
<HashIndex>
<Key>/customerId</Key>
</HashIndex>
</TopicDefinition>
  • Adds support for explicitly keyed SOW topics. An explicitly keyed SOW topic is one where the TopicDefinition does not contain any Key fields. Instead, publishers must explicitly set the SowKey field on messages published to the topic.

  • Adds support for querying SOW topics by SowKeys. Applications can now retrieve a set of messages from a SOW by providing a set of SowKeys.

  • AMPS now supports transparent compression of replication traffic. To enable this, the replication source chooses to compress the connection to the replication destination. No configuration is required at the destination. The destination automatically detects compressed connections.

  • To speed recovery for large transaction logs, AMPS now maintains a journal index file for each journal file. The recovery process uses the index files, when present, rather than fully parsing each journal file to build an index. The files are created in the JournalDirectory for the transaction log, and will be archived and deleted with the corresponding journal files. Index files are stored in compressed form to minimize space requirements.

  • The IS NAN and IS NOT NAN expressions now consider strings that cannot be converted to numbers as not a number. This means the expression "/value IS NAN" returns True if /value evaluates to the string "joe."

  • Adds support for a CorrelationId on the logon command. This header can contain arbitrary information about the client. AMPS includes this header in the log file upon successful authentication and provides the contents of the header in the admin interface for the client. (Z1539, AMPS-612)

  • Adds support for a view's grouping fields to be sent to delta subscriptions to assist in identifying the changed record. (Z1716)

  • The amps_sow python module's file reading methods now support an optional boolean validation argument that defaults to True but will forgo CRC validation when False.

  • The amps_sow_dump utility can be sped up by disabling CRC validation with the --fast option.

  • DOCS: The AMPS Configuration Reference is now included in the server distribution rather than being a separate download.

This release of AMPS includes fixes for the following customer-reported issues:

  • Fix amps_reset_entitlement_for_authid to include all users that have connected even if they are not currently connected. (Z1647)
  • Fix amps_reset_entitlement_for_authid to correctly return AMPS_SUCCESS or AMPS_FAILURE. (Z1647)
  • Strings that could be interpreted as longs (e.g. "123") are projected through views as strings, not re-interpreted as longs or doubles. (Z1717)
  • Floating point values ending in ".0" (e.g. "123.0") are no longer truncated to their integer form ("123") when projecting JSON view columns. (Z1717)
  • Default contexts not associated with a transport are no longer created for authentication, entitlement, or authenticator. (Z1208)
  • Added UNIX_TIMESTAMP() to expression evaluation engine. (Z1374)
  • The TCP/IP based transports now use the TCP listen backlog defined in /proc/sys/net/core/somaxconn. AMPS previously used the default of 128, but now can use any value contained in somaxconn. This value defaults to 128 if not otherwise configured. (Z1350)
  • Add 1A-0007 to warn users when content filters take longer than 10 seconds to parse/compile. (Z1776)

This release of AMPS includes the following fixes and improvements:

  • Add ability to turn off NUMA tuning in the configuration file. This is most useful to users running multiple AMPS instances on the same host. (AMPS-657)
  • Improve recovery performance of large statistics datastores. (AMPS-629)
  • Allows LIKE, NOT LIKE, IS NULL, IS NOT NULL, BETWEEN, and NOT BETWEEN to operate on arrays, checking each value in the array and returning true for the first matching element.
  • Entitlement queries on Admin paths are now cached to reduce stress on custom entitlement modules. (AMPS-523)
  • AMPS now correctly flushes the log before exiting when a module fails to initialize.
  • AMPS will execute an implicit logon for any client that sends a command without first sending a logon. Any subsequent logon command sent by the client will result in a failure acknowledgement with a reason of "duplicate logon attempt".
  • When provided a configuration file that is not a valid AMPS XML config file (empty, binary, etc.) AMPS will handle this as a config validation error and notify the user at startup.
  • Messages 02-0016 and 02-0017 now show the client name at the start of the message, consistent with AMPS conventions. (AMPS-550)
  • Duplicate messages are no longer published to /AMPS/ClientStatus when a sow_delete with a filter is processed.
  • Numbers in scientific notation are now always regarded as double by the JSON parser. Previously, scientific notation numbers without a decimal point were regarded as integer, leading to integer overflow for very large numbers.
  • amps_sow_dump now accounts for string keys in CRC calculation.
  • The amps_journal_dump utility no longer counts unprinted no-op records in total entry count.
  • The amps_journal_dump utility now provides a more human-readable message type name string for binary and bson message types. (AMPS-671)

AMPS version 4.0.0

Version 4.0.0.5 (2015-04-21)

  • This hot-fix release does not add or change major functionality.

  • Migration: This release is fully compatible with 4.0.0.4 and requires no migration.

  • Compatibility: This release is fully compatible with 4.0.0.4

  • This release contains the following fixes to address customer issues:

    • Fix crash when delta_publishing a JSON message containing a NULL value. (AMPS-636)
    • Floating point numbers ending in ".0" are no longer translated to integers when sent to delta subscribers. (Z1693)

Version 4.0.0.4 (2015-04-14)

  • This hot-fix release does not add or change major functionality.

  • Migration: This release is fully compatible with 4.0.0.3 and requires no migration.

  • Compatibility: This release is fully compatible with 4.0.0.3

  • This release contains the following fixes to address customer issues:

    • Fix unbounded memory allocation when continuously writing large messages to the transaction log, which could result in the AMPS process being killed by the operating system. (Z1554)
    • Log a message (70-0022) at info level when a client that has been offlined catches up. (Z1665)

Version 4.0.0.3 (2015-04-06)

  • This hot-fix release does not add or change major functionality.

  • Compatibility: This release requires the "timestamp" option to be set on subscribe or SOW commands to receive timestamps for messages. In previous 4.0 releases, timestamps were always included for SOW queries. Outgoing replication heartbeat commands are now logged with a different identifier than replication publish commands.

  • Migration: This release is compatible with 4.0.0.2 except for the change in the "timestamp" option, a change to the protocol module API, and the change to replication logging.

  • This release contains the following fixes to address customer issues:

    • Fix bug that caused AMPS to consume all available memory on restart. When the SOW data required was within 64 bytes of the slab size, AMPS could go into an infinite loop allocating memory. (Z1530)
    • Fix bug in conflated topic recovery when the conflated topic uses a filter and serves as the underlying topic of one or more views. (Z1480)
    • Fix bug in delta publishes to FIX and NVFIX topics containing repeating groups which could cause the resulting merged message to omit values in the repeating groups beyond index 0 of each group. (Z1492)
    • Fix amps_get_authids to include all users that have connected even if they have not yet tried to send or receive any data. (Z1509)
    • Fix JSON parsing to allow documents and subdocuments that are empty, for example { "key": {} }. (Z1521)
    • Fix JSON serialization to escape control characters. (Z1422)
    • Add support for sow_and_subscribe with live option and bookmark= NOW (0|1). This combination of options causes the subscription to include bookmarks, and does not require SOW history to be enabled. (Z1543)
    • Fix memory growth observed when publishing large transactions. (Z1554)
    • External API function call amps_reset_entitlement_for_authid() now clears the cache for the authid, then disconnects any clients using that authid. This change correctly handles resets for authids with no currently connected client. This change is identical to the previous fix made in 3.8.1.11. (Z1128, Z1647)
    • Fix amps_reset_entitlement_for_authid to correctly return AMPS_SUCCESS or AMPS_FAILURE. (Z1647)
    • Trace logging of outgoing replication heartbeat now uses a unique identifier (17-1009) instead of using the identifier for replication publish commands (17-1003). (Z1634)
    • Stop limiting administration stats to 5000 samples when using time ranged queries. (Z1339)
    • AMPS will now advance its local transaction identifier to guarantee that when the state is removed AMPS will be able to continue replicating to downstream instances without messages being detected as duplicates. (AMPS-551, Z1227)
  • This release contains the following additional changes:

    • Fix bug where the last message expected by a client, such as the group_end message for a sow command, could in some cases remain in the send queue until there is additional activity for the client.
    • Require the timestamp option on subscribe or SOW commands to produce timestamp headers. Previously, the option was only considered for subscribe commands.
    • Fix to correctly execute sow_delete by filter upon transaction log synchronization when using a regular expression topic name.
    • Update to the protocol interface to enable the use of strings as SOW keys. This changes the protocol module API.
    • Fix crash that can occur when a client logs on after the connection has already published messages to a topic covered by a transaction log.
    • Fix bug that caused replication destinations to believe that transaction sequences were backtracking after reconnect. Instead of using data previously in the send queue, AMPS now clears the send queue when reconnecting.
    • Fix crashes that could occur on AMPS shutdown. This fix includes changes to improve transaction log shutdown and to correctly terminate AMPS modules.
    • Fix bug in publish entitlements that use content filters that could cause AMPS to refuse publish requests that should have succeeded. AMPS was incorrectly removing the XPaths for the entitlement filter from the set of paths to parse, meaning no message would match the filter.
    • Fix bug in pruning historical SOW data that could result in an AMPS crash.
    • Fix crash on startup if a Transport ClientBufferThreshold or ClientMaxBufferThreshold is specified using byte notation such as "1GB" or "1MB" or "100KB".
    • Properly escape JSON statistics documents from the administration console. Previously, AMPS would return documents where the backslash '' character could be improperly escaped.

Version 4.0.0.2 (2015-02-02)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 4.0.0.1 in operation. Automated redistribution processes may need to be updated for this release, as described below.

  • Compatibility: On platforms with older CPUs lacking SSE4.2 instructions, AMPS uses the ampServer-compat binary rather than the ampServer binary. When running in this mode, the AMPS version number will report that it is running in "PLATFORM COMPATIBILITY MODE". If your distribution process wraps and renames the ampServer binary, that process now needs to rename the ampServer-compat binary following the same pattern so that the entire paths to the binary are identical up to the "-compat" suffix. For example, if your release process renames "ampServer" to ".ampServer", then you should also rename "ampServer-compat" to ".ampServer-compat".

  • This release contains the following additions:

    • Prevent crash caused by calling instructions that do not exist on older, pre-Nehalem platforms. Previously, compiler optimizations could defeat the safeguards built into AMPS to prevent the crash. AMPS now detects older platforms on startup and gracefully degrades performance for these platforms. (Z1404,Z1416)
    • Fix crash when processing some large BSON messages. (Z1422)
    • Improve handling of BSON field types. Add support for Null field types and improve logging. (Z1422)
    • SPARK: The spark utility now accepts the -proto flag to set the AMPS protocol. The older versions of the (-prot and -type) are still accepted as synonyms and have exactly the same effect. (AC-295)
    • Fix incorrect production of JSON arrays when producing a publish message for a sow_and_delta_subscribe. (Z1413)
    • Fix unwanted conversion of JSON strings containing numbers into JSON integers during delta publish production.
    • Fix extra "tag=" when serializing a FIX repeating group or array to a delta subscription. (Z1429)

Version 4.0.0.1 (2014-12-29)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 4.0.0.0 with configuration file updates.

  • Compatibility: Based on customer feedback, starting with this release, AMPS loads the 'bson' and 'binary' message types by default. If a 4.0.0.0 configuration file loads those message types explicitly, remove the directives that load those types from the configuration file or AMPS will report an error.

  • This release contains fixes for the following issues:

    • Fix crash when trying to issue start/stop timer on a message type that does not support message serialization, e.g. 'binary' (Z1317)
    • Fix crash when USER environment variable is not set and replication is used with the default authenticator and the authenticator is not configured with a User option. (Z1322)
    • Fix crash when certain character strings are used in JOIN/VIEW configurations. (AMPS-552)
    • AMPS now loads the modules and message types for 'bson' and 'binary' by default. (AMPS-554)
    • Add support for ISO-8601 bookmarks that specify the "Z" (Zulu time zone suffix). This allows the timestamps stamped onto publish messages to be usable as bookmarks without modification. Specifying ISO-8601 bookmarks without a time zone specification still works and continues to default to UTC. (AMPS-555)
    • Reduce memory growth for long running AMPS instances with replication. Journal index data is now removed when a journal is removed via the administrative interface and the journal index is sparsified approximately one hour after the last transaction is written. (Z1338, AMPS-560)
    • Do not log expirations if nothing was expired. (AMPS-543)
    • Allow a SOW query to be canceled with unsubscribe command. (AMPS-542)
    • Fixed hang during SOW recovery coalesce (move slab) when encountering an invalid record.
    • Fixed crash during historical query after a SOW coalesce had been performed that erased historical records outside the history window.
    • Fixed race condition at transport start that causes a processing thread to exit which results in clients connecting and not being processed.
    • Fixed hang during SOW query caused by the SOW being recovered at start up with a duplicate key.
    • Fixed hang on shutdown caused by a race when SOW query is started just after the shutdown starts.
    • Fixed hang on shutdown when a replicated sow delete by query is being processed.
    • Fixed edge condition in recovery of compressed transaction journal files that results in false 'CRC' corruption detection and omission of valid messages.
    • Fixed bug where last message of a bookmark replay might not be sent or delayed if activity for the client stops before the client unsubscribes or disconnects.
    • AMPS no longer tries to tune itself on NUMA hosts that report CPU to NUMA node mappings incorrectly. (Z1370)
    • Remove false reporting of thread stuck messages when there is heavy offlining to multiple clients.
    • Do not prune an already deleted record from a historical SOW.
    • Fix hang on shutdown when the open file limit is exceeded and AMPS is not using O_DIRECT for file access.
    • Correctly process deletion of already-deleted records in historical SOW.
    • Improve performance when generating checksums.
    • AMPS Views correctly return the deltas for message types that support delta messaging. Previously, delta subscribers to Views would receive the full, non-delta message.
    • Fix bug in JSON parsing which resulted in false, true, and null values parsed as strings ("false", "true", and "null") instead of boolean TRUE, FALSE, and NULL.
    • Change the name of the "Duration" attribute for SOW topics to "Durability" for clarity. Existing uses of "Duration" continue to work as they always did. (Z1411)

Version 4.0.0.0 (2014-12-02)

AMPS 4.0.0.0 is a major release of AMPS. This release introduces major new functionality.

Compatibility

Version 4.0 of AMPS has updated file formats (transaction log journal and SOW files). To upgrade from previous versions of AMPS while preserving existing data files, use the provided amps_upgrade tool to upgrade the data files. KNOWN ISSUE: In the 4.0.0.0 release, amps_upgrade does not operate on compressed or archived files. A forthcoming patch will address this issue.

4.0.0.0 configuration files now require a Protocol to be defined for each Transport.

This version of AMPS is backward-compatible with existing AMPS clients and has been tested extensively with 3.8 and later clients. However, some new features of AMPS 4.0 are not available in versions of the AMPS clients prior to 4.0.

Overview of New Functionality

This release adds major functionality to AMPS. The functionality is discussed in more detail in the following sections, and includes:

  • AMPS now includes support for a wider range of message types, transports, and protocols.
  • AMPS includes an extensibility API for message types, transports, protocols, and actions, in addition to the existing API for authentication and entitlement.
  • Enhancements in message processing, including array support for default message types, and delta support for default message types.
  • Operations enhancements, including support for running as a daemon.
  • JOIN support across message types, and new aggregation operators.
  • SOW queries now support OrderBy, and the TopN parameter now specifies a hard limit for the number of messages returned.
  • Replication now replicates the expiration time on SOW messages and replicates SOW delete commands.
  • AMPS can preserve and query the historical state of a SOW, including support for SOW and subscribe when there is a transaction log present.
  • AMPS now supports a CorrelationId header field that is passed verbatim to subscribers and stored inside both transaction log and SOW.
Detailed New Functionality

  • Message Type, Transport, and Protocol Support

    • With this release, AMPS supports the following:

      Message Types: fix, nvfix, xml, json are installed by default bson and binary payload loadable modules are included

      Protocols: amps (JSON-based), fix, fix-session (v4.0-v4.4), soap, websocket-json

      Transports: tcp, ptcp, shm, rdma

    • Protocol and message type independence. AMPS no longer requires or expects the protocol used to be of the same type. This makes adding message types easier, makes tracing and debugging simpler, and allows you to have human-readable AMPS headers for binary message types.

    • 60East recommends that new applications use the 'amps' protocol, regardless of the message type.

    • Protocol is explicitly required for Transport. In the AMPS configuration, Transports must now explicitly specify a 'Protocol'. This is a change from previous versions, where AMPS would assume that the protocol matched the message type.

  • Extension API

    • AMPS now includes an extension API for message types, protocols, and transports. This can be used to provide a custom implementation of any of these features of AMPS.
  • All provided message types, protocols and transports use this API.

  • Message Processing Enhancements

  • Array Support added for all message types

  • Delta publish/subscribe support added for XML, JSON, and BSON

  • AMPS supports an EarlyTerminationOptimization option to the JSON message type. When enabled, AMPS is allowed to stop parsing a JSON message when parsing has produced all of the fields needed to process the message. When not enabled, AMPS parses the entire JSON message. If there are repeating field names in the message, the last parsed value is returned. (With the optimization enabled, the first value to be parsed is returned, even if AMPS parses the full message for other reasons.) EarlyTermininationOptimization defaults to enabled.

  • Operations Enhancements

  • Run as a service (or "daemon"). AMPS now provides out of the box support for being installed as a Linux service, including scripts that add AMPS to the startup sequence.

  • NUMA enhancements for 2-socket and 4-socket systems.

  • Added --version (and -version) flag to print only the version of AMPS.

  • Updates to the statistics module to simplify statistics and focus on measurements that provide actionable information.

  • The ReuseAddr option for Transports is now always enabled. This option allows quick restart of AMPS, even in cases where the process did not completely clean up (for example, due to kill -9 or being the victim for an out of memory condition).

  • Analytics, Aggregation, and Views

  • Views now support JSON, BSON and XML as well as FIX and NVFIX

  • Added support for cross message type JOINs

  • Added MIN/MAX aggregate functions for views.

  • State of the World Enhancements

  • SOW version changed to v3 ("amps-sow-v3.0")

  • Added storage of "CorrelationId" alongside SOW data

  • Added "history" support to SOW with support for 'sow', 'sow_and_subscribe' and bookmark 'sow_and_subscribe'.

  • Added support for 'OrderBy' for SOW results

    The supported syntax is "/3 DESC,/1 ASC" which is comma separated list of XPaths with optional ASC or DESC indication (default if not specified is ASC).

    XPath1 [ASC|DESC],XPath2 [ASC|DESC], ....

  • TopN now works as expected, as a hard limit for the total number of messages returned by a query.

  • SOW expiration processing optimized and memory footprint reduced.

  • Removed requirement to logon before doing sow delete on a transaction log backed SOW.

  • delta_publish messages will now always contain the SOW keys (this is a change to the "send keys" option).

  • Command Processing Enhancements

  • Added ISO formatted timestamp header field for all publish messages and SOW data returned from SOW query. The timestamp is generated just after AMPS message header parsing and before SOW update and/or transaction log submission. The makes it possible to track latency of messages in a multi-hop scenario. ISO timestamp format is UTC.

  • The acknowledgement of a logon command now includes a string with the AMPS version number. This can be used by the AMPS clients, and programs written using those clients, to adapt to the capabilities offered by different versions of AMPS. This is supported in releases of the 3.8 clients that are current with this release, and in all 4.0 and later clients.

  • AMPS now provides a "flush" command that returns a "completed" acknowledgement when the AMPS server has fully processed all previous commands from the client. For example, a publish message is fully processed after it has been logged (as configured), replicated (as configured) and published to all clients. Notice that completed means that the AMPS server completely processed the command: messages may still be in the tcp send queue or the client receive queue.

  • Added sow update time 8601 formatted timestamp to publish and sow messages (in addition to key and byte length).

  • AMPS Packaging

    • AMPS now includes the 'spark' command line utility in the server package. This utility requires a JRE of 1.6 or later.

    • All modules moved to 'modules' subdirectory

    • All message types, protocols and transports moved to 'sdk' subdirectory

  • Bookmark Replay

    • Bookmark subscription supports multiple bookmark specification. Replay will begin at the lowest bookmark in the transaction log.

    • Bookmark replay has been redesigned to add more scalability and lower latency. Slow clients will be migrated to "slow lane" client threads so that they do not burden clients that can handle a higher message rate. A client is considered slow if that client accumulates more than 100MB of data inside AMPS or the latency of a single message for the client exceeds 1 second.

    • Added "TopN" support for bookmark replay.

  • Transaction log and replication enhancements

    • Replication redesigned to provide better scalability and avoid large amounts of buffering for slow replication links. Similar to bookmark replay, the replication links implement a "slow lane" concept to ensure that replication occurs at the rate consistent with the communication channel thus avoiding excessive buffering. The stats interface has been upgraded to provide a "seconds behind" metric.

    • Replication resync enhanced to better cope with slow WAN connections. AMPS will no longer wait up to 10 seconds at start up for replication destinations to resync. Partitioned "sync" and "async" replication destinations into separate thread pools so that they do not interfere with each other.

    • Improved Logon scalability when there are active sync replication destinations. The potential "first time" logon penalty when AMPS attempts to build the "unacked" list from the txn log has been removed. Any client that has transactions is tracked from start up and thus extra processing on first logon is avoided.

  • Transaction Log version changed to v7 ("amps::txlog/v7"), which includes the following changes:

    1. Transaction Log writes and reads will always be 4K aligned (was 512B). This allows file systems and devices to use a more common natural alignment for performance.
    2. Replace "SowKey" field with "SowExpirationTime" to allow recording of per message SOW expiration values.
    3. Added "PreviousSize" recording for each transaction log entry. This is an internal transaction log field used to enable "reverse" traversal of a log.
    4. Added storage of "CorrelationId" alongside message data so that it can be replicated and deliver during a replay.
    5. A compression flag has been added to indicate if the message data is compressed.
    6. SOW delete by key will now contain the data that was deleted and this will be replicated so that AMPS instances can support different SOW key definitions which produce different SOW keys.
    7. The SOW delete data mentioned above will be stored and replicated as compressed data so that the storage and transmission are efficient. h. Transaction log files are only "preallocated" at start up.
    8. Reduce potential latency when executing journal transition at high publish rates.
    9. The BatchSize configuration parameter has been deprecated and an optimal default that works across file systems and storage devices is now used. A warning on startup is provided when the BatchSize exists within the configuration file.
  • The clients.ack file has been renamed to ${AMPConfig/Name}.clients.ack

  • Per message SOW expiration will recorded in the transaction log and replicated making it possible for replication SOWs to be kept in sync when using per message expiration. In addition, this allows complete recovery of SOW files from the transaction log, including not populating expired records. (J436)

  • All timestamps emitted from AMPS including admin now have a consistent ISO 8601 format: "%Y%m%dT%H%M%S.6dZ"

Bug Fixes

The 4.0.0.0 release of AMPS includes fixes for the following issues:

  • Fix SEGV that could occur when a file logging directory is made unwritable during log file rotation. (J322)

  • AMPS now reports an accurate queue_max_latency metric for offlined consumers, which previously could report zero.

  • Improved validation for ReplicationDestination configuration. (J358)

  • Removed requirement for TopicDefinition with Duration of "transient" to specify a FileName. (Z963)

  • Improved client offlining system resource usage. The client offliner will only keep 2 file descriptors open per client regardless of how many offline files are created for each client. Offline files will be removed immediately after disconnect.

  • Ensure that expirations are processed in SOW update order in scenarios where per message sow expiration is used.

  • Ensure that if SOW expiration was disabled and an AMPS configuration is changed to enable SOW expiration that existing records are not deleted upon restart. (J516)

  • AMPS now prioritizes group deletions ahead of insertions and updates in aggregate Views and Joins (just as it had before version 3.8).

  • AMPS now logs configuration file validation warnings and errors to any logging targets configured to capture messages at the warning and critical level, respectively. Environment variables used in the configuration file are also now logged. (J406,J405)

  • When an existing Admin database file isn't read/write at startup, AMPS will now fail to start with a descriptive error message. (Z989,J408)

  • Previous versions of AMPS could abort when compiling large content filters (>200KB) that have an extreme "leaning" AST. With 4.0, AMPS will return a "bad filter" error in these extreme content filtering cases. (Z428)

  • Logging to /AMPS/SOWStats is no longer enabled by default. If you are subscribing to this topic, you must configure a SOWStatsInterval with a minimum interval of 1s. Recommended interval is 10s. (Z977,J401)

  • Report a config validation error when the Logging Level is set to anything other than a valid logging level. (Z1064,J461)

  • Removed "CommandId" from publish messages. The new Correlation Id header field should be used in scenarios where a publisher wants to pass a header field from publisher to subscriber. (J525)

AMPS version 3.9.1

Version 3.9.1.8 (2016-04-06)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.9.1.7

  • This release contains fixes for the following issues:

    • Fix issue with journal removal where AMPS could fail to remove journals creating "gaps" in the journal sequencing. (Z3085)
    • Fix issue where an unexpected server shutdown could cause the shutdown process to hang. (Z3068)
    • Added a size sanity check before executing SOW record CRC validation. Previously, it was possible for a large, invalid size to create a SEGV when validating the CRC check on a SOW record.

Version 3.9.1.7 (2015-11-06)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.9.1.6

  • Security note: Releases from 3.9.1.6 onward (including this release) contain a fix for vulnerability AMPS 2015-01, which could result in successful replication logins for users that were not permitted to log on to replication connections. Read/write entitlements were not affected and were correctly enforced. The full vulnerability note is available at http://support.crankuptheamps.com/hc/en-us/articles/209369958

  • This release contains fixes for the following issues:

    • Fix startup crash caused by transaction log synchronization of a transaction log-backed SOW attempting to delete an expired SOW key which was removed during SOW recovery. (Z2346)
    • For transaction log journal files, the "instance name" validation has been reduced to a warning instead of an error that causes AMPS to fail to start. This change allows journal files to be moved to another instance with a different name. Notice that the journal files will need to renamed, otherwise the new instance will not find the files. For example, journal files produced on instance name "A" can be copied to instance with name "B" as long as the journal file names change to use "B" instead of "A". (Z2163)
    • Improve Admin HTTP response times for large statistics roll-ups. Previously, it could take AMPS many seconds to respond to an "/amps.json" roll-up when thousands of clients are connected with thousands of subscriptions. This improvement decreases the response time to a function of network bandwidth (i.e. fast networks will see sub-second responses, even when the roll-up payload is many megabytes.) (Z2091)

Version 3.9.1.6 (2015-07-29)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.9.1.4

  • This release contains fixes for the following issues:

    • Fix to correctly remove journals in a replication scenario with no active bookmark subscribers or when an instance had no transactions to replicate (cold side or primary/secondary scenario). (Z1916)
    • Fix to correctly allow a sync replication destination that was previously downgraded to async to be upgraded back to sync. (Z1963)
    • Fix to include logon permissions in entitlement cache reset.
    • Fix to coalesce SOW slabs correctly when there are no current references to the slab.

Version 3.9.1.5 (2015-06-23)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.9.1.4

  • This release contains fixes for the following issues:

    • Fix crash when attempting to make a replication connection to a 4.X or later version of AMPS. The connection will not succeed, but the connection attempt will no longer cause a crash. (Z1849)
    • Fix memory growth when an AMPS instance processes a large number of short-lived client connections. (Z1750)
    • Fix replication path corruption when replicating sow_delete commands.

Version 3.9.1.4 (2015-05-20)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.9.1.3

  • Compatibility: Outgoing replication heartbeat commands are now logged with a different identifier than replication publish commands.

  • This release contains fixes for the following issues:

    • Fix bug that caused AMPS to consume all available memory on restart. When the SOW data required was within 64 bytes of the slab size, AMPS could go into an infinite loop allocating memory. (Z1530)
    • Fix bug that could cause AMPS to abort when compiling large content filters (>200KB) that have an extreme "leaning" AST. In 3.9.1.4, AMPS will log a bad filter error for subscriptions and a canceled error for SOW queries. (Z428, Z1768)
    • Fix crash in view initialization if the underlying SOW initialization encountered expired records, e.g. records expired while AMPS was down. (Z1612)
    • Fix bug where replicated sow delete messages did not contain required metadata which could cause AMPS to crash when parsing the message. (Z1672)
    • Fix bug that could cause AMPS to allocate memory in an infinite loop when expanding an internal data structure, which could result in the AMPS process being killed by the operating system.
    • Fix bug that caused replication destinations to believe that transaction sequences were backtracking after reconnect. Instead of using data previously in the send queue, AMPS now clears the send queue when reconnecting.
    • Fix bug that caused messages matching a regex topic from a sow_and_subscribe but aren't on a topic that is part of a SOW or written to the transaction log to not be sent to the subscriber. (Z1705)
    • Fix bug where previously deleted records could be incorrectly reported as corrupted on startup due to a CRC violation. When upgrading to this version, AMPS may report CRC violations when using SOW state from previous versions, but the records will be repaired on start-up to prevent additional false reporting in subsequent restarts. (Z1645)
    • Fix bug in publish entitlements that use content filters that could cause AMPS to refuse publish requests that should have succeeded. AMPS was incorrectly removing the XPaths for the entitlement filter from the set of paths to parse, meaning no message would match the filter.
    • Improve performance of recovering large Admin datastores. (AMPS-629)
    • Include Authenticated ID in logging message when user is not entitled. (Z1636)
    • The SOW query completion message (16-0011) will now include bytes returned.
    • Stop limiting administration stats to 5000 samples when using time ranged queries. (Z1339)
    • Trace logging of outgoing replication heartbeat now uses a unique identifier (17-1009) instead of using the identifier for replication publish commands (17-1003). (Z1634)
    • Log a message (70-0022) at info level when a client that has been offlined catches up. (Z1665)
    • Properly escape JSON documents returned from the administration console. (Z1494)
    • Added activity tracking to statistics collection so that the 05-0021 message would indicate what was taking abnormally long when an HTTP request to fetch statistics fails with HTTP 503. (AMPS-661,Z1494)
    • Added --version option to print the version of the AMPS server.

Version 3.9.1.3 (2015-03-11)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.9.1.2

  • This release contains fixes for the following issues:

    • Fix bug where the last message expected by a client, such as the group_end message for a sow command, could in some cases remain in the send queue until there is additional activity for the client.
    • AMPS will now advance its local transaction identifier to guarantee that when the state is removed AMPS will be able to continue replicating to downstream instances without messages being detected as duplicates. (AMPS-551, Z1227)
    • Fix bug that prevented sow delete by filter with regex topic from being written to the transaction log and replicated. (Z1553)
    • Fix crash that can occur when a client logs on after the connection has already published messages to a topic covered by a transaction log.
    • Fix replication logon resync bug where the first replayed message appears to go backwards. This caused a disconnect of the replication link resulting in the logon process starting over until succeeding.
    • Prevent replication back to a source when passthrough replication is incorrectly configured to return messages back to the source.
    • Fix the administrator interface to return HTTP 200 when it successfully disables transports. Previously, it was incorrectly returning HTTP 500.

Version 3.9.1.2 (2015-02-24)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.9.1.1

  • This release contains fixes for the following issues:

    • Fix hang in view topic initialization if there is a transaction log defined and there are more than 4000 view events generated. (Z1488)
    • Fix amps_get_authids API to include the authentication ids for logged on replication sources that have not yet replicated any messages. (Z1509)

Version 3.9.1.1 (2015-02-16)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.9.1.0

  • This release contains fixes for the following issues:

    • Fix bug in replica topic recovery when the replica uses a filter and serves as the underlier of one or more views. (Z1480)

Version 3.9.1.0 (2015-01-16)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.9.0.0

  • This release adds a new action module:

    • Added amps-action-do-remove-files action for removing old files no longer in use by AMPS. (Z1381)
  • This release contains fixes for the following issues:

    • Reduce memory growth for long running AMPS instances with replication. (Z1338, AMPS-560)
    • Add statistics on denied_reads and denied_writes for client objects to allow monitoring of entitlement failures per client. (Z1262)
    • Increase time that AMPS allows an HTTP admin request to wait on statistics collection before responding with a HTTP 503 from 1 second to 5 seconds. (Z1378)
    • On discovery of a corrupted admin statistics database, AMPS will move the file to a ".corrupted" suffix and recreate a new database. If AMPS fails on the 2nd attempt, then it'll regress to an in-memory store for statistics. (Z1308, Z957)
    • The 'gzip' logging targets are flushed more often so that the data does not remain hidden in the compression buffer awaiting more log statements before flushing. (Z971)
    • Fix crash when USER environment variable is not set and replication is used with the default authenticator and the authenticator is not configured with a User option. (Z1322)
    • Fixed race condition at transport start that causes a processing thread to exit which results in clients connecting and not being processed. (Z1361)
    • Added logging statement 1F-0011 at the warning level to report entitlement denials, if any, at client disconnect. (Z1262)
    • Fix crash caused by SSE functions attempting to access memory outside of a mapped region. (Z1377)

AMPS version 3.9.0

Version 3.9.0.4 (2014-12-11)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.9.0.0

  • This release contains fixes for the following issues:

    • Fix hang when a single slow client issues multiple bookmark subs and then disconnects. (Z1287)
    • Fix crash when a large number of offline-related disconnects occur under heavy publish load.

Version 3.9.0.3 (2014-11-12)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.9.0.0

  • This release contains fixes for the following issues:

    • Fix bug in handling replication heartbeats that lead to replication threads becoming hung after about 68 minutes. (Z1218)
    • Fix bug in bookmark subscribe with a content filter. When bookmark subscriptions with a content filter were requested for a topic and no other filtering in the instance used the XPath identifiers in the content filter, it was possible for the subscription to never match a message after replay from the transaction log completed. (Z1217)
    • Add CmdId to group_begin and group_end messages (Z1226)
    • Fix potential for large memory growth when replication links cannot maintain the throughput of AMPS. This is more likely in deployments with multiple WAN replication links. (internal testing)
    • Fix race condition when an unsubscribe arrives during the cut over from transaction log replay. This race could result in unsubscribes not being processed. (internal testing)
    • Ensure that journal files are not removed until they are no longer needed for replication. Previously, files not currently in use could be removed even when they would later be needed. (internal testing)
    • Ensure that journal files that cannot be removed during one delete action are removed during subsequent actions, and ensure that the files are removed in order, without gaps. (internal testing)
    • Log message 1D-0075 now indicates that a journal has been has been marked for removal. 1D-0076 indicates the journal has been removed. (internal testing)

Version 3.9.0.2 (2014-10-29)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.9.0.0

  • This release contains fixes for the following issues:

    • Fix hang when AMPS receives a duplicate message over a replication link that is a SOW update for a SOW key that was was previously deleted (by sow delete, expiration or by clearing out the SOW). (Z1138)
    • Fix hang in replication message handling with passthrough in a destination instance. This hang produces 04-0006 messages in the AMPS log. (Z1075)

Version 3.9.0.1 (2014-10-23)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.9.0.0

  • This release contains fixes for the following issues:

    • Fix to prevent AMPS from checking write entitlements when only read entitlements should be checked. This would cause unexpected not entitled messages and errors. (Z1180)
    • Fix for hang on startup if the transaction log requires syncing of sow resulting in more than 65K deletes. (Z1174)
    • Fix to prevent AMPS from producing spurious client name in use warnings. (Z1176)

Version 3.9.0.0 (2014-10-17)

  • This release adds functionality to AMPS.

  • Migration: There are no changes to data file formats from 3.8. However, if migrating from a previous version, run amps_upgrade on data files from the previous installation. Configuration files created for AMPS 3.8 will work unmodified with 3.9. 3.9 adds configuration options, so configuration files that use those options are not compatible with 3.8 and earlier releases.

  • This release adds the following features to AMPS:

    • Authorization and entitlement are now enabled for replication transports.
      • For incoming connections, the authorization and entitlement can be specified as with any other transport. Instance level authentication and entitlement modules are now applied to replication transports.
      • AMPS now supports a server-side Authenticator module interface. This interface provides credentials for outgoing connections from AMPS.
      • Transports within a replication destination (outgoing connections) can now specify an Authenticator module that will provide credentials for the outgoing connection. An Authenticator module can also be configured for the instance as a whole. AMPS uses the instance-level module for replication destination transports with no Authenticator configured.
      • Replication destinations can now specify multiple Transport elements. This allows a destination to use different credentials on failover.
      • Entitlement modules now define two new types of permission: logon and replication_logon. Connections on an amps_replication transport check the replication_logon permission.
      • The Admin interface now exposes an 'authenticated_id' attribute for each replication destination.
    • Enhance the amps-action-on-schedule Action On module to permit specifying schedules based on UTC. To specify a UTC time, you would add a "Z" suffix. For example, to have a Action trigger on Saturdays at midnight UTC, specify the Action to trigger Every "Saturday 00:00Z". Likewise, to specify a schedule that triggers every day at 17:00 UTC, use "17:00Z". (Z1129)
    • Add statistics for how many times minidumps have been triggered during the instance's lifetime. The path /amps/instance/minidumps now has a statistic for "user_requested" minidumps (triggered by the user via the administrative action, SIGQUIT signal, or triggered through a user- defined Action in the config) and "unexpected" minidumps (triggered by AMPS when the health of the instance is questionable.) (AMPS-503)
  • This release contains fixes for the following issues:

    • Fix for race condition where two clients connecting to the same transport at the same moment can duplicate the entitlement caches such that entitlement resets only impact a subset of the clients. (Z1149)
    • Improved the performance of parsing and compiling large, complex content filter expressions. For example, a content filter containing an IN predicate with 100,000 literals parses and compiles about 600x faster than in releases without this fix. (Z1115)
    • The MinidumpDirectory is now created during startup when it doesn't already exist. (AMPS-462)
    • The connect_time in the client statistics is now reported with the correct connect time. Since 3.8, this connect_time was always reported as the UNIX epoch. (AMPS-472)
    • No longer emit an empty Authentication and Entitlement option string in the Transport options section of the Admin statistics. (Z1131)
    • Fix for issue that caused amps_sow_dump to hang. (Z1114)

Version 3.8.1.12 (2014-10-17)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.8.1.0

  • This release contains fixes for the following issues:

    • Fix for race condition where two clients connecting to the same transport at the same moment can duplicate the entitlement caches such that entitlement resets only impact a subset of the clients. (Z1149)

Version 3.8.1.11 (2014-10-10)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.8.1.0

  • This release contains fixes for the following issues:

    • External API function call amps_get_authids() now returns authids for which AMPS is maintaining state, whether or not a client using that authid is connected. Previously, this function would only return a list of authids with active client connections. (Z1128)
    • External API function call amps_reset_entitlement_for_authid() now clears the cache for the authid, then disconnects any clients using that authid. This change correctly handles resets for authids with no currently connected client. (Z1128)
    • Clarified logged messages for entitlement reset to match the changes above. (Z1128)

Version 3.8.1.10 (2014-09-29)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.8.1.0

  • This release contains fixes for the following issues:

    • Fix for 'ptcp' connections so that they 'ack' every second. Since 3.8.0.0, acks were not being sent in the background for 'ptcp' connections. Clients connecting to AMPS via 'ptcp' could see large growth in their store-and-forward persistence as they awaited acknowledgment. (Z1031)
  • Fix an issue that could cause missed transactions on startup after AMPS starts up large views. (internal testing)

  • Allow clients with duplicate names to log in when there is no transaction log present. AMPS 3.8.1.8 and prior versions allow multiple clients to use the same name so long as no transaction log is configured. This fix restores that behavior. Duplicate client names are still disallowed when a transaction log is configured. (Z1086)

Version 3.8.1.9 (2014-09-23)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.8.1.0

  • This release contains fixes for the following issues:

    • Fix for OOF messages generated by a SOW delete using data or SowKeys. Previously, these messages did not contain a topic field. (Z1029)
    • Fix for a hang when two or more clients using the same SubId are disconnected or issue an unsubscribe, causing all replays with the SubId to be canceled. (Z1044)
    • Fix for slow client disconnection to correctly disconnect if too many messages are stored offline or the overall byte size exceeds the configured threshold. An error in the logic for checking the thresholds could previously allow a client to remain connected despite exceeding the configured thresholds. (Z1033, AMPS-442)
    • Emit a 1F-0004 or 1F-0005 logon message for every regular client that issues a logon command. Additionally, the 1F-0004 and 1F-0005 logon messages in the AMPS log now include the original connection name to make it easier to correlate the messages to client names. (Z1005)
    • Resetting all entitlements now correctly resets entitlements for the admin interface. (Z1040)
    • Fix issue where two clients with same name could logon to AMPS simultaneously, causing unpredictable behavior.(Z1028)
    • Fix for client leaks reported with warning level 07-0039 in log messages. (Z1004)

Version 3.8.1.8 (2014-09-09)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.8.1.0

  • This release contains fixes for the following issues:

    • Fix /AMPS/ClientStatus and /AMPS/SOWStats so that they generate events when no subscriptions are active if either one is present in a SOW or in the transaction log. This ensures that messages are properly recorded in the SOW file and journal. (Z1019)
    • AMPS will no longer send keys-only messages on a delta subscription that specifies both send keys and no empties. If there are no updates to the data, AMPS does not send a message. (Z1007)
    • Fix to ensure that 'persisted' acks do not flow back to client more than once a second at very high transaction rates.
    • Improve handling of spaces and commas in options parsing. (AMPS-361)

Version 3.8.1.7 (2014-08-25)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.8.1.0

  • This release contains fixes for the following issues:

    • Fix a problem that could cause a skipped message. The problem happened under heavy publish load when AMPS dynamically increased the number of threads doing client publishes. (not reported, found in internal stress testing).
    • Fix misreporting of stuck bio processing engine writer threads. (Z988)
    • Fix for stale client statistics reporting in the admin console after restart. (Z989)

Version 3.8.1.6 (2014-08-04)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.8.1.0

  • This release contains fixes for the following issues:

    • Fix deadlock created by high frequency of concurrent SOW expiration, publishes, and queries. (Z914)
    • Properly flush transaction log backed SOW deletes that happen immediately before AMPS shutdown. Previously, deletes in this case were not properly flushed and might not properly resync SOW at startup. (Z908)
    • amps_upgrade properly handles SOW upgrades when topic name begins with / and the FileName for the SOW includes /%n. (Z915)
    • Correct another source of incorrect stuck thread message. This case happened during SOW expiration processing when there are a large number of expirations that occur in consecutive 1 second intervals. (Z914)
    • Fix race condition in SOW coalesce that could cause AMPS crashes. This was a timing-dependent problem that sometimes occurred during stress testing with high frequency SOW expiration and updates to the same SOW keys over a long period of time. (internal testing)
    • Warning message 16-0034 is no longer over-reported.

Version 3.8.1.5 (2014-07-07)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.8.1.0

  • The following issues were fixed in this release:

    • Fix hang when multiple concurrent subscribers issue "replace" subscription under heavy publish load. (Z866)
    • Remove client offline files in a timely manner, even when the client has been placed into the "slow client send queue". (Z873)
    • Initialize SOW expirations correctly after restart so messages expire properly. Previously, messages in the SOW when AMPS restarted might not be expired. (Z874)
    • Epoch replay now starts at the first transaction for the specific topic (or matching regex topics) instead of the first transaction in the first journal. (Z877)
    • Prevent sow expiration starvation in the presence of heavy sow queries. (Z885)
    • Fix bug in actions that prevented the archiving of compressed journals.
    • Improve stuck thread detection to reduce or eliminate false positives. (Z899)
    • Fix potential infinite loop in replication connect retry loop (internal testing).
    • Remove outdated warning when a replication transport contains multiple InetAddr elements. (Z850)

Version 3.8.1.4 (2014-06-23)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.8.1.0

  • The following issues were fixed in this release:

    • Fix hanging or crashing in the query processor when executing queries back to back with high throughput and large client publishing fanout. (Z862)
    • Prevent a crash that can be caused by queries that require re-indexing of the SOW when there are heavy concurrent SOW updates or deletes.

Version 3.8.1.3 (2014-06-16)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.8.1.0

  • The following issues were fixed in this release:

    • Prevent corruption of SOW files during coalesce. The corruption happened during expiration or explicit SOW delete when the message size was greater than the RecordSize configured for the SOW topic. When AMPS loads a SOW file, AMPS will detect corrupted records using the CRC for each record, remove corrupted records from the SOW, and log error messages for those records. (Z836, Z843)
    • Prevent AMPS from exiting when AMPS encounters an unexpected txid. Remove all known sources of unexpected txids and reduce the severity of an unexpected txid from an abort to a logged warning. (Z841, Z842)
    • AMPS now correctly allows dynamic expansion and contraction of the publish engine fanout thread for improved scalability.
    • SOW delete by query on a SOW backed by a transaction log now correctly handles AMPS shutdown while the operation is in progress. Previously, it was possible for a shutdown to cause deletes to not be reflected in the SOW file.
    • Added authenticated_id to Admin client information. (Z820)

Version 3.8.1.2 (2014-06-03)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.8.1.0

  • The following issues were fixed in this release:

    • Prevent a sow_and_subscribe race condition where an update could be lost between the SOW query result and the publish stream. (Z496)
    • Prevent a hang when sow delete by query executes at the same instant expirations begin to occur. (Z814)

Version 3.8.1.1 (2014-05-27)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.8.1.0

  • The following issues were fixed in this release:

    • AMPS disconnects any clients that may be affected by changes to entitlements. This prevents the appearance of incorrect data arriving at the client. (This behavior is present in 3.8.1.0, but was omitted from HISTORY).
    • AMPS trace level messages now correctly contain the message header in addition to the message data.
    • Corrected spelling of external API function amps_transport_stop_context.
    • Fixed several bugs with journal administration actions (archive, compress, remove) when those actions run on a schedule.
    • Prevent journal corruption that could occur when rapid shutdown of AMPS happens during startup journal recovery.
    • Prevent startup hang that could occur when recovering a compressed journal file.
    • Improve SOW delete by query. This operation no longer blocks all processing to ensure that the delete is atomic. AMPS now only blocks processing on the topic affected. This prevents situations where AMPS could previously report multiple "stuck thread" messages during SOW delete.
    • AMPS now reports an accurate queue_max_latency metric for offlined consumers. Previously, AMPS could report zero in this case.
    • Correctly deliver a group end message in a scenario where a client could send a SOW command and receive a group begin message and the data, but no group end message.
    • Set the executable bit of all files within the lib directory. (Z810)

Version 3.8.1.0 (2014-05-08)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.8.0.0

  • Enhancements added to AMPS for this release:

    • During amps_module_init, all modules can now call amps_get_module_name and retrieve the value from the Name element for the Module in the config file.
    • During context creation, entitlement and authentication modules can now determine the name of the transport that they are being initialized for by calling amps_get_transport_name.
    • AMPS modules can enable or disable individual or all transports via using an amps_external_api.h function or actions.
    • AMPS modules can now reset entitlements for a particular authid on one or all transports using an amps_external_api.h function.
    • Actions can now be started on AMPS startup or shutdown.
  • The following issues were fixed in this release:

    • AMPS will now correctly handle interrupts during journal file pre allocation. (Z788)
    • Allow AMPS to be placed in background with SIGTSTP signal. AMPS version 3.8.0.0 was blocking this signal.
    • AMPS no longer allows overriding SIGQUIT in the amps-action-on-signal Action handler. This signal is reserved for minidump processing.
    • AMPS will not try to process unexpected exceptions at startup now. Instead of a graceful exit on an unexpected startup exception, AMPS will now produce a minidump (and core file if permitted by the user environment) to aid in easier problem diagnosis. (Z693)
    • When logging an invalid filter error, AMPS now includes the filter in the log message. (J301)
    • Fix replication bug where a disconnected replication destination was not receiving replication messages during the replay of the transaction log.
    • Correctly report client queue_max_latency when the queued byte count is zero.
    • Admin stats now associate subscription identifiers and their respective clients. (Z742)
    • Correctly update admin last_active processor stat.
    • Correctly set admin client state remote_addr value.
    • Prevent memory corruption when a regex topic subscription is checked for read topic entitlement.
    • Prevent fatal abort when in-memory SOW data is overwritten by a concurrent coalesce.
    • Fix CRC checking when recovering a SOW topic. On startup AMPS would report corrupted records when there was no corruption.(Z745)
    • Fix for admin statistics reporting on views and replicas that have identical names but differing message types. Previously, AMPS would not show statistics for the view or replica in this situation.
    • Prevent hang in AMPS related to client consumption rate. In cases where AMPS is producing messages just slightly faster than the client consumed them, an error in managing the send buffer could cause a deadlock.
    • Send logon ack for authentication failure before disconnecting the client so clients will know why they are disconnected.
    • AMPS now links to a libtbbmalloc.so.2 stub, which is not TBB's malloc library. This library exists to prevent TBB from automatically loading a random libtbbmalloc.so.2 from the runtime environment.

Version 3.8.0.1 (2014-04-08)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.8.0.0.

  • The following issues were fixed in this release:

    • Correctly handle bookmark subscriptions placed at a bookmark that does not exist in the transaction log. In 3.8.0.0, a bookmark placed at a bookmark that does not exist would fail to be placed, instead of being placed at the most current location in the transaction log. (issue Z715)
    • Prevent crash that could occur when a published message matches a bookmark subscription that is terminating because of IO errors (issue Z715).

Version 3.8.0.0 (2014-03-27)

  • This release adds major functionality to AMPS. AMPS 3.5 installations can migrate forward with no changes. However, AMPS 3.8 installations cannot be downgraded to 3.5 if the installation uses features added in 3.8.

    • Configuration files created for AMPS 3.5 will work unmodified with 3.8. 3.8 adds configuration options, so configuration files that use those options are not compatible with 3.5 and earlier releases.
    • SOW databases for AMPS 3.5 are compatible with AMPS 3.8.
    • Transaction logs created in AMPS 3.5 are compatible with AMPS 3.8.
  • Major enhancements added to AMPS for this release:

    • JOIN support for views and aggregation:

      • Multiple topics can provide data for views and aggregations, using SQL LEFT OUTER JOIN semantics.
      • JOIN can be used on topics with different message types to create a view.
      • JOIN can be used on views, including views that are the result of a JOIN.
    • Actions for easier administration:

      • AMPS can now perform maintenance tasks on a schedule, or in response to a Linux signal.
      • This release includes a wide variety of actions, including actions for managing logs, statistics, SOW files, enabling and disabling security features, creating minidumps, and downgrading replications.
      • Actions are built on an extensible interface that will allow 60East to continue to add to the library of available actions.
    • Entitlement enhancement:

      • Content filtered entitlements are now supported. Custom entitlement modules can now add a content filter to grant access to a subset of messages in a topic, rather than providing access to all messages in the topic.
      • When an entitlement filter prevents a subscriber from receiving a message, that event is logged at trace level.
    • Replication enhancements:

      • Added support for passthrough replication which allows AMPS servers to replicate messages that are received over a replication link.
      • Bookmark live subscribers can now tell when messages are safely persisted to all synchronous replication destinations. As with other acks, AMPS can conflate these acks. This can help bookmark live subscribers detect and avoid problems caused when a message has not yet been fully persisted when failover occurs.
      • Added an action that allows AMPS to automatically downgrade synchronous replication destinations that fall behind or go offline.
      • Replication destinations can now specify multiple addresses. This is an efficient way to specify replication to destinations where multiple instances are used to provide failover of the destination.
    • Content filtering and evaluation engine enhancements:

      • Added BEGINS WITH and ENDS WITH predicates for fast prefix and suffix matching in content filters.
    • Administration interface enhancements:

      • Reconnect replication destinations from the administration interface.
      • Disable and enable transports from the administration interface.
      • Upgrade replication destinations from async to sync.
      • Added new "Actions" to allow automatic, periodic truncation of the statistics store, retaining a configurable range of statistics.
      • Added conflation ratio to the topic replica statistics.
    • Topic replica enhancements:

      • Topic replicas now support content filtering. This allows underlying topics to be split into multiple topics based on the message content.
    • Processor support enhancements:

      • Add high-performance statistics and timing support for AMD CPUs.
    • Performance enhancements:

      • AMPS now decreases CPU utilization by adjusting the processing threads dynamically to subscription load.
  • The following issues were fixed in this release:

    • View state is consistent on recovery for projection fields not included in the GroupBy clause.
    • Fix crash on subscriptions that specify large regular expressions for the topic.
    • Improve query cancellation when a client disconnects. Any filters associated with the client that are part of an in-flight query will no longer be evaluated, allowing the query to terminate quickly.
    • Enable transaction log FlushInterval setting in the configuration file. This setting had become non-operative in the prior release.
    • Handle whitespace characters surrounding error identifiers in IncludeErrors/ExcludeErrors logging specifiers.
    • Add warning on startup when a Type or MessageType for a Transport have not been correctly specified.
    • Client "max send latency" statistic in administration interface is correctly reported in cases where client is offlining messages.
    • Disconnected slow consumers are given a fair opportunity to catch up rather than being immediately disconnected when they reconnect.
    • Fixed an issue where the administration interface could become unavailable when an AMPS host is under significant stress, when the host is on a VM that is suspended and restarted, or when the instance is performing long-running admin commands.
    • Fix stats ack for sow and sow_delete where the query id was in the subscription id field.
    • Improve filter validation to prevent invalid boolean predicates which contained aggregate functions.
    • Fixed error when using amps_sow_dump on a SOW file that contains deleted records.
    • Fixed bug which prevented a reconnect with the same client name in a ptcp transport.
    • amps_upgrade now correctly reports missing --tmp-dir argument when checking configuration rather than dumping a stacktrace.
    • Fix rounding error in amps_journal_dump. Timestamp now uses ISO-8601 datetime conversion.
    • Empty messages in an underlying topic are now correctly replicated to topic replicas.
    • Fixed formatting bug with the administration interface when JSON rollups are requested. Previously, some of the rollups would be formatted as invalid JSON objects.
    • Added a validation check on startup to make sure all file paths are writable. Previously, we were only checking for correct permissions, but there are cases where permissions checks pass and the path is still not writable, for example, symbolic links to paths that do not exist. This change makes certain all paths are usable on startup.
    • Change outbound XML encoding of Options field from "Options" to "Opts".
    • Improve multi-socket startup performance.
    • Add an INFO level log message when a replication destination is downgraded from sync to async.
    • SOW expiration now correctly handles publish, delete, republish cycles that previously resulted in incorrect message expiration.
    • Fix configuration validation warning that would say aio-max-nr is less than the recommended value, even though it isn't. Versions before v3.5 had a larger requirement for aio-max-nr and the validation would check against the old recommended value.
    • Replication disconnection and reconnection now handles login acknowledgements correctly when combined with other acknowledgements.

Version 3.5.0.11 (2014-06-23)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.5.0.10

  • The following issues were fixed in this release:

    • Prevent corruption of SOW files during coalesce. The corruption happened during expiration or explicit SOW delete when the message size was greater than the RecordSize configured for the SOW topic. When AMPS loads a SOW file, AMPS will detect corrupted records using the CRC for each record, remove corrupted records from the SOW, and log error messages for those records. (Z836, Z843)

Version 3.5.0.10 (2014-05-27)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.5.0.9

  • The following issues were fixed in this release:

    • Admin interface now reports the correct queue_max_latency for offlined clients. Previously, the admin interface could report zero in this case.
    • AMPS no longer consumes large amounts of CPU trying to send queued data to clients when there is no data to send. This scenario occurs when a client recovers from an offlined state.

Version 3.5.0.9 (2014-05-07)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.5.0.8

  • The following issues were fixed in this release:

    • Prevent hang in AMPS related to client consumption rate. In cases where AMPS is producing messages just slightly faster than the client consumed them, an error in managing the send buffer could cause a deadlock.

Version 3.5.0.8 (2014-03-11)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.5.0.7

  • The following issues were fixed in this release:

    • Fix for 'ptcp' connections so that they 'ack' every second. Since 3.5.0.0, acks were not being sent in the background for 'ptcp' connections and clients connecting to AMPS via 'ptcp' could see large growth in their store-and-forward persistence as they await acknowledgment.

Version 3.5.0.7 (2014-03-04)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.5.0.6

  • The following issues were fixed in this release:

    • 'Replica' initialization will no longer attempt to use uninitialized memory, which could result in AMPS becoming unresponsive.
    • amps_journal_dump, amps_sow_dump and amps_clients_ack_dump now work on Windows platforms. Previously, files could be misread on Windows.
    • amps_journal_dump now uses ISO-8601 datetime conversion for timestamps. Previously, rounding errors could occur.
    • Fixed format of log statement (02-0020) when AMPS replication destination logon fails because of version mismatch.
    • AMPS no longer places an extraneous character into the XML SOW stats Records tag.
    • Authentication modules now return empty strings for userOut and passwordOut unless the strings are explicitly set by the module. Previously, the input values would be returned as the output values if the module did not explicitly change them.
    • Fixed potential stack buffer overflow when converting a numeric value to a string. This overflow could cause stack corruption.
    • Fixed 'hang' when a large number of sow deletes for non-existent sow keys are sent to AMPS.
    • Improve multi-socket startup performance. This fix can decrease startup times dramatically.
    • The "Filter" value in XML client status messages now uses CDATA. Previously, this could produce an illegal XML message.
    • Fixed low probability potential segv after client disconnect

Version 3.5.0.6 (2013-11-27)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.5.0.5

  • The following issues were fixed in this release:

    • amps_sow_dump correctly handles sow files that contain deleted records.
    • AMPS now correctly handles client disconnection while the AMPS publish engine is waiting for the message to be matched before pushing out the matches. Previously, it was possible for this condition to result in a crash (SEGV).
    • Replication destination connect logic uses non-blocking connect so that both AMPS start and shutdown are not delayed (connect can block up to 3 minutes before returning).
    • Correctly handle a critical sow store failure that might result in an infinite loop and an unresponsive AMPS process. The store failure could be the result of trying to store a very large object that exceeds the size of the sow store slab size.
    • Correctly estimate clock frequency for older AMD CPU's (that do not contain the CPU freq in their CPUID brand string) to support high performance stats and timing info gathering.
    • Version 2 sow stats messages are now correctly published to the sow stats topic. Previously, when version 2 compliance was enabled, sow stats messages had been incorrectly published to the sow topic itself.
    • amps_upgrade now correctly handles interpolation of %n in config files where topics include slashes.
    • amps_upgrade reports missing --tmp-dir argument when checking configuration rather than dumping a stacktrace

Version 3.5.0.5 (2013-11-05)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.5.0.4.

  • The following issues were fixed in this release:

    • Server no longer incorrectly disallows reconnects for "ptcp". Previously, the server could incorrectly reject a "ptcp" login. When this happened, the server disallowed reconnect with the same "ptcp" login name.

Version 3.5.0.4 (2013-10-20)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.5.0.3.

  • The following issues were fixed in this release:

    • Correctly handle low probability race condition when sow key is expired and a sow update arrives during the delete. Previously, this condition had the potential to cause a crash (SEGV).
    • Remove logging of non-printable char's at the end of cpu brand string during startup
    • Fix potential misreporting of stuck 'ptcp' processing threads caused by somewhat inaccurate poll timeout.

Version 3.5.0.3 (2013-09-23)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.5.0.2.

  • The following issues were fixed in this release:

    • Reduce CPU usage on RHEL4. Workaround for lack of private futex support on this version of Linux had been incorrectly causing heavy CPU usage.
    • Bookmark reply no longer incorrectly causes 'stuck' thread messages and produces minidumps when a client requires pacing.

Version 3.5.0.2 (2013-09-12)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.5.0.1.

  • The following issues were fixed in this release:

    • Correctly report client max send latency stat in some cases where entering offlining would report a latency of 0.
    • Correctly handle reconnects for slow clients. Clients that start offlining, are disconnected by AMPS, then reconnect and immediately go into offlining again are given an opportunity to catch up rather than being immediately disconnected.
    • Fix regression in 3.5.0.0 and 3.5.0.1 where a stats ack for sow or sow_delete would incorrectly have the query id in the subscription id field.
    • Close replication sockets properly when replication fails to connect.
    • Replicated sow_deletes are now acked correctly.

Version 3.5.0.1 (2013-08-30)

  • This hot-fix release does not add or change major functionality.

  • Migration: Fully compatible with 3.5.0.0.

  • The following issues were fixed in this release:

    • Disable NUMA optimizations on hosts that report NUMA capabilities with multiple sockets but only have one NUMA node configured.
    • amps_sow_dump output is correct for records with data between 128 and 512 bytes in size. Previously, data of this size could truncate.
    • Relaxed minimum supported python version in amps_upgrade from 2.6.8 to 2.6 or later.
    • Processing threads report correct status when AMPS is idle for long periods of time. Previously, some threads could misreport as stuck.
    • SOAP client status message now returns correct tags.
    • AMPS now correctly handles a case where transaction data was not replayed after an AMPS restart. This occurred if there were no subsequent transactions for the publishing client associated with the bookmark.
    • Log 17-0001 trace log messages in another case. Previously, this message was not generated in a case that should have logged the message.
    • Protect against a potential segv if a replicated sow_delete attempted to send a persisted ack to the AMPS replication client.

Version 3.5.0.0 (2013-08-12)

  • Major enhancements added to AMPS for this release:

    • Up to 10x increased throughput with the same latency profile as previous releases. This release includes performance improvements in most areas of the AMPS server and introduces greater NUMA awareness.
    • Heartbeat improvement to more rapidly and accurately detect client disconnection.
    • Enhancements to prevent "name in use" errors and allow quick reconnection of authenticated clients.
    • Deprecation and removal of undocumented and unsupported udp protocol.
  • Migration: This release changed the format of the "clients.ack" file for users of an AMPS transaction log. This release contains an upgrade script for helping upgrade existing instances of version 3.0.2 or later. This version may require the following changes to your instance configuration file:

    • Remove any 'udp' transports defined in your configuration. The server will not start if a 'udp' transport is defined.
    • TransactionLog BatchSize now has a minimum value of 128. If the value is set to less than 128, the server will reset the BatchSize to 128.
  • The following issues were fixed in this release:

    • Return an HTTP 404 response when AMPS is listening on the port but has not completely started. Previously, the response during this time was empty and didn't contain a proper HTTP status line.
    • Fix XML entity expansion in XML SOW messages. Before this fix, a SOW query with a filter on an XML topic could cause entities in the XML to be expanded, resulting in corrupted messages.
    • Improve config file parsing. Previously, XML comments before the AMPSConfig root element would hide children properties of AMPSConfig (eg: SOWStatsInterval, StringLiteralRawDefault, etc.)
    • Format timestamp emitted by amps_journal_dump in a recognizable ISO-8601 format. The UTC time stored in the journal is converted to localtime before display.
    • Fix startup error on older machines that do not support "rdtscp" which will generate an illegal instruction if executed.
    • Reduced aio-max-nr error threshold to 8192 and warning threshold to 32678, which is compatible with default configurations on all Linux systems.
    • Removed the undocumented 'udp' transport.
    • Fix startup error on older machines that do not support "rdtscp" which will generate an illegal instruction if executed.

Version 3.3.1.11 (2014-03-04)

  • Migration: This hot-fix version is fully compatible with 3.3.x.

  • The following issues were fixed in this release:

    • Eliminate a potential SEGV when subscribing with large content filters containing characters that needed to be escaped in the unexposed JSON message type.

Version 3.3.1.10 (2013-11-19)

  • Migration: This hot-fix version is fully compatible with 3.3.x.

  • The following issues were fixed in this release:

    • Correctly handle very large objects in the sow when the object size is greater than the sow store slab size. In 3.3.1.7 and 3.3.1.8, this would have resulted in a crash (SEGV). In 3.3.1.9, a hang is possible.

Version 3.3.1.9 (2013-10-31)

  • Migration: This hot-fix version is fully compatible with 3.3.x.

  • The following issues were fixed in this release:

    • Correctly handle an additional low probability race condition when sow key is expired and a sow update arrives during the delete. Previously, this condition had the potential to cause a crash (SEGV). This is similar to the item fixed in 3.3.1.8.

Version 3.3.1.8 (2013-10-15)

  • The following issues were fixed in this release:

    • Correctly handle low probability race condition when sow key is expired and a sow update arrives during the delete. Previously, this condition had the potential to cause a crash (SEGV).
    • Fix for bookmark subscribe that uses a regular expression topic where messages were returned to the subscriber that did not match the messa ge type specified by the client's connection during 'replay' portion of replay.

Version 3.3.1.7 (2013-07-02)

  • Migration: This hot-fix version is fully compatible with 3.3.x.

  • The following issues were fixed in this release:

    • Fix low probability crash (SEGV) if there is a SOW update coincident with the end of query when there had never been a SOW update from the processing thread doing the update previously.

Version 3.3.1.6 (2013-06-26)

  • Migration: This hot-fix version is fully compatible with 3.3.x.

  • The following issues were fixed in this release:

    • Fix possible incorrect truncation of a coalesced SOW file at startup.
    • Fix possible crash where SOW file has a size that is not a multiple of page size and causes mmap to fail when growing the SOW.

Version 3.3.1.5 (2013-06-17)

  • Migration: This hot-fix version is fully compatible with 3.3.x.

  • The following issues were fixed in this release:

    • Fix hang when sow_delete was executed on topic with expirations enabled.
    • Fix to allow bookmark subscriptions from different clients to use the same SubId.
    • Fix potential large memory growth when executing a sow query where the SOW contains one or more large messages.
    • Fix for bookmark subscribe that uses a regular expression topic where messages were returned to the subscriber that did not match the message type specified by the client's connection.

Version 3.3.1.4 (2013-05-14)

  • Migration: This hot-fix version is fully compatible with 3.3.x.

  • The following issues were fixed in this release:

    • Fix to XML entity processing inside SOW data. Previously, data containing XML entities (such as '&') could be corrupted when filtering on XML data. This fix eliminates this source of data corruption.
    • Fix to server unresponsiveness when a header tag containing a malformed CDATA section is passed.
    • Fix for usage of XML entities in subscription filters. Previously, symbols such as & and < could only be specified in a filter if the filter was wrapped in a CDATA section. With this fix, filters may be specified that use these characters, without using CDATA, by using standard XML entities (e.g. '&', '>').

Version 3.3.1.3 (2013-05-06)

  • Migration: This hot-fix version is fully compatible with 3.3.x.

  • The following issues were fixed in this release:

    • Fix to remove 500 client limit visible from admin interface.
    • Fix to intermittent crash when rapidly connecting and disconnecting, with publishes and subscribes in between.
    • Removed 02-0024 'critical' logging message which was reporting false gaps in transaction ids.

Version 3.3.1.2 (2013-03-27)

  • Migration: This hot-fix version is fully compatible with 3.3.x.

  • The following issues were fixed in this release:

    • Updated dynamic SOW coalesce algorithm to check at 5 second intervals and raise priority of coalesce event to prevent starvation.
    • Fixed shutdown race condition caused by placing a bookmark subscription after AMPS shutdown procedure has begun.
    • Added tsd_count, coalesce_execution_count, coalesced_slab_count statistics to the SOW admin interface.

Version 3.3.1.1 (2013-03-19)

  • Migration: This hot-fix version is fully compatible with 3.3.x.

  • The following issues were fixed in this release:

    • Fix for offline "1 of 1" bug that is caused by AMPS trying to offline a zero length message (oof or publish).
    • Fix for a race condition where AMPS could become unresponsive when a client issues a bookmark subscription and immediately disconnects.

Version 3.3.1.0 (2013-03-09)

  • Migration: This hot-fix version is fully compatible with 3.3.0.x.

  • Major enhancements added to AMPS for this release:

    • Improved replay performance of bookmark subscriptions and AMPS replication.
    • Added a feature to eliminate internal fragmentation within SOW topic persistence files. On startup and at 60 second intervals, AMPS will evaluate the SOW topic persistence file, looking for opportunities for reducing fragmentation.
  • The following fixes and enhancements are in this release:

    • Fix duplicate keys being added to new FIX and NVFIX messages when 'send keys' option is enabled on a delta subscribe.
    • Fix to allow valid characters within XML element names. Previously, AMPS did not allow the '-', '.', ':' characters (only permitting alpha-numeric values and the '_' character.)
    • Fix OOF messages being sent to subscriptions on non-sow topics, regardless of SendOOF option.
    • Fix bookmark replay subscriptions with filters not matching when run against a non-sow topic.
    • Fix incomplete journal writes on shutdown causing inconsistent replay (duplicate messages or txid gaps).
    • Downgrade message 16-0009 to trace logging level.
    • Upon reconnect, a publishing client will receive the highest sequence value persisted as part of the logon ack, not the last ack sent.
    • Fix to prevent case where AMPS was reading beyond the end of a file when stored on DFS.
    • Fix case where SEGV can occur during shutdown while a SOW file extension is taking place.
    • Fix for hang when a sow_delete by filter is replicated to a downstream AMPS instance. Deployments using sow_delete with filters on replicated topics should be upgraded.
    • Fix for misreported queue_max_latency metrics in the admin stats. The queue_max_latency would sometimes be reported as rounded durations or 0.0 when offlining is engaged.
    • Fix SEGV due to a publisher disconnect race condition where the update to the unacked message count (when publish is stored to the transaction log) happens during a disconnect.

Version 3.3.0.0 (2013-01-23)

  • Migration: This version of AMPS introduces a new file format for the SOW topic persistence which is incompatible with those created in older versions of AMPS. Upgrading to version 3.3.0.0 requires that existing SOW persistent state is deleted prior to upgrading.

  • Major enhancements added to AMPS for this release:

    • Improved re-indexing performance during queries. Since 3.0 AMPS has re-indexed during queries that required it (instead of before the query). This new re-indexing algorithm could cause significant delays in query processing with large SOW topics (>10 million records.)
  • The following fixes and enhancements are in this release:

    • Fix to ensure that the admin statistics database is created before enabling the message processing functionality. Before this fix, AMPS could receive a SIGABRT/SIGKILL signal for a partially created database (we've only seen this in stress tests that force failures within AMPS.)
    • Enhance error message on startup when the configured JournalDirectory doesn't support 512-byte writes on 512-byte boundaries. This error message will help users more quickly pinpoint an incorrectly formatted Fusion-IO device in the future.
    • Fix to allow multiple environment variables on a single line in close proximity. Previously, if the variables were close together on the line the parser might miss the second variable.
    • Fix to recognize the nvfix message type in amps_journal_dump.
    • Fix for hang on startup when declaring a view or topic replica on an underlying topic containing regular expression characters.
    • Fix to add 'critical' log messages (16-0031) for reporting when AMPS encounters an unparsable message when creating an index. This message can be used to pinpoint the garbage records and correct publishing data sources.
    • Fix to sow_delete with filter not sending OOF messages.

Version 3.2.0.3 (2013-03-05)

  • Migration: This hot-fix version is fully compatible with 3.2.0.x.

  • The following issues were fixed in this release:

    • Fix for hang when a sow_delete by filter is replicated to a downstream AMPS instance. Deployments using sow_delete with filters on replicated topics should be upgraded.

Version 3.2.0.2 (2013-01-16)

  • Migration: This hot-fix version is fully compatible with 3.2.0.x.

  • The following issues were fixed in this release:

    • Fix for potential hang on startup when using views and topic replicas on underlying topics with regular expression characters in their name.

Version 3.2.0.1 (2013-01-07)

  • Migration: This hot-fix version is fully compatible with 3.2.0.0.

  • The following issues were fixed in this release:

    • Fix for potential record corruption when writing delta-publishes to a transaction log or SOW topic.
    • Fix for bookmark replay messages using the XML message type not having valid XML formatting.
    • Fix for misreporting of log warning message 70-0018 indicating that a ptcp message has been acked previously. It's not an error to ack the same message sequence, so this warning has improved to only report when the sequence backtracks.

Version 3.2.0.0 (2012-10-29)

  • Migration: This version of AMPS introduces a new file format for the transaction log which is incompatible with those created in older versions of AMPS. Upgrading to version 3.2.0.0 requires that existing persistent state (SOW, transaction log, ptcp stores) are deleted prior to upgrading.

  • Major enhancements added to AMPS for this release:

    • Added new AMPS processing pipeline for reduced latency and increased throughput.
    • Pass the authenticated user-id to clients in 'publish' and 'OOF' messages, when the publishing client was authenticated with an auth- entication module other than the default.
    • Improved efficiency for: delta publishing, expiration processing, replication replay, and long running instances.
    • Add authentication and entitlement "break glass" support. Starting in 3.2 a SIGUSR1 signal sent to AMPS will circumvent authentication and entitlement modules. When the authentication and entitlement modules are bypassed, they can be re-enabled by sending a SIGUSR2 signal. AMPS versions before 3.2 will exit upon receiving a SIGUSR1 or SIGUSR2 event (the default behavior for these signals.) Authentication responses in the 'logon' acks issued in this "break glass" state will have a Reason of "authentication disabled", which is the same Reason code for responses with the default authentication module.
  • The following issues were fixed in this release:

    • Fix PTCP to handle the scenario where the PTCP command is unknown.
    • Fix for PTCP which was causing scenario where all acks were not being returned.
    • OOF messages are now added to logs.
    • Fix for missing SubIds for bookmark subscriptions.
    • Ensure that the publish count value reported in the admin console is only incremented once messages are en-queued to the message pipeline.
    • Ensure that waiting for SOW key set bit in SOW update and delete does not hang during shutdown.
    • Guarantee that pointers to string input parameters passed into the authentication and entitlement APIs will now point to valid zero-length strings, even when the length is 0. This prevents the potential for a SEGV when users define their own modules that touch the strings without checking the length. No change to user-defined authentication and entitlement modules are required due to this change.
    • Prevent bookmark subscriptions with no 'live' option specified from sending pending transactions.
    • Fix bookmark replay cut-over gap that can occur when replay occurs while publishing is happening.
    • Fix handling of duplicate publish messages.
    • Allow topic subscriptions to support OOF processing.
    • Fix for large delta_publish messages.
    • Prevent cancellations of 'sow_delete' by filter commands.
    • Fix hang in 'sow_delete' by filter and 'delta_publish' with transaction log.
    • Fix for SEGV caused by index creation error during query.
    • Fix potential hang in transaction log file extension.
    • Guarantee that after replication resync has finished that only messages with transaction IDs greater than last-completed transaction IDs are sent to replication destination.
    • Fix for SEGV when AMPS is told to shutdown during start-up and all user-defined modules have not been initialized.
    • Fix bookmark replay with timestamp.
    • Promoted the 70-0014 max buffer size exceeded, disconnecting slow client message from warning to error.
    • Fix race condition where a OOF from a SOW update/delete might be published in the wrong order.
    • Fix PTCP crash when sending multiple messages in a single list.
    • Fix thread monitor for the admin console to be the number of seconds specified in Interval (not 1000x the Interval.)
    • Fix for a 'processed' ack coming back for a 'subscribe' or 'sow_and_subscribe' command before the subscription may have been placed.
    • Fix for detecting when journal file creation is terminated prematurely due to a shutdown event and preventing the journal from being used on a future restart.
    • Fix for SEGV when AMPS is issuing a re-indexing query while publishers are updating data concurrently.
    • Fix for hang when AMPS is trying to reuse an internal per-record metadata object before the previous task is completed. Users would see this issue as AMPS hanging when heavy concurrent updates, expirations, and queries are being executed.
    • Fix for leak of file descriptors when creating new transaction logs.

Version 3.1.0.2 (2013-01-16)

  • Migration: This hot-fix version is fully compatible with 3.1.0.x.

  • The following issues were fixed in this release:

    • Fix for potential hang on startup when using views and topic replicas on underlying topics with regular expression characters in their name.

Version 3.1.0.1 (2012-10-27)

  • Fix defect where AMPS may not send acks back on ptcp sessions.
  • Fix defect where AMPS may not keep a topic replica up to date with it's underlying topic.

Version 3.1.0.0 (2012-09-18)

  • Enhancements added to AMPS for this release:

    • Add Authentication and Entitlements modules to AMPS.
    • Add raw literal string support to content filtering. Using a 'r' or 'R' prefix immediately before a string literal will parse the string according to standard string escaping rules, but skip the escaping step. Usage of raw string literals can make it easier to use complicated patterns within the 'LIKE' predicate.
    • Improve pacing for clients attempting to replay a large transaction log or a large SOW. This reduces likeliness of clients from being disconnected as slow consumers due to a large query.
    • Allow 'sow_delete' by filter with regex topic.
    • Improve topic replica processing:
      • Increase performance (about a 5X improvement)
      • Allow replica interval to be set to a minimum of 100ms (previous minimum was 1s).
      • Improve interval tracking to prevent drift between the Interval samples.
  • The following changes were made in this release:

    • Removed global FIX configuration in favor of directly setting the separators in the appropriate 'MessageType' config. If using a FIX configuration section in your configuration file, please move the separator configuration to a 'MessageType' definition if you are using non-defaults.
    • Add 'StringLiteralRawDefault' option to configuration to provide upgrade path from pre-3.0 instances.
    • Add alert/BEL character to special string escape sequences to follow standard C-lexical rules.
    • Fix for AMPS configuration parser recognizing CDATA blocks.
    • Update acknowledgment handling so that acknowledgments are consistent across all commands:
      • When there is a failure in processing, all requested acknowledgments (that have not already been sent) will be returned with a status of 'failure'.
      • An attempt is made to return all requested acknowledgments including 'stats' acknowledgment for 'sow', 'sow_and_subscribe' and 'sow_delete' by filter.
      • The 'stats' acknowledgment is returned after the 'completed' acknowledgment for 'sow', 'sow_and_subscribe' and 'sow_delete' by filter.
      • For 'sow_and_subscribe' on a non-SOW topic the 'processed', 'completed' and 'stats' acknowledgments are returned with 'success'.
  • The following defects were fixed in this release:

    • Memory improvements in scenarios with frequent client connect/disconnect.
    • Ensure bookmark subscriptions are covered by a valid topic in the transaction log. Otherwise, return a failure ack with an 'invalid_topic'.
    • Add 'emergency' error message and force AMPS to create a minidump when submitting/committing transaction to journal is unsuccessful.
    • Changing size of existing journal files in the configuration no longer causes AMPS to crash.
    • Changing the minimum size of an existing journal file in the configuration no longer causes AMPS to hang on start-up.
    • 'sow_delete' command no longer allows filter cancellation on client disconnect.
    • Fix throttle count statistic in admin console which was always reporting zero.
    • Fix case where 'OOF' messages can front run messages publishes to a subscriber.
    • Allow topic replicas to be defined for XML topics.
    • Only set client name if a 'logon' is successful.
    • Add duplicate logon attempt detection and return a 'failure' ack.
    • Ensure that client status messages are only issued between connect and disconnect.
    • Fix denial of service when more than (4096 * number of CPUs) clients connect.
    • Fix for possible SEGV when publishing with active bookmark subscription that disconnects.
    • Fix potential SEGV on shutdown when clients are not properly shut down.
    • Add proper log message for starting client off-lining and demote it from 'info' to 'debug' log levels.
    • Enhance 'UnderlyingTopic' dependency detection during config validation for view and topic replicas. Previously, if the 'UnderlyingTopic' did not reference another valid topic AMPS would detect it late in the startup process after config validation.

Version 3.0.5.9 (2012-09-07)

  • Fix for preventing interleaving of group_begin and group_end messages on 'sow_and_subscribe' commands executed on non-SOW topics.
  • Fix potential race conditions with bookmark subscriptions that could cause segmentation fault.
  • Added pacing bookmark replay so that clients are not overwhelmed and disconnected.

Version 3.0.5.8 (2012-08-31)

  • Fix for preventing in-progress publishes from being included in SOW query results. Previously, it was possible for AMPS to include published messages that were still being processed causing AMPS to exit suddenly.

Version 3.0.5.7 (2012-08-22)

  • Fix for possible SEGV when disconnecting during an active bookmark subscription.

Version 3.0.5.6

  • Fix defect where AMPS may not return all query results in a large, sparse query with a batch size greater than 1.
  • Added 'StringLiteralRawDefault' configuration option that when set to 'true' will parse string literals within content filters following C-lexical rules but not perform escape sequence replacement. This option is useful for migrating from previous versions of AMPS where the string literals were 'raw' by default. Using this option in AMPS 3.x is equivalent to using the raw string prefix ('r') before every string literal within content filters.

Version 3.0.5.6

  • Fix defect where AMPS may not return all query results in a large, sparse query with a batch size greater than 1.
  • Added 'StringLiteralRawDefault' configuration option that when set to 'true' will parse string literals within content filters following C-lexical rules but not perform escape sequence replacement. This option is useful for migrating from previous versions of AMPS where the string literals were 'raw' by default. Using this option in AMPS 3.x is equivalent to using the raw string prefix ('r') before every string literal within content filters.

Version 3.0.5.5 (Deprecated)

  • Fix for allowing duplicate logons when no TransactionLog is defined in the configuration. In earlier 3.0 versions, a duplicate logon could log an error (1F-0010) even though there is no TransactionLog defined.
  • Fix for view aggregate values on recovery on large underlying topics. Previously, views could contain the wrong information on recovery when the underlying has a large number of records (more than a million.)

Version 3.0.5.4 (2012-06-18)

  • Return 'userId' and 'password' on client 'logon' ack when status is 'success'.
  • Fix for resource leaks and potential hangs when clients are forcibly disconnected (failed authentication, offline threshold, etc.)

Version 3.0.5.3 (2012-06-13)

  • Fix for potential hang during SOW update when index data size is an exact multiple of 1024 bytes.
  • Fix for client leak in cases where UDP port is defined but not used.

Version 3.0.5.2 (2012-06-06)

  • Fix for spurious InterruptedException that could occur during disconnect handling.
  • Fix for performance issue to alleviate clients creating unnecessary CommandIds when using 'Client.send(MessageHandler, Message, int)'.
  • Added new support for controlling TCP socket options through URI parameters. Flags include 'tcp_rcvbuf', 'tcp_sndbuf', 'tcp_keepalive', and 'tcp_nodelay'. These parameters are used in the query portion of the URI passed to 'Client.connect()'.
  • Fix to allow 'TimedOutException' to be thrown when a timeout occurs during a call to 'Client.send(MessageHandler, Message, int)'.

Version 3.0.5.1 (2012-06-01)

  • Remove the attempt at publisher pacing when a slow client exceeds its offline threshold. Since 3.0, this pacing could create delays in environments with multiple oversubscribed consumers.

Version 3.0.5 (2012-05-28)

  • Fix critical issues where an index re-size to include more data or additional fields could cause a SEGV.
  • Fix SOW statistics for average message sizes and added additional fields for index data sizes.
  • Fix for subscriptions requesting deltas and/or OOF processing on non-SOW topics.
  • Fix for race condition where a 'sow_and_subscribe' command could include an update within the SOW query and following subscription data.
  • Fix for Java client sending duplicate messages when the send buffer needs to be re-sized.
  • Enhance directory permission testing at startup to provide better feedback in cases where log files can't be created.
  • Enhance port range validation to prevent usage of invalid port numbers and warnings when using ephemeral ports.
  • Fix to free all data consumed by expired records to prevent unbounded growth of topics that consistently publish new records that eventually expire.
  • Fix for requiring a client logon if a TransactionLog is defined (even if no topics are driven to the transaction log.)
  • Fix for "epoll" mechanism used within transports to prevent processing delays when trying to process many events.
  • Fix for ungraceful exit when AMPS is started with a directory path instead of path to a valid configuration file.
  • Fix for potential client resource leaks.
  • Fix to prevent infinite loop when looking for free space within a SOW topic.

Version 3.0.4.3 (2012-05-11)

  • Fix for queue_max_latency, queue_depth_out, and queued_bytes_out metrics in client monitoring statistics.
  • Add AMPSVersionCompliance flag to MessageTypes to fix backwards compatibility issues with the '/AMPS/SOWStats' topic records. When <AMPSVersionCompliance>2</AMPSVersionCompliance> is defined within the 'MessageType' definition AMPS will include both the version 2.x and 3.x tag names.

Version 3.0.4.2 (2012-05-04)

  • Fix for unbounded memory growth for PTCP connections.

Version 3.0.4.1 (2012-04-27)

  • Fix for case where a slow consumer is off-lined but then recovers. In some instances the same client may not be off-lined again, resulting in unbounded memory growth in AMPS.
  • Fix the client 'queue_depth_out' metric in the administration console has been corrected to accurately reflect the record count for an offline client.
  • Fix to prevent transaction completion processing from calling into other components which have already been terminated during AMPS shutdown.
  • Fix to prevent transaction completion processing from calling into other components which have already been terminated during AMPS shutdown.

Version 3.0.4 (2012-04-25)

  • Fix to reduce the memory consumed by deleted or expired records.
  • Fix to prevent potential hang when trying to find more storage space in a SOW topic.
  • Enhance SOW init expiration processing to offer better performance with less resource usage.
  • Fix to provide an upper bound on memory retained during slow client scenarios.
  • Ensure that a processed acknowledgment is sent for SOW queries where the topic does not exist. For 'sow_and_subscribe', a failure acknowledgment is not sent because the command succeeds if it is a valid subscription.
  • Allow distinct clients to use the same subscription identifiers.
  • Return 'group_begin' and 'group_end' for 'sow_and_subscribe' regardless of the existence of a SOW topic.

Version 3.0.3.3

  • Fix for false reporting of reaped clients when they disconnect.
  • Fix to prevent reconnecting replication destinations during shutdown.

Version 3.0.3.2

  • Fix for prematurely freeing connection resources during disconnect processing that could be still in use. Previously, AMPS could crash in situations with high publishing rates and client disconnect rates.
  • Remove incorrect warning (0E-0005) that would report possible corruption anytime a topic replica was defined on a topic with expiration enabled.

Version 3.0.3.1

  • Fix for missing messages when issuing a 'sow_and_subscribe' command on a non SOW topic.

Version 3.0.3

  • Fix handling of file creation errors in the offline store. If the file cannot be opened, then disconnect the client to prevent unbounded memory growth.
  • Fix for NULL value checks in filter expressions.
  • Add maximum offline threshold of 128MB messages so that if a client falls hopelessly behind then it will be disconnected regardless of progress. This will prevent an oversubscribed client from attempting to offline an unlimited amount of data.
  • Client off-lining and slow client disconnect are enabled by default with a 50MB threshold and 100K offline threshold.
  • Enhance 'progress' check when off-lining so that clients making progress towards consuming all of their queued messages are allowed to continue. Previously AMPS was too quick to disconnect clients making effective progress.
  • Fix for an AMPS hang at shutdown when messages are in flight to a transaction log.
  • Fix bugs where a disconnected client or subscription could be destroyed while still in use.
  • Automatically write a mini-dump if a thread is stuck more than 60 seconds.
  • Fix SOW query statistics. Matches and topic match statistics were not being reported correctly in all cases.
  • Fix for potential deadlock when threads compete to update the same SOW key and a query is started.
  • Increased concurrency for journal and SOW file pre-allocation so that devices with higher bandwidth and lower latency are fully utilized.
  • Ensure that acks are returned for bad queries and that queries are properly canceled during shutdown.
  • Only publish bookmarks if the matching subs are marked as a bookmark subscription (this is for backwards compatibility with older clients).
  • Only send logon ack if requested (this is for backwards compatibility with older clients).
  • Add process ID to temporary journal file name to avoid conflict with multiple AMPS instances or quick start/shutdown/start scenario.
  • Add throttle count to the processor stats.
  • Properly close and cleanup start-up validation file used for detecting proper permissions and capabilities of journal directories.
  • Upgrade log level for configuration file logging to 'info'. Previously it was logged at the 'debug' level.
  • Fix for file rotation threshold. Since 3.0.0, AMPS was only keeping track of the number of writes and not the number of bytes written to a standard file logging target.
  • Add configuration validation to check for valid transport and message types. Previously, AMPS would fail silently when incorrect types were configured.
  • Add source and javadoc to amps_client.jar file to enable source and comment viewing features in IDEs.

Version 3.0.2.1

  • Fix for potential misdelivery of messages. When this bug occurred a client could receive publishes destined for another client's subscription.
  • Fix for unbounded memory growth in queued logging messages when logging high volumes to slow devices.
  • Fix for segmentation violation when using subscriptions with large subscription identifiers or connections with a large number of matching subscriptions.

Version 3.0.2

  • Enhancement to --verify-config command line option to not treat errors as fatal so that every issue is reported.
  • Reduce memory consumption when a TransactionLog is not configured.
  • Allow duplicate logon names to be used when no TransactionLog is configured.
  • Increase log level for 1F-0010 (name_in_use) from 'warning' to 'error'.
  • Increase performance of "send side" socket buffering by caching memory blocks.
  • Fix potential client state memory leak when clients disconnect with pending results.
  • Further reductions in memory fragmentation exposure.
  • Use unique connection name instead of user specified logon name for offline file name.

Version 3.0.1

  • Enhancements to decrease heap fragmentation.
  • Fix type conversions in filters such that a string literal will always follow string equality comparison semantics when compared to a field reference regardless of contents. Previously, there were cases where the string literal would be converted to an integer for the comparison allowing false-negative or false-positive matches.
  • Fix for potential segmentation violation when parsing the last part of a message that happens to have one of the keys or index values at the end of the message such that the field delimiter is within 16 bytes from the end of the record. Only impacts CPU's with SSE4.2 enabled.
  • Tune grain size for SOW query parallelization to ensure all threads are enlisted in the query (important for large multi-core/huge SOW queries.)
  • Fix valid_keys report in the admin console Non-TXN log case.
  • Fix python client leaking of event fd's used for epoll triggering.
  • Spark client "--limit" flag enhancement to accept a single digit (N) and show all journal entries from 0 up to N.
  • Fix Java Client SOW message handling. XMLMessage.getLength() was not reporting the length correctly.

Version 3.0.0

  • Addition of new High Availability features including Replication and Journaling.

  • Configuration enhancements:

    • Configuration validation added on start up to reduce configuration conflicts.
    • Added '--verify-config' option to report configuration conflicts without starting AMPS instance.
    • Add ability to reference environment variables from within the configuration file. Any strings found in the config file of the form '$variable' will be replaced with the environment variable with name variable.
    • Fix defect in configuration parser which caused configuration files which began with a comment at the root node level to not parse correctly.
    • Add validation for topics to require 'MessageType'.
    • Make 'PTCPDirectory' a config member of the 'Transport' and make it required when the 'Transport' being defined is 'ptcp'. Previously, this 'PTCPDirectory' value was defined globally within the config.
    • Removed SOW config section entirely in favor of explicit 'FileName' parameters on every 'TopicDefinition', 'ViewDefinition', and 'ReplicaDefinition'. The 'FileName' parameter is really a FileName mask that can contain any of the 'strftime' specifiers, just like in our 'file_logger. There's one difference with the handling of the special newline expansion of strftime (%n). This special %n specifier will expand to the topic name.
    • Cap the 'BatchSize' parameter for queries to 5000 records.
  • Added administrative console enhancements:

    • Add '/amps/instance/uptime' to admin console.
    • Add '/amps/instance/cwd' path to HTTP interface to determine the current working directory of the instance.
    • Enhance the view 'queue_depth' reporting to be as accurate as possible.
    • When AMPS can't respond to an HTTP Admin request it'll now return HTTP 503 Service Unavailable to indicate failure. Previously, AMPS may not respond at all if there is a critical condition already being handled by AMPS, therefore delaying the detection of an issue.
  • Assorted fixes to messages

    • Publish messages should not contain msg info: 'MsgId', 'SowKey' and 'MsgLen' fields.
    • Add 'MsgLn' to XML messages. The 'MsgLen' field is set in the header and indicates the number of bytes in the body of the message. In addition, a 'len' attribute has been added to the SOW batch messages and the value indicates the number of bytes in the value of Msg element tag.
    • Add missing <Msg to SOW batch message.
    • End all XML messages in a consistent fashion. If no body, then use $<$ns:Body/$>$ tag for empty soap body section.
  • Added minidump feature for better reporting of crashed instances.

  • Add SIGQUIT handling for mini-dumping. This is much easier than hitting the admin console in automated tests.

  • Add support for large 64-bit integers. Previously, anything larger than a 32-bit integer would be treated as a double.

  • Expiration can be enabled/disabled on a per topic basis. If disabled for a topic then an expiration set on a message for that topic will be recorded in the SOW but not used to expire the message.

  • Add proper escape sequence processing to AMPS.

  • Ensure that FIX header parser uses separators from the message type metadata associated with the message.

  • Reduce memory consumption during per view grouping.

  • Add the IS NAN and IS NOT NAN predicates and NAN keyword.

  • Feature: Add mod operator. Both MOD and % are supported and it follows the C,C++,Java, and .NET semantics, not the Python semantics for modulus arithmetic.

Version 2.5.7.2

  • Add ignored 'r' raw string specifier to string literals within filters to ease migration to AMPS 3.0.

Version 2.5.7

  • Disable legacy "durable" subscription support. This functionality is deprecated for other HA mechanisms available in 3.0.

Version 2.5.6.1

  • Fix for size limited FIXBuilder in the Java client API. Previously, the FIXBuilder messages were limited to 16KB.

Version 2.5.6

  • Fix bug in slow client off-lining that would cause a SEGV in some situations.

Version 2.5.5

  • Fix reporting of topic names of published messages in subscriptions. Previously, AMPS would report the topic name of the subscription instead of the topic name of the matching published message which would yield an incorrect topic name in subscriptions using regular expression topics.
  • Fix bug in previous Java client that would fail sending large messages.
  • Enhanced C# client implementation.
  • Add XML message type support within Java/C# clients.

Version 2.5.4

  • Fixed bug where AMPS could leak connection resources during a disconnect.
  • Fixed bug with queries using regular expression topic matching reporting the regular expression topic as the result topic, instead of the actual topic name.
  • Enhancement to allow raw field projections in simple views where the view's grouping key is equivalent to its underlying topic key. Previously, using a projection clause like "/1, /2" when the grouping key and underlying topic key were "/1" would not recognize changes to /2 in the underlying topic messages, because it is assumed that values not within aggregate functions are constant to follow SQL-92 VIEW processing restrictions. However, this enhancement relaxes the requirement for the case where the grouping key and underlying topic key match, since it is guaranteed each group can only have a single record and thus no ambiguity in values for the raw field projections.
  • Enhanced Java client interface and performance.
  • Enhanced Spark sample client to allow reading input from stdin when no file argument is provided for the 'publish' command.

Version 2.5.3

  • Fix for hung view, replica, or expiration pathways during rapid updates. Versions since 2.5.0 could hang in view, replica, or expiration processing under heavy updates (the engine would be responsive, yet some topics or expiration would not be up to date).
  • Fix for topic replicas and aggregate views to protect against re-ordering of deletions and inserts. Previously, there could be cases where the view sanity checking could be triggered indicating the view could not be trusted.
  • Fix for a SEGV that could occur when updating the same SOW topic from multiple clients at extremely high rates.
  • Performance Enhancement: Improved topic replication performance and memory requirements when replicating large batches of deleted records.

Version 2.5.2

  • Added UDP transport (supports inbound publishes only.)

Version 2.5.1

  • Added support for topic key domains (KeyDomain).
  • Fix bug where an XML message being processed by a message processor (SOWStats, ClientStatus, etc) could cause subsequent messages to appear truncated/corrupted when using the XML message body boundary even if that message type is FIX.
  • Fix shutdown processing when AMPS needs to shutdown during start up.
  • Fix for critical bug where an expiration event could cause a partial syncing of a record to disk. This would cause an expired record being detected as a corrupted record on restart.
  • Fix for critical bug where a subscription on a regular expression topic could be treated as matching another topic. This could cause a behavior where reg-ex topic subscriptions would receive incorrect messages.
  • Fix to protect topic replication from index rebuilds.

Version 2.5.0

  • This major release of AMPS focuses on delivering better performance when multiple clients are updating the same topic.
  • Enhancement to allow concurrent updates from multiple clients to the same topic store.
  • Enable optimization for CPU's supporting the SSE 4.2 instruction set.
  • Fix issues at shutdown. Previously, AMPS may not exit cleanly when brought down while interacting with a large number of clients.
  • Fix bug where concurrent queries would not be executed together if one had a filter. After this fix, queries from different clients to the same topics can be executed together regardless if filters are used.
  • Fix bug where hundreds of clients disconnecting at the same time could cause a segmentation violation within AMPS.
  • Improved performance of 'sow_delete' when used to delete multiple records.
  • Improved performance of updates when multiple views and replicas are in use.
  • Improved performance of expiration initialization and execution.
  • Add '-delta' publish option to the Spark example client.
  • KNOWN ISSUE: For this release, the /AMPS/Stats topic is disabled as well as the publishing of statistics data to the log file. This will be available again in the next release.

Version 2.3.2.1

  • Fix critical bug where updates entering by way of a 'delta_publish' command were bypassing the indexing operation. The behavior, introduced in 2.3.0, would have made query results with filters unreliable under some cases of 'delta_publish'.

Version 2.3.2

  • Fix critical bug where the first record of a SOW topic may be assumed to be free and later overwritten.

Version 2.3.1

  • Enhancement to allow user provided subscription identifiers, when the SubId field is provided during a 'subscribe', 'delta_subscribe', 'sow_and_subscribe', or 'sow_and_delta_subscribe' command.
  • Fix bug where one of many client connections expecting a OOF result would not receive the 'OOF' message.
  • Fix 'stop_timer' XML element names that incorrectly begin with a numeric digit. The 90thPercentileLatency was renamed to PercentileLatency90th, 95thPercentileLatency to PercentileLatency95th, and finally 99thPercentileLatency to PercentileLatency99th.

Version 2.3.0

  • Fix mislabeled 'ack' types within 'ack' commands. The 'processed' ack would be mislabeled a 'parsed' acknowledgment in some cases.
  • Fix for inequality testing in filter expressions. Previously, only strings of equal length followed correct inequality semantics.
  • Fix C# and Java client APIs: The TCP Client object was not shutting down the socket before closing, which can close the socket before all data has been sent to the server.
  • Fix for leaving empty grouping keys within Views empty in the projected view. Previously, an empty grouping key value would be replaced with a 0 (zero) value by the evaluation engine.
  • Enhance OOF processing to only send at most one 'OOF' message per client per record. Previously, if a client had multiple subscriptions when a record was published that was considered out-of-focus, AMPS would send each subscription a separate 'OOF' message. This was wasteful of bandwidth, since the SubIds field in a single 'OOF' message can contain multiple subscription identifiers.
  • Enhance handling of multiple subscriptions of different types on a single client. Previously, if a single client had a delta and regular subscription matching an updated record AMPS would send both a delta and a regular subscription, which is wasteful of resources. Now, AMPS only sends the most inclusive message needed by all subscriptions and includes all matching subscriptions in the SubIds field.
  • Fix bug where 'OOF' messages on Views may not be sent out correctly in all situations.
  • Fix critical bug when many large updates come in during a SOW query is in progress. The symptoms would have been AMPS having a segmentation violation before the query finishes.

Version 2.2.0

  • Enhanced FIX tag validation to prevent garbage in published messages from making it to downstream subscribing clients.
  • Enhanced 'sow_delete functionality allowing deletion of a record by providing the topic keys in the body of the 'sow_delete' command. Before this enhancement, 'sow_delete' would only operate on the internal AMPS SOW Keys.
  • Added a SndKeys option to delta subscriptions that will permit the survival of topic key values through the delta diffing process. Previously, the topic keys would always be stripped in messages passing through a delta subscription, which remains the default.
  • Fixed potential buffer overrun with very-large delta_publish messages.

Version 2.1.9

  • Fix critical bug with initialization of topic replicas. This problem would have been seen as a failure of AMPS to start up when a replica is initialized.
  • Added client logon to Spark client example.
  • Added performance metrics to output of Spark client example.

Version 2.1.8

  • Fix critical bug with client off lining large query result sets. This problem would have been seen as result corruption when off lining is turned on and a client falls behind on consuming large messages.
  • Added Java and C# client APIs for AMPS, as well as the "Spark" example client in both languages.
  • Added rpath setting to AMPS binaries that is relative to the location of the binary. (No LD_LIBRARY_PATH needed!)

Version 2.1.7

  • Fix bug where delta subscriptions with the NVFIX message type were returning empty messages even when differences existed.
  • Removed legacy SubIds tag on group_begin and group_end commands, since SubId is already included. If you use the SubIds tag, please convert to SubId, since it is equivalent.
  • Added transport info to admin console.
  • Added message type info to admin console.
  • Fix for host level CPU statistics to prevent reporting of more than 100% user time.

Version 2.1.6

  • Exposed remote_address for the client object in the monitoring interface.
  • Add configuration parameter (/AMPSConfig/Admin/Interval) to specify where AMPS will store its statistics information. Previously, all statistics were stored in memory, which could provide misleading VM utilization stats.
  • Fix critical bug that can cause query corruption when the SOW is re-sized during a query.
  • Reduce size of monitoring and statistics store exposed through administrator HTTP interface.
  • Exposed RELAX NG Compact XML Schema for statistics and monitoring XML document via /amps.rnc.

Version 2.1.5

  • Add configuration parameter (/AMPSConfig/Admin/FileName) to specify where AMPS will store its statistics information. Previously, all statistics were stored in memory, which could provide misleading VM utilization stats.
  • Fix bug when accessing the config file from the administrator HTTP interface in which the file was not being sent across in an XML compatible way (wrong content type declaration and it was wrapped incorrectly.)
  • Fix bug with the administrator HTTP interface not returning 404 Not Found for all cases of invalid paths (sometimes an empty, but valid, document would be returned).

Version 2.1.4

  • Fix critical bug when improperly deleting expired records from the query index. This problem impacts deployments using expiration processing and could have caused a segmentation violation or memory corruption in the index yielding incorrect query results.

Version 2.1.3

  • Fix critical bug regarding lock-free queries and aggressive updates (partially fixed in 2.1.2.)
  • Fix bug with view records being deleted when expiration processing is turned on.

Version 2.1.2

  • Fix critical bug regarding lock-free queries and aggressive updates. The bug impacts those continually updating the same record during long running queries.

Version 2.1.1

  • Add full support for delta_publish with the nvfix message type.
  • Fix critical memory corruption bug with large publishes during queries. This bug was exposed when a client published more than 256KB while a query was being executed.

Version 2.1.0

  • Add support for "NOT IN" predicates within content filters.
  • Add support for "NOT LIKE" predicates within content filters.
  • Add support for empty value lists within an IN predicate.
  • Define error 30-0000 for tracking of 'stuck' thread warnings.

Version 2.0.9.2

  • Bug fix for data corruption in indexes constructed while processing large delta-publish messages. This bug impacted any messages where the cumulative size of all queried fields exceeded 512 bytes.

Version 2.0.9.1

  • Bug fix for header field corruption in outbound messages constructed while processing large delta-publish messages. This bug impacted any messages where the cumulative size of all queried fields exceeded 512 bytes.

Version 2.0.9

  • Moved 'amps_sow_dump' utility to the bin directory.
  • Bug fix for race condition in HTTP monitoring interface. This bug would cause a SEGV when two rapid consecutive calls were made to the AdminPort followed by two more 15 seconds later.
  • Divide by zero in expressions now evaluate to NaN (Not a Number).

Version 2.0.6

  • Limit per client read buffer to 16KB.
  • Add administrator function for disconnecting a client.
  • Added nvfix message type format.
  • Add HTTP monitoring interface.
  • Add enhanced logging mechanism.