Giter VIP home page Giter VIP logo

Comments (19)

siserte avatar siserte commented on June 24, 2024 1

I do not think so, because there is no previous installation of those packages in the system.

Thank you.

from flux-core.

garlick avatar garlick commented on June 24, 2024

Is libzmq built --with-libsodium to get CURVE security enabled?

I'm a little confused because that czmq assertion should not happen unless czmq was built with CURVE support, since it is inside #if defined (ZMQ_CURVE_SERVER) and I think czmq detects whether libzmq has CURVE support at build time and sets that. So I would expect that libzmq has it. But maybe a different libzmq is being picked up at run time that doesn't have CURVE support or is too old to work with that version of czmq? (I see it is packaged for SLES 15)

Wasn't SLES 12-SP2 end of life some time ago? That's not necessarily a problem but the potential for running with very old packages in combinations we haven't tested recently is a bit concerning.

from flux-core.

siserte avatar siserte commented on June 24, 2024

I compiled it with:

./configure --prefix=$HOME/apps/install/libzmq --with-libsodium=$HOME/apps/install/libsodium

You're right. We are upgrading the cluster, but meanwhile SLES 12 is what we have.

Thanks.

from flux-core.

garlick avatar garlick commented on June 24, 2024

Thanks - so no possibility of flux picking up older/differently configured versions of libzmq or libsodium at runtime? (like from system packages?)

from flux-core.

garlick avatar garlick commented on June 24, 2024

I'm scratching my head on this one. How far do you get if you run make check in the flux-core tree? I imagine you won't get too far but I'm wondering if some of the early unit tests might fail in ways that could provide insight?

from flux-core.

siserte avatar siserte commented on June 24, 2024

I reached here:

============================================================================
Testsuite summary for flux-core 0.51.0
============================================================================
# TOTAL: 328
# PASS:  326
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 2
============================================================================
See src/broker/test-suite.log
============================================================================
Makefile:1249: recipe for target 'test-suite.log' failed
make[4]: *** [test-suite.log] Error 1
make[4]: Leaving directory '/gpfs/home/bsc21/bsc21334/apps/source/flux-core/src/broker'
Makefile:1355: recipe for target 'check-TESTS' failed
make[3]: *** [check-TESTS] Error 2
make[3]: Leaving directory '/gpfs/home/bsc21/bsc21334/apps/source/flux-core/src/broker'
Makefile:1424: recipe for target 'check-am' failed
make[2]: *** [check-am] Error 2
make[2]: Leaving directory '/gpfs/home/bsc21/bsc21334/apps/source/flux-core/src/broker'
Makefile:516: recipe for target 'check-recursive' failed
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory '/gpfs/home/bsc21/bsc21334/apps/source/flux-core/src'
Makefile:594: recipe for target 'check-recursive' failed
make: *** [check-recursive] Error 1

Thanks

from flux-core.

grondo avatar grondo commented on June 24, 2024

Can you try

$ cd src/broker
$ make check

and share the full output? Or if you see which specific test is failing, run it by hand? E.g.:

$ cd src/broker
$ ./test_overlay.t

(if test_overlay.t were the failing test or tests)

from flux-core.

siserte avatar siserte commented on June 24, 2024

The same error obtained with flux start:

$ ./test_overlay.t
# info: test log message
# created single-0: rank 0 size 1 uuid 92002373-616f-4fe9-8014-5fb58316ad69
ok 1 - single-0: overlay_set_topology size=1 rank=0 works
ok 2 - single-0: overlay_get_size returns 1
ok 3 - single-0: overlay_get_rank returns 0
ok 4 - (null): overlay_get_default_critical_ranks works
ok 5 - 0: overlay_get_default_critical_ranks returned (null)
ok 6 - single-0: overlay_register_attrs works
ok 7 - single-0: tbon.parent-endpoint=NULL
ok 8 - single-0: rank=0
ok 9 - single-0: size=1
ok 10 - single-0: tbon.level=0
ok 11 - single-0: tbon.maxlevel=0
ok 12 - single-0: tbon.descendants=0
ok 13 - single-0: overlay_get_parent_uri returned NULL
ok 14 - single-0: overlay_get_bind_uri returned NULL
ok 15 - single-0: overlay_sendmsg event where=DOWN succeeds
ok 16 - single-0: overlay_sendmsg event where=UP fails with EHOSTUNREACH
ok 17 - single-0: overlay_sendmsg response where=DOWN fails with EHOSTUNREACH
ok 18 - single-0: overlay_sendmsg response where=ANY fails with EHOSTUNREACH
ok 19 - single-0: overlay_sendmsg response where=UP fails with EHOSTUNREACH
ok 20 - single-0: overlay_sendmsg request where=DOWN fails with EHOSTUNREACH
ok 21 - single-0: overlay_sendmsg request where=ANY fails with EHOSTUNREACH
ok 22 - single-0: overlay_sendmsg request where=UP fails with EHOSTUNREACH
ok 23 - single-0: overlay_get_child_peer_count returns 0
# created trio-0: rank 0 size 3 uuid f4c5cca5-a678-4b4b-b1f0-75c1d05dab90
ok 24 - trio-0: overlay_set_topology works
ok 25 - trio-0: overlay_cert_pubkey works
test_overlay.t: src/zsock_option.inc:2200: zsock_set_curve_server: Assertion `rc == 0 || zmq_errno () == (156384712 + 53)' failed.
Aborted

from flux-core.

grondo avatar grondo commented on June 24, 2024

Thanks, unfortunately that didn't give us any hints, and I'm not finding anyone else hitting that particular error with a google search... Perhaps @garlick will have another idea...

from flux-core.

grondo avatar grondo commented on June 24, 2024

Oh, maybe you could try running the unit tests of libzmq and czmq from your original build directories and make sure they pass.

from flux-core.

garlick avatar garlick commented on June 24, 2024

That's a good idea. FWIW I ran the CURVE related tests in libzmq manually and here ithe output (executables are in the tests subdir)

 garlick@system76-pc:~/other/libzmq/tests$ ./test_sodium
tests/test_sodium.cpp:80:test__zmq_curve_keypair__always__success:PASS
tests/test_sodium.cpp:82:test__zmq_curve_public__valid__success:PASS
tests/test_sodium.cpp:83:test__zmq_curve_public__invalid__failure_short:PASS
tests/test_sodium.cpp:84:test__zmq_curve_public__invalid__failure_long:PASS

-----------------------
4 Tests 0 Failures 0 Ignored 
OK
 garlick@system76-pc:~/other/libzmq/tests$ ./test_security_curve
tests/test_security_curve.cpp:539:test_curve_security_with_valid_credentials:PASS
Ignored event (skipping any further events): 800 (err = 32 == Broken pipe)
count of ZMQ_EVENT_HANDSHAKE_FAILED_PROTOCOL/ZMQ_PROTOCOL_ERROR_ZMTP_CRYPTOGRAPHIC events: 0
tests/test_security_curve.cpp:540:test_null_server_key:PASS
count of ZMQ_EVENT_HANDSHAKE_FAILED_PROTOCOL/ZMQ_PROTOCOL_ERROR_ZMTP_CRYPTOGRAPHIC events: 8
tests/test_security_curve.cpp:541:test_null_client_public_key:PASS
count of ZMQ_EVENT_HANDSHAKE_FAILED_PROTOCOL/ZMQ_PROTOCOL_ERROR_ZMTP_CRYPTOGRAPHIC events: 7
tests/test_security_curve.cpp:542:test_null_client_secret_key:PASS
tests/test_security_curve.cpp:543:test_curve_security_with_bogus_client_credentials:PASS
tests/test_security_curve.cpp:544:test_curve_security_with_null_client_credentials:PASS
tests/test_security_curve.cpp:545:test_curve_security_with_plain_client_credentials:PASS
tests/test_security_curve.cpp:546:test_curve_security_unauthenticated_message:PASS
tests/test_security_curve.cpp:549:test_curve_security_invalid_hello_wrong_length:PASS
tests/test_security_curve.cpp:550:test_curve_security_invalid_hello_command_name:PASS
tests/test_security_curve.cpp:551:test_curve_security_invalid_hello_version:PASS
tests/test_security_curve.cpp:552:test_curve_security_invalid_initiate_wrong_length:PASS
tests/test_security_curve.cpp:553:test_curve_security_invalid_initiate_command_name:PASS
tests/test_security_curve.cpp:554:test_curve_security_invalid_initiate_command_encrypted_cookie:PASS
tests/test_security_curve.cpp:555:test_curve_security_invalid_initiate_command_encrypted_content:PASS
test_curve_security_with_valid_credentials (large routing id)

-----------------------
15 Tests 0 Failures 0 Ignored 
OK

from flux-core.

siserte avatar siserte commented on June 24, 2024

This is what I got:

Testsuite summary for zeromq 4.3.5
============================================================================
# TOTAL: 131
# PASS:  115
# SKIP:  16
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0


$ ./test_sodium
tests/test_sodium.cpp:80:test__zmq_curve_keypair__always__success:PASS
tests/test_sodium.cpp:82:test__zmq_curve_public__valid__success:PASS
tests/test_sodium.cpp:83:test__zmq_curve_public__invalid__failure_short:PASS
tests/test_sodium.cpp:84:test__zmq_curve_public__invalid__failure_long:PASS

4 Tests 0 Failures 0 Ignored
OK

But I do not have the CURVE tests... Am I missing something?

Thank you.

from flux-core.

grondo avatar grondo commented on June 24, 2024

Edit: deleted nonsensical comment, I see you had the libsodium tests but were asking about curve...

from flux-core.

garlick avatar garlick commented on June 24, 2024

The Makefile.am conditionally compiles the curve test executable so maybe something went wrong at configure time?

src/platform.hpp contains some of the configured results. For example I have:

/* Using curve encryption */
#define ZMQ_HAVE_CURVE 1
[snip]
/* Using libsodium for curve encryption */
#define ZMQ_USE_LIBSODIUM 1

from flux-core.

grondo avatar grondo commented on June 24, 2024

Ah, I just noticed that your tests report you are on zeromq version 4.3.5, but the latest tagged version is 4.3.4. Are you building from the development HEAD?

When I build from libzmq master I get: "CURVE provided by tweetnacl" and then:

$ ./test_security_curve 
CURVE encryption not installed, skipping test

Perhaps you can try using the v4.3.4 tag and see if that works better? It seems to configure with "CURVE provided by libsodium" for me...

from flux-core.

grondo avatar grondo commented on June 24, 2024

If I actually configure with --with-libsodium as I suggested, then I get " Using libsodium for CURVE security", so the issue is probably just missing --with-libsodium on your ./configure as suggested by @garlick. (And sorry about the noise)

from flux-core.

siserte avatar siserte commented on June 24, 2024

This is weird.

I checked out to tag V4.3.4 and configured with libsodium.

bsc21334@login2 ~/apps/source/libzmq[(HEAD detached at v4.3.4)*]$ ./configure --prefix=$HOME/apps/install/libzmq --with-libsodium=$HOME/apps/install/libsodium > m.o
configure: WARNING: You are building an unreleased version of 0MQ and asciidoc or xmlto are not installed.
configure: WARNING: Documentation will not be built and manual pages will not be installed.
configure: WARNING: Cannot find libbsd
bsc21334@login2 ~/apps/source/libzmq[(HEAD detached at v4.3.4)*]$ grep -niI sodium m.o

Apart from the warnings, there is no occurrence of "sodium"in the configure output.

from flux-core.

grondo avatar grondo commented on June 24, 2024

grep sodium config.log returns nothing? that seems very odd.

from flux-core.

garlick avatar garlick commented on June 24, 2024

Does --with-libsodium accept a =PATH argument? It looks to me like it is a yes/no option.

from flux-core.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.