-
Notifications
You must be signed in to change notification settings - Fork 580
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
icinga2 may be removed from Debian armel, mips64el, ppc64el, and riscv64 #9954
Comments
So looks like no lock-free implementation of icinga2/lib/base/application.hpp Lines 147 to 148 in 2c9117b
If someone wants to make it work, go ahead, but I'm not sure if it's worth the time for some old ARM systems.
That was recently added in #9887. Not sure what's going wrong on these architectures. I don't think we have easy access to such machines so help for debugging this is greatly appreciated.
That actually seems to be an issue in Boost which, according to Debian bug #1059046, should already be fixed there. |
Thanks @julianbrost, Just one comment...
It will probably be easiest to use a KVM/QEMU virtual machine, though emulation will be a little slow. I endure it for a couple of projects I help with, like when I need a s390x machine. The Gnulib folks recently added instructions for QEMU at https://git.savannah.gnu.org/gitweb/?p=gnulib/maint-tools.git;a=tree;f=platforms/environments/qemu. Once you setup a Debian based machine, switch from Bookworm/Stable to Unstable, then And if you don't have time, then I understand that, too. I understand managing a project takes a lot of time. |
Thanks for pointing at the commit that introduced the issue. Looking at it and the affected architectures, it could be linked to the fact that the page size on those architectures is not 4K. |
The issue seems to be an confusion between
Then the second issue, is that the test hard codes the way to trigger the issue by using a |
That looks like a good patch for Debian to carry until the Icinga folks determine their path forward. It will clear FTBFS on two platforms. And coupled with the Boost fix that @julianbrost provided, that takes the total to three platforms. I hate to see armel and armv7 left behind, but I think its good progress none the less. |
The patch is only part of the fix, just the the plugin, not the testsuite. Also playing more with this, I noticed the problem is more complicated. E2BIG happens when:
The default value of So on an x86 system you can pass up to 16 arguments of length The current code and testsuite does not look at the number of arguments and assumes that |
What about locking instead of requiring a lock-free number? https://github.com/Icinga/icinga2/pull/8430/files#diff-f60819a3bc65b59dde8810c55c02f627b457f605fd27445e523fbd44618c1f10R157 |
The nice thing about atomic operations is that they can't block indefinitely. Using shared memory locking instead just adds a lot more room for error, especially given that we do so nice things like the following: icinga2/lib/base/application.cpp Line 120 in 2c9117b
So if that would happen while that process held the lock, it would remain locked indefinitely. Is there really a lack of 32 bit atomic operations on these architectures or is it just that those are not implemented in |
Describe the bug
icinga2 may be removed from Debian armel, mips64el, ppc64el, and riscv64 due to Failure to Build from Source (FTBFS).
To Reproduce
/<>/lib/base/application.hpp:148:33: error: static assertion failed
https://buildd.debian.org/status/fetch.php?pkg=icinga2&arch=armel&ver=2.14.1-1&stamp=1703225119&raw=0
152 - base-methods_pluginnotificationtask/truncate_long_output (Failed)
https://buildd.debian.org/status/fetch.php?pkg=icinga2&arch=mips64el&ver=2.14.1-1&stamp=1704107092&raw=0
152 - base-methods_pluginnotificationtask/truncate_long_output (Failed)
https://buildd.debian.org/status/fetch.php?pkg=icinga2&arch=ppc64el&ver=2.14.1-1&stamp=1703225525&raw=0
/usr/bin/ld: /usr/lib/riscv64-linux-gnu/libboost_coroutine.so.1.83.0: undefined reference to
jump_fcontext' /usr/bin/ld: /usr/lib/riscv64-linux-gnu/libboost_coroutine.so.1.83.0: undefined reference to
make_fcontext'https://buildd.debian.org/status/fetch.php?pkg=icinga2&arch=riscv64&ver=2.14.1-1&stamp=1703250691&raw=0
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Your Environment
Include as many relevant details about the environment you experienced the problem in
icinga2 --version
):icinga2 feature list
):icinga2 daemon -C
):zones.conf
file (oricinga2 object list --type Endpoint
andicinga2 object list --type Zone
) from all affected nodes.Additional context
I just lurk on some of the Debian mailing lists. I wanted to give the project a heads up. Also see https://lists.debian.org/debian-powerpc/2024/01/msg00001.html.
The text was updated successfully, but these errors were encountered: