Skip to content

Conversation

@wirew0rm
Copy link
Member

@wirew0rm wirew0rm commented Jan 21, 2026

The Client was missing a way of communicating the reply context back to the caller for synchronous get requests, instead returning the request context. This led to missing information and was inconsistent with the async get and subscriptions, where the actual reply context was used.

For async get and subscriptions, the code for returning the context only worked for actual context objects, but was broken if the Context type was unspecified, in which case a map will be returned.

Also in the Future there was a (small) chance of a race condition, that was never observed, but from a logic standpoint, the atomic flag should only be set after the result object has been set.

Finally in the Worker, the replyContext caused lots of duplicate entries because it appended all fields from the request AND the reply context instead of just the reply context.

For set requests it was also not possible to pass arbitrary Objects by passing BinaryData the same way it is possible for GET.

In the CI this also fixes a few warnings.

Github actions has deprecated the old way of returning results of an
action. This updates the use of `::set-output` to the new way of writing
into an environment file.

also fix leftover reference version:
Leftover from the previous versioning change that led to inconsistent
versions across build and deploy.

Signed-off-by: Alexander Krimm <A.Krimm@gsi.de>
wirew0rm and others added 2 commits January 26, 2026 17:35
- Future: set atomic to ready only after the reply has been set
- ReplyQuery: only include entries from reply context, do not duplicate
  entries from request url
- DataSourcePublisher.get: allow access to the reply context from the
  returned future
- DataSourcePublsher subscription listener: fix handling of Context type
  none

Signed-off-by: Alexander Krimm <A.Krimm@gsi.de>
Allows to provide pre-serialised binary data to Set commands the same
way as to receive non-deserialized data via the BinaryData special
domain object.

This is needed for use-cases which provide run-time dynamic set and
get access e.g. via a map interface.

Signed-off-by: Alexander Krimm <alex@wirew0rm.de>
@wirew0rm wirew0rm temporarily deployed to configure coverage January 26, 2026 16:36 — with GitHub Actions Inactive
@wirew0rm wirew0rm temporarily deployed to configure coverage January 26, 2026 16:36 — with GitHub Actions Inactive
@wirew0rm wirew0rm changed the title Improve handling of Client Reply Context Improve handling of Client Reply Context and SET requests Jan 26, 2026
@wirew0rm wirew0rm mentioned this pull request Jan 27, 2026
2 tasks
@RalphSteinhagen RalphSteinhagen merged commit ae05a59 into main Jan 27, 2026
11 checks passed
@RalphSteinhagen RalphSteinhagen deleted the dataSourceFixes branch January 27, 2026 10:22
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.

3 participants