Experiencing dijitso errors after a conda installation of fenics

Hello!

My collaborator and I are running into a Dijitsu issue when running a fairly simple script on his HPC client. Fenics is installed in a conda module into the HPC’s anaconda installation : (Python 3.8 2020-07).

Simple code that presents this error takes a UnitSquareMesh, creates a couple FiniteElements, and then creates two FunctionSpaces from which we create a mixed FunctionSpace.

It appears to be the compilation of this mixed FunctionSpace step that presents the error below.

Note: Our code works fine on personal machines with the latest anaconda module installed.

Our IT support staff will be positively baffled with this question, so I was hoping we could narrow down a place to look for the trouble.

Cheers,

------------------- Start compiler output ------------------------

/bin/ld: /geode2/home/u010/apakzad/Carbonate/fenicsProject/fenicsproject/bin/../lib/gcc/x86_64-conda-linux-gnu/9.4.0/libstdc++.a(compatibility.o): unable to initialize decompress status for section .debug_info

/bin/ld: /geode2/home/u010/apakzad/Carbonate/fenicsProject/fenicsproject/bin/../lib/gcc/x86_64-conda-linux-gnu/9.4.0/libstdc++.a(compatibility.o): unable to initialize decompress status for section .debug_info

/bin/ld: /geode2/home/u010/apakzad/Carbonate/fenicsProject/fenicsproject/bin/../lib/gcc/x86_64-conda-linux-gnu/9.4.0/libstdc++.a(class_type_info.o): unable to initialize decompress status for section .debug_info

/bin/ld: /geode2/home/u010/apakzad/Carbonate/fenicsProject/fenicsproject/bin/../lib/gcc/x86_64-conda-linux-gnu/9.4.0/libstdc++.a(class_type_info.o): unable to initialize decompress status for section .debug_info

/geode2/home/u010/apakzad/Carbonate/fenicsProject/fenicsproject/bin/../lib/gcc/x86_64-conda-linux-gnu/9.4.0/libstdc++.a: error adding symbols: File format not recognized

collect2: error: ld returned 1 exit status

 

-------------------  End compiler output  ------------------------

Compilation failed! Sources, command, and errors have been written to: /geode2/home/u010/apakzad/Carbonate/Desktop/BLM/jitfailure-ffc_element_1f442cc632b73b68f791e130d6896b530afbf673

Traceback (most recent call last):

  File "/geode2/home/u010/apakzad/Carbonate/Desktop/BLM/BLM_Lid_Driven_3D.py", line 79, in <module>

    V    = FunctionSpace(mesh,MIXD) #Mixed Space. This is where test/trial functions live

  File "/geode2/home/u010/apakzad/Carbonate/fenicsProject/fenicsproject/lib/python3.9/site-packages/dolfin/function/functionspace.py", line 31, in __init__

    self._init_from_ufl(*args, **kwargs)

  File "/geode2/home/u010/apakzad/Carbonate/fenicsProject/fenicsproject/lib/python3.9/site-packages/dolfin/function/functionspace.py", line 42, in _init_from_ufl

    ufc_element, ufc_dofmap = ffc_jit(element, form_compiler_parameters=None,

  File "/geode2/home/u010/apakzad/Carbonate/fenicsProject/fenicsproject/lib/python3.9/site-packages/dolfin/jit/jit.py", line 47, in mpi_jit

    return local_jit(*args, **kwargs)

  File "/geode2/home/u010/apakzad/Carbonate/fenicsProject/fenicsproject/lib/python3.9/site-packages/dolfin/jit/jit.py", line 97, in ffc_jit

    return ffc.jit(ufl_form, parameters=p)

  File "/geode2/home/u010/apakzad/Carbonate/fenicsProject/fenicsproject/lib/python3.9/site-packages/ffc/jitcompiler.py", line 217, in jit

    module = jit_build(ufl_object, module_name, parameters)

  File "/geode2/home/u010/apakzad/Carbonate/fenicsProject/fenicsproject/lib/python3.9/site-packages/ffc/jitcompiler.py", line 130, in jit_build

    module, signature = dijitso.jit(jitable=ufl_object,

  File "/geode2/home/u010/apakzad/Carbonate/fenicsProject/fenicsproject/lib/python3.9/site-packages/dijitso/jit.py", line 165, in jit

    header, source, dependencies = generate(jitable, name, signature, params["generator"])

  File "/geode2/home/u010/apakzad/Carbonate/fenicsProject/fenicsproject/lib/python3.9/site-packages/ffc/jitcompiler.py", line 76, in jit_generate

    dep_module_name = jit(dep, parameters, indirect=True)

  File "/geode2/home/u010/apakzad/Carbonate/fenicsProject/fenicsproject/lib/python3.9/site-packages/ffc/jitcompiler.py", line 217, in jit

    module = jit_build(ufl_object, module_name, parameters)

  File "/geode2/home/u010/apakzad/Carbonate/fenicsProject/fenicsproject/lib/python3.9/site-packages/ffc/jitcompiler.py", line 130, in jit_build

    module, signature = dijitso.jit(jitable=ufl_object,

  File "/geode2/home/u010/apakzad/Carbonate/fenicsProject/fenicsproject/lib/python3.9/site-packages/dijitso/jit.py", line 216, in jit

    raise DijitsoError("Dijitso JIT compilation failed, see '%s' for details"

dijitso.jit.DijitsoError: Dijitso JIT compilation failed, see '/geode2/home/u010/apakzad/Carbonate/Desktop/BLM/jitfailure-ffc_element_1f442cc632b73b68f791e130d6896b530afbf673' for details

(/geode2/home/u010/apakzad/Carbonate/fenicsProject/fenicsproject) [apakzad@i26 BLM]$

What does the compile log file in /geode2/home/u010/apakzad/Carbonate/Desktop/BLM/jitfailure-ffc_element_1f442cc632b73b68f791e130d6896b530afbf673 say about the error?

Thanks! The error log told us this:

/bin/ld: /geode2/home/u010/apakzad/Carbonate/fenicsProject/fenicsproject/bin/../lib/gcc/x86_64-conda-linux-gnu/9.4.0/libstdc++.a(compatibility.o): unable to initialize decompress status for section .debug_info
/bin/ld: /geode2/home/u010/apakzad/Carbonate/fenicsProject/fenicsproject/bin/../lib/gcc/x86_64-conda-linux-gnu/9.4.0/libstdc++.a(compatibility.o): unable to initialize decompress status for section .debug_info
/bin/ld: /geode2/home/u010/apakzad/Carbonate/fenicsProject/fenicsproject/bin/../lib/gcc/x86_64-conda-linux-gnu/9.4.0/libstdc++.a(class_type_info.o): unable to initialize decompress status for section .debug_info
/bin/ld: /geode2/home/u010/apakzad/Carbonate/fenicsProject/fenicsproject/bin/../lib/gcc/x86_64-conda-linux-gnu/9.4.0/libstdc++.a(class_type_info.o): unable to initialize decompress status for section .debug_info
/geode2/home/u010/apakzad/Carbonate/fenicsProject/fenicsproject/bin/../lib/gcc/x86_64-conda-linux-gnu/9.4.0/libstdc++.a: error adding symbols: File format not recognized
collect2: error: ld returned 1 exit status

Just bumping the thread- we’re still running into this issue and unsure how to proceed.

Have you tried clearing the cache? e.g. dijitso clean

I have, and still find the same error message at the same step (the JIT compiling that occurs when I define the FE space.)

Not so easy then. It’s a strange error. Inspect the JIT directory more closely. What exactly it running? Why is it trying to link a static library? Dynamic linking is more common. Is there a library version mismatch, say between libstdc++ available on the system and that used by conda?

For HPC you might have less headaches using docker instead of conda.

I agree, Re: docker. I’ve had no hassles in the past. I’ll send this information along.

Same issue here on HPC when installing FEniCS with conda. Guess it may relate to the version of GCC, since GCC7.3 has no issue but GCC9.4 shows that issue. Any help is appreciated.

1 Like

I wonder if there’s an easy way to simply specify the version of GCC.

Likely to be the same or similar on other systems, Debian provides each compiler identified by version: gcc-9, gcc-10, gcc-11, etc. So you should be able to specify your preferred version with environment variables or cmake options.

CXX=gcc-11