<div dir="ltr">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:<div><br></div><div>/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<br>/usr/bin/ld: ../cons_common/.libs/libcons_common.a(cons_common.o): in function `select_p_job_fini':<br>/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<br>collect2: error: ld returned 1 exit status<br><br></div><div>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.</div><div><br></div><div>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).</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Feb 25, 2020 at 11:57 AM Tim Wickberg <<a href="mailto:tim@schedmd.com">tim@schedmd.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">After 9 months of development and testing we are pleased to announce the <br>
availability of Slurm version 20.02.0!<br>
<br>
Downloads are available from <a href="https://www.schedmd.com/downloads.php" rel="noreferrer" target="_blank">https://www.schedmd.com/downloads.php</a>.<br>
<br>
Highlights of the 20.02 release include:<br>
<br>
- A "configless" method of deploying Slurm within the cluster, in which <br>
the slurmd and user commands can use DNS SRV records to locate the <br>
slurmctld host and automatically download the relevant configuration files.<br>
<br>
- A new "auth/jwt" authentication mechanism using JWT, which can help <br>
integrate untrusted external systems into the cluster.<br>
<br>
- A new "slurmrestd" command/daemon which translates a new Slurm REST <br>
API into the underlying libslurm calls.<br>
<br>
- Packaging fixes for RHEL8 distributions.<br>
<br>
- Significant performance improvements to the backfill scheduler, as <br>
well as to string construction and processing.<br>
<br>
Thank you to all customers, partners, and community members who <br>
contributed to this release.<br>
<br>
As with past releases, the documentation available at <br>
<a href="https://slurm.schedmd.com" rel="noreferrer" target="_blank">https://slurm.schedmd.com</a> has been updated to the 20.02 release. Past <br>
versions are available in the archive. This release also marks the end <br>
of support for the 18.08 release. The 19.05 release will remain <br>
supported up until the 20.11 release in November, but will not see as <br>
frequent updates, and bug-fixes will be targeted for the 20.02 <br>
maintenance releases going forward.<br>
<br>
-- <br>
Tim Wickberg<br>
Chief Technology Officer, SchedMD<br>
Commercial Slurm Development and Support<br>
<br>
</blockquote></div>