Visa-Research / volepsi

Efficient Private Set Intersection base on VOLE
MIT License
98 stars 32 forks source link

segmentation fault in debug mode #61

Closed jwangit closed 4 months ago

jwangit commented 5 months ago

Can you please shed some lights on this segmentation fault? It disappears in release mode but exists in debug mode. This segmentation fault prompts at this line of code in directory volepsi/tests/Common.h auto r = macoro::sync_wait(macoro::when_all_ready(std::move(t0), std::move(t1)));

The following is the compiling option and the drived result from running ./frontend -u 36.

root@DESKTOP-HK6FKUR:~/volepsi# python3 build.py -D CMAKE_BUILD_TYPE=Debug --debug

====== build.py (vole-psi) ======== mkdir -p out/build/linux cmake -S . -B out/build/linux -D CMAKE_BUILD_TYPE=Debug -DSUDO_FETCH=OFF -DFETCH_AUTO=ON -DVOLE_PSI_NO_SYSTEM_PATH=true -DPARALLEL_FETCH=8 -DCMAKE_BUILD_TYPE=Debug cmake --build out/build/linux --parallel 8 vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv

-- vole-psi options

-- Option: VOLE_PSI_NO_SYSTEM_PATH = true -- Option: CMAKE_BUILD_TYPE = Debug

-- Option: FETCH_AUTO = ON -- Option: FETCH_SPARSEHASH = -- Option: FETCH_LIBOTE =

-- Option: VOLE_PSI_ENABLE_SSE = ON -- Option: VOLE_PSI_ENABLE_PIC = OFF -- Option: VOLE_PSI_ENABLE_ASAN = OFF -- Option: VOLE_PSI_STD_VER = 17 -- Option: VOLE_PSI_ENABLE_GMW = ON -- Option: VOLE_PSI_ENABLE_CPSI = ON -- Option: VOLE_PSI_ENABLE_OPPRF = ON

-- Option: VOLE_PSI_ENABLE_BOOST = ON -- Option: VOLE_PSI_ENABLE_OPENSSL = true -- Option: VOLE_PSI_ENABLE_BITPOLYMUL = ON -- Option: VOLE_PSI_ENABLE_SODIUM = ON -- Option: VOLE_PSI_SODIUM_MONTGOMERY = ON -- Option: VOLE_PSI_ENABLE_RELIC = OFF -- VOLEPSI_THIRDPARTY_DIR=/home/tankle/volepsi/out/install/linux sparsehash-c11 already fetched. SPARSEHASH_INCLUDE_DIRS=/home/tankle/volepsi/out/install/linux/include

libOTe_options=silentot;silent_vole;circuits;sse;boost;openssl;bitpolymul;no_asan;no_pic;sodium;sodium_montgomery -- SODIUM_INCLUDE_DIRS: /home/tankle/volepsi/out/install/linux/include -- SODIUM_LIBRARIES: /home/tankle/volepsi/out/install/linux/lib/libsodium.a -- SODIUM_MONTGOMERY: ON

macoroConfig.cmake : /home/tankle/volepsi/out/install/linux/lib/cmake/macoro/macoroConfig.cmake --

Boost_LIB: Boost::system;Boost::thread;Boost::regex -- Boost_INC: /home/tankle/volepsi/out/install/linux/include

OPENSSL_INCLUDE_DIR=/usr/include OPENSSL_SSL_LIBRARY=/usr/lib/x86_64-linux-gnu/libssl.so OPENSSL_LIBRARIES =/usr/lib/x86_64-linux-gnu/libssl.so;/usr/lib/x86_64-linux-gnu/libcrypto.so OPENSSL_VERSION =3.0.2 -- LIBDIVIDE_INCLUDE_DIRS: /home/tankle/volepsi/out/install/linux/include -- bitpolymulConfig.cmake : /home/tankle/volepsi/out/install/linux/lib/cmake/bitpolymul libOTe already fetched.

libOTe_options=silentot;silent_vole;circuits;sse;boost;openssl;bitpolymul;no_asan;no_pic;sodium;sodium_montgomery -- SODIUM_INCLUDE_DIRS: /home/tankle/volepsi/out/install/linux/include -- SODIUM_LIBRARIES: /home/tankle/volepsi/out/install/linux/lib/libsodium.a -- SODIUM_MONTGOMERY: ON

macoroConfig.cmake : /home/tankle/volepsi/out/install/linux/lib/cmake/macoro/macoroConfig.cmake --

Boost_LIB: Boost::system;Boost::thread;Boost::regex -- Boost_INC: /home/tankle/volepsi/out/install/linux/include

OPENSSL_INCLUDE_DIR=/usr/include OPENSSL_SSL_LIBRARY=/usr/lib/x86_64-linux-gnu/libssl.so OPENSSL_LIBRARIES =/usr/lib/x86_64-linux-gnu/libssl.so;/usr/lib/x86_64-linux-gnu/libcrypto.so OPENSSL_VERSION =3.0.2 -- LIBDIVIDE_INCLUDE_DIRS: /home/tankle/volepsi/out/install/linux/include -- bitpolymulConfig.cmake : /home/tankle/volepsi/out/install/linux/lib/cmake/bitpolymul -- Configuring done -- Generating done -- Build files have been written to: /home/tankle/volepsi/out/build/linux Consolidate compiler generated dependencies of target volePSI [ 4%] Building CXX object volePSI/CMakeFiles/volePSI.dir/RsOprf.cpp.o [ 9%] Building CXX object volePSI/CMakeFiles/volePSI.dir/RsPsi.cpp.o [ 13%] Building CXX object volePSI/CMakeFiles/volePSI.dir/SimpleIndex.cpp.o [ 18%] Building CXX object volePSI/CMakeFiles/volePSI.dir/fileBased.cpp.o [ 22%] Building CXX object volePSI/CMakeFiles/volePSI.dir/GMW/Circuit.cpp.o [ 27%] Building CXX object volePSI/CMakeFiles/volePSI.dir/GMW/Gmw.cpp.o [ 31%] Building CXX object volePSI/CMakeFiles/volePSI.dir/GMW/SilentTripleGen.cpp.o [ 36%] Building CXX object volePSI/CMakeFiles/volePSI.dir/RsCpsi.cpp.o [ 40%] Building CXX object volePSI/CMakeFiles/volePSI.dir/RsOpprf.cpp.o /home/tankle/volepsi/volePSI/RsPsi.cpp: In member function ‘volePSI::Proto volePSI::RsPsi3rdPSender2::run(volePSI::span, volePSI::Socket&, volePSI::Socket&)’: /home/tankle/volepsi/volePSI/RsPsi.cpp:416:26: warning: unused variable ‘batchSize’ [-Wunused-variable] 416 | static const u64 batchSize = 128; | ^~~~~ [ 45%] Linking CXX static library libvolePSI.a [ 45%] Built target volePSI Consolidate compiler generated dependencies of target volePSI_Tests [ 50%] Building CXX object tests/CMakeFiles/volePSI_Tests.dir/Paxos_Tests.cpp.o [ 54%] Building CXX object tests/CMakeFiles/volePSI_Tests.dir/RsOprf_Tests.cpp.o [ 63%] Building CXX object tests/CMakeFiles/volePSI_Tests.dir/RsPsi_Tests.cpp.o [ 63%] Building CXX object tests/CMakeFiles/volePSI_Tests.dir/UnitTests.cpp.o [ 68%] Building CXX object tests/CMakeFiles/volePSI_Tests.dir/FileBase_Tests.cpp.o [ 72%] Building CXX object tests/CMakeFiles/volePSI_Tests.dir/GMW_Tests.cpp.o [ 77%] Building CXX object tests/CMakeFiles/volePSI_Tests.dir/RsCpsi_Tests.cpp.o [ 81%] Building CXX object tests/CMakeFiles/volePSI_Tests.dir/RsOpprf_Tests.cpp.o [ 86%] Linking CXX static library libvolePSI_Tests.a [ 86%] Built target volePSI_Tests Consolidate compiler generated dependencies of target frontend [ 90%] Building CXX object frontend/CMakeFiles/frontend.dir/main.cpp.o [ 95%] Building CXX object frontend/CMakeFiles/frontend.dir/perf.cpp.o In file included from /home/tankle/volepsi/frontend/main.cpp:4: /home/tankle/volepsi/frontend/messagePassingExample.h: In function ‘void messagePassingExampleBoth(osuCrypto::CLP&)’: /home/tankle/volepsi/frontend/messagePassingExample.h:238:27: warning: comparison of integer expressions of different signedness: ‘osuCrypto::u64’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare] 238 | for (oc::u64 i = 0; i < ns; ++i) | ^~ /home/tankle/volepsi/frontend/messagePassingExample.h:255:27: warning: comparison of integer expressions of different signedness: ‘osuCrypto::u64’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare] 255 | for (oc::u64 i = 0; i < nr; ++i) | ^~ [100%] Linking CXX executable frontend [100%] Built target frontend root@DESKTOP-HK6FKUR:~/volepsi# ./out/build/linux/frontend/frontend -u 36 36 - Psi_Rs_full_test Segmentation fault

ladnir commented 5 months ago

Can you get a back trace with gdb?

gdb ./out/build/linux/frontend/frontend 
r -u 36
bt
jwangit commented 5 months ago

Thanks for replying. I reinstall the dependencies on system other than indicating a location. Then, it is solved.