Skip to content

Conversation

@stephen-dixon
Copy link
Collaborator

@stephen-dixon stephen-dixon commented Oct 28, 2025

Server & Core

  • Thread Safety (76 server block idamerrorstackidamerror and all related methods are not thread safe #92): Fixed thread safety issues with IdamErrorStack, IdamError, and all related methods
  • Timeout Handling (Bugfix/20 uda timeout not working properly #91): Fixed UDA timeout not working properly
  • Memory Leak (free memory of request block #65): Fixed client-side memory leak by properly freeing request block memory
  • Server-side Request Block (free server-side request block (#64) #74): Free server-side request block properly
  • Server Write High CPU (2.8.0 high cpu consumption usage when the client was idle #79): Breaking infinite loop in server_write where the write function returns -1 instead of positive bytes sent
  • Timestamp Formatting (Missing leading 0 in fractions of seconds #35): Added 0-padding for microseconds of timestamp in logging.h (fixing missing leading 0 in fractions of seconds)
  • Fat Client Support: Initial implementation of fat-client functionality for help::help working through pyuda
  • BYTES Plugin: Added chunk downloading support to BYTES plugin
  • Complex Types (initial implementation of complex types in capnp #67): Added UDA complex types to capnp serialisation
  • File Handle Management: Reduced default maximum value for total number of cached filehandles plugins can have open concurrently due to concerns with the hdf5 free list memory footprint
  • Opaque Data Type: Fixed issues with using UDA_TYPE_OPAQUE for returning binary data. Protocol version bumped to 10 - CAPNP data is now transferred as raw bytes, and UDA_TYPE_OPAQUE is handled as raw bytes
  • Stream Redirection: Added cleanup option to udaServerRedirectStdStreams to allow server to delete redirect file on shutdown
  • Plugin Output: Single file plugin output is now always the case (removed UDA_PLUGIN_DEBUG_SINGLEFILE option)
  • Temp File Cleanup: Deleting temp plugin redirect file unless UDA_PLUGIN_REDIRECT is set

Client

  • Good Data with get_bad Flag (UKAEA #196): Allowing good data to be returned when the get_bad client flag is set
  • New client flags added: idle timeout flag used to switch between old total-lifetime based timeout and new idle time based timeout

PyUDA

  • Picklable Signals (Feature/picklable pyuda signals #61): PyUDA signals are now picklable
  • pyuda client convenience methods: new methods added for querying server version and testing connection
  • PyUDA Setup: Removed UDA_DIR env dir from pyuda setup.py
  • pypi name change: wheels are now pushed to pyuda instead of uda on pypi and testpypi

Security

GitHub Actions

  • Action Versions: Updated GitHub Actions workflow versions and pypa/cibuildwheel
  • Dependabot: Added dependabot for GitHub action versions

Development Tools

  • Log Parsing Script: Added log parsing script for analyzing UDA access logs

stephen-dixon and others added 30 commits September 11, 2024 17:39
… bytes, and UDA_TYPE_OPAQUE is handled as raw bytes.
…#53)

`libtirpc-dev` is required for building UDA on Ubuntu, however it isn't installed by default in all Ubuntu images (for instance in the WSL2 distribution for Ubuntu 24.04).
stephen-dixon and others added 11 commits October 1, 2025 17:29
* changing exit code to 0 for help function of CLI tool and adding extra catch block for unknown_option errors instead of uncaught bad_any_cast exceptions being thrown for these

* simplifying help logic in cli

* adding common routines for checking if env var options are truthy

* adding tests for uda_env_options and checking in CI that SSL env var updates work as expected

* adding CI test execution for bugfix branches

* unsetting bash -e in CI step where we expect test failure

* reinstating nonzero exit codes for failing (single, non-batch) requests in uda_cli

* adding CI test for upated CLI exit codes
* adding fix for capnp cmake bug in ubuntu-latest CI

* ignoring modern incompatible pointer types errors in portablexdr

* adding missing lzma MINGW dependency into vkpkg list
* free server-side request block

* deleting some dead code and simplifying duplicate functions

---------

Co-authored-by: sdixon <[email protected]>
* initial implementation of data owning signal class and pickling

* fixing typo. 1D data signal objects can be saved and loaded in pyuda using pickle

* correcting __reduce__ method for pickling pyuda signal objects

* making string and structured pyuda classes picklable

* adding clone method to pyuda video class and confirming video/images are picklable
…ot thread safe (#92)

* 76-server_block-idamerrorstackidamerror-and-all-related-methods-are-not-thread-safe

* __thread to thread_local

* removing commented out code

---------

Co-authored-by: roddrok <[email protected]>
* Adding check to not override timeout set with udaSetProperty

* changing timeout behaviour to only kill server after idle time, not total lifetime, hits specified threshold

* adding a client flag for new timeout mechanism.Making client_flags thread_local so it's not overwritten during thread-locking operations

* fixing intel compiler error in legacy function

* trying to fix legacy C compiler issues in portableXDR for windows CI

* moving count data block size methods from logging to clientserver

* updating docs to describe new timeout functionality

---------

Co-authored-by: Jonathan Hollocombe <[email protected]>
* updating log parsing script to handle newline characters in free-text fields

* using a generator in log_parser.py to join split lines
* testing pypi name change

* testing upload of dummy uda package to testpypi

* changing git sha int-encoding to base 36

* bumping cibuildhweel version for python 3.14 support

* adding dependabot for github action versions and making windows pyuda versioning consistent with non-windows

* making windows pyuda versioning consistent with non-windows

* adding decsription field for pypi packages

* updating docs to pip install pyuda instead of uda, and updating ukaeea gitlab-ci script

* cancelling duplicate workflow runs in github CI using concurrency block
@olivhoenen
Copy link
Collaborator

Thanks for this PR @stephen-dixon!
I'm adding @deepakmaroo as reviewer as he is checking the correctness of the build on our systems

@deepakmaroo
Copy link
Collaborator

Looks good for me.

@stephen-dixon
Copy link
Collaborator Author

For your information @olivhoenen, @deepakmaroo, @g2knizn This release will now be tagged as 2.9.0 instead of 2.8.2 due to the number of changes involved and the addition of new features.

@stephen-dixon stephen-dixon changed the title Release 2.8.2 Release 2.9.0 Nov 3, 2025
@stephen-dixon stephen-dixon merged commit 40f1269 into main Nov 3, 2025
23 of 35 checks passed
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.

9 participants