Comment # 4 on bug 1200030 from
(In reply to Jan Engelhardt from comment #3)
> The error still reproduces (despite SUSE_ZNOW=0) when you invoke
> 
> LD_BIND_NOW=1 /usr/sbin/slurmd
> 
> for exactly the reason I have given. In detail:
> 
> 1. slurmd dlopens (in my case) /usr/lib64/slurm/select_cons_tres.so
> 2. `nm -D select_cons_tres.so` yields " U gres_ctld_job_build_details".
> 3. All symbols must be resolvable upon load. This is not the case for
> select_cons_tres, select_linear, and probably more plugins.
> 4. If a symbol is not resolve on load, dlopen will fail.
> 5. If LD_BIND_NOW/ZNOW=0 and dlopen() was invoked with RTLD_LAZY, then the
> program will abort when the attempt to resolve is made and no match is
> found. (Which can be never if the piece of code in question is never
> invoked.)
> 
> And slurmd relying on #5 is a bad idea.

I am full with you that relying on #5 is a bad idea, but this is how upstream
has implemented it. For example in order to find which mpi startup methods can
be used, there is the command
```
srun --mpi=list
```
which tries to load all mpi related shared libraries and only list the one
which it can load without error.


You are receiving this mail because: