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 about 5 years ago. Updated over 4 years ago.

Status:
Resolved
Priority:
High
Assignee:
Category:
-
Target version:
-
% Done:

0%

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

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 about 5 years ago

  • Assignee set to Brad Hubbard

#2 Updated by Brad Hubbard about 5 years ago

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

#3 Updated by Greg Farnum about 5 years ago

  • Status changed from New to 15

#4 Updated by Nathan Cutler about 5 years 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 about 5 years 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 about 5 years 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 about 5 years 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 about 5 years 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 about 5 years ago

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

#10 Updated by Kefu Chai about 5 years ago

  • Status changed from 15 to Fix Under Review

#11 Updated by Nathan Cutler about 5 years ago

@Kefu: thanks for the quick fix!

#12 Updated by Brad Hubbard about 5 years ago

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

#13 Updated by Kefu Chai about 5 years ago

  • Status changed from Fix Under Review to 15

#14 Updated by Brad Hubbard about 5 years ago

For DTS this should be fixed in the 7.1 release.

#15 Updated by Brad Hubbard almost 5 years ago

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

#16 Updated by Brad Hubbard almost 5 years ago

  • Status changed from 15 to Resolved

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

Also available in: Atom PDF