adding ADIOS and run-time crash of ParaView master

I compile all my dependencies with spack. When starting ParaView, it core-dumps.

WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
E0000 00:00:1762967088.891296 88826 descriptor_database.cc:633] File already exists in database:
F0000 00:00:1762967088.891487 88826 descriptor.cc:2236] Check failed: GeneratedDatabase()->Add(encoded_file_descriptor, size)
*** Check failure stack trace: ***
Aborted (core dumped)

I have traced the problem to ADIOS, which has its own protobuf package ^protobuf@3.28, which has its own abseil-cpp package ^abseil-cpp@20240722.0

So, I thought, easy, I just need to spack load protobuf; and recompile with VTK_MODULE_USE_EXTERNAL_ParaView_protobuf:BOOL=ON
it fails to compile because it does not find the absl includes.
I modified Remoting/ServerManager/CMakeLists.txtto add the following line:
target_include_directories(RemotingServerManager PUBLIC
/local/apps/spack-latest/opt/spack/linux-skylake/abseil-cpp-20240722.0-fmr7mibaengrtzutl5p2e3frbfxhoxri/include)

and I can compile and run successfully.

This is a hack, and I’d like to have something much cleaner to enable me to compile and run with ADIOS.
Any suggestion? TIA

That’s a bit strange. I’ve compiled the Spack ParaView module with the adios dependency, and it worked OK. That seems to set up the libraries/includes in such a way that it finds whatever abseil headers it needs, and I don’t see anything in the Spack package that directly access the abseil module.

If compiling the ParaView module in Spack isn’t feasible, it might be worth checking to find any differences between your compile configuration and whatever Spack sets up.

If protobuf is generating absl/ include paths, its targets or APIs need to make sure the relevant absl:: target is around. protobuf 3.28 does look pretty old (released in Aug 2024, but of the v3.* release line). The latest is v33. Can you try a newer protobuf?

this discussion prompted me to actually look at which package was pulling in protobuf. And the answer is adios2 which includes mgard by default. So I recompiled adios without it, spack install adios2+hdf5+libcatalyst+mpi+python~mgard, reconfigured my ParaView build, and everything works again.