Re: BUG #19078: Segfaults in tts_minimal_store_tuple() following pg_upgrade

Поиск
Список
Период
Сортировка
От Yuri Zamyatin
Тема Re: BUG #19078: Segfaults in tts_minimal_store_tuple() following pg_upgrade
Дата
Msg-id ly6rss443iajiv5cfypzu6fgrmxdbwzdtuujkddr4eis7s2gcq@gcdytigety6e
обсуждение исходный текст
Ответ на Re: BUG #19078: Segfaults in tts_minimal_store_tuple() following pg_upgrade  (David Rowley <dgrowleyml@gmail.com>)
Ответы Re: BUG #19078: Segfaults in tts_minimal_store_tuple() following pg_upgrade
Список pgsql-bugs
I found a much easier way.

create.sql:
> drop database if exists segtest;
> create database segtest;
> \c segtest;
> create table tcv_scene_datas(cv_scene_id bigint primary key) partition by range (cv_scene_id);
> do $$
> declare
>     i int;
>     range_start bigint;
>     range_end bigint;
>     partition_name text;
> begin
>     for i in 0..100 loop
>         range_start := 1 + (i * 10000);
>         range_end := range_start + 10000;
>         partition_name := 'tcv_scene_datas_' || LPAD(i::TEXT, 3, '0');
>         execute format(
>             'create table %I partition of tcv_scene_datas for values from (%s) to (%s)',
>             partition_name,
>             range_start,
>             range_end
>         );
>     end loop;
> end $$;
> insert into tcv_scene_datas(cv_scene_id) select id from generate_series(1,1_000_000) id;

crash.sql:
> \c segtest
> with ids as (select (random()*1_000_000)::int id from generate_series(1,1000))
> update tcv_scene_datas set cv_scene_id=cv_scene_id where cv_scene_id in(select id from ids);

Launch crash.sql in 16 threads of infinite loops:
> seq 16 | xargs -P 16 -I {} sh -c 'while true; do psql -f crash.sql; done'

In 1-2 minutes, 5 processes died with segfault.
Also I expected deadlocks with such query, strangely database did not report them.

Let me know if you need more data.

__
Best wishes, Yuri




В списке pgsql-bugs по дате отправления: