сигнал 6 во время шага sqlite3

#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 использует общую память, это может быть связано с этим. Эта ошибка возникает случайным образом с одним и тем же кодом, поэтому мне трудно поверить, что это связано с кодом. Я проверил правильность распределения (в противном случае я бы получил ошибку сегментации).