nlohmann/json

new repo version seems stop create any the ingress-nginx controller with opentelemetry-cpp.git

Closed this issue · 3 comments

Description

new repo version seems stop create the ingress-nginx controlle on https://github.com/kubernetes with using https://github.com/open-telemetry/opentelemetry-cpp.git

my finding in https://storage.googleapis.com/kubernetes-ci-logs/logs/post-ingress-nginx-nginx/1860323495271993344/artifacts/build.log

#13 388.1 ninja: job terminated due to signal 11: /usr/bin/c++ -DHAVE_ABSEIL -DHAVE_CPP_STDLIB -Dopentelemetry_logs_EXPORTS -I/tmp/build/opentelemetry-cpp/build/generated/third_party/opentelemetry-proto -I/tmp/build/opentelemetry-cpp/api/include -I/tmp/build/opentelemetry-cpp/sdk/include -I/tmp/build/opentelemetry-cpp/sdk -I/tmp/build/opentelemetry-cpp/ext/include -DBENCHMARK_HAS_NO_INLINE_ASSEMBLY -std=gnu++20 -fPIC -Wno-error=deprecated-declarations -MD -MT sdk/src/logs/CMakeFiles/opentelemetry_logs.dir/simple_log_record_processor.cc.o -MF sdk/src/logs/CMakeFiles/opentelemetry_logs.dir/simple_log_record_processor.cc.o.d -o sdk/src/logs/CMakeFiles/opentelemetry_logs.dir/simple_log_record_processor.cc.o -c /tmp/build/opentelemetry-cpp/sdk/src/logs/simple_log_record_processor.cc

...

ingress-nginx.git|ingress-nginx.git $ vi images/nginx/rootfs/build.sh 
...
    298 cd "$BUILD_PATH/opentelemetry-cpp"
    299 export CXXFLAGS="-DBENCHMARK_HAS_NO_INLINE_ASSEMBLY"
    300 cmake -B build -G Ninja -Wno-dev \
    301         -DOTELCPP_PROTO_PATH="${BUILD_PATH}/opentelemetry-proto/" \
    302         -DCMAKE_INSTALL_PREFIX=/usr \
    303         -DBUILD_SHARED_LIBS=ON \
    304         -DBUILD_TESTING="OFF" \
    305         -DBUILD_W3CTRACECONTEXT_TEST="OFF" \
    306         -DCMAKE_BUILD_TYPE=None \
    307         -DWITH_ABSEIL=ON \
    308         -DWITH_STL=ON \
    309         -DWITH_EXAMPLES=OFF \
    310         -DWITH_ZPAGES=OFF \
    311         -DWITH_OTLP_GRPC=ON \
    312         -DWITH_OTLP_HTTP=ON \
    313         -DWITH_ZIPKIN=ON \
    314         -DWITH_PROMETHEUS=OFF \
    315         -DWITH_ASYNC_EXPORT_PREVIEW=OFF \
    316         -DWITH_METRICS_EXEMPLAR_PREVIEW=OFF
    317       cmake --build build
# <- this "cmake --build build" i assume has the problem
...


opentelemetry-cpp.git|opentelemetry-cpp.git $ find . -type f|xargs grep nlohmann_json_download
./cmake/nlohmann-json.cmake:    nlohmann_json_download
./cmake/nlohmann-json.cmake:  ExternalProject_Get_Property(nlohmann_json_download INSTALL_DIR)
./cmake/nlohmann-json.cmake:      ${INSTALL_DIR}/src/nlohmann_json_download/single_include)
./cmake/nlohmann-json.cmake:  add_dependencies(nlohmann_json_ nlohmann_json_download)
opentelemetry-cpp.git|opentelemetry-cpp.git $ jedit ./cmake/nlohmann-json.cmake

     60   ExternalProject_Add(
     61     nlohmann_json_download
     62     PREFIX third_party
     63     GIT_REPOSITORY https://github.com/nlohmann/json.git
     64     GIT_TAG "${nlohmann-json}"
     65     UPDATE_COMMAND ""
     66     CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
     67                -DJSON_BuildTests=OFF -DJSON_Install=ON
     68                -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
     69     TEST_AFTER_INSTALL 0
     70     DOWNLOAD_NO_PROGRESS 1
     71     LOG_CONFIGURE 1
     72     LOG_BUILD 1
     73     LOG_INSTALL 1)

conclusion i assume opentelemetry-cpp.git -> https://github.com/nlohmann/json.git and there's a "problem" (or bug) in nlohmann git.

Reproduction steps

pls see: https://storage.googleapis.com/kubernetes-ci-logs/logs/post-ingress-nginx-nginx/1860323495271993344/artifacts/build.log

#13 388.1 ninja: job terminated due to signal 11: /usr/bin/c++ -DHAVE_ABSEIL -DHAVE_CPP_STDLIB -Dopentelemetry_logs_EXPORTS -I/tmp/build/opentelemetry-cpp/build/generated/third_party/opentelemetry-proto -I/tmp/build/opentelemetry-cpp/api/include -I/tmp/build/opentelemetry-cpp/sdk/include -I/tmp/build/opentelemetry-cpp/sdk -I/tmp/build/opentelemetry-cpp/ext/include -DBENCHMARK_HAS_NO_INLINE_ASSEMBLY -std=gnu++20 -fPIC -Wno-error=deprecated-declarations -MD -MT sdk/src/logs/CMakeFiles/opentelemetry_logs.dir/simple_log_record_processor.cc.o -MF sdk/src/logs/CMakeFiles/opentelemetry_logs.dir/simple_log_record_processor.cc.o.d -o sdk/src/logs/CMakeFiles/opentelemetry_logs.dir/simple_log_record_processor.cc.o -c /tmp/build/opentelemetry-cpp/sdk/src/logs/simple_log_record_processor.cc

and
kubernetes/ingress-nginx#12371

Expected vs. actual results

#13 388.1 ninja: job terminated due to signal 11: /usr/bin/c++ -DHAVE_ABSEIL -DHAVE_CPP_STDLIB -Dopentelemetry_logs_EXPORTS -I/tmp/build/opentelemetry-cpp/build/generated/third_party/opentelemetry-proto -I/tmp/build/opentelemetry-cpp/api/include -I/tmp/build/opentelemetry-cpp/sdk/include -I/tmp/build/opentelemetry-cpp/sdk -I/tmp/build/opentelemetry-cpp/ext/include -DBENCHMARK_HAS_NO_INLINE_ASSEMBLY -std=gnu++20 -fPIC -Wno-error=deprecated-declarations -MD -MT sdk/src/logs/CMakeFiles/opentelemetry_logs.dir/simple_log_record_processor.cc.o -MF sdk/src/logs/CMakeFiles/opentelemetry_logs.dir/simple_log_record_processor.cc.o.d -o sdk/src/logs/CMakeFiles/opentelemetry_logs.dir/simple_log_record_processor.cc.o -c /tmp/build/opentelemetry-cpp/sdk/src/logs/simple_log_record_processor.cc

Minimal code example

opentelemetry-cpp.git|opentelemetry-cpp.git $ jedit ./cmake/nlohmann-json.cmake

     60   ExternalProject_Add(
     61     nlohmann_json_download
     62     PREFIX third_party
     63     GIT_REPOSITORY https://github.com/nlohmann/json.git
     64     GIT_TAG "${nlohmann-json}"
     65     UPDATE_COMMAND ""
     66     CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
     67                -DJSON_BuildTests=OFF -DJSON_Install=ON
     68                -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
     69     TEST_AFTER_INSTALL 0
     70     DOWNLOAD_NO_PROGRESS 1
     71     LOG_CONFIGURE 1
     72     LOG_BUILD 1
     73     LOG_INSTALL 1)

Error messages

Shell
#13 388.1 ninja: job terminated due to signal 11: /usr/bin/c++ -DHAVE_ABSEIL -DHAVE_CPP_STDLIB -Dopentelemetry_logs_EXPORTS -I/tmp/build/opentelemetry-cpp/build/generated/third_party/opentelemetry-proto -I/tmp/build/opentelemetry-cpp/api/include -I/tmp/build/opentelemetry-cpp/sdk/include -I/tmp/build/opentelemetry-cpp/sdk -I/tmp/build/opentelemetry-cpp/ext/include -DBENCHMARK_HAS_NO_INLINE_ASSEMBLY -std=gnu++20 -fPIC -Wno-error=deprecated-declarations -MD -MT sdk/src/logs/CMakeFiles/opentelemetry_logs.dir/simple_log_record_processor.cc.o -MF sdk/src/logs/CMakeFiles/opentelemetry_logs.dir/simple_log_record_processor.cc.o.d -o sdk/src/logs/CMakeFiles/opentelemetry_logs.dir/simple_log_record_processor.cc.o -c /tmp/build/opentelemetry-cpp/sdk/src/logs/simple_log_record_processor.cc

Compiler and operating system

docker

Library version

latest

Validation

I don't see how I can help here. I don't see a build error mentioning library code.

yes sure - seems to be not the problem here sorry - will close / delete this bug - sorry - sorry

no problem seems to be here - sorry - my fault

here is the problem:
PROTO_PATH not correct + assume also GENERATED_PROTOBUF_PATH
opentelemetry-cpp.git|opentelemetry-cpp.git $  find . -type f|xargs grep v1experimental
./cmake/opentelemetry-proto.cmake:    "${PROTO_PATH}/opentelemetry/proto/profiles/v1experimental/profiles.proto")
./cmake/opentelemetry-proto.cmake:    "${PROTO_PATH}/opentelemetry/proto/profiles/v1experimental/pprofextended.proto"
./cmake/opentelemetry-proto.cmake:    "${PROTO_PATH}/opentelemetry/proto/collector/profiles/v1experimental/profiles_service.proto"
./cmake/opentelemetry-proto.cmake:    "${GENERATED_PROTOBUF_PATH}/opentelemetry/proto/profiles/v1experimental/profiles.pb.cc"
./cmake/opentelemetry-proto.cmake:    "${GENERATED_PROTOBUF_PATH}/opentelemetry/proto/profiles/v1experimental/profiles.pb.h"
./cmake/opentelemetry-proto.cmake:    "${GENERATED_PROTOBUF_PATH}/opentelemetry/proto/profiles/v1experimental/pprofextended.pb.cc"
./cmake/opentelemetry-proto.cmake:    "${GENERATED_PROTOBUF_PATH}/opentelemetry/proto/profiles/v1experimental/pprofextended.pb.h"
./cmake/opentelemetry-proto.cmake:    "${GENERATED_PROTOBUF_PATH}/opentelemetry/proto/collector/profiles/v1experimental/profiles_service.pb.h"
./cmake/opentelemetry-proto.cmake:    "${GENERATED_PROTOBUF_PATH}/opentelemetry/proto/collector/profiles/v1experimental/profiles_service.pb.cc"
./cmake/opentelemetry-proto.cmake:      "${GENERATED_PROTOBUF_PATH}/opentelemetry/proto/collector/profiles/v1experimental/profiles_service.grpc.pb.h"
./cmake/opentelemetry-proto.cmake:      "${GENERATED_PROTOBUF_PATH}/opentelemetry/proto/collector/profiles/v1experimental/profiles_service.grpc.pb.cc"