|
|
|
segmentation fault
|
|||
|---|---|---|---|
|
#18+
удалось поставить Постгрес (9.3.?) в позу: Код: sql 1. 2. вопрос: куда копать ? что наиболее чревато "Segmentation fault"-ами ? есть какие-то общие рекомендации ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2014, 19:47:52 |
|
||
|
segmentation fault
|
|||
|---|---|---|---|
|
#18+
какабычна, Тут причины могут быть самые разные... криво собранное ядро, glibc, или сам постгрес, ошибки процессора или памяти. Посмотрите счетчики аппаратных ошибок в EDAC (/sys/devices/system/edac/...), счетчики ошибок IPMI через ipmitool sel elist. Если проблема воспроизводима, то дебажить постгрес с gdb. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2014, 20:25:46 |
|
||
|
segmentation fault
|
|||
|---|---|---|---|
|
#18+
какабычна, возможно какой-то внешний модуль использовался в этом запросе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2014, 22:29:53 |
|
||
|
segmentation fault
|
|||
|---|---|---|---|
|
#18+
Гость_0какабычна, возможно какой-то внешний модуль использовался в этом запросе. ближе к телу -- посмотрю пока, по памяти : -- это пишущая в 1-2 (до 3-х ) таблы [в зависимости от параметров] функция (хранимка) если правильно помню -- голый sql + plpgsql буквально должна дергаться часто, 10-ки 1000 раз на день. падает значительно реже. неужто есть такое редкое совпадение параметров. с которыми вызывается раз в 2-3 дня ? надо, конечно, проверить, не дергается ли там что со стороны из отягчающих -- триггера на вставляемых/изменяемых таблицах (партицирование, материализация) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2014, 23:12:13 |
|
||
|
segmentation fault
|
|||
|---|---|---|---|
|
#18+
какабычна, - собирать анамнез: когда и после чего началось? как долго перед этим работало нормально? - наиболее чревато (в случае, если причиной является битая память или глючные HDD) повреждением данных - при этом эти segfaults могут быть вызваны ранее повреждёнными данными; - пособирать логи (на стороне аппликухи или в БД через raise warning в хранимке) - при каких входных параметрах происходит "кирдык". если "железо" своё, то перенести БД на другой хост и нагрузить CPU, память, диски. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2014, 09:37:33 |
|
||
|
segmentation fault
|
|||
|---|---|---|---|
|
#18+
Корка есть? Если нет, то включите запись корок. Соберите постгрес с дебаг символами. Посмотрите стектрейс, вполне вероятно это прольет свет на то, по какой причине произошло падение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2014, 11:30:08 |
|
||
|
segmentation fault
|
|||
|---|---|---|---|
|
#18+
возникло: SELECT version() --"PostgreSQL 9.3.4 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-52), 64-bit" --боевой воспроизводится (не 100 %, но воспроизводится) --"PostgreSQL 9.2.8 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-52), 64-bit" --тесты и разработка нащупал, что проблема в материализации триггерами (есть константа, которая её отключает -- обходит в коде) в реальности там всё сложно устроено вкратце: таблицы мастер + слейв (по 5-10 записей на ключ мастера) + "мат представление" , собираемое триггерами И с того И с этого [что очень напрягает даже интуитивно]. (AFTER i,a,d; on each row) //партицировано по дате, живет месяц-другой// в мат представл. кроме полей мастера -- массивы ARRAY(SELECT field FROM slave WHERE id_master=:id_master) по всей этой бодяге -- индексы . пока обычные btree. (функциональные по массивам, но по ф-ям, возвращающим скаляры, составные с ними[ф-ями], условные с ними[же]). удается положить, когда конкурентно 2*{апдейтим мастера и пишем в слейва} в 2-х разных транзакциях. на роллбаке не упал ни разу. на коммите первой транзакции положил тест несколько раз (вторая валится, после успеха первой) , но всегда при пустых, перед тестом, массивах в полях-агрегатах. При непустых массивах (<>{}) в матвью положить пока не получилось. в общем, попытаюсь накидать тест-кейс попроще. чуть позже. но в любом случае, надо бы как-то изменить способ сбора мат-вьюхи (оставаясь в актуальном состоянии). там из-за этих триггеров и другие проблемы есть (в моем случае не мешают, но в общем -- всё плохо). -- интересуют сакскесс-стори (такой материализации). Они есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2014, 21:22:56 |
|
||
|
segmentation fault
|
|||
|---|---|---|---|
|
#18+
PS упустил -- в конкурентных транзах боремся за одну запись мат-вью (master_id). порядок обработки в каждой транзе -- сначала пишем апдейт мастера, потом -- инсерт в слейв (оба-2 стейтмента запускают свои row-триггера, ессно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2014, 21:28:24 |
|
||
|
segmentation fault
|
|||
|---|---|---|---|
|
#18+
продолжу мысль: какабычнаPS упустил -- в конкурентных транзах боремся за одну запись мат-вью (master_id). порядок обработки в каждой транзе -- сначала пишем апдейт мастера, потом -- инсерт в слейв (оба-2 стейтмента запускают свои row-триггера, ессно) поэтому 2-я транзакция всегда ждет коммита всей первой уже на первом пишущем стейтменте. Иди вернее - должна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2014, 21:31:34 |
|
||
|
|

start [/forum/topic.php?fid=53&gotonew=1&tid=1998595]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
166ms |
get topic data: |
8ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 184ms |
| total: | 418ms |

| 0 / 0 |
