Skip to content

Release/2.7.5 #30

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

Merged
merged 96 commits into from
Apr 9, 2024
Merged

Release/2.7.5 #30

merged 96 commits into from
Apr 9, 2024

Conversation

jholloc
Copy link
Collaborator

@jholloc jholloc commented Mar 21, 2024

Addressing issues with SSL. Also adding running of UDA integration tests to CI, including running tests with SSL authenticated client/server.

Fixing issues:

@jholloc
Copy link
Collaborator Author

jholloc commented Mar 25, 2024

@SimonPinches just pushed the same fix for server2.

@SimonPinches
Copy link
Collaborator

Thanks @jholloc - all works now :-)

@SimonPinches
Copy link
Collaborator

Compilation fails with Intel compilers (see IMAS-5014):

[130/337] Building CXX object source/client2/CMakeFiles/client2-objects.dir/client.cpp.o
FAILED: source/client2/CMakeFiles/client2-objects.dir/client.cpp.o
/work/imas/opt/EasyBuild/software/iccifort/2020.4.304/compilers_and_libraries_2020.4.304/linux/bin/intel64/icpc -DA64 -DFMT_LOCALE -DLIBXML2_PRINTF_CHAR_ARG -DNOLIBMEMCACHED -DNOTGENERICENABLED -DNO_GSL_LIB -DOSTYPE=Linux -DUDA_EXPORT -D__TIRPC__ -I/opt/local/include -Isource -I/tmp/pinches/EasyBuild/UDA/2.7.5/iccifort-2020.4.304/UDA-release-2.7.5/source -I/work/imas/opt/EasyBuild/software/OpenSSL/1.1/include -I/work/imas/opt/EasyBuild/software/libxml2/2.9.10-GCCcore-10.2.0/include/libxml2 -I/include -I/work/imas/opt/EasyBuild/software/libtirpc/1.3.1-GCCcore-10.2.0/include/tirpc -isystem /work/imas/opt/EasyBuild/software/Boost/1.74.0-iccifort-2020.4.304/include -isystem /work/imas/opt/EasyBuild/software/fmt/7.1.1-GCCcore-10.2.0/include -O2 -axAVX,CORE-AVX2 -ftz -fp-speculation=safe -fp-model source -fPIC -std=c++17 -fPIC -pthread -Wno-use-after-free -Wno-mismatched-new-delete -g -fPIC   -Wall -Werror -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -MD -MT source/client2/CMakeFiles/client2-objects.dir/client.cpp.o -MF source/client2/CMakeFiles/client2-objects.dir/client.cpp.o.d -o source/client2/CMakeFiles/client2-objects.dir/client.cpp.o -c /tmp/pinches/EasyBuild/UDA/2.7.5/iccifort-2020.4.304/UDA-release-2.7.5/source/client2/client.cpp
icpc: command line warning #10148: option '-Wno-use-after-free' not supported
icpc: command line warning #10148: option '-Wno-mismatched-new-delete' not supported
/tmp/pinches/EasyBuild/UDA/2.7.5/iccifort-2020.4.304/UDA-release-2.7.5/source/client2/client.cpp(586): error #1595: non-POD (Plain Old Data) class type passed through ellipsis
              UDA_LOG(UDA_LOG_ERROR, "Error identifying the Data Source [%s]\n", data_source);
              ^

compilation aborted for /tmp/pinches/EasyBuild/UDA/2.7.5/iccifort-2020.4.304/UDA-release-2.7.5/source/client2/client.cpp (code 2)

Copy link
Collaborator

@SimonPinches SimonPinches left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we fix to also build with Intel compilers?

@SimonPinches
Copy link
Collaborator

Still have problems compiling with Intel:

FAILED: source/bin/CMakeFiles/uda_cli.dir/uda_cli.cpp.o
/work/imas/opt/EasyBuild/software/iccifort/2020.4.304/compilers_and_libraries_2020.4.304/linux/bin/intel64/icpc -DA64 -DCAPNP_ENABLED=1 -DFM
T_LOCALE -DLIBXML2_PRINTF_CHAR_ARG -DOSTYPE=Linux -DUDA_EXPORT -I/opt/local/include -Isource -I/tmp/pinches/EasyBuild/UDA/2.7.5/iccifort-202
0.4.304/UDA-release-2.7.5/source -I/tmp/pinches/EasyBuild/UDA/2.7.5/iccifort-2020.4.304/UDA-release-2.7.5/extlib/GSL-4.0.0/include -isystem
/work/imas/opt/EasyBuild/software/Boost/1.74.0-iccifort-2020.4.304/include -isystem /work/imas/opt/EasyBuild/software/fmt/7.1.1-GCCcore-10.2
.0/include -O2 -axAVX,CORE-AVX2 -ftz -fp-speculation=safe -fp-model source -fPIC -std=c++17 -fPIC -pthread -Wno-use-after-free -Wno-mismatch
ed-new-delete -g -fPIE   -Wall -Werror -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -MD -MT source/bin/CMakeFiles/uda_cli.d
ir/uda_cli.cpp.o -MF source/bin/CMakeFiles/uda_cli.dir/uda_cli.cpp.o.d -o source/bin/CMakeFiles/uda_cli.dir/uda_cli.cpp.o -c /tmp/pinches/Ea
syBuild/UDA/2.7.5/iccifort-2020.4.304/UDA-release-2.7.5/source/bin/uda_cli.cpp
icpc: command line warning #10148: option '-Wno-use-after-free' not supported
icpc: command line warning #10148: option '-Wno-mismatched-new-delete' not supported
/tmp/pinches/EasyBuild/UDA/2.7.5/iccifort-2020.4.304/UDA-release-2.7.5/extlib/GSL-4.0.0/include/gsl/span(128): error #597: "gsl::details::sp
an_iterator<Type>::operator gsl::details::span_iterator<const char>() const noexcept [with Type=const char]" will not be called for implicit
 or explicit conversions
          constexpr operator span_iterator<const Type>() const noexcept
                    ^
          detected during:
            instantiation of class "gsl::details::span_iterator<Type> [with Type=const char]" at line 633
            instantiation of "gsl::span<ElementType, Extent>::iterator gsl::span<ElementType, Extent>::begin() const noexcept [with ElementT
ype=const char, Extent=18446744073709551615UL]" at line 24 of "/tmp/pinches/EasyBuild/UDA/2.7.5/iccifort-2020.4.304/UDA-release-2.7.5/source
/bin/uda_cli.cpp"
            instantiation of "std::ostream &operator<<(std::ostream &, gsl::span<T, 18446744073709551615UL>) [with T=const char]" at line 41
 of "/tmp/pinches/EasyBuild/UDA/2.7.5/iccifort-2020.4.304/UDA-release-2.7.5/source/bin/uda_cli.cpp"
            instantiation of "std::ostream &operator<<(std::ostream &, const std::vector<T, std::allocator<T>> &) [with T=char]" at line 249
 of "/tmp/pinches/EasyBuild/UDA/2.7.5/iccifort-2020.4.304/UDA-release-2.7.5/source/bin/uda_cli.cpp"

/tmp/pinches/EasyBuild/UDA/2.7.5/iccifort-2020.4.304/UDA-release-2.7.5/extlib/GSL-4.0.0/include/gsl/span(128): error #597: "gsl::details::sp
an_iterator<Type>::operator gsl::details::span_iterator<const short>() const noexcept [with Type=const short]" will not be called for implic
it or explicit conversions
          constexpr operator span_iterator<const Type>() const noexcept
                    ^
          detected during:
            instantiation of class "gsl::details::span_iterator<Type> [with Type=const short]" at line 633
            instantiation of "gsl::span<ElementType, Extent>::iterator gsl::span<ElementType, Extent>::begin() const noexcept [with ElementT
ype=const int16_t={__int16_t={signed short}}, Extent=18446744073709551615UL]" at line 24 of "/tmp/pinches/EasyBuild/UDA/2.7.5/iccifort-2020.
4.304/UDA-release-2.7.5/source/bin/uda_cli.cpp"
            instantiation of "std::ostream &operator<<(std::ostream &, gsl::span<T, 18446744073709551615UL>) [with T=const int16_t={__int16_
t={signed short}}]" at line 41 of "/tmp/pinches/EasyBuild/UDA/2.7.5/iccifort-2020.4.304/UDA-release-2.7.5/source/bin/uda_cli.cpp"
            instantiation of "std::ostream &operator<<(std::ostream &, const std::vector<T, std::allocator<T>> &) [with T=int16_t={__int16_t
={signed short}}]" at line 252 of "/tmp/pinches/EasyBuild/UDA/2.7.5/iccifort-2020.4.304/UDA-release-2.7.5/source/bin/uda_cli.cpp"

/tmp/pinches/EasyBuild/UDA/2.7.5/iccifort-2020.4.304/UDA-release-2.7.5/extlib/GSL-4.0.0/include/gsl/span(128): error #597: "gsl::details::sp
an_iterator<Type>::operator gsl::details::span_iterator<const int>() const noexcept [with Type=const int]" will not be called for implicit o
r explicit conversions
          constexpr operator span_iterator<const Type>() const noexcept
                    ^
          detected during:
            instantiation of class "gsl::details::span_iterator<Type> [with Type=const int]" at line 633
            instantiation of "gsl::span<ElementType, Extent>::iterator gsl::span<ElementType, Extent>::begin() const noexcept [with ElementType=const int, Extent=18446744073709551615UL]" at line 24 of "/tmp/pinches/EasyBuild/UDA/2.7.5/iccifort-2020.4.304/UDA-release-2.7.5/source/bin/uda_cli.cpp"
...

@jholloc
Copy link
Collaborator Author

jholloc commented Mar 27, 2024

Not sure what we can do about the latest issue... looks like the Intel compiler doesn't like the GSL library, which is out of our control. I think this library is currently only used in the UDA CLI, so we could just turn of CLI compilation for Intel.

Copy link
Collaborator

@olivhoenen olivhoenen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not better with last commit :-(

/home/ITER/hoeneno/GIT/UDA/extlib/GSL-4.0.0/include/gsl/span(128): error #597: "gsl::details::span_iterator<Type>::operator gsl::details::span_iterator<const int64_t={__int64_t={signed long}}>() const noexcept [with Type=const int64_t={__int64_t={signed long}}]" will not be called for implicit or explicit conversions
          explicit constexpr operator span_iterator<const Type>() const noexcept
                             ^
          detected during:
            instantiation of class "gsl::details::span_iterator<Type> [with Type=const int64_t={__int64_t={signed long}}]" at line 633
            instantiation of "gsl::span<ElementType, Extent>::iterator gsl::span<ElementType, Extent>::begin() const noexcept [with ElementType=const int64_t={__int64_t={signed long}}, Extent=18446744073709551615UL]" at line 85 of "/home/ITER/hoeneno/GIT/UDA/source/serialisation/capnp_serialisation.cpp"
            instantiation of "std::ostream &operator<<(std::ostream &, gsl::span<T, 18446744073709551615UL>) [with T=const int64_t={__int64_t={signed long}}]" at line 120 of "/home/ITER/hoeneno/GIT/UDA/source/serialisation/capnp_serialisation.cpp"
            instantiation of "void print_data<T>(std::ostream &, TreeNode::Array::Reader &, const std::string &) [with T=int64_t={__int64_t={signed long}}]" at line 158 of "/home/ITER/hoeneno/GIT/UDA/source/serialisation/capnp_serialisation.cpp"

@olivhoenen
Copy link
Collaborator

@jholloc trying some tricks I got from https://community.intel.com/t5/Intel-C-Compiler/Error-operator-will-not-be-called-for-implicit-or-explicit/td-p/1025378 it seems that I can continue the compilation with icpc, but my C++ template skills are not that accurate so I'll let you judge the pertinence and apply the patch if you think this is harmless:

diff --git a/extlib/GSL-4.0.0/include/gsl/span b/extlib/GSL-4.0.0/include/gsl/span
index ed90ecad..8e0df75d 100644
--- a/extlib/GSL-4.0.0/include/gsl/span
+++ b/extlib/GSL-4.0.0/include/gsl/span
@@ -125,6 +125,7 @@ namespace details
             : begin_(begin), end_(end), current_(current)
         {}

+       template <class Type>
         explicit constexpr operator span_iterator<const Type>() const noexcept
         {
             return {begin_, end_, current_};

I also have later another compilation error:

/home/ITER/hoeneno/GIT/UDA/source/plugins/template/templatePlugin.cpp(212): error #68: integer conversion resulted in a change of sign
      size_t narray = -1;
                      ^

compilation aborted for /home/ITER/hoeneno/GIT/UDA/source/plugins/template/templatePlugin.cpp (code 2)

@jholloc jholloc requested a review from SimonPinches April 2, 2024 10:27
… (required for putting data, added getErrorMsg to print any errors from the handle
@SimonPinches
Copy link
Collaborator

Thanks @jholloc , now I get the next error (but this one looks easier to fix):

[1/337] Building CXX object source/cache/CMakeFiles/cache-objects.dir/memcache.cpp.o
FAILED: source/cache/CMakeFiles/cache-objects.dir/memcache.cpp.o
/work/imas/opt/EasyBuild/software/intel-compilers/2023.2.1/compiler/2023.2.1/linux/bin/icpx -DA64 -DNOLIBMEMCACHED -DOSTYPE=Linux -DUDA_EXPORT -D__TIRPC__ -I/opt/local/include -I/tmp/pinches/EasyBuild/UDA/2.7.5/intel-compilers-2023.2.1/easybuild_obj/source -I/work/imas/opt/EasyBuild/software/OpenSSL/1.1/include -I/tmp/pinches/EasyBuild/UDA/2.7.5/intel-compilers-2023.2.1/UDA-release-2.7.5/source -I/work/imas/opt/EasyBuild/software/libxml2/2.11.5-GCCcore-13.2.0/include/libxml2 -I/work/imas/opt/EasyBuild/software/libtirpc/1.3.4-GCCcore-13.2.0/include/tirpc -isystem /work/imas/opt/EasyBuild/software/Boost/1.83.0-intel-compilers-2023.2.1/include -isystem /work/imas/opt/EasyBuild/software/fmt/10.2.0-GCCcore-13.2.0/include -O2 -axAVX,CORE-AVX2 -ftz -fp-speculation=safe -fp-model precise -fPIC -fPIC -pthread -Wno-use-after-free -Wno-mismatched-new-delete -g -std=c++17 -fPIC   -Wall -Werror -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -MD -MT source/cache/CMakeFiles/cache-objects.dir/memcache.cpp.o -MF source/cache/CMakeFiles/cache-objects.dir/memcache.cpp.o.d -o source/cache/CMakeFiles/cache-objects.dir/memcache.cpp.o -c /tmp/pinches/EasyBuild/UDA/2.7.5/intel-compilers-2023.2.1/UDA-release-2.7.5/source/cache/memcache.cpp
error: unknown warning option '-Wno-use-after-free' [-Werror,-Wunknown-warning-option]

@jholloc
Copy link
Collaborator Author

jholloc commented Apr 4, 2024

@SimonPinches I've hopefully removed those warnings for the Intel compiler.

@SimonPinches
Copy link
Collaborator

Still fails with same error :-(

[1/331] Building CXX object source/cache/CMakeFiles/cache-objects.dir/memcache.cpp.o
FAILED: source/cache/CMakeFiles/cache-objects.dir/memcache.cpp.o 
/work/imas/opt/EasyBuild/software/intel-compilers/2023.2.1/compiler/2023.2.1/linux/bin/icpx -DA64 -DNOLIBMEMCACHED -DOSTYPE=Linux -DUDA_EXPORT -D__TIRPC__ -I/opt/local/include -I/tmp/pinches/EasyBuild/UDA/2.7.5/intel-compilers-2023.2.1/easybuild_obj/source -I/work/imas/opt/EasyBuild/software/OpenSSL/1.1/include -I/tmp/pinches/EasyBuild/UDA/2.7.5/intel-compilers-2023.2.1/UDA-release-2.7.5/source -I/work/imas/opt/EasyBuild/software/libxml2/2.11.5-GCCcore-13.2.0/include/libxml2 -I/work/imas/opt/EasyBuild/software/libtirpc/1.3.4-GCCcore-13.2.0/include/tirpc -isystem /work/imas/opt/EasyBuild/software/Boost/1.83.0-intel-compilers-2023.2.1/include -isystem /work/imas/opt/EasyBuild/software/fmt/10.2.0-GCCcore-13.2.0/include -O2 -axAVX,CORE-AVX2 -ftz -fp-speculation=safe -fp-model precise -fPIC -fPIC -pthread -Wno-use-after-free -Wno-mismatched-new-delete -g -std=c++17 -fPIC   -Wall -Werror -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -MD -MT source/cache/CMakeFiles/cache-objects.dir/memcache.cpp.o -MF source/cache/CMakeFiles/cache-objects.dir/memcache.cpp.o.d -o source/cache/CMakeFiles/cache-objects.dir/memcache.cpp.o -c /tmp/pinches/EasyBuild/UDA/2.7.5/intel-compilers-2023.2.1/UDA-release-2.7.5/source/cache/memcache.cpp
error: unknown warning option '-Wno-use-after-free' [-Werror,-Wunknown-warning-option]

@jholloc
Copy link
Collaborator Author

jholloc commented Apr 4, 2024

I've found https://estuarine.jp/2021/03/install-oneapi which gives details of installing the Intel compilers on Ubuntu. I'll try this on my local VM and if it works i'll set up an Intel CI build.

@jholloc
Copy link
Collaborator Author

jholloc commented Apr 5, 2024

@SimonPinches i've added an Intel CI build and made the required fixes to get the Intel build working.

@SimonPinches
Copy link
Collaborator

Thanks. I'll give it a try as soon as I get a chance.

@SimonPinches
Copy link
Collaborator

Thanks @jholloc. I confirm this now works for our intel/2023b toolchains on RHEL9 and so will approve this PR again :-)

@stephen-dixon
Copy link
Contributor

UKAEA client and server builds and tests pass

@jholloc jholloc merged commit 3ae069e into main Apr 9, 2024
@adam-parker1 adam-parker1 deleted the release/2.7.5 branch August 29, 2024 12:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants