Skip to content

Releases: real-logic/artio

0.150

10 May 14:30
80b53d3
Compare
Choose a tag to compare
  • Fix typo in FixArchivePrinter
  • Fix an issue in sole-library mode, where reconnecting sessions many times and a library timeout can lead to an exception such as the one below.
    java.lang.IllegalArgumentException: count outside allowed range: count=1142
    at uk.co.real_logic.artio.messages.ControlNotificationEncoder$SessionsEncoder.wrap(ControlNotificationEncoder.java:226)
    at uk.co.real_logic.artio.messages.ControlNotificationEncoder.sessionsCount(ControlNotificationEncoder.java:203)
    at uk.co.real_logic.artio.protocol.GatewayPublication.saveControlNotification(GatewayPublication.java:1009)
    at uk.co.real_logic.artio.engine.framer.Framer.saveControlNotification(Framer.java:1917)
    at uk.co.real_logic.artio.engine.framer.Framer.onLibraryConnect(Framer.java:1851)
    at uk.co.real_logic.artio.protocol.EngineProtocolSubscription.onLibraryConnect(EngineProtocolSubscription.java:224)
    at uk.co.real_logic.artio.protocol.EngineProtocolSubscription.onFragment(EngineProtocolSubscription.java:80)
    at uk.co.real_logic.artio.protocol.ProtocolSubscription.lambda$of$0(ProtocolSubscription.java:59)
    at io.aeron.ControlledFragmentAssembler.onFragment(ControlledFragmentAssembler.java:123)
    at io.aeron.Image.controlledPoll(Image.java:369)
    at io.aeron.Subscription.controlledPoll(Subscription.java:235)
    at uk.co.real_logic.artio.engine.framer.Framer.sendOutboundMessages(Framer.java:447)
    at uk.co.real_logic.artio.engine.framer.Framer.doWork(Framer.java:382)
    at org.agrona.concurrent.AgentRunner.doWork(AgentRunner.java:304)
    at org.agrona.concurrent.AgentRunner.workLoop(AgentRunner.java:296)
    at org.agrona.concurrent.AgentRunner.run(AgentRunner.java:162)
    at java.base/java.lang.Thread.run(Thread.java:840)
    
    
    This issue was due to the engine keeping offline sessions and attempting to encode more sessions than the encoding permits into a ControlNotification.
  • Upgraded to ByteBuddy 1.14.14.

0.139.5

19 Apr 08:36
74a8858
Compare
Choose a tag to compare
  • Fix an issue in sole-library mode, where reconnecting sessions many times and a library timeout can lead to an exception such as the one below.
    java.lang.IllegalArgumentException: count outside allowed range: count=1142
    at uk.co.real_logic.artio.messages.ControlNotificationEncoder$SessionsEncoder.wrap(ControlNotificationEncoder.java:226)
    at uk.co.real_logic.artio.messages.ControlNotificationEncoder.sessionsCount(ControlNotificationEncoder.java:203)
    at uk.co.real_logic.artio.protocol.GatewayPublication.saveControlNotification(GatewayPublication.java:1009)
    at uk.co.real_logic.artio.engine.framer.Framer.saveControlNotification(Framer.java:1917)
    at uk.co.real_logic.artio.engine.framer.Framer.onLibraryConnect(Framer.java:1851)
    at uk.co.real_logic.artio.protocol.EngineProtocolSubscription.onLibraryConnect(EngineProtocolSubscription.java:224)
    at uk.co.real_logic.artio.protocol.EngineProtocolSubscription.onFragment(EngineProtocolSubscription.java:80)
    at uk.co.real_logic.artio.protocol.ProtocolSubscription.lambda$of$0(ProtocolSubscription.java:59)
    at io.aeron.ControlledFragmentAssembler.onFragment(ControlledFragmentAssembler.java:123)
    at io.aeron.Image.controlledPoll(Image.java:369)
    at io.aeron.Subscription.controlledPoll(Subscription.java:235)
    at uk.co.real_logic.artio.engine.framer.Framer.sendOutboundMessages(Framer.java:447)
    at uk.co.real_logic.artio.engine.framer.Framer.doWork(Framer.java:382)
    at org.agrona.concurrent.AgentRunner.doWork(AgentRunner.java:304)
    at org.agrona.concurrent.AgentRunner.workLoop(AgentRunner.java:296)
    at org.agrona.concurrent.AgentRunner.run(AgentRunner.java:162)
    at java.base/java.lang.Thread.run(Thread.java:840)
    
    
    This issue was due to the engine keeping offline sessions and attempting to encode more sessions than the encoding permits into a ControlNotification.

0.149

12 Apr 09:55
f4eb706
Compare
Choose a tag to compare
  • Add connectTimeoutNs to ArtioAdmin and await connection to the FixEngine before allowing any commands to be executed
  • Upgrade to Aeron 1.44.1 and SBE 1.31.1.

0.148

09 Apr 12:07
3e6af88
Compare
Choose a tag to compare
  • Fix a bug where sometimes a sequence reset would result in the replay index deleting only some of the index segment files.
  • Fix a bug where an exception was triggered when logging slow consumers in FixSenderEndPoint.
  • Upgrade to Aeron 1.44.0, SBE 1.31.0, Agrona 1.21.1.
  • Upgrade to ByteBuddy 1.14.13.
  • Upgrade to ASM 9.7.

0.139.4

02 Apr 17:54
db3f43d
Compare
Choose a tag to compare
  • Fix a bug where sometimes a sequence reset would result in the replay index deleting only some of the index segment files.
  • Fix a bug where an exception was triggered when logging slow consumers in FixSenderEndPoint.

0.147

14 Mar 12:48
5fe9918
Compare
Choose a tag to compare
  • Improve FixArchive{Printer,Scanner} default settings (fixes #468, fixes #492, closes #493).
  • Log ASCII instead of byte array for FIX_MESSAGE_TCP log message on writes.
  • Make the engine reuse its outbound recording consistently.

0.146

23 Feb 16:19
ba4b55f
Compare
Choose a tag to compare
  • Invalid/unnecessary JavaDocs on toEncoder/copyTo methods are no longer generated.
  • Added optional support for encoding any fields.
  • Started testing with Java 21.
  • Upgraded to JUnit 5.10.2.
  • Upgraded to ByteBuddy 1.14.12.
  • Upgraded to Versions 0.51.0.

0.145

21 Dec 11:39
Compare
Choose a tag to compare
  • Artio will now detect when it receives a FIX message too large to fit in the receiver buffer and disconnect the session (#499).
  • Change the return type of EngineConfiguration.replayIndexFileCapacityToBytes() to long to prevent overflows.
  • Clean up CodeQL warnings.
  • Switch to JUnit Platform for running the tests.
  • Upgrade to Aeron 1.43.0, SBE 1.30.0, Agrona 1.20.0.
  • Upgrade to ByteBuddy 1.14.10.
  • Upgrade to JUnit 5.10.1.
  • Upgrade to ASM 9.6.
  • Upgrade to Versions 0.50.0.

0.144

14 Sep 15:38
Compare
Choose a tag to compare
  • Fix a bug which would cause a replay index record to be missed after a Sequence Reset to a higher sequence number.
  • Fix a bug where a Sequence Reset to a lower sequence number would corrupt the replay index, potentially preventing subsequent resend requests from being serviced with an error like: IllegalStateException: [...] Error in resend request, count(0) < expectedCount (1), newSequenceNumber(3), endSeqNo(2).
  • Fix a bug where the index would ignore a redact seen before any inbound message.
  • Fix a bug where listing sessions with admin API would fail if some sessions haven't been fully initialised yet (#489).
  • Fix a bug where a FIXP endpoint would constantly report exceptions if it disconnected while being slow (#490).

0.139.3

07 Sep 15:15
Compare
Choose a tag to compare
  • Fix a bug which would cause a replay index record to be missed after a Sequence Reset to a higher sequence number.
  • Fix a bug where a Sequence Reset to a lower sequence number would corrupt the replay index, potentially preventing subsequent resend requests from being serviced with an error like: IllegalStateException: [...] Error in resend request, count(0) < expectedCount (1), newSequenceNumber(3), endSeqNo(2).
  • Fix a bug where the index would ignore a redact seen before any inbound message.