Ticket #9352 (closed: fixed)

Opened 6 years ago

Last modified 5 years ago

Segfault on shutdown

Reported by: Peter Peterson Owned by: Martyn Gigg
Priority: blocker Milestone: Release 3.2
Component: Framework Keywords:
Cc: campbellsi@…, saviciat@… Blocked By:
Blocking: Tester: Peter Peterson

Description

It is unclear what is the actual cause of this, but it has been observed on Fedora 20 and Ubuntu 14.04 both of which have gcc 4.8 and python 2.7.

To reproduce:

python -c "import mantid"

Which will produce an error (amongst lots of extra information)

*** Error in `python': double free or corruption (fasttop): 0x00000000024cdb80 ***

Change History

comment:1 Changed 6 years ago by Peter Peterson

  • Cc campbellsi@…, saviciat@… added

comment:2 Changed 6 years ago by Andrei Savici

On clean Ubuntu 14.04 I get

[ FATAL ] /home/andrei/Mantid/mantid/Code/Mantid/TestingTools/gmock-1.7.0/gtest/include/gtest/internal/gtest-port.h:1486:: pthread_key_delete(key_)failed with error 22
Aborted (core dumped)

I don't have the problem if I use the debug build :(

comment:3 Changed 6 years ago by Nick Draper

  • Owner set to Peter Peterson
  • Status changed from new to assigned

comment:4 Changed 6 years ago by Martyn Gigg

It seems to be the presence of the libgmock.so library in the bin directory. If I do

cd bin
rm libgmock.so
python -c "import mantid"

then all seems fine. Given that the plugins directory is set the bin for a dev copy then it tries to load all .so files in that directory.

Once difference I notice between this and my Ubuntu 12.04 build is that the gmock/gtest libraries are static (.a) for 12.04/gcc-4.6 but dynamic (.so) for 14.04/gcc-4.8.

comment:5 Changed 6 years ago by Martyn Gigg

I think the answer here is to move back to using static libraries for gtest/gmock.

If I insert these lines

# Use static libraries as the dynamic ones are built with different
# flags and don't load correctly for us. This does not affect
# the global scope
set ( BUILD_SHARED_LIBS OFF )

at the top of Code/Mantid/TestingTools/CMakeLists.txt then the problem seems to go away.

comment:6 Changed 6 years ago by Peter Peterson

  • Owner changed from Peter Peterson to Martyn Gigg

comment:7 Changed 6 years ago by Andrei Savici

removing libgmock.so and libgmock_main.so did the trick for me (Ubuntu 14.04)

comment:8 Changed 6 years ago by Martyn Gigg

  • Status changed from assigned to inprogress

Use static gmock/gtest libraries.

Refs #9352

Changeset: 93bd59f9771106737d84929d4ba0c2b6a0074ac2

comment:9 Changed 6 years ago by Martyn Gigg

  • Status changed from inprogress to verify
  • Resolution set to fixed

comment:10 Changed 6 years ago by Vickie Lynch

  • Status changed from verify to verifying
  • Tester set to Vickie Lynch

comment:11 Changed 6 years ago by Andrei Savici

Works on Ubuntu 13.10, gcc 4.8.1, Release

Works on Ubuntu 14.04, gcc 4.8.2, Release

comment:12 Changed 6 years ago by Vickie Lynch

  • Status changed from verifying to verify
  • Tester Vickie Lynch deleted

comment:13 Changed 6 years ago by Vickie Lynch

Works on Redhat6, gcc 4.4.7, RelWithDebInfo (get error after building master with ninja)

comment:14 Changed 6 years ago by Peter Peterson

Works on fedora 20, gcc 4.8.2, ninja, Release - including unit tests Works on fedora 20, gcc 4.8.2, ninja, Debug - including unit tests

comment:15 Changed 6 years ago by Peter Peterson

  • Status changed from verify to verifying
  • Tester set to Peter Peterson

comment:16 Changed 6 years ago by Michael Reuter

  • Priority changed from blocker to trivial
  • type changed from defect to enhancement

Works on Fedora 20 VM, gcc 4.8.2, ninja, Release, with unit tests.

comment:17 Changed 6 years ago by Michael Reuter

  • Priority changed from trivial to blocker
  • type changed from enhancement to defect

comment:18 Changed 6 years ago by Martyn Gigg

Use static gmock/gtest libraries.

Refs #9352

Changeset: 4ae606a9a3dc6fd909416ecbd1b2ac6cfd377208

comment:19 Changed 6 years ago by Peter Peterson

  • Status changed from verifying to closed

For some reason the automatic closing didn't work.

comment:20 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 10195

Note: See TracTickets for help on using tickets.