Skip to Main Content

DevOps, CI/CD and Automation

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Coredump - SIGSEGV on software built from source only in Solaris 11.3

user1172464May 17 2016 — edited Jun 13 2016

Hi, we are trying to compile an opensource software from source that belongs to a third party supplier.

While trying to compile the software on a Solaris 11.3 zone and also on a Solaris 11.2 zone the compilation completes without any issues and the expected shared object libraries are generated as expected.

When build and run the executable on a Solaris 11.2 environment everything works as expected.

If we build and run the executable on a Solaris 11.3 environment the executable (a daemon) during the start, it coredumps.

On both environments we are using the supplied compilation software that comes with the Solaris release.

The Solaris 11.2 env we used gcc 4.8.2, on the Solaris 11.3 we have used the same 4.8.2 version and also a in house compiled version of gcc 4.8.5, but unfortunately the same codedump happens.

Looking into the source code, we can see that the coredump is happening as soon as an exception (in the C++) code is being raised. Following the code logic and the execution stack we can found that the exception is expected and is being handled in a try ...catch section, but as soon the exception is thrown we are not able to see the code execution to return to the expected catch section and instead the code just coredumps.

We have tried to add debug symbols (i.e -g -g3 -O0) to the compilation options and looks the symbols are there.

After running mdb against the core file generated we can see the stack trace but we are not getting much support from the third-party supplier on resolving this as they claim the code is working properly on Solaris 11.2.

Below is the calling stack extracted from the core dump file, below the real name of the .so has been replaced with third-party-lib.so and the c++ namespace used has been changed to ABCD to avoid the supplier to be identified.

Call stack details:

mdb core

Loading modules: [ libc.so.1 ld.so.1 ]

> $G

C++ symbol demangling enabled

> ::stack

libc.so.1`__lwp_sigqueue+8(6, ffffffff7fffd7b0, 5, 5, 0, 0)

libc.so.1`abort+0x10c(1, ff8, 6, 0, 1bb5b4, c00)

libstdc++.so.6.0.18`__gnu_cxx::__verbose_terminate_handler+0x1bc(100115580, 1, fffffffbf6280608, 100103ce0, 100114f98, ffffffff3f98bbd0)

libstdc++.so.6.0.18`__cxxabiv1::__terminate+4(fffffffbf62839a0, fffffffbf63f0938, ff, fffffffbf6280608, ffffffff7fffcff0, ffffffff7fffdb70)

libstdc++.so.6.0.18`std::terminate+0x1c(0, fffffffbe2561538, 0, ffffffff7fffcc00, ffffffff7fffd3e0, ffffffff7fffcff0)

libstdc++.so.6.0.18`__cxa_throw+0x88(1001155a0, fffffffbe2781930, fffffffbe240ff20, 0, 23, 100115580)

third-party-lib.so`ABCD::throw_not_found_error+0xdc(fffffffbe1e25868, 0, 2c, 0, 2c, 1001155a0)

third-party-lib.so`ABCD::__ini_lookup+0x5f4(ffffffff7fffe278, ffffffff7fffeae0, fffffffbe1e22308, ffffffff7fffedd0, 0, 100116ec0)

third-party-lib.so`ABCD::read_profile_entry+0x7dc(ffffffff7fffec58, fffffffbe1e22108, fffffffbe1e22308, ffffffff7fffedd0,

fffffffbe1e22108, fffffffbe1e22108)

third-party-lib.so`ABCD::read_profile_string+0x74(ffffffff7fffee00, fffffffbe1e22108, fffffffbe1e22308, ffffffff7fffedd0,

fffffffbe1e22108, 142)

third-party-lib.so`ABCD::ABCD_licence::check2+0x324(100114be0, ffffffff3f9979c8, 12, 0, 12, 0)

third-party-lib.so`ABCD::ABCD_licence::check+0x34(100114be0, 100114be0, fffffffbe1e26500, fffffffbe1e279d0, f, fffffffbe278f7c8)

third-party-lib.so`ABCD::ABCD_static::initialize_licence+0xa4(100114710, fffffffbe1e264f0, ffffffff7ffff05f, ffffffff3f986000, 1a0824,

100114908)

third-party-lib.so`ABCD::ABCD_static::init+0x160(100114710, fffffffbe278e4f8, fffffffbe1e26448, fffffffbe1e26450, 100114b68,

ffffffffffffffff)

third-party-lib.so`ABCD::ABCD_static_ptr_static+0xf0(0, 2, ffffffff3f98cfc0, ffffffff7f202a40, 0, 100114710)

third-party-lib.so`ABCD::ABCD_static_ptr+0x2c(0, 0, 0, ffffffff7f7498c0, 3, ffffffff7f202a40)

third-party-lib.so`ABCD::ABCD_appl::init+8(ffffffff7ffff53f, 0, 100000b9c, fffffffbe1fa91bc, ffffffff7f744608, 0)

third-party-lib.so`ABCD::ABCD_main0+0x40(a, ffffffff7ffff6d8, ffffffff3f98cfc0, 100000b9c, 0, 100101360)

third-party-lib.so`spooler_program+0x20(a, ffffffff7ffff6d8, ffffffff7ffff730, 1001013a0, 100000000, 2800)

_start+0x7c(0, 0, 0, 0, 0, 0)

Any ideas of what could be causing this issue only happening on Solaris 11.3?

Thanks,

Mike

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jul 11 2016
Added on May 17 2016
12 comments
2,479 views