Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

slurm: 17.11.9-2 -> 18.08.0-1 #45925

Merged
merged 3 commits into from Sep 9, 2018
Merged

slurm: 17.11.9-2 -> 18.08.0-1 #45925

merged 3 commits into from Sep 9, 2018

Conversation

markuskowa
Copy link
Member

@markuskowa markuskowa commented Sep 2, 2018

Motivation for this change

Update slurm and adapt nixos module.

Things done
  • Update slurm
  • Update pySlurm to 20180811
  • Add option clusterName to module.
    slurm 18.08 requires ClusterName to be set.
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Fits CONTRIBUTING.md.

@markuskowa
Copy link
Member Author

@GrahamcOfBorg test slurm

@GrahamcOfBorg
Copy link

Success on x86_64-linux (full log)

Attempted: slurm

Partial log (click to expand)

gzipping man pages under /nix/store/sm0kzp4zmd2b0nsn9azq333rifc3nl5j-slurm-18.08.0-1/share/man/
strip is /nix/store/h0lbngpv6ln56hjj59i6l77vxq25flbz-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/sm0kzp4zmd2b0nsn9azq333rifc3nl5j-slurm-18.08.0-1/lib  /nix/store/sm0kzp4zmd2b0nsn9azq333rifc3nl5j-slurm-18.08.0-1/bin  /nix/store/sm0kzp4zmd2b0nsn9azq333rifc3nl5j-slurm-18.08.0-1/sbin
patching script interpreter paths in /nix/store/sm0kzp4zmd2b0nsn9azq333rifc3nl5j-slurm-18.08.0-1
checking for references to /build in /nix/store/sm0kzp4zmd2b0nsn9azq333rifc3nl5j-slurm-18.08.0-1...
moving /nix/store/sm0kzp4zmd2b0nsn9azq333rifc3nl5j-slurm-18.08.0-1/sbin/* to /nix/store/sm0kzp4zmd2b0nsn9azq333rifc3nl5j-slurm-18.08.0-1/bin
shrinking RPATHs of ELF executables and libraries in /nix/store/5d49qj34yjrm8lfycig0swg3yvjja29m-slurm-18.08.0-1-dev
strip is /nix/store/h0lbngpv6ln56hjj59i6l77vxq25flbz-binutils-2.30/bin/strip
patching script interpreter paths in /nix/store/5d49qj34yjrm8lfycig0swg3yvjja29m-slurm-18.08.0-1-dev
checking for references to /build in /nix/store/5d49qj34yjrm8lfycig0swg3yvjja29m-slurm-18.08.0-1-dev...

@GrahamcOfBorg
Copy link

Success on x86_64-linux (full log)

Attempted: tests.slurm

Partial log (click to expand)

3 out of 3 tests succeeded
test script finished in 14.35s
cleaning up
killing node2 (pid 600)
killing node1 (pid 612)
killing submit (pid 624)
killing node3 (pid 636)
killing control (pid 648)
vde_switch: EOF on stdin, cleaning up and exiting
vde_switch: Could not remove ctl dir '/build/vde1.ctl': Directory not empty

@GrahamcOfBorg
Copy link

Success on aarch64-linux (full log)

Attempted: slurm

Partial log (click to expand)

strip is /nix/store/y4ymnvgxygpq05h03kyzbj572zmh6zla-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/v3xik0rhnpdx8qhnm836d0lfvvnz7c7j-slurm-18.08.0-1/lib  /nix/store/v3xik0rhnpdx8qhnm836d0lfvvnz7c7j-slurm-18.08.0-1/bin  /nix/store/v3xik0rhnpdx8qhnm836d0lfvvnz7c7j-slurm-18.08.0-1/sbin
patching script interpreter paths in /nix/store/v3xik0rhnpdx8qhnm836d0lfvvnz7c7j-slurm-18.08.0-1
checking for references to /build in /nix/store/v3xik0rhnpdx8qhnm836d0lfvvnz7c7j-slurm-18.08.0-1...
moving /nix/store/v3xik0rhnpdx8qhnm836d0lfvvnz7c7j-slurm-18.08.0-1/sbin/* to /nix/store/v3xik0rhnpdx8qhnm836d0lfvvnz7c7j-slurm-18.08.0-1/bin
shrinking RPATHs of ELF executables and libraries in /nix/store/lvyqbbzjsikpzz9i71dscg04wf4ffh09-slurm-18.08.0-1-dev
strip is /nix/store/y4ymnvgxygpq05h03kyzbj572zmh6zla-binutils-2.30/bin/strip
patching script interpreter paths in /nix/store/lvyqbbzjsikpzz9i71dscg04wf4ffh09-slurm-18.08.0-1-dev
checking for references to /build in /nix/store/lvyqbbzjsikpzz9i71dscg04wf4ffh09-slurm-18.08.0-1-dev...
/nix/store/v3xik0rhnpdx8qhnm836d0lfvvnz7c7j-slurm-18.08.0-1

@GrahamcOfBorg
Copy link

Success on aarch64-linux (full log)

Attempted: tests.slurm

Partial log (click to expand)

test script finished in 29.67s
cleaning up
killing node2 (pid 631)
killing node1 (pid 643)
killing submit (pid 656)
killing control (pid 670)
killing node3 (pid 683)
vde_switch: EOF on stdin, cleaning up and exiting
vde_switch: Could not remove ctl dir '/build/vde1.ctl': Directory not empty
/nix/store/5jrm5cm52yvdll37n7iii5iwwpfhmd8d-vm-test-run-slurm

@xeji
Copy link
Contributor

xeji commented Sep 2, 2018

@GrahamcOfBorg build python27Packages.pyslurm python36Packages.pyslurm

@GrahamcOfBorg
Copy link

No attempt on x86_64-darwin (full log)

The following builds were skipped because they don't evaluate on x86_64-darwin: python27Packages.pyslurm, python36Packages.pyslurm

Partial log (click to expand)


a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.


@GrahamcOfBorg
Copy link

Failure on x86_64-linux (full log)

Attempted: python27Packages.pyslurm, python36Packages.pyslurm

Partial log (click to expand)

INFO:
INFO: Cython version 0.28.3 installed
INFO:
INFO: Clean - checking for objects to clean
INFO: Clean - completed
INFO: Build - Found Slurm header in /nix/store/5d49qj34yjrm8lfycig0swg3yvjja29m-slurm-18.08.0-1-dev/include
INFO: Build - Detected Slurm version - 0x120800 (18.08.00)
ERROR: Build - Incorrect slurm version detected, require Slurm-17.11.00 to slurm-17.11.07
builder for '/nix/store/f8mxrjr04g89z2gqvdhznmdxmx6jd329-python3.6-pyslurm-20180604.drv' failed with exit code 1
error: build of '/nix/store/4g55liskbgins3kwz3c15jipqkbha0p6-python2.7-pyslurm-20180604.drv', '/nix/store/f8mxrjr04g89z2gqvdhznmdxmx6jd329-python3.6-pyslurm-20180604.drv' failed

@xeji
Copy link
Contributor

xeji commented Sep 2, 2018

Looks like pyslurm needs to be updated as well.

@GrahamcOfBorg
Copy link

Failure on aarch64-linux (full log)

Attempted: python27Packages.pyslurm, python36Packages.pyslurm

Partial log (click to expand)

INFO:
INFO: Cython version 0.28.3 installed
INFO:
INFO: Clean - checking for objects to clean
INFO: Clean - completed
INFO: Build - Found Slurm header in /nix/store/lvyqbbzjsikpzz9i71dscg04wf4ffh09-slurm-18.08.0-1-dev/include
INFO: Build - Detected Slurm version - 0x120800 (18.08.00)
ERROR: Build - Incorrect slurm version detected, require Slurm-17.11.00 to slurm-17.11.07
builder for '/nix/store/6w3rd43pjg1m3g9w76r1zkcrn2wr035l-python3.6-pyslurm-20180604.drv' failed with exit code 1
error: build of '/nix/store/1s64vk49fl70x8z40k3mylzydprv8n0a-python2.7-pyslurm-20180604.drv', '/nix/store/6w3rd43pjg1m3g9w76r1zkcrn2wr035l-python3.6-pyslurm-20180604.drv' failed

@markuskowa
Copy link
Member Author

pySlurm seems to be very particular about the slurm version. Looks like this update has to wait then until pySlurm is updated.

@markuskowa markuskowa changed the title slurm: 17.11.9-2 -> 18.08.0-1 [WIP] slurm: 17.11.9-2 -> 18.08.0-1 Sep 2, 2018
@xeji
Copy link
Contributor

xeji commented Sep 2, 2018

Yes, unfortunately pyslurm upstream only supports slurm 17.11.9

@xeji xeji added the 2.status: wait-for-upstream Waiting for upstream fix (or their other action). label Sep 2, 2018
@veprbl
Copy link
Member

veprbl commented Sep 3, 2018

I think that pyslurm pretending to not support new slurm versions is often for no reason. Looking at commits [1] I see no real ABI changes, but bumps of max version every time with no real change to the code. I wonder if we could just drop this check.

[1] https://github.com/PySlurm/pyslurm/commits/master

@markuskowa
Copy link
Member Author

markuskowa commented Sep 4, 2018

@veprbl I agree. The choice in pyslurm is not clear to me. However, when I remove the version check, I get an error. It seems not to be compatible. Bumping the pyslurm version to the latest git revision, does also not work.

warning: pyslurm/pyslurm.pyx:59:4: 'id_t' redeclared
warning: pyslurm/pyslurm.pyx:62:10: 'PRIO_PROCESS' redeclared
warning: pyslurm/pyslurm.pyx:67:4: 'const_char_ptr' redeclared
warning: pyslurm/pyslurm.pyx:68:4: 'const_char_pptr' redeclared
warning: pyslurm/pyslurm.pyx:71:13: 'ALPS_CRAY_SYSTEM' redeclared
warning: pyslurm/slurm.pxd:15:4: 'size_t' redeclared
warning: pyslurm/slurm.pxd:241:8: 'WAIT_POWER_NOT_AVAIL' redeclared
warning: pyslurm/slurm.pxd:242:8: 'WAIT_POWER_RESERVED' redeclared
warning: pyslurm/slurm.pxd:1752:4: 'dynamic_plugin_data_t' redeclared
warning: pyslurm/slurm.pxd:1754:4: 'bitstr_t' redeclared
warning: pyslurm/slurm.pxd:2416:4: 'slurmdb_assoc_rec_t' redeclared
warning: pyslurm/slurm.pxd:2433:4: 'slurmdb_cluster_rec_t' redeclared
error: command 'gcc' failed with exit status 1

@xeji
Copy link
Contributor

xeji commented Sep 4, 2018 via email

@markuskowa
Copy link
Member Author

PySlurm/pyslurm#126

@giovtorres
Copy link

Hi, I help to maintain PySlurm. The versioning could certainly be improved. The version checks are sanity checks to make sure that PySlurm is compiled against the right version of Slurm. This was necessary a few years back when there would be changes to slurm.h in the middle of branch, say the .5 micro version, and newer versions of PySlurm would then break for micro versions .1 thru .4. Over the last 2 major/minor versions, however, I've noticed the API has stabilized quite a bit and this has become unnecessary, but that's not to say it can't happen again.

Switching between major or minor versions almost always requires updates to PySlurm that match the changes to the slurm headers and any code in the API that is wrapped or referenced by PySlurm.

I updated the test container to 18.08.0 over the weekend and I've started to update PySlurm for 18.08.0-1.

@markuskowa
Copy link
Member Author

@giovtorres Thanks!

slurm 18.08 requires ClusterName to be set
(set to default).
@xeji
Copy link
Contributor

xeji commented Sep 8, 2018

There's still a merge conflict

@markuskowa
Copy link
Member Author

The conflict is resolved. I did a rebase. Just added a new version of pySlurm. It should build now properly.

@markuskowa
Copy link
Member Author

@GrahamcOfBorg build python37Packages.pyslurm

@xeji
Copy link
Contributor

xeji commented Sep 8, 2018

don't have python37 yet 😄
@GrahamcOfBorg build python36Packages.pyslurm

@GrahamcOfBorg
Copy link

No attempt on x86_64-darwin (full log)

The following builds were skipped because they don't evaluate on x86_64-darwin: python36Packages.pyslurm

Partial log (click to expand)


a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.


@markuskowa
Copy link
Member Author

We actually do: /nix/store/q38ddqq7nz82lv6z0arl5wdk9s3w3j96-python3-3.7.0
though it's not the default yet

@GrahamcOfBorg
Copy link

Success on x86_64-linux (full log)

Attempted: python36Packages.pyslurm

Partial log (click to expand)

Successfully installed pyslurm-18.8.0.1
/build/source
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/l0ifdjd7xrn0h5vqy5njpyhdy79i0awh-python3.6-pyslurm-20180908
shrinking /nix/store/l0ifdjd7xrn0h5vqy5njpyhdy79i0awh-python3.6-pyslurm-20180908/lib/python3.6/site-packages/pyslurm/pyslurm.cpython-36m-x86_64-linux-gnu.so
strip is /nix/store/h0lbngpv6ln56hjj59i6l77vxq25flbz-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/l0ifdjd7xrn0h5vqy5njpyhdy79i0awh-python3.6-pyslurm-20180908/lib
patching script interpreter paths in /nix/store/l0ifdjd7xrn0h5vqy5njpyhdy79i0awh-python3.6-pyslurm-20180908
checking for references to /build in /nix/store/l0ifdjd7xrn0h5vqy5njpyhdy79i0awh-python3.6-pyslurm-20180908...
/nix/store/l0ifdjd7xrn0h5vqy5njpyhdy79i0awh-python3.6-pyslurm-20180908

@xeji xeji removed the 2.status: wait-for-upstream Waiting for upstream fix (or their other action). label Sep 8, 2018
@GrahamcOfBorg
Copy link

Success on aarch64-linux (full log)

Attempted: python36Packages.pyslurm

Partial log (click to expand)

Successfully installed pyslurm-18.8.0.1
/build/source
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/n05g43f2bha5iqga5vx5vaksralvyr1i-python3.6-pyslurm-20180908
shrinking /nix/store/n05g43f2bha5iqga5vx5vaksralvyr1i-python3.6-pyslurm-20180908/lib/python3.6/site-packages/pyslurm/pyslurm.cpython-36m-aarch64-linux-gnu.so
strip is /nix/store/y4ymnvgxygpq05h03kyzbj572zmh6zla-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/n05g43f2bha5iqga5vx5vaksralvyr1i-python3.6-pyslurm-20180908/lib
patching script interpreter paths in /nix/store/n05g43f2bha5iqga5vx5vaksralvyr1i-python3.6-pyslurm-20180908
checking for references to /build in /nix/store/n05g43f2bha5iqga5vx5vaksralvyr1i-python3.6-pyslurm-20180908...
/nix/store/n05g43f2bha5iqga5vx5vaksralvyr1i-python3.6-pyslurm-20180908

@GrahamcOfBorg
Copy link

Failure on x86_64-linux (full log)

Attempted: python37Packages.pyslurm

Partial log (click to expand)

ALL DONE (1/4)
ALL DONE (2/4)
FAILED (3/4)
ALL DONE (3/4)
ALL DONE (0/4)
Errors for shards 3
ALL DONE
builder for '/nix/store/qp9kcqj18id2yv7s5b5f8d8y4pgp77i5-python3.7-Cython-0.28.3.drv' failed with exit code 1
cannot build derivation '/nix/store/qxg5pri882q5g2r6qd8q15zhs4916w7h-python3.7-pyslurm-20180908.drv': 1 dependencies couldn't be built
error: build of '/nix/store/qxg5pri882q5g2r6qd8q15zhs4916w7h-python3.7-pyslurm-20180908.drv' failed

@GrahamcOfBorg
Copy link

Timed out, unknown build status on aarch64-linux (full log)

Attempted: python37Packages.pyslurm

Partial log (click to expand)

    1/0
ZeroDivisionError: integer division or modulo by zero
Exception ignored in: <yield_from_pep380.test_broken_getattr_handling.<locals>.Broken object at 0xffff7457af98>
Traceback (most recent call last):
  File "tests/run/yield_from_pep380.pyx", line 574, in yield_from_pep380.test_broken_getattr_handling.Broken.__getattr__
    1/0
ZeroDivisionError: integer division or modulo by zero
building of '/nix/store/m0hj1w7m861l8zh0p92ac4kcll7vz7n4-python3.7-Cython-0.28.3.drv' timed out after 3600 seconds
cannot build derivation '/nix/store/2p138wgpfhlzd6k2nkkyx5yirllnxkm6-python3.7-pyslurm-20180908.drv': 1 dependencies couldn't be built
error: build of '/nix/store/2p138wgpfhlzd6k2nkkyx5yirllnxkm6-python3.7-pyslurm-20180908.drv' failed

@xeji
Copy link
Contributor

xeji commented Sep 9, 2018

Is this ready to merge? (If you like to work on python37 support, that should probably be a separate PR)

@markuskowa
Copy link
Member Author

markuskowa commented Sep 9, 2018 via email

@xeji xeji changed the title [WIP] slurm: 17.11.9-2 -> 18.08.0-1 slurm: 17.11.9-2 -> 18.08.0-1 Sep 9, 2018
@xeji xeji merged commit 17c51ef into NixOS:master Sep 9, 2018
@markuskowa markuskowa deleted the ompi-up branch September 11, 2018 22:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants