Skip to content

Conversation

@michaeldjeffrey
Copy link
Contributor

@michaeldjeffrey michaeldjeffrey commented Dec 17, 2025

With the addition of radio_usage_stats_ingest_report_v2 we have our first overlapping file prefix.

When polling for older radio_usage_stats_ingest_report files, both files are returned in the list when we don’t want them to be.

RadioUsageStatsIngestReport => "radio_usage_stats_ingest_report",
RadioUsageStatsIngestReportV2 => "radio_usage_stats_ingest_report_v2”,

Appending a . to the provided prefix will force an exclusive match that still respects the FileInfo regex pattern of {prefix}.{time}.gz.

If you want to make a Poller that matches on multiple files with the same prefix, you can still do that with FileInfoPollerBuilder::prefix_without_dot().

  • makes .run() method pub so we can use it in a test
  • adds aws-local as a dev-dependency

Fix intermittent "dispatch task is gone" in tests

Clients were being created with the same credentials for all tests.

Because the CLIENT_CACHE is static it is shared for the duration of
all tests being run. So every test would have the same client. When a
tests finished and dropped it’s client while other tests were still in
flight, the dispatcher would no longer exist and we would get an error.

This fix causes every test to get a fresh client.

- makes `.run()` method `pub` so we can use it in a test
- adds `aws-local` as a dev-dependency
With the addition of `radio_usage_stats_ingest_report_v2` we have our first 
overlapping file prefix.

When polling for older `radio_usage_stats_ingest_report` files, both files 
are returned in the list when we don’t want them to be. 

```
RadioUsageStatsIngestReport => "radio_usage_stats_ingest_report",
RadioUsageStatsIngestReportV2 => "radio_usage_stats_ingest_report_v2”,
```

Appending a `.` to the provided prefix will force an exclusive match that
still respects the `FileInfo` regex pattern of `{prefix}.{time}.gz`.

If you want to make a Poller that matches on multiple files with the
same prefix, you can still do that with
`FileInfoPollerBuilder::prefix_without_dot()`.
@michaeldjeffrey michaeldjeffrey force-pushed the mj/file-store-prefix-append-dot branch from a592d62 to 7f6cff6 Compare December 17, 2025 16:34
Clients were being created with the same credentials for all tests.

Because the `CLIENT_CACHE` is `static` it is shared for the duration of 
all tests being run. So every test would have the same client. When a
tests finished and dropped it’s client while other tests were still in
flight, the dispatcher would no longer exist and we would get an error.

This fix causes every test to get a fresh client.
`_list_files` was broken out to be able to specifically test the 
functionality of `.set_start_after()`.

Previously, the tests were passing because of the later filters on
timestamp after a returned s3 object was turned into a `FileInfo`.

The entire history of files was being returned and filtered as a side
effect.
@michaeldjeffrey michaeldjeffrey force-pushed the mj/file-store-prefix-append-dot branch from b6e34d6 to 2b01fd2 Compare December 18, 2025 17:34
@michaeldjeffrey michaeldjeffrey merged commit dc4b1b8 into main Dec 18, 2025
32 checks passed
@michaeldjeffrey michaeldjeffrey deleted the mj/file-store-prefix-append-dot branch December 18, 2025 18:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants