Bug 1914324

Summary: xrootd fails to build: error: '__builtin_memcpy' reading 7 bytes from a region of size 1 [-Werror=stringop-overread]
Product: [Fedora] Fedora Reporter: Miro Hrončok <mhroncok>
Component: xrootdAssignee: Mattias Ellert <mattias.ellert>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: adev88, mattias.ellert, mhroncok, michal.simon, rocha.porto, thrnciar
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: gcc-11.0.0-0.19.fc34 gcc-11.0.0-0.19.fc35 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-01-26 11:06:42 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1909564    
Bug Blocks: 1868278, 1890881    

Description Miro Hrončok 2021-01-08 15:26:16 UTC
xrootd fails to build with Python 3.10.0a4 and 3.9.1:

https://koschei.fedoraproject.org/package/xrootd?collection=f34



[ 58%] Building CXX object src/CMakeFiles/XrdThrottle-5.dir/XrdThrottle/XrdThrottleFileSystemConfig.cc.o
cd /builddir/build/BUILD/xrootd-5.0.3/x86_64-redhat-linux-gnu/src && /usr/bin/g++ -DHAVE_ATOMICS -DHAVE_CRYPT -DHAVE_CURL_MULTI_WAIT -DHAVE_DH_PADDED -DHAVE_ET_COM_ERR_H -DHAVE_FSTATAT -DHAVE_FUSE -DHAVE_GETHBYXR -DHAVE_GETIFADDRS -DHAVE_LIBZ -DHAVE_NAMEINFO -DHAVE_PROTOR -DHAVE_READLINE -DHAVE_SENDFILE -DHAVE_SETRESUID -DHAVE_SHADOWPW -DHAVE_SIGWTI -DHAVE_SSL -DHAVE_SYSTEMD -DHAVE_TLS -DHAVE_TLS1 -DHAVE_TLS11 -DHAVE_TLS12 -DHAVE_XML2 -DHAVE_XRDCRYPTO -DUSE_LIBC_SEMAPHORE=1 -DXRDPLUGIN_SOVERSION=\"5\" -DXrdThrottle_5_EXPORTS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -D__linux__=1 -I/builddir/build/BUILD/xrootd-5.0.3/src/.. -I/builddir/build/BUILD/xrootd-5.0.3/src/. -I/usr/include/uuid -I/builddir/build/BUILD/xrootd-5.0.3/src -I/builddir/build/BUILD/xrootd-5.0.3/x86_64-redhat-linux-gnu/src -I/usr/include/json-c -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -std=c++0x -DOPENSSL_NO_FILENAMES -std=c++0x -Wall -Wextra -Werror -Wno-unused-parameter -Wno-error=misleading-indentation -Wno-error=address-of-packed-member -Wno-error=pessimizing-move -O2 -g -DNDEBUG -fPIC -o CMakeFiles/XrdThrottle-5.dir/XrdThrottle/XrdThrottleFileSystemConfig.cc.o -c /builddir/build/BUILD/xrootd-5.0.3/src/XrdThrottle/XrdThrottleFileSystemConfig.cc
In function 'copy',
    inlined from '_S_copy' at /usr/include/c++/11/bits/basic_string.h:351:21,
    inlined from '_S_copy' at /usr/include/c++/11/bits/basic_string.h:346:7,
    inlined from '_M_replace' at /usr/include/c++/11/bits/basic_string.tcc:481:20,
    inlined from 'replace' at /usr/include/c++/11/bits/basic_string.h:1946:19,
    inlined from 'insert' at /usr/include/c++/11/bits/basic_string.h:1714:22,
    inlined from 'operator+' at /usr/include/c++/11/bits/basic_string.h:6154:23,
    inlined from 'Locate' at /builddir/build/BUILD/xrootd-5.0.3/src/XrdCms/XrdCmsRedirLocal.cc:170:90:
/usr/include/c++/11/bits/char_traits.h:402:56: error: '__builtin_memcpy' reading 7 bytes from a region of size 1 [-Werror=stringop-overread]
  402 |         return static_cast<char_type*>(__builtin_memcpy(__s1, __s2, __n));
      |                                                        ^
lto1: all warnings being treated as errors
make[3]: *** [/tmp/cc5fW2On.mk:2: /tmp/cczQu10m.ltrans0.ltrans.o] Error 1


Note that this might be a problem in gcc and/or Cython.


For the build logs with Python 3.10, see:
https://copr-be.cloud.fedoraproject.org/results/@python/python3.10/fedora-rawhide-x86_64/01865318-xrootd/

For all our attempts to build xrootd with Python 3.10, see:
https://copr.fedorainfracloud.org/coprs/g/python/python3.10/package/xrootd/

Testing and mass rebuild of packages is happening in copr. You can follow these instructions to test locally in mock if your package builds with Python 3.10:
https://copr.fedorainfracloud.org/coprs/g/python/python3.10/

Let us know here if you have any questions.

Python 3.10 will be included in Fedora 35. To make that update smoother, we're building Fedora packages with early pre-releases of Python 3.10.
A build failure prevents us from testing all dependent packages (transitive [Build]Requires), so if this package is required a lot, it's important for us to get it fixed soon.
We'd appreciate help from the people who know this package best, but if you don't want to work on this now, let us know so we can try to work around it on our side.

Comment 1 Mattias Ellert 2021-01-11 15:21:06 UTC
This is due to a bug in gcc bug #1909564.

There has not been any response on the bug report from the gcc maintainers, but there has been holidays so this is not so strange. Hopefully they will pick it up now when the holidays are over.

Comment 2 Fedora Release Engineering 2021-01-24 04:22:43 UTC
Dear Maintainer,

your package has an open Fails To Build From Source bug for Fedora 34.
Action is required from you.

If you can fix your package to build, perform a build in koji, and either create
an update in bodhi, or close this bug without creating an update, if updating is
not appropriate [1]. If you are working on a fix, set the status to ASSIGNED to
acknowledge this. If you have already fixed this issue, please close this Bugzilla report.

Following the policy for such packages [2], your package will be orphaned if
this bug remains in NEW state more than 8 weeks (not sooner than 2021-03-05).

A week before the mass branching of Fedora 35 according to the schedule [3],
any packages not successfully rebuilt at least on Fedora 33 will be
retired regardless of the status of this bug.

[1] https://docs.fedoraproject.org/en-US/fesco/Updates_Policy/
[2] https://docs.fedoraproject.org/en-US/fesco/Fails_to_build_from_source_Fails_to_install/
[3] https://fedorapeople.org/groups/schedule/f-35/f-35-key-tasks.html

Comment 3 Mattias Ellert 2021-01-26 11:06:42 UTC
I was really hoping that the gcc bug would be fixed quickly and that I would not have to do anything in the xrootd package to address this.
But it is now more than 1 month since the gcc bug was reported, and it is still not fixed.
The latest gcc (11.0.0-0.17.fc34) is still broken.
I have therefore disabled the warning that gives the false positive in gcc 11 in rawhide using
CXXFLAGS="%build_cxxflags -Wno-error=stringop-overread"
Hopefully this can be reverted when gcc is repaired.

Comment 4 Mattias Ellert 2021-02-13 09:22:36 UTC
gcc fixed in gcc-11.0.0-0.19.fc34 and gcc-11.0.0-0.19.fc35
Workaround removed from xrootd specfile. xrootd-5.0.3-5.fc34 and xrootd-5.0.3-5.fc35.