172 похожих чатов

А extension какие-то установлены? shared_preload_library в конфиге postgres?

26 ответов

20 просмотров

#shared_preload_libraries = '' # (change requires restart)

S-B Автор вопроса
Сергей Посохов
#shared_preload_libraries = '' # (change requires...

я бы поставил пакет с отладочными символами postgres и libc, подключился бы gdb к зависшей сессии с insert и выполнил бы в gdb команду bt, это покажет в каком месте исходного кода postgres он в этот момент находится и уже от этого продолжал бы разбирательство

S B
я бы поставил пакет с отладочными символами postgr...

попробую провернуть такой фокус, спасибо

S B
я бы поставил пакет с отладочными символами postgr...

Картина вот такая: (gdb) bt #0 0x00007f8156b95f0d in sem_post@@GLIBC_2.2.5 () from /lib64/libpthread.so.0 #1 0x00000000006e03a2 in PGSemaphoreUnlock () #2 0x00000000007556bc in LWLockRelease () #3 0x00000000004da391 in _bt_relandgetbuf () #4 0x00000000004df237 in _bt_moveright () #5 0x00000000004df471 in _bt_search () #6 0x00000000004d96cd in _bt_doinsert () #7 0x00000000004dc961 in btinsert () #8 0x000000000061558a in ExecInsertIndexTuples () #9 0x000000000063a729 in ExecInsert () #10 0x000000000063ba41 in ExecModifyTable () #11 0x0000000000616192 in standard_ExecutorRun () #12 0x0000000000765fea in ProcessQuery () #13 0x00000000007662be in PortalRunMulti () #14 0x0000000000766d85 in PortalRun () #15 0x0000000000762f34 in exec_simple_query () #16 0x00000000007641a2 in PostgresMain () #17 0x00000000004844de in ServerLoop () #18 0x00000000006f32a3 in PostmasterMain () #19 0x00000000004853e3 in main ()

S-B Автор вопроса
Сергей Посохов
Картина вот такая: (gdb) bt #0 0x00007f8156b95f0...

интересно, bt — это функции btree индекса

S B
интересно, bt — это функции btree индекса

ну вот есть предположение, что два экземпляра скрипта попытались вставить одну и ту же строку, и один из них успел, а второй нарвался на constraint индекса.

S-B Автор вопроса
Сергей Посохов
ну вот есть предположение, что два экземпляра скри...

это похоже на баг в postgres или баг/повреждение семафоров в glibc (хотя тогда бы по идеи тоже просто ошибку писало)

S-B Автор вопроса
Сергей Посохов
Картина вот такая: (gdb) bt #0 0x00007f8156b95f0...

Странно, gdb вроде номера строк ещё писал. Попробуйте gdb -full запостить на pastebin какой-нибудь. А, и да, какая версия postgres?

S B
а это докер или голое железо?

это был докер из под патрони, были проблемы другого рода, переехали на железо, просто запустив постгре с железа и подсунув ему дату. Версия постгрес 12,7

Сергей Посохов
это был докер из под патрони, были проблемы другог...

Как за две секунды сломать мозг, читателям, хе-хе. Ну, данные всё-таки, а не дату. В английском-то data и date нормально разичаются!

Сергей Посохов
Картина вот такая: (gdb) bt #0 0x00007f8156b95f0...

Ой, простите, bt -full . Что-то я не проснулся, да.

Сергей Посохов
Картина вот такая: (gdb) bt #0 0x00007f8156b95f0...

Кстати, ещё интересны версии ядра и glibc. И поставить libc6-dbg, если есть в дистрибутиве. Вообще, на первый взгляд выглядит как баг в libc.

Ilya Anfimov
И версию libc заодно скажыте, да.

sem_post@@GLIBC_2.2.5 () - это оно? ядро 3,10,0,-1160

Сергей Посохов
glibc-2.17

Ага, интересно.

сервак с базой без инета, пока не могу туда поставить debuginfo, rpm ставлю, все равно не видит

Сергей Посохов
glibc-2.17

Но вряд ли таким будут заниматься -- это очень старый glibc, и sem_post с тех пор, кажэтся, полтора раза переписали...

Сергей Посохов
вы к тому, что если это баг?

Ну, очень похожэ на баг glibc, да.

Сергей Посохов
glibc-2.17

8.5 лет релизу. По компьютэрным меркам это ужэ археология.

Сергей Посохов
вы к тому, что если это баг?

А в качестве временной заплатки -- http://web.mit.edu/gnu/doc/html/gdb_toc.html#SEC96

Сергей Посохов
return вызвать из gdb? попробую. Спасибо

Только лучшэ, наверное, всё-таки glibc return. Безопаснее -- там почти ничего ужэ меняться не должно. И с правильным кодом (0 кажэтся для sem_post ?)

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Ребят в СИ можно реализовать ООП?
Николай
33
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Карта сайта