Releases: FairRootGroup/FairMQ
v1.4.54
v1.4.53
v1.4.52
v1.4.51
Bugfixes
- fix(shm): Add
nullptr
check on segmentInfo toMonitor::ResetContent()
by @rbx in #429 - fix(shm):
Monitor::ResetContent()
: Reset user data after recreating the management segment, to avoid bumping into locked interprocess locks. by @rbx in #429 - fix(shm):
Monitor::Cleanup()
: open management data as read only, to avoid bumping into locked interprocess locks. We only read the segmentInfo/regionInfo (read-only) to find out which segments are present and delete everything unconditionally in the next step. by @rbx in #429
Misc
Full Changelog: v1.4.50...v1.4.51
v1.4.50
The v1.4
milestone is now three years in the making and would not have been possible without the invaluable discussions, feedback and contributions by the members of the AliceO2 team!
- State machine changes compared to
v1.3
: SplitINITIALIZING
state into Init+Bind+Connect, removedPAUSE
state, see updated diagram - Development of the SDK component and DDS plugin which is now deprecated in this repo, see 📢 New home for SDK and DDS plugin
- This release provides consistent namespaced typenames and headers, see 📢 Cleanup of non-namespaced typenames and headers
- Ofi transport (EXPERIMENTAL): Ofi C++ bindings split off into asiofi project
- Require C++17 compiler
New release procedure: Starting with v1.5.0
FairMQ adopts a semantic versioning release procedure. This basically means that FairMQ will make more use of its major and minor version components as well as ship release notes on every release. In addition, releases are no longer distinguished into testing or stable categories.
Changelog:
v1.4.50
- 2022-03-21
Changed/Removed
- feat: Remove
--max-run-time
option (5d45d89) - fix(Device): Spawn rate logger thread only if needed (cb5029f)
Deprecated
- build: Deprecate components
dds_plugin
,sdk
,sdk_commands
(b7474ae)
Bugfix
- fix(Device): Warning about narrowing conversion (27277b1)
- fix(control): Honor
SIGINT
andSIGTERM
in more places (#421)
v1.4.49
- 2022-02-28
Bugfix
- shm: check region size when opening existing (b747a87)
- Shm: fix number of region events (8efe7ad)
- Shm: bring back thread-safety for
fRegions
(intra-process) (29827f0) - Skip error message only for tcp (fa0bf96)
v1.4.48
- 2022-02-02
Changed/Removed
- shm: Add size to UnmanagedRegion debug output (4f9aeda)
- shm: remove UR queues on ResetContent (92a56c2)
- shm: monitor: disable number of msgs in the ack queue output (2f82eb4)
- shm: allow
monitor::ResetContent
to cleanup after a crash (1a75141)
v1.4.47
- 2022-01-28
Changed/Removed
New
- GUI Controller (ad894c7)
Bugfix
- use
[[maybe_unused]]
for values used in assertions (f15f669)
v1.4.46
- 2022-01-13
Changed/Removed
- modify keep-alive example executable a bit, make it configurable (f6bade3)
Bugfix
v1.4.45
- 2022-01-10
Changed/Removed
- shm: reduce contention on region events (c04958e)
v1.4.44
- 2021-12-17
Changed/Removed
- Do not catch and rethrow exception from state handlers (0eaea3c)
- Avoid accessing Device.fChannels directly, use getters (dbdf17c)
- refactor: deduplicate more zmq/shmem code (953c4a7)
- consolidate UnmanagedRegion options (d630fbb)
- simplify region cleanup (eef42d2)
- extend region config (80ed45d)
- shm: integrate mtx and cv into management segment (1839f7e)
- shm: always open_or_create segment (eb4620b)
New
- feat: Add
Device::GetNumSubChannels(channel)
(a3bb5fb) - Add configurable default snd/rcv timeout (f24dee3)
- shm: add APIs for implementing keep-alive process (692576a)
Bugfix
v1.4.43
- 2021-10-19
Changed/Removed
Deprecated
- fix: Deprecate
Message::Close
because it is really a dtor (b8503bf)
New
- feat: add options to control allocation attempts (1449166)
- feat: add tool for noncanonical input (5fe2f53)
- feat: Add new
assertm
macro (8796ce5) - feat: Add new
GetNumberOfConnectedPeers()
API (fda8126) - feat: Add interactive controller button to print connected peers (ebcbe2d)
Bugfix
- Fix compiler warnings (2934016, 1ac30b5, f33c597, 310204a, 1ee9d2d, cf9b45c, 9590b5b, 597d882, 153dcfa, 36600dc, 1a5d0ed, e84a16d)
- fix(pmix): Avoid deprecated value (efca8e0)
- fix(shm): fix regression in debug mode data (d7fb019)
Buildsystem/CI
- ci: Add macos-11-arm64 (apple-clang-13) build (55a2cfc)
v1.4.42
- 2021-09-20
Deprecated
- fix: Deprecate static string helper (b442483)
Bugfix
v1.4.41
- 2021-09-07
Changed/Removed
- feat(tools): Move the error code to the Tools target (9cbaf7e)
Deprecated
- refactor: Prepare deprecation of non-namespaced types and headers (8e6c50e)
<FairMQ*.h>
headers will be deprecated in the future. Use<fairmq/*.h>
instead!::FairMQ*
typenames will be deprecated in the future. Usefair::mq::*
instead!
New
Bugfix
- fix: First round of using new non-namespaced typenames (4e8f247)
- shm: reimplement alignment (815b2f1)
Buildsystem/CI
- build: Have color output depend on a common switch
DISABLE_COLOR
(d392f60) - build: Use
fairmq-tidy
on our own codebase whenRUN_FAIRMQ_TIDY=ON
(24fbf94) - Extend test for empty messages (c57410b)
v1.4.40
- 2021-07-30
Bugfix
- Protect access to options container (db0500f)
v1.4.39
- 2021-07-16
Changed/Removed
- shm: optimize monitor heartbeats (28a887a)
- shm: improve exception handling (37c0591)
- feat(sdk): Remove unused fairmq executable (09d2574)
- feat: Require DDS
3.5.13.7
(1df338b) - feat: Drop public dependency to Boost.Asio and use standalone asio (9585c20, 0c4921d)
- feat(ofi): Require asiofi 0.5 (1007de8)
New
- Add
--shm-mlock-segment-on-creation
option (a6193a3) - Add
--shm-zero-segment-on-creation
option (03ba9eb) - feat: Add new function
GetEnabledTransports()
(e3d3be8) - feat: Add
<fairmq/FwdDecls.h>
(479d6e0)
Bugfix
- SDK: Add missing header (ce0a052)
- Examples: Fix DDS agent log retrieval (f2d7bbe)
- Fix clang-tidy warnings (ccbd622, e1b2295, acf63d3, 9444de5, 6aeac26, f25cca2, c847a7c, 882edbb)
- shm: throw
TransportError
if could not lock region (a8bdb91) - Add empty msg check for transport compatibility checker (4dbb553)
- shm: avoid meta data copy on recv and fix its alignment (5c9ba5e)
- Fix stack-use-after-scope (4fdf9d3)
- Fix heap-use-after-free (ac3293f)
- shmmonitor: handle missing segmentInfos (c5e40fd)
- fix(sdk): Silence boost warnings (e2de214)
- fix(examples/dds): Restore infinite loop (3702d3b)
- fix(plugins): Avoid double device control releases (e2452fa)
Buildsystem/CI
- extern/googletest: Bump for GCC11 support (bac5b90)
- extern/asio: Bump and require
v1.18.1
(d15bc17) - CMake: Remove cotire dependency (ed78ccd)
- Bundle and use FairCMakeModules (575054a)
- CMake: Set CXX language level via
target_compile_features()
(7616b0b, 42606f9) - Add
codemeta.json
(947c4a7) - Add
codemeta_update.py
(415232b) - CI: Add a fedora 34 (gcc 11) check (9c34782)
- CI: Add ubuntu 20.04 (gcc 9) check (2b43845)
- CMake: Do not unconditionally override settings without good reason (2e65582, ab54668)
- build: Do not hardcode include dirs (8bf9e1d)
- build: Fix default for
BUILD_TESTING
(f413aa1) - test(sdk): Rename
sdk/test_topo.xml
to something less confusing (08d72d4) - build: Pick shared flatbuffers lib first (8859c56)
- build: Revert removal of asio find module (170557a)
v1.4.38
- 2021-05-20
Changed/Removed
- runDevice: remove const from getDevice parameter (a7dbead)
New
- shm: add monitor method to retrieve free segment memory (021c1b1)
Bugfix
Buildsystem/CI
- reduce noise in examples (aaf74ad)
v1.4.37
- 2021-05-07
Bugfix
- Fix Ofi interface (e6f67b3)
v1.4.36
- 2021-05-07
Changed/Removed
- Improve Events API (6dfea32, 091d082)
- PluginManager: Do not load built-in plugins via dlopen/dlsym (057ba03)
- use thread local cache to avoid interprocess lock on shm
GetData
(f7ba305) - improve message counter cache line use (ef5b3c7)
- shm: reduce shm contention when dealing with ack queues (c85d6e0)
New
- Add
operator<<
forfair::mq::Transport
(ed2dced) - Add
GetType()
toUnmanagedRegion
(9defa71) - shmmonitor: add severity setting (b67b80e, 8b4056e)
- add mlock/zero options to unmanaged region (857aa84)
Bugfix
- Fallback to Boost.Filesystem on GCC 8 (9724f18)
- Fix
-Wunused-result
(a90dbf6) - shm region cache: fix multiple sessions issue (2ca62d0, 87e0ca5)
- shm: check result of region acquisition (8a2641d)
- Check transport type of msg and corresponding region (c6a6a5f)
- shm: eliminate race/deadlock in region subscriptions (2c89b24)
- region example: fix msg counter (4e46651)
v1.4.35
- 2021-04-08
Bugfix
- Fallback to
<boost/filesystem>
on GCC 7 (ea9aede)
v1.4.34
- 2021-04-08
Changed/Removed
- shmmonitor: optimize startup to avoid repeated start (72175e5)
- shmmonitor: use fairlogger (be55565)
- shm: reduce delay between monitor daemon launch & HBs (0976465)
New
- Introduce
<fairmq/Device.h>
(cef6d0a) - Introduce `<fairmq/runD...
v1.3.9
[bug fixes]
- 03e6cea Tools: Fix regression bug to support Boost < 1.66
[maintenance]
Support recent releases of Boost, CMake, DDS and FairLogger
v1.3.8
v1.3.7
[new features]
- 5e4876c Allow plugins to create channels
- 310b964 Adopt FairMQMessage backed memory resource collection from AliceO2
- 3a1b769 Support feeding the child process data on stdin
- 4123ebc Add interruptable FairMQDevice::WaitFor(duration) method
- e95096e Add RateLimiter class to tools
- 4aae1ad Allow DDS command UI to target parts of the topology
[enhancements]
- 653e82c Avoid copy (where possible) when switching transports
- 25fcf13 Move Bind/Connect/Attach to FairMQChannel
- 3ca0d72 Add safety checks for process tools
- 44acd49 Implement nanomsg linger in our transport
- dfa1b68 Make factory classes final (optimization potential)
- e090967 Build shmem names out of session id + user id (avoid conflicts)
- 1fdf510 Pick correct build type in CI
- 45354f2 Use future instead of thread for device rateLogger (exception safety)
- cf9a294 Introduce and export hotfix version component
- 94297f9 Tie builtin plugin version to the project version
- 88f8975 Add codacy.com integration
- 60f27b9 Support BUILD_SHARED_LIBS flag
- 1bb558a Refactor initialization - config always available, proper reinit on Init() re-entry
- c8bd19b Add experimental FAST_BUILD option
- fc0adba Support unity build
- a53ef79 Run state handlers on the main thread (breaking change for control).
- f05118f Make ";" the separateor in multi-point channel config
- ffbe90b Update to DDS 2.2 API
[bug fixes]
- 227a302 Avoid boost::uuids::entropy_error on some systems
- 3561255 Add missing channel update handlers (snd/rcvKernelSize)
- 9f32545 Make sure we reset terminal config also on exception
- cb199e7 Fix throw after quit signal case
- 1aab354 Resolve hanging process in case of uncaught exception
- f6c1f5d Fix theoretical race in signal handler
- adfa0e2 Move shmmonitor out of lib to own executable (Fix ODR violation)
- 2c6b2e7 Fix race condition in the control plugin
- b814e40 Fix multipart transfer timeout
- ee8afd7 Fix race in plugin manager/services
[cleanup and deprecations]
- 0cfa919 Deprecate Send-/ReceiveAsync, use timeout variant instead
- ce4062f Remove GetSocket interface that exposes transport details
- 00800f1 Remove support for nanomsg <= 0.6
- cfb7271 Remove set/get timeout from general socket interface
- 9851504 Remove shmem prototype code - unused
- a53ef79 Run state handlers on the main thread (breaking change for control).
- 90009b1 Remove previously deprecated Copy method (since 1yr)
[tests]
- e403d18 Add codecov reports to PRs
- a9df367 Add test for FairMQMessage::Rebuild
- bd899a2 Add test for channel validation
- 0b199e7 Add test for interface IP detection tools
- 919193a Extend transfer timeout test coverage
- d4a4ea1 Add example/test for built-in devices
- ffab4ac Add options tests and (re-)/enable more nanomsg tests
- 1d45095 Add session id to example tests
- 78acb95 Test more cases with interactive controller
- e39316c Test exceptions thrown in user code
- c4145e9 Add test for FairMQDevice::WaitFor()
- 5397cef Use same runner.cxx/.h for all tests
- b814e40 Enable multipart transfer timeout tests
- 7d5e76d Add more tests for custom main()
- 24dff2f Enable FAST_BUILD for alfa-ci
- 3f96181 Define nn tests only when nn transport is built
[dependencies]
Many more small fixes and improvements.
v1.2.3
Changelog:
- [bugfix] Remove the alias target
- [enhancement] Improve compilation speed
- [new feature] Control plugin: add ability to switch log levels interactively
- [enhancement] provide
FAIRMQ_PATH
to test suites - [enhancement] further shorten shm names
- [test coverage] Test all examples with all possible transports
- [enhancement] Use enum transport types instead of strings in Channel/Device
- [enhancement] Fix namespaces in Transports.h and add conversion map
- [enhancement] Used cached default transport in
FairMQDevice::Transport()