aws / aws-sdk-cpp

AWS SDK for C++
Apache License 2.0
1.98k stars 1.06k forks source link

InitAPI crash in ubuntu 22.04 in latest code #2913

Closed rohitnsb closed 7 months ago

rohitnsb commented 7 months ago

Describe the bug

I built the aws cpp sdk and on initAPI it is crashing below is the dump

(_Z13dumpBacktraceNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x151) [0x55a437981521]
(_Z10sigHandleri+0x76) [0x55a437983d26]
x86_64-linux-gnu/libc.so.6(+0x42520) [0x7f780e067520]
x86_64-linux-gnu/libc.so.6(pthread_kill+0x12c) [0x7f780e0bb9fc]
x86_64-linux-gnu/libc.so.6(raise+0x16) [0x7f780e067476]
x86_64-linux-gnu/libc.so.6(abort+0xd3) [0x7f780e04d7f3]
x86_64-linux-gnu/libstdc++.so.6(+0xa2b9e) [0x7f780e3f9b9e]
x86_64-linux-gnu/libstdc++.so.6(+0xae20c) [0x7f780e40520c]
x86_64-linux-gnu/libstdc++.so.6(+0xae277) [0x7f780e405277]
x86_64-linux-gnu/libstdc++.so.6(+0xaefa5) [0x7f780e405fa5]
(+0x1798b6f) [0x55a438179b6f]
(aws_client_bootstrap_release+0x40) [0x55a4383557ad]
(_ZN3Aws3Crt2Io15ClientBootstrapD1Ev+0x3b) [0x55a4382c34cb]
(_ZN9__gnu_cxx13new_allocatorIN3Aws3Crt2Io15ClientBootstrapEE7destroyIS4_EEvPT_+0x20) [0x55a4380ef6aa]
(_ZNSt16allocator_traitsISaIN3Aws3Crt2Io15ClientBootstrapEEE7destroyIS3_EEvRS4_PT_+0x27) [0x55a4380ef5af]
(_ZNSt23_Sp_counted_ptr_inplaceIN3Aws3Crt2Io15ClientBootstrapESaIS3_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disp                                                                                                                                                       oseEv+0x3b) [0x55a4380ef0d7]
(_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_releaseEv+0x32) [0x55a4376ad6f2]
(_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EED1Ev+0x2b) [0x55a43798b0e9]
(_ZNSt12__shared_ptrIN3Aws3Crt2Io15ClientBootstrapELN9__gnu_cxx12_Lock_policyE2EED1Ev+0x20) [0x55a4380ec2ce]
(_ZNSt10shared_ptrIN3Aws3Crt2Io15ClientBootstrapEED1Ev+0x1c) [0x55a4380ec2ee]
x86_64-linux-gnu/libc.so.6(+0x45495) [0x7f780e06a495]
x86_64-linux-gnu/libc.so.6(on_exit+0) [0x7f780e06a610]
(_Z10sigHandleri+0x94) [0x55a437983d44]
x86_64-linux-gnu/libc.so.6(+0x42520) [0x7f780e067520]
(_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_releaseEv+0x65) [0x55a4376ad725]
(_ZN3Aws6Client19ClientConfigurationD1Ev+0x23) [0x55a43782dbd3]
(_ZN3Aws8Internal21AWSHttpResourceClientC2EPKc+0x74) [0x55a438105fec]
(_ZN3Aws8Internal17EC2MetadataClientC1EPKc+0x3a) [0x55a4381070de]
(_ZN9__gnu_cxx13new_allocatorIN3Aws8Internal17EC2MetadataClientEE9constructIS3_JPKcEEEvPT_DpOT0_+0x44) [0x55                                                                                                                                                       a43810fe00]
(_ZNSt16allocator_traitsISaIN3Aws8Internal17EC2MetadataClientEEE9constructIS2_JPKcEEEvRS3_PT_DpOT0_+0x3a) [0                                                                                                                                                       x55a43810faee]
(_ZNSt23_Sp_counted_ptr_inplaceIN3Aws8Internal17EC2MetadataClientESaIS2_ELN9__gnu_cxx12_Lock_policyE2EEC2IJP                                                                                                                                                       KcEEES3_DpOT_+0xac) [0x55a43810f614]
(_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC1IN3Aws8Internal17EC2MetadataClientESaIS6_EJPKcEEERPT_                                                                                                                                                       St20_Sp_alloc_shared_tagIT0_EDpOT1_+0xae) [0x55a43810ef78]
(_ZNSt12__shared_ptrIN3Aws8Internal17EC2MetadataClientELN9__gnu_cxx12_Lock_policyE2EEC1ISaIS2_EJPKcEEESt20_S                                                                                                                                                       p_alloc_shared_tagIT_EDpOT0_+0x4e) [0x55a43810ea32]
(_ZNSt10shared_ptrIN3Aws8Internal17EC2MetadataClientEEC1ISaIS2_EJPKcEEESt20_Sp_alloc_shared_tagIT_EDpOT0_+0x                                                                                                                                                       3b) [0x55a43810e31d]
(_ZSt15allocate_sharedIN3Aws8Internal17EC2MetadataClientESaIS2_EJPKcEESt10shared_ptrIT_ERKT0_DpOT1_+0x3a) [0                                                                                                                                                       x55a43810dbcf]
(_ZN3Aws10MakeSharedINS_8Internal17EC2MetadataClientEJPKcEEESt10shared_ptrIT_ES4_DpOT0_+0x59) [0x55a43810d42                                                                                                                                                       1]
(_ZN3Aws8Internal21InitEC2MetadataClientEv+0x465) [0x55a4381097ac]
(_ZN3Aws7InitAPIERKNS_10SDKOptionsE+0xa44) [0x55a4380eba97]
(_Z10InitAwsSDKv+0x14c) [0x55a4379832ec]
(main+0x2cf) [0x55a43769934f]

Expected Behavior

should not crash

Current Behavior

crash

Reproduction Steps

call InitAPI()

Possible Solution

No response

Additional Information/Context

No response

AWS CPP SDK version used

1.11.293

Compiler and Version used

gcc version 11.4.0

Operating System and version

ubuntu 22.04

jmklix commented 7 months ago

I've haven't been able to reproduce the same crash that you are seeing in ubuntu 22.04. Are you calling InitApi multiple times? Can you provide more detailed reproduction steps? I used the following samples and I was able to run without any problems:

main.cpp

#include <iostream>
#include <aws/core/Aws.h>

using namespace std;
using namespace Aws;

int main() {
    Aws::SDKOptions options;
    options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Trace;

    Aws::InitAPI(options);
    {
            std::cout << "Test" <<std::endl;
    }
    Aws::ShutdownAPI(options);
    return 0;
}

CMakeLists.txt

cmake_minimum_required(VERSION 3.22)
project(issue_2913)
set(CMAKE_CXX_STANDARD 20)
find_package(AWSSDK REQUIRED COMPONENTS kms s3 s3-encryption ec2)
add_executable(${PROJECT_NAME} "main.cpp")
target_link_libraries(${PROJECT_NAME} ${AWSSDK_LINK_LIBRARIES})

building the sample

cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH="<path to install location>"
cmake --build . --config Debug
rohitnsb commented 7 months ago

I created a new docker and built with below command, still I see the same error

can you check if steps are correct?

git clone --recurse-submodules https://github.com/aws/aws-sdk-cpp mkdir sd-build apt-get update cd sd-build/ apt-get install cmake apt install zlib1g-dev apt-get install libssl-dev apt-get install libcurl4-openssl-dev cmake ../aws-sdk-cpp -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH=/usr/lib -DBUILD_ONLY="kms;s3;s3-encryption;ec2;core" cmake --build . --config Debug

jmklix commented 7 months ago

It looks like what you're doing is mostly correct, but I had to add a few things to get the container working. Here is the entire dockerfile that I used to test this. Please let me know if this doesn't work for you:

FROM ubuntu:22.04

#install deps
RUN apt-get update
RUN apt-get install -y git cmake zlib1g-dev libssl-dev libcurl4-openssl-dev build-essential

#clone and build sdk
RUN git clone --depth 1 --recurse-submodules https://github.com/aws/aws-sdk-cpp && \
    cd aws-sdk-cpp && \
    mkdir build && \
    cd build && \
    cmake -DAUTORUN_UNIT_TESTS=OFF -DBUILD_ONLY="kms;s3;s3-encryption;ec2" .. && \
    cmake --build . && \
    cmake --install .

#copy code and build sample application
RUN mkdir sdk-example
COPY CMakeLists.txt sdk-example/CMakeLists.txt
COPY main.cpp sdk-example/main.cpp
RUN cd sdk-example && \
    mkdir build && \
    cd build && \
    cmake .. && \
    cmake --build .

ENTRYPOINT [ "./sdk-example/build/issue_2913" ]
rohitnsb commented 7 months ago

Was ablt to build and init aws SDK with above commands Not sure what step I missed

Thanks, now it it initing

github-actions[bot] commented 7 months ago

This issue is now closed. Comments on closed issues are hard for our team to see. If you need more assistance, please open a new issue that references this one.