[slurm-users] Slurm 19-05-4-1 and Centos8

Philip Kovacs pkdevel at yahoo.com
Sun Dec 8 23:28:44 UTC 2019


 There's a typo in there.  It's lazy not -lazy.   Try adding exactly this line just before the %configure:
# use -z lazy to allow dlopen with unresolved symbolsexport LDFLAGS="%{build_ldflags} -Wl,-z,lazy"                     <--- this should fix it%configure \
    On Sunday, December 8, 2019, 05:30:00 PM EST, Brian Andrus <toomuchit at gmail.com> wrote:  
 
  
There must be something more, because I am trying it with 
 
 
[root at node02 ~]# rpm -E "%{build_ldflags}"
 -Wl,-z,relro  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-z,-lazy
 
It builds (as expected) but slurmd will not start due to the same error. (Note, I have also tried LDFLAGS without --specs and without -Wl,-z-now with the same result)
 
 
[root at node02 ~]# slurmd
 slurmd: error: plugin_load_from_file: dlopen(/usr/lib64/slurm/select_cons_tres.so): /usr/lib64/slurm/select_cons_tres.so: undefined symbol: powercap_get_cluster_current_cap
 slurmd: error: Couldn't load specified plugin name for select/cons_tres: Dlopen of plugin file failed
 slurmd: fatal: Can't find plugin for select/cons_tres
 
 
So I still stand by my initial assessment of slurmd not running when built under CentOS8, even with lazy
 
 
I see others have had the same issue and even add to comments in the bugs, but no responses/resolution for this have been posted.
 
FWIW, I also see the issue with the latest slurm 20.05 pre1 code.
 
 
Brian Andrus
 

 
 On 12/5/2019 11:46 PM, von St. Vieth, Benedikt wrote:
  
 Hi again,

 
 
 I answered this question on Oct 28.  Simply use lazy binding as
required by slurm.  See a copy below of my Oct 28 response to your
original thread.Just adjust the %build section of the rpm spec to
ensure that -Wl,-z,-lazy appears at the end of LDFLAGS.  Problem
solved.
 
 
 Isn't this something that should end up in the upstream .spec, with a if/else condition for EL8?

At the moment we are able to use a only slightly modified version of the original spec to build our EL7 version.

best
benedikt

High-Performance Computing Systems
Juelich Supercomputing Centre

phone: +49 2461 61-9401
fax: +49 2461 61-6656
email: b.von.st.vieth at fz-juelich.de

-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
Forschungszentrum Juelich GmbH
52425 Juelich
Sitz der Gesellschaft: Juelich
Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498
Vorsitzender des Aufsichtsrats: MinDir Volker Rieke
Geschaeftsfuehrung: Prof. Dr.-Ing. Wolfgang Marquardt (Vorsitzender),
Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt,
Prof. Dr. Sebastian M. Schmidt
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------

 
 On 6. Dec 2019, at 08:23, Shane Kelly <Shane.Kelly at glasgow.ac.uk> wrote:

Hi Phillip,
	Thanks for taking the time to reply to me - while I did search
the list before posting, I did not find your response.

Many thanks for pointing out the solution - originally, and again for
me specifically. You, and people like you keep open-source software
moving forward.

Thanks again for your time, I do appreciate it.

Kind regards,
Shane Kelly



 
 I answered this question on Oct 28.  Simply use lazy binding as
required by slurm.  See a copy below of my Oct 28 response to your
original thread.Just adjust the %build section of the rpm spec to
ensure that -Wl,-z,-lazy appears at the end of LDFLAGS.  Problem
solved.
 
 You probably built slurm with immediate binding instead of lazy
binding.  Check the tags in the plugin for BIND_NOW: $ readelf
-d /usr/lib64/slurm/select_cons_tres.so | grep BIND_NOW If you find
that tag, relink slurm with lazy binding instead, i.e. do not use
any form of "now" linking, e.g. -Wl,-z,now.> Note that the linker
will honor the last directive seen on the command line, so simply
appending -Wl,-z,lazy to the end> should suffice.  
 
   On Thursday, December 5, 2019, 12:36:52 PM EST, Brian Andrus
<toomuchit at gmail.com> wrote:  

Tim claims it works...

I have compiled it, but when you try to run slurmd, it throws some 
errors and will not start. From a previous thread:

    While I can successfully build/run slurmctld, slurmd is failing
because ALL of the SelectType libraries are missing symbols. Example
from select_cons_tres.so: # slurmd
    slurmd: error: plugin_load_from_file:
dlopen(/usr/lib64/slurm/select_cons_tres.so): /usr/lib64/slurm/select_cons_tres.so:
undefined symbol: powercap_get_cluster_current_cap slurmd: error:
Couldn't load specified plugin name for select/cons_tres: Dlopen of
plugin file failed slurmd: fatal: Can't find plugin for
select/cons_tres 
    # nm -D /usr/lib64/slurm/libslurmfull.so|grep powercap_
    000000000010f7b8 T slurm_free_powercap_info_msg
    0000000000060060 T slurm_print_powercap_info_msg
  

I am in the process of getting my client to purchase support so I can 
have a ticket that gets attention :)

Brian

On 12/5/2019 4:17 AM, Shane Kelly wrote:
 
 Hi,
    Is there anybody who has actually managed to compile from rpm
on Centos 8?
    And if so, could they share their recipe, please?

Thanks in anticipation :-)

Shane Kelly  
 
  
 
  
   
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.schedmd.com/pipermail/slurm-users/attachments/20191208/3bd62d8b/attachment-0001.htm>


More information about the slurm-users mailing list