Bug 2046213

Summary: thrift: FTBFS in Fedora 36: /usr/include/c++/12/bits/new_allocator.h:158:33: error: 'operator delete' called on pointer '_605' with nonzero offset [1, 9223372036854775800] [-Werror=free-nonheap-object]
Product: [Fedora] Fedora Reporter: Tomáš Hrnčiar <thrnciar>
Component: thriftAssignee: Christopher Tubbs <ctubbsii>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 36CC: code, ctubbsii, milleruntime, mspacek, orion, ppisar, willb
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://koschei.fedoraproject.org/package/thrift
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-06-22 11:49:14 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:    
Bug Blocks: 1992484, 2016048, 2045102, 2086171, 2094398    

Description Tomáš Hrnčiar 2022-01-26 12:19:44 UTC
Description of problem:
Package thrift fails to build from source in Fedora Rawhide.

Version-Release number of selected component (if applicable):
0.14.0-6.fc36

Steps to Reproduce:
koji build --scratch f36 thrift-0.14.0-6.fc36.src.rpm

Additional info:
This package is tracked by Koschei. See:
https://koschei.fedoraproject.org/package/thrift

Comment 1 Ben Cotton 2022-02-08 20:43:18 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 36 development cycle.
Changing version to 36.

Comment 2 Petr Pisar 2022-03-01 08:39:53 UTC
libtool: link: g++ -std=c++11 -Wall -Wextra -pedantic -Werror -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 -Wl,-z -Wl,relro -Wl,--as-needed -Wl,-z -Wl,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -Wl,-dT -Wl,/builddir/build/BUILD/thrift-0.14.0/.package_note-thrift-0.14.0-6.fc37.x86_64.ld -o thrift src/thrift/audit/thrift-t_audit.o src/thrift/thrift-common.o src/thrift/generate/thrift-t_generator.o src/thrift/thrift-main.o src/thrift/parse/thrift-parse.o src/thrift/parse/thrift-t_typedef.o src/thrift/generate/thrift-t_as3_generator.o src/thrift/generate/thrift-t_c_glib_generator.o src/thrift/generate/thrift-t_cl_generator.o src/thrift/generate/thrift-t_cpp_generator.o src/thrift/generate/thrift-t_d_generator.o src/thrift/generate/thrift-t_dart_generator.o src/thrift/generate/thrift-t_delphi_generator.o src/thrift/generate/thrift-t_erl_generator.o src/thrift/generate/thrift-t_go_generator.o src/thrift/generate/thrift-t_gv_generator.o src/thrift/generate/thrift-t_haxe_generator.o src/thrift/generate/thrift-t_hs_generator.o src/thrift/generate/thrift-t_html_generator.o src/thrift/generate/thrift-t_markdown_generator.o src/thrift/generate/thrift-t_java_generator.o src/thrift/generate/thrift-t_javame_generator.o src/thrift/generate/thrift-t_js_generator.o src/thrift/generate/thrift-t_json_generator.o src/thrift/generate/thrift-t_lua_generator.o src/thrift/generate/thrift-t_netstd_generator.o src/thrift/generate/thrift-t_ocaml_generator.o src/thrift/generate/thrift-t_perl_generator.o src/thrift/generate/thrift-t_php_generator.o src/thrift/generate/thrift-t_py_generator.o src/thrift/generate/thrift-t_rb_generator.o src/thrift/generate/thrift-t_rs_generator.o src/thrift/generate/thrift-t_st_generator.o src/thrift/generate/thrift-t_swift_generator.o src/thrift/generate/thrift-t_xml_generator.o src/thrift/generate/thrift-t_xsd_generator.o  src/thrift/libparse.a -lrt -lpthread
In member function 'deallocate',
    inlined from 'deallocate' at /usr/include/c++/12/bits/alloc_traits.h:496:23,
    inlined from '_M_deallocate' at /usr/include/c++/12/bits/stl_vector.h:386:19,
    inlined from '__dt_base ' at /usr/include/c++/12/bits/stl_vector.h:365:15,
    inlined from '__dt_base ' at /usr/include/c++/12/bits/stl_vector.h:732:7,
    inlined from 'generate_program' at src/thrift/generate/t_html_generator.cc:271:20:
/usr/include/c++/12/bits/new_allocator.h:158:33: error: 'operator delete' called on pointer '_605' with nonzero offset [1, 9223372036854775800] [-Werror=free-nonheap-object]
  158 |         _GLIBCXX_OPERATOR_DELETE(_GLIBCXX_SIZED_DEALLOC(__p, __n));
      |                                 ^
In member function 'allocate',
    inlined from 'allocate' at /usr/include/c++/12/bits/alloc_traits.h:464:28,
    inlined from '_M_allocate' at /usr/include/c++/12/bits/stl_vector.h:377:33,
    inlined from '_M_create_storage' at /usr/include/c++/12/bits/stl_vector.h:394:44,
    inlined from '__ct ' at /usr/include/c++/12/bits/stl_vector.h:331:26,
    inlined from '__ct ' at /usr/include/c++/12/bits/stl_vector.h:597:61,
    inlined from 'generate_program' at src/thrift/generate/t_html_generator.cc:271:20:
/usr/include/c++/12/bits/new_allocator.h:137:55: note: returned from 'operator new'
  137 |         return static_cast<_Tp*>(_GLIBCXX_OPERATOR_NEW(__n * sizeof(_Tp)));
      |                                                       ^
lto1: all warnings being treated as errors
make[4]: *** [/tmp/ccWxUjqj.mk:134: /tmp/ccR98pNt.ltrans44.ltrans.o] Error 1

A difference between last building and firs failing build root is at <https://koschei.fedoraproject.org/build/11873229>. It seems to be triggered by upgrading GCC to version 12.

Comment 3 Tomáš Hrnčiar 2022-04-21 14:14:58 UTC
Dear Maintainer,

your package has an open Fails To Build From Source bug for Fedora 37.
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 2022-03-23).

A week before the mass branching of Fedora 38 according to the schedule [3],
any packages not successfully rebuilt at least on Fedora 36 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-38/f-38-key-tasks.html

Comment 4 Christopher Tubbs 2022-05-16 04:23:12 UTC
I'm not sure how to fix the error reported here. There is a newer version available, which might work better on the newer version of GCC.

Comment 5 Ben Beasley 2022-05-24 14:10:38 UTC
Disabling LTO is a workaround:

https://src.fedoraproject.org/rpms/thrift/pull-request/2

Comment 6 Miro Hrončok 2022-06-22 11:49:14 UTC
Closing this in bulk as it built with Python 3.11. If this needs to remain open for a followup, feel free to reopen, I won't close in bulk again.