chore: Add more logging to loading conferences from savedata.

Better error messages than "something went wrong in type 20".

Also fix bazel-asan/tsan builds.

https://github.com/tweag/rules_nixpkgs/issues/442 is blocking fuzz
tests under asan.
This commit is contained in:
iphydf 2023-11-08 14:40:12 +00:00
parent 1195271b7f
commit 6be29f01e5
No known key found for this signature in database
GPG Key ID: 3855DBA2D74403C9
6 changed files with 15 additions and 9 deletions

View File

@ -4,11 +4,12 @@ set -eux
git submodule update --init --recursive git submodule update --init --recursive
/src/workspace/tools/inject-repo c-toxcore /src/workspace/tools/inject-repo c-toxcore
# TODO(iphydf): Re-enable fuzz-test when https://github.com/tweag/rules_nixpkgs/issues/442 is fixed.
cd /src/workspace && bazel test -k \ cd /src/workspace && bazel test -k \
--config=ci \
--config=remote \ --config=remote \
--build_tag_filters=-haskell \ --build_tag_filters=-haskell,-fuzz-test \
--test_tag_filters=-haskell \ --test_tag_filters=-haskell,-fuzz-test \
--remote_download_minimal \
-- \ -- \
//c-toxcore/... \ //c-toxcore/... \
"$@" "$@"

View File

@ -1 +1 @@
61c4cff326cf3a32fa5edad1c899c9eb586e4ebfcb8d11c9cf55d120fc7ab467 /usr/local/bin/tox-bootstrapd 036adfc1e993624ae0bf49f08c2890bb44e6d4224a07a8c7fd2e2b5a8be6bf4c /usr/local/bin/tox-bootstrapd

View File

@ -28,7 +28,7 @@ cc_library(
cc_fuzz_test( cc_fuzz_test(
name = "bootstrap_fuzz_test", name = "bootstrap_fuzz_test",
#size = "small", size = "small",
srcs = ["bootstrap_harness.cc"], srcs = ["bootstrap_harness.cc"],
copts = ["-UNDEBUG"], copts = ["-UNDEBUG"],
corpus = ["//tools/toktok-fuzzer/corpus:bootstrap_fuzzer"], corpus = ["//tools/toktok-fuzzer/corpus:bootstrap_fuzzer"],
@ -43,7 +43,7 @@ cc_fuzz_test(
cc_fuzz_test( cc_fuzz_test(
name = "e2e_fuzz_test", name = "e2e_fuzz_test",
#size = "small", size = "small",
srcs = ["e2e_fuzz_test.cc"], srcs = ["e2e_fuzz_test.cc"],
copts = ["-UNDEBUG"], copts = ["-UNDEBUG"],
corpus = ["//tools/toktok-fuzzer/corpus:e2e_fuzz_test"], corpus = ["//tools/toktok-fuzzer/corpus:e2e_fuzz_test"],
@ -59,7 +59,7 @@ cc_fuzz_test(
cc_fuzz_test( cc_fuzz_test(
name = "toxsave_fuzz_test", name = "toxsave_fuzz_test",
#size = "small", size = "small",
srcs = ["toxsave_harness.cc"], srcs = ["toxsave_harness.cc"],
copts = ["-UNDEBUG"], copts = ["-UNDEBUG"],
corpus = ["//tools/toktok-fuzzer/corpus:toxsave_fuzzer"], corpus = ["//tools/toktok-fuzzer/corpus:toxsave_fuzzer"],
@ -92,7 +92,7 @@ fuzzing_binary(
cc_fuzz_test( cc_fuzz_test(
name = "protodump_reduce", name = "protodump_reduce",
#size = "small", size = "small",
srcs = ["protodump_reduce.cc"], srcs = ["protodump_reduce.cc"],
copts = ["-UNDEBUG"], copts = ["-UNDEBUG"],
deps = [ deps = [

View File

@ -2988,6 +2988,7 @@ static State_Load_Status load_nospam_keys(Messenger *m, const uint8_t *data, uin
load_secret_key(m->net_crypto, data + sizeof(uint32_t) + CRYPTO_PUBLIC_KEY_SIZE); load_secret_key(m->net_crypto, data + sizeof(uint32_t) + CRYPTO_PUBLIC_KEY_SIZE);
if (!pk_equal(data + sizeof(uint32_t), nc_get_self_public_key(m->net_crypto))) { if (!pk_equal(data + sizeof(uint32_t), nc_get_self_public_key(m->net_crypto))) {
LOGGER_ERROR(m->log, "public key stored in savedata does not match its secret key");
return STATE_LOAD_STATUS_ERROR; return STATE_LOAD_STATUS_ERROR;
} }

View File

@ -802,6 +802,7 @@ static int addpeer(Group_Chats *g_c, uint32_t groupnumber, const uint8_t *real_p
if (peer_index != -1) { if (peer_index != -1) {
if (!pk_equal(g->group[peer_index].real_pk, real_pk)) { if (!pk_equal(g->group[peer_index].real_pk, real_pk)) {
LOGGER_ERROR(g_c->m->log, "peer public key is incorrect for peer %d", peer_number);
return -1; return -1;
} }
@ -3679,6 +3680,7 @@ static State_Load_Status load_conferences_helper(Group_Chats *g_c, const uint8_t
if (groupnumber == -1) { if (groupnumber == -1) {
// If this fails there's a serious problem, don't bother with cleanup // If this fails there's a serious problem, don't bother with cleanup
LOGGER_ERROR(g_c->m->log, "conference creation failed");
return STATE_LOAD_STATUS_ERROR; return STATE_LOAD_STATUS_ERROR;
} }
@ -3696,6 +3698,7 @@ static State_Load_Status load_conferences_helper(Group_Chats *g_c, const uint8_t
assert(ret); assert(ret);
} }
LOGGER_ERROR(g_c->m->log, "conference loading failed");
return STATE_LOAD_STATUS_ERROR; return STATE_LOAD_STATUS_ERROR;
} }
@ -3705,6 +3708,7 @@ static State_Load_Status load_conferences_helper(Group_Chats *g_c, const uint8_t
nullptr, true, false); nullptr, true, false);
if (peer_index == -1) { if (peer_index == -1) {
LOGGER_ERROR(g_c->m->log, "adding peer %d failed", g->peer_number);
return STATE_LOAD_STATUS_ERROR; return STATE_LOAD_STATUS_ERROR;
} }

View File

@ -52,7 +52,7 @@ int state_load(const Logger *log, state_load_cb *state_load_callback, void *oute
} }
case STATE_LOAD_STATUS_ERROR: { case STATE_LOAD_STATUS_ERROR: {
LOGGER_ERROR(log, "Error occcured in state file (type: %u).", type); LOGGER_ERROR(log, "Error occcured in state file (type: 0x%02x).", type);
return -1; return -1;
} }