osu-crypto / libOTe

A fast, portable, and easy to use Oblivious Transfer Library
Other
428 stars 107 forks source link

segmentation fault when executing ./frontend_libOTe #101

Closed Xenooooooooo closed 1 year ago

Xenooooooooo commented 1 year ago

Sorry to bother you, professor.

I've installed libOTe on my linux virtual machine just a week ago, and the segmentation fault appeared when running the ./frontend_libOTe (using ./frontend_libOTe -u). I've been working out to find the reason for that, but unfortunately I don't have a clue.

Weirdly, the segmentation fault happens when operating the 93rd test, the Bot_Simplest_asm_Test, at most of the time. It sometimes happens in the 118th test (the OtExt_Silent_mal_Test), the 105th test (the OtExt_genBaseOts_Test) and the the 117th test (the OtExt_Silent_baseOT_Test). And it barely successes passing all 133 tests.

Addtionally, to find out why, I've installed the code from https://github.com/ShallMate/SilentOT, also segmentation fault. But the execution result indicates that the process terminats when executing "eval(p0, p1)".

Have you ever encountered this issue? Really need to find out why. Thanks.

Xenooooooooo commented 1 year ago

I've used the parameter -DENABLE_SIMPLESTOT_ASM=ON when building the whole project.

ladnir commented 1 year ago

I can look into it. you can disable simplest ot asm to fix the bug for now

Xenooooooooo commented 1 year ago

Hello, professor.

I've fixed this problem by reinstalling the whole libOTe project on a new Ubuntu 22.04 LTS vm, and the previous vm is Ubuntu 20.04 LTS. It's just fixed when installing on my new vm.

Besides, the lowset / recommenation of RAM for libOTe project is? I've found on my previous vm, when the RAM is 4GB, it never succeeds passing all frontends. When increasing to 5GB, it barely succeeds. Likely, on my current vm, it never success on 2GB RAM, but stably passes all frontends on 4GB RAM.

ladnir commented 1 year ago

The unit tests fail with 4GB of ram but not with 5? Find that surprising. The library doesn't really have any ram requirements. It all depends on how big of an instance you launch.

What test is failing?

Xenooooooooo commented 1 year ago

Sorry for pending this issue for few days, professor.

Basicly, it's still the 93rd test fails most of the time, the Bot_Simplest_asm_Test.

As for the current situation, it's more reasonable for me to attribute the successfully building to the update of the Ubuntu system.

ladnir commented 1 year ago

Simplest ot asm is assembly based and might not work on all machines. My suggestion is to just disable it

python3 build.py -D ENABLE_SIMPLESTOT_ASM=false

Xenooooooooo commented 1 year ago

OK, thanks professor. I'll leave a note, thanks a lot!