Skip to content

Conversation

@lawrence-forooghian
Copy link
Collaborator

@lawrence-forooghian lawrence-forooghian commented Aug 21, 2025

Relates to #72. some added logging and attempts and limiting concurrency, had to be parked for now due to time

As required by the accompanying ably-cocoa submodule bump.
As required by the accompanying ably-cocoa submodule bump (see the
ably-cocoa commit message for explanation of why we're making this
change).
We have not yet implemented this and will not be doing so before our
initial release. Also the API is not fully correct — as things stand, if
you extract a LiveObject from a map inside the batch callback (see first
example on [1]) you have to use an async API to interact with it, which
is not what we want.

[1] https://ably.com/docs/liveobjects/batch
This allows us to use "run repeatedly" without the runs interfering with
each other.

wip adding test UUID to logs

this isn't quite right — we need to be able to do client2 and have the
ID there too (probably should bake the test into the context)

also Test overlaps with Swift Testing terminology now
- number of concurrent Realtime instances
- when monitorConnectionThenCloseAndFinishAsync fails (to see whether
  it's actually failing the test when it should be)
asked Cursor to write this trait that limits concurrency

this is because there seem to be issues with running concurrent tests
(hangs, and failures that I think are because of it exercising edge
cases in the tests, but also Realtime's "Error 40111 - account
restricted (connection limit exceeded)" and connection timeouts)

my logging suggests that we have up to 100 Realtime instances active at
a time

I was going to just make things .serialized for now but that makes the
test suite really slow (like 4 minutes) so I hoped we could find a
middle ground

I tried making it a suite trait that has isRecursive: true (which I
thought was the default which is why I made those earlier changes to the
fixtures trait) but it doesn't seem to be.

I've however observed this hanging at least once locally so won't be
taking this forward for now (need to get the test suite fixed and have a
time pressure)
Mistake in 70306a0. Correct approach copied from "Objects.createCounter
sends COUNTER_CREATE operation" test.
Wait until we're sure that GC of an entry should have occurred,
regardless of clock skew. Also fix what may have been a bug in 792683d
where we may not wait for as many GC cycles as we intended to (because
of counting AsyncStream buffered values).
@coderabbitai
Copy link

coderabbitai bot commented Aug 21, 2025

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch investigate-flaky-tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ 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.
    • 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.
  • 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 the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

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

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • 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.

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.

2 participants