[ClusterLabs] [Announce] libqb 1.0.3 release

Jan Pokorný jpokorny at redhat.com
Thu Dec 21 11:45:00 EST 2017

On 21/12/17 14:40 +0000, Christine Caulfield wrote:
> We are pleased to announce the release of libqb 1.0.3
> Source code is available at:
> https://github.com/ClusterLabs/libqb/releases/download/v1.0.3/libqb-1.0.3.tar.xz
> This is mainly a bug-fix release to 1.0.2
> [...]

Thanks Chrissie for the release; I'd like to take this opportunity to
pick on one particularly important thing for "latest greatest pursuing"
system deployments and distributions:

> High: bare fix for libqb logging not working with ld.bfd/binutils 2.29+

Together with auxiliary changes likewise present in v1.0.3, this
effectively allows libqb to fulfil its logging duty properly also
when any participating binary part (incl. libqb as a library itself)
was build-time linked with a standard linker (known as ld or ld.bfd)
from binutils 2.29 or newer.  Previous libqb releases would fail
one way or another to proceed the messages stemming from ordinary way
to issue them under these circumstances (and unless the linker feature
based offloading was bypassed, which happens, e.g., for selected
architectures [PowerPC] or platforms [Cygwin] automatically).

So now, not only the full function of logging was restored, but libqb
adapts to the changed behaviour of binutils 2.29+ linker also with
defensive (in part opt-in only, see below) measures providing
diagnostics in cases at least one such participating binary part
was linked with this new v1.0.3 libqb version:

* libqb v1.0.3 (linked using arbitrary ld/binutils version)
  that is run-time used by any other logging binary linked
  against libqb < v1.0.3 using ld/binutils 2.29+
  - libqb will issue a warning/notice to syslog about the
    probable issue on the side of the logging binary

* libqb < v1.0.3 linked using ld/binutils 2.29+ that is run-time
  used by any other logging binary linked against libqb v1.0.3+
  (valid as public-facing binary compatibility remains preserved)
  will make said binary terminate early on with an explanatory
  assertion message, showing what precondtion does not hold, but only
  _under the condition this binary makes a use of QB_LOG_INIT_DATA_

(You can find detailed matrices tracking these self-check provisions
at the commit messages pertaining the wider changeset on this topic.)

[*] for instance, it's the case for pacemaker (cf. CRM_TRACE_INIT_DATA
    wrapper) and will be the case for corosync as well:

* * *

And as mentioned already, but is nevertheless an important point:
_public-facing binary compatibility remains preserved_ in this v1.0.3.

* * *

If you hit any issues, whether linker/logging related or otherwise,
please log your reports at the usual location:

Happy clustering, logging, and the holiday time!

Jan (Poki)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <https://lists.clusterlabs.org/pipermail/users/attachments/20171221/166a6d38/attachment-0003.sig>

More information about the Users mailing list