I've encountered this strange behaviour, staring with MariaDB 10.5.20.
The SPIDER tests, and only them, started to fail in 100% cases on all arches
with wide range of "no space left on device" like errors.
This is interesting, as simmilar issues occured before
only on specific arches or build systems.
I've thought that maybe the full suite, which run before the spider tests,
have left over some data in the memory which would leave less space for the
spider tests.
However swapping order - running the spider test first and the full suite
later didn't help anyhow. The spider tests failed rightaway.
Also, it's interesting that running just the main suite in memory is possible.
This observation should rule out changes in the build system (lowering the
memory limits for builders), as I'd expect that the main suite woould have much
bigger memory need than the spider tests.
--
This leads to a possibility that there is actually a bug in the spider engine
or tests, which cause the unexpected larger memory consumption.
This should be examined further. Sadly I don't have capacity for it now.
The '%cmake' RPM macro in Fedora actually expands to:
| ...
| /usr/bin/cmake \
| -S "." \
| -B "redhat-linux-build" \
| ...
So in this case the source patch was specified twice.
First in the macro with the '-S' option and second time outside of the macro,
in the SPECfile, without the '-S' option.
CMake upstream declares that:
| This has never been officially documented or supported,
| but older versions accidentally accepted multiple source paths
| and used the last path specified. Update scripts to avoid
| passing multiple source path arguments.
https://cmake.org/cmake/help/v3.23/release/3.23.html#deprecated-and-removed-features
This was discovered as CMake upstream implemented a change to the 3.23.0-rc2 release
that changed this behavior and it broke many Fedora packages that used this
double source path definition.
See rhbz#2057738 to see how build behaved
After the CMake upstream got aware of what problems it caused in Fedora,
they opened a merge request to restore the behavior to the old one,
but kept the warnings that that is an unsupported and problematic behavior:
https://gitlab.kitware.com/cmake/cmake/-/issues/23334
---
As for today, this issue is still not yet fully resolved.
- The CMake maintainers in Fedora haven't rebased the package to 3.23-1 release, so it is still broken
- Affected packages in Fedora should find a way to stop using this unsupported behavior
- The double '-S' argument passing should be marked as problematic too, in the exact same way
https://gitlab.kitware.com/cmake/cmake/-/issues/23334#note_1159258
- A change to the %cmake Fedora RPM macro might be in play, so it won't force a source path
https://gitlab.kitware.com/cmake/cmake/-/issues/23334#note_1159258
I opened a BZ #2079833 to track the progress of the solution by CMake maintainers
The 'mariadb-fips.patch' patch has to be applied conditionally. It will FTBFS on releases without OpenSSL 3.
---
/builddir/build/BUILD/mariadb-10.5.15-downstream_modified/mysys_ssl/my_md5.cc: In function 'void md5_init(EVP_MD_CTX*)':
/builddir/build/BUILD/mariadb-10.5.15-downstream_modified/mysys_ssl/my_md5.cc:56:9: error: 'EVP_MD_fetch' was not declared in this scope; did you mean 'EVP_MD_flags'?
56 | md5 = EVP_MD_fetch(NULL, "MD5", "fips=no");
| ^~~~~~~~~~~~
| EVP_MD_flags
/builddir/build/BUILD/mariadb-10.5.15-downstream_modified/mysys_ssl/my_md5.cc:63:3: error: 'EVP_MD_free' was not declared in this scope; did you mean 'EVP_MD_type'?
63 | EVP_MD_free(md5);
| ^~~~~~~~~~~
| EVP_MD_type
gmake[2]: *** [mysys_ssl/CMakeFiles/mysys_ssl.dir/build.make:149: mysys_ssl/CMakeFiles/mysys_ssl.dir/my_md5.cc.o] Error 1
Logrotate patch rebased onto upstream commit:
008c02c987
Groonga patch upstreamed:
045f5f7b10
OpenSSL 3 patch rebased onto upstream commit:
be1d965384
OpenSSL 3 CMake condition reverted - it should be only applied to series without OpenSSL 3 patch:
c9beef4315
Full testsuite success on a Fedora Rawhide scratch build,
setting "last_tested_version" to 10.5.15 so only the "main" test suite will be run on subsequent
builds of the same MariaDB release
OpenSSL 3.0.0+ does not support EVP_MD_CTX_FLAG_NON_FIPS_ALLOW any longer.
In OpenSSL 1.1.1 the non FIPS allowed flag is context specific, while
in 3.0.0+ it is a different EVP_MD provider.
Resolves: #2050541
This issue was originally discovered by Annocheck stack-protection test in RHEL 9: #2044388
The -DSECURITY_HARDENED is used to force a set of compilation flags for hardening
The issue is that the MariaDB upstream level of hardening is lower than expected by Red Hat
We disable this option to the default compilation flags (which have higher level of hardening) will be used
Reason is, that the bug is already reported on upstream:
https://jira.mariadb.org/browse/MDEV-26905.
Also we currently do not know how to fix it. If we eventually figure out
how to fix this bug, then the patch would be submitted directly to the
upstream, rather than to downstream, to avoid unintentionally breaking
some code that relied on the malformed XML.
Temporary workaround for BZ#2026600
Problem with the GCC is already beeing discussed in upstream's Bugzilla
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103395
This commit should be reverted when the GCC fixes the issue on their
side