[ClusterLabs] ftime-imposed problems and compatibility going forward (Was: Final Pacemaker 2.0.3 release now available)
Jan Pokorný
jpokorny at redhat.com
Tue Nov 26 10:08:28 EST 2019
On 25/11/19 20:32 -0600, Ken Gaillot wrote:
> The final release of Pacemaker version 2.0.3 is now available at:
>
> https://github.com/ClusterLabs/pacemaker/releases/tag/Pacemaker-2.0.3
For downstream and individual builders of the codebase
======================================================
... let it be known that we suffered some late moment difficulties
imposed by the fact that upcoming glibc (allegedly targeting v2.31)
will make it even more tough to use ftime(3) function (otherwise
marked deprecated for ages, including in POSIX specifications)
in the face our purposefully imposed -Werror, turning the respective
warning into an error and consequently failing the out-of-the-box
build process. Due to this timing, the effect of the fix was kept
minimal for the time being, mostly allowing for a smooth opt-in
continuity down the road.
While it opens a broader topic of using anything but monotonic time
for measuring/supervising the timeouts being the killer of naturally
expected HA robustness on its own (for that, we currently do not
have a capacity for a full detail review, with one of the outcomes
being either ceasing the support for platforms where such a time
measuring is unattainable, for good, altogether, or at least enforcing
the build conductors to willingly accept the responsibility with
something like an extra HA_I_TOLERATE_RISKY_TIMERS=1 environment
variable required in the build environment [*1]), there are two things
you may want to pay attention to with said tagged v2.0.3 release:
A. in case you run to said out-of-the-box build issues due to
ftime(3) invocation (currently, is known to happen, e.g.,
with Fedora Rawhide), the workaround is along the lines of
env CPPFLAGS="$CPPFLAGS -UPCMK_TIME_EMERGENCY_CGT" ./configure
B. the same trick, possibly in a slightly extended form
env CPPFLAGS="$CPPFLAGS -UPCMK_TIME_EMERGENCY_CGT" \
ac_cv_header_sys_timeb_h=no ./configure
will allow you to check _forward_ compatibility --- statically
in build-time and possibly even in run-time when the respective
log-related behaviours of pacemaker_remoted get tested
afterwards --- with a switch to a state where ftime(3) is
dropped (limited to cases whereby `configure` script will
report: `checking whether CLOCK_MONOTONIC is declared... yes`);
it is hence strongly recommended to test that in particular
variations of OS & libc of interest _ahead of time_ to avoid
bad surprises in 2.0.4+ (especially if release candidates
chronically miss the interest of some minor combos that are
possibly under compatibility risks the most[*2])
[*1] one more reason _not_ to make any compromises regarding fencing
at this current potentially suboptimal status quo, see the other
sub-thread by Digimer
[*2] speaking of that, would be nice to receive some feedback on the
usefulness of these offically marked release candidatate for
early testing, and obtain thus rough stats how these get used
at all, since I am pessimistic these would get as much attention
as we would ideally hope for
Full context at the respective PR (especially last two comments):
https://github.com/ClusterLabs/pacemaker/pull/1943
Hope this helps to get ready for the next release; feedback,
if any, can influence the direction in this matter.
--
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/20191126/7e8b1cd2/attachment.sig>
More information about the Users
mailing list