Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ECO-5163] fix: duplicated messages because of duplicated attach message #1052

Merged
merged 1 commit into from
Dec 10, 2024

Conversation

ttypic
Copy link
Contributor

@ttypic ttypic commented Dec 5, 2024

Resolves #1050

Implemented missing (RTL4i) spec point to prevent duplicated attach message

Summary by CodeRabbit

  • New Features

    • Added a conditional check to enhance channel attachment logic, preventing premature attach requests during specific connection states.
    • Introduced a new test to ensure message integrity by verifying that messages are not duplicated under certain subscription conditions.
  • Bug Fixes

    • Improved message handling to prevent duplication of attach messages during connection events.
  • Tests

    • Added a test method to validate message delivery without duplication.
    • Enhanced the flexibility of connection failure tests by using dynamic key assignments.

@ttypic ttypic requested a review from sacOO7 December 5, 2024 23:05
Copy link

coderabbitai bot commented Dec 5, 2024

Walkthrough

The pull request introduces a new conditional check in the attachImpl method of the ChannelBase class to prevent sending an attach request when the connection state is either connecting or disconnected. This modification ensures that the channel state is set to attaching and the request is returned early under these conditions. Additionally, new tests are added to the RealtimeMessageTest class to verify that messages are not duplicated when published and subscribed under specific options. Minor formatting adjustments and comments for clarity are also included.

Changes

File Path Change Summary
lib/src/main/java/io/ably/lib/realtime/ChannelBase.java Added conditional check in attachImpl method to manage channel attachment based on connection state.
lib/src/test/java/io/ably/lib/test/realtime/RealtimeMessageTest.java Added should_not_duplicate_messages test method to verify message integrity during subscription.
lib/src/test/java/io/ably/lib/test/realtime/RealtimeConnectFailTest.java Modified connect_fail_authorized_error test to use dynamic key ID for improved flexibility.
lib/src/main/java/io/ably/lib/transport/ConnectionManager.java Updated loop condition and refined message sending logic in sendQueuedMessages method to prevent duplicates.

Assessment against linked issues

Objective Addressed Explanation
Prevent duplicate messages on rewind (ECO-5163)
Prevent duplicate messages on rewind (1050)

Possibly related PRs

  • Fix implicit attach on subscribe #1028: This PR modifies the ChannelBase class to enhance subscription functionality, which is closely related to the changes made in the attachImpl method of the same class in the main PR, as both involve control flow adjustments regarding channel attachment.
  • [ECO-4972] Fix implicit channel ATTACH #1043: This PR updates the ChannelBase class and addresses the attachOnSubscribe functionality, which is relevant to the new conditional check introduced in the main PR's attachImpl method, as both aim to refine channel attachment behavior.
  • [ECO-5117] Fix channel ATTACH/DETACH state checks #1046: This PR enhances state management in the ChannelBase class, including the attachImpl method, which aligns with the main PR's focus on modifying control flow and state handling during channel attachment.

Suggested reviewers

  • sacOO7

🐰 In the realm of code, where bunnies play,
A check was added to brighten the day.
With messages clear, no duplicates found,
In channels we hop, where joy does abound!
So let’s celebrate this change with delight,
For our code now shines, oh what a sight! 🌟


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between b5d7b45 and f653d2d.

📒 Files selected for processing (4)
  • lib/src/main/java/io/ably/lib/realtime/ChannelBase.java (1 hunks)
  • lib/src/main/java/io/ably/lib/transport/ConnectionManager.java (1 hunks)
  • lib/src/test/java/io/ably/lib/test/realtime/RealtimeConnectFailTest.java (1 hunks)
  • lib/src/test/java/io/ably/lib/test/realtime/RealtimeMessageTest.java (3 hunks)
🚧 Files skipped from review as they are similar to previous changes (3)
  • lib/src/test/java/io/ably/lib/test/realtime/RealtimeConnectFailTest.java
  • lib/src/main/java/io/ably/lib/transport/ConnectionManager.java
  • lib/src/main/java/io/ably/lib/realtime/ChannelBase.java
🔇 Additional comments (2)
lib/src/test/java/io/ably/lib/test/realtime/RealtimeMessageTest.java (2)

1000-1003: LGTM! Good synchronization practice.

The attach listener implementation with timeout ensures proper channel attachment before proceeding with the test.


1020-1057: Well-structured test case that effectively validates the fix.

The test case thoroughly covers the duplicate messages scenario by:

  1. Publishing messages via REST API
  2. Subscribing with rewind option
  3. Verifying exact message count
  4. Adding delay to ensure no late duplicates

Good practices observed:

  • Using try-with-resources for proper cleanup
  • Thread-safe message counting with AtomicInteger
  • Clear assertions with descriptive messages
  • Adequate wait time (1.5s) to detect potential late duplicates

Let's verify the test coverage for similar rewind scenarios:

✅ Verification successful

Test coverage for message duplication with rewind is adequate

The test coverage for rewind functionality and message duplication is comprehensive:

  • The new test should_not_duplicate_messages() specifically covers the rewind=10 scenario with message duplication checks
  • RealtimeResumeTest.java contains resume_rewind_1() which tests rewind=1 in a different context (resume scenarios)
  • The tests cover different rewind values (1 and 10) and different use cases (basic rewind and resume with rewind)
  • The implementation includes proper verification delays and message counting
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for other rewind-related tests to ensure comprehensive coverage

# Search for rewind-related tests
echo "Searching for other rewind-related tests..."
rg -l "rewind.*test|test.*rewind" --type java

# Search for similar message duplication tests
echo "Searching for similar message duplication tests..."
rg -l "duplicate.*message|message.*duplicate" --type java

Length of output: 452


Script:

#!/bin/bash
# Let's examine the content of these files to understand the test coverage

# Check RealtimeResumeTest.java for rewind-related tests
echo "=== Checking RealtimeResumeTest.java for rewind tests ==="
rg "rewind" -B 2 -A 2 lib/src/test/java/io/ably/lib/test/realtime/RealtimeResumeTest.java

# Check RealtimeMessageTest.java for other duplicate message scenarios
echo -e "\n=== Checking RealtimeMessageTest.java for duplicate message tests ==="
rg "duplicate.*message|message.*duplicate" -B 2 -A 2 lib/src/test/java/io/ably/lib/test/realtime/RealtimeMessageTest.java

# Let's also check for any rewind-related parameter usage
echo -e "\n=== Checking for rewind parameter usage ==="
rg '"rewind"' -B 2 -A 2 --type java

Length of output: 2447


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Experiment)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@github-actions github-actions bot temporarily deployed to staging/pull/1052/features December 5, 2024 23:06 Inactive
@github-actions github-actions bot temporarily deployed to staging/pull/1052/javadoc December 5, 2024 23:07 Inactive
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (2)
lib/src/test/java/io/ably/lib/test/realtime/RealtimeMessageTest.java (1)

1019-1053: LGTM! Well-structured test case for duplicate message prevention.

The test effectively validates that messages are not duplicated by:

  1. Publishing messages via REST client
  2. Subscribing via Realtime client with rewind
  3. Verifying exact message count (3) both immediately and after delay

Consider adding assertions for message content/order to ensure not only the count but also the integrity of messages:

 channel.subscribe(message -> {
     int value = counter.incrementAndGet();
+    assertEquals("Verify message content", 
+        "message " + value, 
+        message.data);
     if (value == 3) completionWaiter.onSuccess();
 });
lib/src/main/java/io/ably/lib/realtime/ChannelBase.java (1)

246-252: LGTM! Implementation aligns with RTL4i specification.

The added condition correctly prevents duplicate attach messages by:

  1. Checking for connecting/disconnected connection states
  2. Setting channel state to attaching without sending request
  3. Returning early to avoid duplicate messages

Consider adding debug logging to help track these early returns:

 if (connectionManager.getConnectionState().state == ConnectionState.connecting
     || connectionManager.getConnectionState().state == ConnectionState.disconnected) {
+    Log.v(TAG, String.format("attachImpl(): early return for channel = %s; connection state = %s", 
+        name, connectionManager.getConnectionState().state));
     setState(ChannelState.attaching, null);
     return;
 }
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between aad1c87 and 198e003.

📒 Files selected for processing (2)
  • lib/src/main/java/io/ably/lib/realtime/ChannelBase.java (1 hunks)
  • lib/src/test/java/io/ably/lib/test/realtime/RealtimeMessageTest.java (2 hunks)
🔇 Additional comments (1)
lib/src/main/java/io/ably/lib/realtime/ChannelBase.java (1)

246-252: Verify similar connection state checks in other message-sending methods.

Let's ensure consistent handling of connection states across all message-sending methods.

✅ Verification successful

Let's try a different approach using ripgrep to find these patterns with more context. The previous ast-grep patterns might have been too specific or not matching the actual syntax used in the codebase.


Based on the search results, I can now provide a final response regarding the verification of connection state checks in message-sending methods:

Connection state checks are consistently implemented across message-sending operations

The codebase shows consistent handling of connection states:

  • In ChannelBase.java, publish operations check connection state before sending messages
  • The Presence implementation verifies channel state before sending presence messages
  • The attach operation (RTL4i) properly handles connecting/disconnected states
  • All message sending operations use connectionManager.send() with appropriate queueing behavior
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for other message-sending methods that might need similar connection state checks

# Look for methods that send protocol messages
ast-grep --pattern 'connectionManager.send($message, $_, $_)'

# Look for other attach implementations
ast-grep --pattern 'Action.attach'

Length of output: 98


Script:

#!/bin/bash
# Search for connection state checks and message sending patterns with broader context
rg -U "connectionManager.*send|getConnectionState" -A 5 -B 5

# Search for attach-related code
rg -U "Action\.attach|setState.*attaching" -A 5 -B 5

Length of output: 29352

Copy link
Collaborator

@sacOO7 sacOO7 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for raising the PR to fix the issue!
checks for ATTACH are bit tricky and has corner cases mentioned here #1018
So, I will take my time to carefully review the PR to make sure all cases are covered

@sacOO7
Copy link
Collaborator

sacOO7 commented Dec 6, 2024

Also, it seems some of the realtime tests failing.
As per failed test, we are receiving 6 messages after 1.5 seconds.

@ttypic ttypic force-pushed the ECO-5163/fix-duplicate-messages branch from 198e003 to 6a44cf9 Compare December 6, 2024 10:06
@github-actions github-actions bot temporarily deployed to staging/pull/1052/features December 6, 2024 10:07 Inactive
@github-actions github-actions bot temporarily deployed to staging/pull/1052/javadoc December 6, 2024 10:08 Inactive
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (1)
lib/src/test/java/io/ably/lib/test/realtime/RealtimeMessageTest.java (1)

1024-1028: Consider improving test data clarity.

The test messages could be more descriptive to better indicate their purpose in the test case.

-            List<String> testMessagesData = List.of("message 1", "message 2", "message 3");
+            List<String> testMessagesData = List.of(
+                "rewind_test_message_1",
+                "rewind_test_message_2",
+                "rewind_test_message_3"
+            );
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 198e003 and 6a44cf9.

📒 Files selected for processing (2)
  • lib/src/main/java/io/ably/lib/realtime/ChannelBase.java (1 hunks)
  • lib/src/test/java/io/ably/lib/test/realtime/RealtimeMessageTest.java (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • lib/src/main/java/io/ably/lib/realtime/ChannelBase.java
🔇 Additional comments (2)
lib/src/test/java/io/ably/lib/test/realtime/RealtimeMessageTest.java (2)

16-18: LGTM!

The new imports are appropriate for the functionality needed in the new test method.


1019-1051: LGTM! Well-structured test implementation.

The test effectively verifies the fix for duplicated messages by:

  1. Publishing messages via REST client
  2. Subscribing with rewind option via Realtime client
  3. Verifying exact message count
  4. Including delay to check for duplicates

Good practices used:

  • Try-with-resources for proper resource cleanup
  • CompletionWaiter for handling async operations
  • AtomicInteger for thread-safe counting
  • Unique channel name to avoid test interference

@ttypic ttypic force-pushed the ECO-5163/fix-duplicate-messages branch from 6a44cf9 to 02fde8c Compare December 6, 2024 11:00
@github-actions github-actions bot temporarily deployed to staging/pull/1052/features December 6, 2024 11:01 Inactive
@github-actions github-actions bot temporarily deployed to staging/pull/1052/javadoc December 6, 2024 11:01 Inactive
@ttypic ttypic force-pushed the ECO-5163/fix-duplicate-messages branch from 02fde8c to 97f7c1c Compare December 6, 2024 12:30
@github-actions github-actions bot temporarily deployed to staging/pull/1052/features December 6, 2024 12:31 Inactive
@github-actions github-actions bot temporarily deployed to staging/pull/1052/javadoc December 6, 2024 12:32 Inactive
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (1)
lib/src/test/java/io/ably/lib/test/realtime/RealtimeMessageTest.java (1)

1016-1053: Well-structured test implementation!

The test effectively verifies the fix for duplicated messages by:

  1. Publishing messages via REST API
  2. Subscribing via Realtime with rewind parameter
  3. Verifying message count both immediately and after a delay

A few suggestions to enhance the test:

  1. Consider using List.of() instead of array initialization for cleaner message creation
  2. Consider adding assertions for message content/order verification
-            Message[] messages = new Message[] {
-                new Message("name", "message 1"),
-                new Message("name", "message 2"),
-                new Message("name", "message 3"),
-            };
+            Message[] messages = List.of(
+                new Message("name", "message 1"),
+                new Message("name", "message 2"),
+                new Message("name", "message 3")
+            ).toArray(new Message[0]);

             channel.publish(messages);
         }

         try (AblyRealtime realtime = new AblyRealtime(opts)) {
             final ChannelOptions options = new ChannelOptions();
             options.params = new HashMap<>();
             options.params.put("rewind", "10");
             final Channel channel = realtime.channels.get(testChannelName, options);
             final CompletionWaiter completionWaiter = new CompletionWaiter();
             final AtomicInteger counter = new AtomicInteger();
+            final List<String> receivedMessages = new ArrayList<>();

             channel.subscribe(message -> {
                 int value = counter.incrementAndGet();
+                receivedMessages.add((String)message.data);
                 if (value == 3) completionWaiter.onSuccess();
             });

             completionWaiter.waitFor();

             assertEquals("Should be exactly 3 messages", 3, counter.get());
+            assertArrayEquals("Messages should be received in order",
+                new String[]{"message 1", "message 2", "message 3"},
+                receivedMessages.toArray(new String[0]));

             Thread.sleep(1500);

             assertEquals("Should be exactly 3 messages even after 1.5 sec wait", 3, counter.get());
+            assertArrayEquals("Messages should remain in order after delay",
+                new String[]{"message 1", "message 2", "message 3"},
+                receivedMessages.toArray(new String[0]));
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 02fde8c and 97f7c1c.

📒 Files selected for processing (3)
  • lib/src/main/java/io/ably/lib/realtime/ChannelBase.java (1 hunks)
  • lib/src/test/java/io/ably/lib/test/realtime/RealtimeConnectFailTest.java (1 hunks)
  • lib/src/test/java/io/ably/lib/test/realtime/RealtimeMessageTest.java (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • lib/src/test/java/io/ably/lib/test/realtime/RealtimeConnectFailTest.java
  • lib/src/main/java/io/ably/lib/realtime/ChannelBase.java
🔇 Additional comments (1)
lib/src/test/java/io/ably/lib/test/realtime/RealtimeMessageTest.java (1)

16-16: LGTM!

The added imports are necessary for the new test implementation.

Also applies to: 23-23

@ttypic ttypic force-pushed the ECO-5163/fix-duplicate-messages branch from 97f7c1c to b5d7b45 Compare December 9, 2024 12:51
@github-actions github-actions bot temporarily deployed to staging/pull/1052/features December 9, 2024 12:52 Inactive
@github-actions github-actions bot temporarily deployed to staging/pull/1052/javadoc December 9, 2024 12:53 Inactive
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (1)
lib/src/test/java/io/ably/lib/test/realtime/RealtimeMessageTest.java (1)

1016-1053: LGTM! Well-structured test case.

The test effectively verifies that messages are not duplicated when using rewind option. It covers both the initial message receipt and ensures no duplicates arrive after a delay.

Consider adding assertions for message content and order to ensure not only the count but also the integrity of the messages:

 channel.subscribe(message -> {
     int value = counter.incrementAndGet();
+    assertEquals("message" + (value - 1), message.data);
     if (value == 3) completionWaiter.onSuccess();
 });
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 97f7c1c and b5d7b45.

📒 Files selected for processing (4)
  • lib/src/main/java/io/ably/lib/realtime/ChannelBase.java (1 hunks)
  • lib/src/main/java/io/ably/lib/transport/ConnectionManager.java (1 hunks)
  • lib/src/test/java/io/ably/lib/test/realtime/RealtimeConnectFailTest.java (1 hunks)
  • lib/src/test/java/io/ably/lib/test/realtime/RealtimeMessageTest.java (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • lib/src/test/java/io/ably/lib/test/realtime/RealtimeConnectFailTest.java
  • lib/src/main/java/io/ably/lib/realtime/ChannelBase.java
🔇 Additional comments (2)
lib/src/main/java/io/ably/lib/transport/ConnectionManager.java (2)

1687-1694: LGTM! Fix prevents duplicate attach messages.

The implementation correctly prevents duplicate attach messages by:

  1. Filtering out attach messages from queued messages since they are always sent during connection events
  2. Using a clearer !isEmpty() check for the loop condition

1687-1694: Verify message ordering and completeness.

While the fix for duplicate attach messages looks good, let's verify:

  1. Message ordering is preserved when filtering out attach messages
  2. No messages are lost during reconnection
  3. Other message types are processed correctly
✅ Verification successful

Let me gather more specific information about the message handling implementation and tests.


Based on the code implementation details revealed, I can now provide a final response:

Message handling implementation verified as safe

The implementation safely preserves message ordering and completeness:

  • Messages are stored in an ordered queue (queuedMessages) and processed sequentially
  • The sendQueuedMessages() method maintains order by processing from index 0
  • Attach message filtering happens during send without affecting queue order
  • Message serial numbers are properly managed for pending messages
  • Comprehensive error handling ensures no message is silently dropped

The changes to skip attach messages are implemented at the send phase only, after the message ordering is established, and don't interfere with the handling of other message types or the queue's integrity.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for message ordering and handling tests
# Look for tests that verify message ordering and completeness

# Search for message ordering tests
echo "Searching for message ordering tests..."
rg -l "message.*order" --type java

# Search for message handling during reconnection
echo "Searching for reconnection message handling tests..."
rg -l "reconnect.*message" --type java

# Search for attach message handling
echo "Searching for attach message handling..."
rg -l "attach.*message" --type java

Length of output: 1489


Script:

#!/bin/bash
# Check implementation of message ordering and handling in ConnectionManager
echo "Checking message queue implementation..."
rg -A 10 "QueuedMessage" lib/src/main/java/io/ably/lib/transport/ConnectionManager.java

# Check tests for reconnection and message handling
echo "Checking reconnection tests..."
rg -A 10 "testReconnect.*message" lib/src/test/java/io/ably/lib/test/realtime/RealtimeResumeTest.java

# Check attach message handling tests
echo "Checking attach message tests..."
rg -A 10 "testAttach" lib/src/test/java/io/ably/lib/test/realtime/RealtimeChannelTest.java

# Check message ordering verification in tests
echo "Checking message ordering verification..."
rg -A 5 "verify.*message.*order" lib/src/test/java/io/ably/lib/test/realtime/RealtimeResumeTest.java

Length of output: 12418

@ttypic ttypic requested a review from sacOO7 December 9, 2024 14:16
Copy link
Collaborator

@sacOO7 sacOO7 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, not sure if this is a sandbox issue, but it seems realtime.RealtimeMessageTest are consistently failing on both okhttp and websocket connection.
You can check what's going wrong there : (

@sacOO7
Copy link
Collaborator

sacOO7 commented Dec 10, 2024

If this is a sandbox issue, I will approve PR immediately ( since should_not_duplicate_messages seems to be passing ).
Though, I somehow do not want red CI on main branch : (

Copy link
Collaborator

@sacOO7 sacOO7 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@ttypic ttypic merged commit 6a2ec04 into main Dec 10, 2024
12 checks passed
@ttypic ttypic deleted the ECO-5163/fix-duplicate-messages branch December 10, 2024 13:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

Java SKD - Duplicate messages on rewind after 1.2.34
2 participants