I encountered a hard crash during the execution of a compiled circuit. I guess this is not an intended behavior? At least, we should raise a proper runtime error? ![]()
The crash seems to be triggered when initializing an fhe.array where the last element is an encrypted input, and here is a minimal reproducible example:
from concrete import fhe
configuration = fhe.Configuration()
@fhe.compiler({'x': 'encrypted'})
def array_debug(x):
init_vector = fhe.array([0, 1, x])
scaled_vector = fhe.constant(4) * init_vector
extracted_val = scaled_vector[2]
return extracted_val + x
if __name__ == '__main__':
x = 2
expect_result = array_debug(x)
inputset = fhe.inputset(fhe.int8)
circuit = array_debug.compile(inputset, configuration=configuration)
circuit.keygen()
encrypted_x = circuit.encrypt(x)
encrypted_result = circuit.run(encrypted_x)
The output is:
malloc(): corrupted top size
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0 libConcretelangBindingsPythonCAPI.so 0x0000794ea8286221 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 225
1 libConcretelangBindingsPythonCAPI.so 0x0000794ea8283c34
2 libc.so.6 0x0000794ffd042520
3 libc.so.6 0x0000794ffd0969fc pthread_kill + 300
4 libc.so.6 0x0000794ffd042476 raise + 22
5 libc.so.6 0x0000794ffd0287f3 abort + 211
6 libc.so.6 0x0000794ffd089677
7 libc.so.6 0x0000794ffd0a0cfc
...