dealii / candi

candi - (Compile & Install) - Downloads, configures, builds and installs deal.II
GNU Lesser General Public License v3.0
60 stars 57 forks source link

SEGFAULT in opencascade OCE #317

Open tjhei opened 1 year ago

tjhei commented 1 year ago

I got the following report about a SIGSEGV in OCE when the library is loaded

Program received signal SIGSEGV, Segmentation fault.
0x00007fffcbae522c in Handle_Standard_Transient::BeginScope() () from /home/testinf/Documents/candi_dealii/oce-OCE-0.18.3/lib/libTKernel.so.11
(gdb) bt
#0  0x00007fffcbae522c in Handle_Standard_Transient::BeginScope() ()
   from /home/testinf/Documents/candi_dealii/oce-OCE-0.18.3/lib/libTKernel.so.11
#1  0x00007fffcbae9940 in Standard_Transient::This() const ()
   from /home/testinf/Documents/candi_dealii/oce-OCE-0.18.3/lib/libTKernel.so.11
#2  0x00007fffc32f3728 in NCollection_BaseMap::BeginResize(int, int&, NCollection_ListNode**&, NCollection_ListNode**&) const () from /lib/x86_64-linux-gnu/libTKernel.so.7
#3  0x00007fffc32ca942 in Standard_Type::Register(char const*, char const*, unsigned long, opencascade::handle<Standard_Type> const&) () from /lib/x86_64-linux-gnu/libTKernel.so.7
#4  0x00007fffc329429a in ?? () from /lib/x86_64-linux-gnu/libTKernel.so.7
#5  0x00007fffc3292450 in ?? () from /lib/x86_64-linux-gnu/libTKernel.so.7
#6  0x00007ffff7fcbfbe in call_init (l=<optimized out>, argc=argc@entry=1, argv=argv@entry=0x7fffffffdda8, 
    env=env@entry=0x7fffffffddb8) at ./elf/dl-init.c:70
#7  0x00007ffff7fcc0a8 in call_init (env=0x7fffffffddb8, argv=0x7fffffffdda8, argc=1, l=<optimized out>)
    at ./elf/dl-init.c:33
#8  _dl_init (main_map=0x7ffff7ffe2e0, argc=1, argv=0x7fffffffdda8, env=0x7fffffffddb8) at ./elf/dl-init.c:117
#9  0x00007ffff7fe48b0 in _dl_start_user () from /lib64/ld-linux-x86-64.so.2

Maybe we should update OpenCascade and see if that works?

tjhei commented 1 year ago

@pengfej can you confirm gcc and ubuntu version?

pengfej commented 1 year ago

Sure, the GCC version is 12.20 and my Ubuntu version is 22.10

alarshi commented 1 month ago

This is also something we (I and @sungho91) noticed recently on the University of Memphis workstation. Just tagging us here for any updates on how to resolve this.

marcfehling commented 1 month ago

OCE 0.18.3 is quite old (Feb 2018). It has been surpassed by OCCT.

I believe I got OCCT 7.4.0 (Feb 2022) compiled, and configured deal.II with it on @bangerth's machines. I just tried to use the most basic configuration as follows

tar xzf opencascade-7.4.0.tgz
cd opencascade-7.4.0
mkdir build
cd build
cmake -DINSTALL_DIR:PATH=/install/path/to/opencascade-7.4.0 ..
make install

Maybe @luca-heltai has some more insight. Anyways, we should update our interfacing with OpenCASCADE website.

luca-heltai commented 1 month ago

I absolutely agree. Everything that was in 0.18.3 has been incorporated upstream in OCCT. OCE is officially dead. We should definitely remove its support, and only use OCCT.

I'll try to experiment a bit and see what version is still compatible with deal.II, and what changes we need to do to upgrade to the latest available version of OCCT.

luca-heltai commented 1 month ago

I could compile with OCCT 7.7.1 without issues.

alarshi commented 1 month ago

Thank you @luca-heltai ! I will try OCCT as well and post if we encounter any problem.

tjhei commented 1 month ago

Arushi, can you make a PR to replace OCE by OCCT to candi?

alarshi commented 1 month ago

Sure! Will do.

luca-heltai commented 1 month ago

btw, I forgot to say: OCCT 7.7.1 passes all tests without changes in deal.II. Should we drop OCE support in deal.II?