-
Notifications
You must be signed in to change notification settings - Fork 761
Closed
Description
With the following code snippet, I'm receiving SIGKILL, it seems to be an infinite loop at the save step.
#include "seal/seal.h"
using namespace std;
using namespace seal;
std::string SEALSerialize(const GaloisKeys& sealobj) {
std::stringstream stream;
sealobj.save(stream);
return stream.str();
}
GaloisKeys SEALDeserialize(const SEALContext& sealctx, const string& in) {
GaloisKeys out;
std::stringstream stream;
stream << in;
out.load(sealctx, stream);
return out;
}
int main() {
EncryptionParameters parameters(scheme_type::ckks);
parameters.set_poly_modulus_degree(8192);
parameters.set_coeff_modulus(
CoeffModulus::Create(8192, {40, 21, 21, 21, 21, 21, 21, 40}));
auto ctx = SEALContext(parameters);
auto keygen = KeyGenerator(ctx);
auto sk = SecretKey(keygen.secret_key());
GaloisKeys gk;
keygen.create_galois_keys(gk);
auto serial = SEALSerialize(gk);
auto new_gk = SEALDeserialize(ctx, serial);
SEALSerialize(new_gk);
return 0;
}
My only "custom" flags for the build system are
set(CMAKE_CXX_STANDARD 17)
I ran the test with strace, and it actually shows an infinite loop of mmaps until it crashes.
mmap(NULL, 79695872, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7efbdca7a000
mmap(NULL, 79958016, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7efbd7e39000
mmap(NULL, 80220160, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7efbd31b8000
mmap(NULL, 80482304, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7efbce4f7000
mmap(NULL, 80744448, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7efbc97f6000
mmap(NULL, 81006592, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7efbc4ab5000
mmap(NULL, 81268736, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7efbbfd34000
mmap(NULL, 81530880, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7efbbaf73000
mmap(NULL, 81793024, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7efbb6172000
mmap(NULL, 82055168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7efbb1331000
mmap(NULL, 82317312, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7efbac4b0000
mmap(NULL, 82579456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7efba75ef000
mmap(NULL, 82841600, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7efba26ee000
mmap(NULL, 83103744, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7efb9d7ad000
mmap(NULL, 83365888, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7efb9882c000
mmap(NULL, 83628032, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7efb9386b000
mmap(NULL, 83890176, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7efb8e86a000
mmap(NULL, 84152320, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7efb89829000
+++ killed by SIGKILL +++
Killed
Tested with SEAL 3.6. Ubuntu 20.04. gcc 9.3.0
The code was OK with SEAL 3.5.9, I hope I didn't miss something in the updated API.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels