#linux #sqlite
#linux #sqlite
Вопрос:
Работа в режиме WAL — один писатель и несколько читателей. Считыватели — это потоки в том же процессе, использующие режим сериализации.
Вот обратный путь:
#0 0x00007f4f78f0d08d in nanosleep () from /lib/x86_64-linux-gnu/libc.so.6
#1 0x00007f4f78f0cf2c in sleep () from /lib/x86_64-linux-gnu/libc.so.6
#2 0x00007f4f7982d881 in signal_catch (signo=6) at signal_masker.c:35
#3 <signal handler called>
#4 0x00007f4f78e83425 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#5 0x00007f4f78e86b8b in abort () from /lib/x86_64-linux-gnu/libc.so.6
#6 0x00007f4f78ec139e in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#7 0x00007f4f78ecbb96 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#8 0x00007f4f77661690 in sqlite3_free () from /usr/lib/x86_64-linux-gnu/libsqlite3.so.0
#9 0x00007f4f77664b96 in ?? () from /usr/lib/x86_64-linux-gnu/libsqlite3.so.0
#10 0x00007f4f77664c7c in ?? () from /usr/lib/x86_64-linux-gnu/libsqlite3.so.0
#11 0x00007f4f77664cb0 in ?? () from /usr/lib/x86_64-linux-gnu/libsqlite3.so.0
#12 0x00007f4f7768b477 in ?? () from /usr/lib/x86_64-linux-gnu/libsqlite3.so.0
#13 0x00007f4f7769a249 in ?? () from /usr/lib/x86_64-linux-gnu/libsqlite3.so.0
#14 0x00007f4f776a9689 in ?? () from /usr/lib/x86_64-linux-gnu/libsqlite3.so.0
#15 0x00007f4f776ae451 in sqlite3_step () from /usr/lib/x86_64-linux-gnu/libsqlite3.s
У кого-нибудь есть идея?
Комментарии:
1. Это похоже на повреждение памяти, которое, вероятно, вызвано вашим кодом.
2. Поскольку режим WAL использует общую память, это может быть связано с этим. Эта ошибка возникает случайным образом с одним и тем же кодом, поэтому мне трудно поверить, что это связано с кодом. Я проверил правильность распределения (в противном случае я бы получил ошибку сегментации).