Project

General

Profile

Bug #22220

osd/ReplicatedPG.h:1667:14: internal compiler error: in force_type_die, at dwarf2out.c:25128

Added by Prashant D over 1 year ago. Updated 11 months ago.

Status:
Resolved
Priority:
High
Assignee:
Category:
-
Target version:
-
Start date:
11/22/2017
Due date:
% Done:

0%

Source:
Development
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Component(RADOS):
OSD
Pull request ID:

Description

Build failure for Jewel stable release on fc26

$ g++ --version
g++ (GCC) 7.2.1 20170915 (Red Hat 7.2.1-2)

In file included from osd/Watch.cc:10:0:
osd/ReplicatedPG.h: In destructor ‘virtual ReplicatedPG::WaitTrimTimer::WaitTrimTimer(boost::statechart::state<ReplicatedPG::WaitTrimTimer, ReplicatedPG::Trimming>::my_context)::OnTimer::~OnTimer()’:
osd/ReplicatedPG.h:1667:14: internal compiler error: in force_type_die, at dwarf2out.c:25128
       struct OnTimer : Context {
              ^~~~~~~
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugzilla.redhat.com/bugzilla> for instructions.
Preprocessed source stored into /tmp/cc5DjBjJ.out file, please attach this to your bugreport.
make[3]: *** [Makefile:23723: osd/libosd_a-Watch.o] Error 1

History

#1 Updated by Prashant D over 1 year ago

  • Assignee set to Brad Hubbard

#2 Updated by Brad Hubbard over 1 year ago

  • Project changed from mgr to RADOS
  • Category deleted (Build)
  • Component(RADOS) OSD added

#3 Updated by Greg Farnum over 1 year ago

  • Status changed from New to Pending Upstream

#4 Updated by Nathan Cutler over 1 year ago

  • Priority changed from Low to High

Raising priority because this error is now affecting (all?) Jewel PRs. See e.g. https://github.com/ceph/ceph/pull/19457

Is there a workaround? (Downgrade gcc in the Jenkins CI environment?)

#5 Updated by Brad Hubbard over 1 year ago

Is Jenkins using Fedora? If not I'd suggest we create a bug against the appropriate OS and component. I suspect this is developer-toolset 7 on CentOS? If so I'd suggest a bug against it and the corresponding rhel also if rhel is similarly afflicted. This is just a tracker bug to track the compiler issue. I have no insight into the build system Jenkins uses I'm afraid.

#6 Updated by Brad Hubbard over 1 year ago

# cat /etc/os-release
NAME="CentOS Linux" 
VERSION="7 (Core)" 
ID="centos" 
ID_LIKE="rhel fedora" 
VERSION_ID="7" 
PRETTY_NAME="CentOS Linux 7 (Core)" 
ANSI_COLOR="0;31" 
CPE_NAME="cpe:/o:centos:centos:7" 
HOME_URL="https://www.centos.org/" 
BUG_REPORT_URL="https://bugs.centos.org/" 

CENTOS_MANTISBT_PROJECT="CentOS-7" 
CENTOS_MANTISBT_PROJECT_VERSION="7" 
REDHAT_SUPPORT_PRODUCT="centos" 
REDHAT_SUPPORT_PRODUCT_VERSION="7" 

# g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-7/root/usr/libexec/gcc/x86_64-redhat-linux/7/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/opt/rh/devtoolset-7/root/usr --mandir=/opt/rh/devtoolset-7/root/usr/share/man --infodir=/opt/rh/devtoolset-7/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --enable-plugin --with-linker-hash-style=gnu --enable-initfini-array --with-default-libstdcxx-abi=gcc4-compatible --with-isl=/builddir/build/BUILD/gcc-7.2.1-20170829/obj-x86_64-redhat-linux/isl-install --enable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 7.2.1 20170829 (Red Hat 7.2.1-1) (GCC)

# rpm -qa devtoolset-7-gcc-c++
devtoolset-7-gcc-c++-7.2.1-1.el7.x86_64

# cat << EOF >reproducer.ii
template <typename a> struct b { a c; };
template <typename d> struct e { d *operator->(); };
template <typename d> class f {
public:
  typedef e<d> g;
};
class h {
protected:
  h(int);
};
class j {
public:
  virtual ~j();
  struct k : h {
    int l;
    k() : h(l) {
      struct m : j {
        m() {}
      };
    }
  };
};
struct n {
  n() {
    for (f<b<b<j *>>>::g i;;)
      delete i->c.c;
  }
};
void o() { n(); }
EOF

#  g++ -c -O2 -g reproducer.ii
reproducer.ii: In destructor ‘virtual j::k::k()::m::~m()’:
reproducer.ii:17:14: internal compiler error: in force_type_die, at dwarf2out.c:25099
       struct m : j {
              ^
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugzilla.redhat.com/bugzilla> for instructions.
Preprocessed source stored into /tmp/cc9yXqgf.out file, please attach this to your bugreport.

Confirmed on CentOS with latest devtoolset. Checking RHEL.

#7 Updated by Brad Hubbard over 1 year ago

# cat /etc/os-release
NAME="Red Hat Enterprise Linux Server" 
VERSION="7.4 (Maipo)" 
ID="rhel" 
ID_LIKE="fedora" 
VARIANT="Server" 
VARIANT_ID="server" 
VERSION_ID="7.4" 
PRETTY_NAME="Employee SKU" 
ANSI_COLOR="0;31" 
CPE_NAME="cpe:/o:redhat:enterprise_linux:7.4:GA:server" 
HOME_URL="https://www.redhat.com/" 
BUG_REPORT_URL="https://bugzilla.redhat.com/" 

REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 7" 
REDHAT_BUGZILLA_PRODUCT_VERSION=7.4
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux" 
REDHAT_SUPPORT_PRODUCT_VERSION="7.4" 

# g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-7/root/usr/libexec/gcc/x86_64-redhat-linux/7/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/opt/rh/devtoolset-7/root/usr --mandir=/opt/rh/devtoolset-7/root/usr/share/man --infodir=/opt/rh/devtoolset-7/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --enable-plugin --with-linker-hash-style=gnu --enable-initfini-array --with-default-libstdcxx-abi=gcc4-compatible --with-isl=/builddir/build/BUILD/gcc-7.2.1-20170829/obj-x86_64-redhat-linux/isl-install --enable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 7.2.1 20170829 (Red Hat 7.2.1-1) (GCC)

# rpm -qa devtoolset-7-gcc-c++
devtoolset-7-gcc-c++-7.2.1-1.el7.x86_64

# cat << EOF >reproducer.ii
template <typename a> struct b { a c; };
template <typename d> struct e { d *operator->(); };
template <typename d> class f {
public:
  typedef e<d> g;
};
class h {
protected:
  h(int);
};
class j {
public:
  virtual ~j();
  struct k : h {
    int l;
    k() : h(l) {
      struct m : j {
        m() {}
      };
    }
  };
};
struct n {
  n() {
    for (f<b<b<j *>>>::g i;;)
      delete i->c.c;
  }
};
void o() { n(); }
EOF

# g++ -c -O2 -g reproducer.ii
reproducer.ii: In destructor ‘virtual j::k::k()::m::~m()’:
reproducer.ii:17:14: internal compiler error: in force_type_die, at dwarf2out.c:25099
       struct m : j {
              ^
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugzilla.redhat.com/bugzilla> for instructions.
Preprocessed source stored into /tmp/ccrRQS6V.out file, please attach this to your bugreport.

Confirmed on RHEL 7.4 and new bug created against Red Hat Developer Toolset https://bugzilla.redhat.com/show_bug.cgi?id=1525304

#8 Updated by Kefu Chai over 1 year ago

please see https://github.com/ceph/ceph/pull/19426. that's why it popped up recently.

Nathan, to downgrade the GCC in building servers is an option, but it complicates our complicated building process, to be specific, the xenial building servers are shared by master (mimic-dev1) and jewel, the latter requires an older GCC, but the former wants GCC-7. so we need to revert the change i made in install-deps.sh for master after the building process completes. that's a pain.

i'd suggest just work around this issue in jewel.

will prepare a patch.

#9 Updated by Brad Hubbard over 1 year ago

The build in https://github.com/ceph/ceph/pull/19457 was done on Ubuntu :(

#10 Updated by Kefu Chai over 1 year ago

  • Status changed from Pending Upstream to Need Review

#11 Updated by Nathan Cutler over 1 year ago

@Kefu: thanks for the quick fix!

#12 Updated by Brad Hubbard over 1 year ago

How does https://github.com/ceph/ceph/pull/19461 fix the bug in gcc7?

#13 Updated by Kefu Chai over 1 year ago

  • Status changed from Need Review to Pending Upstream

#14 Updated by Brad Hubbard about 1 year ago

For DTS this should be fixed in the 7.1 release.

#15 Updated by Brad Hubbard about 1 year ago

Fixed by gcc-7.3.1-2.fc26 gcc-7.3.1-2.fc27 in fc27

#16 Updated by Brad Hubbard 12 months ago

  • Status changed from Pending Upstream to Resolved

Resolved for Fedora and just waiting on next DTS to ship on rhel/CentOS.

Also available in: Atom PDF