Closed FSMaxB closed 8 years ago
Currently confirmed for 749ccc5
and later.
TODO:
conversation-packet-test
molch-test
Traces (8413617
):
Bisected to 47ac286fa1e671d080d6fbf50987ba4401749eb3 molch: wire up axolotl to the public API
.
Too bad, that's one of the biggest commits.
I found the problem. This bugs happens with a probability of exactly 2%. This happens when either the first or second prekey gets randomly chosen.
This is because the buffer that I use for the list of prekeys starts at the signature, not the actual prekeys. Therefore, if the chosen prekey is 1 or 2, it's either the first or second half of the signature of the prekey list (SIGNATURE_SIZE = 64
, PUBLIC_KEY_SIZE = 32
).
The fix is easy: Let the buffer start at the correct position. This is one more reason to switch to Googles Protocol buffers instead of doing this kind of stuff by hand.
Update: Actually, it's the second half of the signature and the first half of the identity key, but the point still stands.
About every 20th to 50th time,
molch-test
fails withERROR: Failed to start receive conversation
.I'll probably need to bisect this.
Way to reproduce:
And then wait. It happens after about 1 to 3 minutes on my machine.