Did you reuse the 20.02 select/cons_res/Makefile.{in,am} in your plugin's source? You probably will have to re-model your plugin after the select/cray_aries plugin if you need to override those two functions (it also defines its own select_p_job_begin() and doesn't link against libcons_common.la). Naturally, omitting libcons_common.a from your plugin doesn't help if you use other functions defined in select/common.
> On Feb 26, 2020, at 00:48 , Dean Schulze <dean.w.schu...@gmail.com> wrote: > > There was a major refactoring between the 19.05 and 20.02 code. Most of the > callbacks for select plugins were moved to cons_common. I have a plugin for > 19.05 that depends on two of those callbacks: select_p_job_begin() and > select_p_job_fini(). My plugin is a copy of the select/cons_res plugin, but > when I implement those functions in my plugin I get this error because those > functions already exist in cons_common: > > /home/dean/src/slurm.versions/slurm-20.02/slurm-20.02.0/src/plugins/select/cons_common/cons_common.c:1134: > multiple definition of `select_p_job_begin'; > .libs/select_liqid_cons_res.o:/home/dean/src/slurm.versions/slurm-20.02/slurm-20.02.0/src/plugins/select/liqid_cons_res/select_liqid_cons_res.c:559: > first defined here > /usr/bin/ld: ../cons_common/.libs/libcons_common.a(cons_common.o): in > function `select_p_job_fini': > /home/dean/src/slurm.versions/slurm-20.02/slurm-20.02.0/src/plugins/select/cons_common/cons_common.c:1561: > multiple definition of `select_p_job_fini'; > .libs/select_liqid_cons_res.o:/home/dean/src/slurm.versions/slurm-20.02/slurm-20.02.0/src/plugins/select/liqid_cons_res/select_liqid_cons_res.c:607: > first defined here > collect2: error: ld returned 1 exit status > > Since only one select plugin can be used at a time (determined in slurm.conf) > I could put my code in the cons_common implementation of those functions, but > if I ever switch plugins then my plugin code will get executed when it > shouldn't be. > > How can I "override" those callbacks in my own plugin? This isn't Java (but > it sure looks like the slurm code tries to do Java in C). > > > On Tue, Feb 25, 2020 at 11:57 AM Tim Wickberg <t...@schedmd.com> wrote: > After 9 months of development and testing we are pleased to announce the > availability of Slurm version 20.02.0! > > Downloads are available from https://www.schedmd.com/downloads.php. > > Highlights of the 20.02 release include: > > - A "configless" method of deploying Slurm within the cluster, in which > the slurmd and user commands can use DNS SRV records to locate the > slurmctld host and automatically download the relevant configuration files. > > - A new "auth/jwt" authentication mechanism using JWT, which can help > integrate untrusted external systems into the cluster. > > - A new "slurmrestd" command/daemon which translates a new Slurm REST > API into the underlying libslurm calls. > > - Packaging fixes for RHEL8 distributions. > > - Significant performance improvements to the backfill scheduler, as > well as to string construction and processing. > > Thank you to all customers, partners, and community members who > contributed to this release. > > As with past releases, the documentation available at > https://slurm.schedmd.com has been updated to the 20.02 release. Past > versions are available in the archive. This release also marks the end > of support for the 18.08 release. The 19.05 release will remain > supported up until the 20.11 release in November, but will not see as > frequent updates, and bug-fixes will be targeted for the 20.02 > maintenance releases going forward. > > -- > Tim Wickberg > Chief Technology Officer, SchedMD > Commercial Slurm Development and Support >