Re: pg11.1: dsa_area could not attach to segment

Поиск
Список
Период
Сортировка
От Sergei Kornilov
Тема Re: pg11.1: dsa_area could not attach to segment
Дата
Msg-id 2614901549962899@sas1-4b7566131ec9.qloud-c.yandex.net
обсуждение исходный текст
Ответ на Re: pg11.1: dsa_area could not attach to segment  (Justin Pryzby <pryzby@telsasoft.com>)
Ответы Re: pg11.1: dsa_area could not attach to segment  (Thomas Munro <thomas.munro@enterprisedb.com>)
Список pgsql-hackers
Hi

> I think this is tentatively confirmed..I ran 20 loops for over 90 minutes with
> no crash when parallel_leader_participation=off.
>
> On enabling parallel_leader_participation, crash within 10min.
>
> Sergei, could you confirm ?

I still have error with parallel_leader_participation = off. One difference is time: with parallel_leader_participation
=on i have error after minute-two, with off - error was after 20 min.
 

My desktop is 
- debian testing with actual updates, 4.19.0-2-amd64 #1 SMP Debian 4.19.16-1 (2019-01-17) x86_64 GNU/Linux
- gcc version 8.2.0 (Debian 8.2.0-16)
- i build fresh REL_11_STABLE postgresql with  ./configure --enable-cassert --enable-debug CFLAGS="-ggdb -Og -g3
-fno-omit-frame-pointer"--enable-tap-tests --prefix=/...
 

Can't provide dsa_dump(area) due recursion. With such dirty hack:

             fprintf(stderr,
-                    "    segment bin %zu (at least %d contiguous pages free):\n",
-                    i, 1 << (i - 1));
-            segment_index = area->control->segment_bins[i];
-            while (segment_index != DSA_SEGMENT_INDEX_NONE)
-            {
-                dsa_segment_map *segment_map;
-
-                segment_map =
-                    get_segment_by_index(area, segment_index);
-
-                fprintf(stderr,
-                        "      segment index %zu, usable_pages = %zu, "
-                        "contiguous_pages = %zu, mapped at %p\n",
-                        segment_index,
-                        segment_map->header->usable_pages,
-                        fpm_largest(segment_map->fpm),
-                        segment_map->mapped_address);
-                segment_index = segment_map->header->next;
-            }
+                    "    segment bin %zu (at least %d contiguous pages free), segment_index=%zu\n",
+                    i, 1 << (i - 1), area->control->segment_bins[i]);

i have result:

dsa_area handle 0:
  max_total_segment_size: 18446744073709551615
  total_segment_size: 2105344
  refcnt: 2
  pinned: f
  segment bins:
    segment bin 0 (at least -2147483648 contiguous pages free), segment_index=0
    segment bin 3 (at least 4 contiguous pages free), segment_index=1
    segment bin 8 (at least 128 contiguous pages free), segment_index=2
  pools:
    pool for blocks of span objects:
      fullness class 0 is empty
      fullness class 1:
        span descriptor at 0000010000001000, superblock at 0000010000001000, pages = 1, objects free = 54/72
      fullness class 2 is empty
      fullness class 3 is empty
    pool for large object spans:
      fullness class 0 is empty
      fullness class 1:
        span descriptor at 00000100000013b8, superblock at 0000020000009000, pages = 8, objects free = 0/0
        span descriptor at 0000010000001380, superblock at 0000020000001000, pages = 8, objects free = 0/0
        span descriptor at 0000010000001348, superblock at 00000100000f2000, pages = 8, objects free = 0/0
        span descriptor at 0000010000001310, superblock at 00000100000ea000, pages = 8, objects free = 0/0
        span descriptor at 00000100000012d8, superblock at 00000100000e2000, pages = 8, objects free = 0/0
        span descriptor at 00000100000012a0, superblock at 00000100000da000, pages = 8, objects free = 0/0
        span descriptor at 0000010000001268, superblock at 00000100000d2000, pages = 8, objects free = 0/0
        span descriptor at 0000010000001230, superblock at 00000100000ca000, pages = 8, objects free = 0/0
        span descriptor at 00000100000011f8, superblock at 00000100000c2000, pages = 8, objects free = 0/0
        span descriptor at 00000100000011c0, superblock at 00000100000ba000, pages = 8, objects free = 0/0
        span descriptor at 0000010000001188, superblock at 00000100000b2000, pages = 8, objects free = 0/0
        span descriptor at 0000010000001150, superblock at 00000100000aa000, pages = 8, objects free = 0/0
        span descriptor at 0000010000001118, superblock at 00000100000a2000, pages = 8, objects free = 0/0
        span descriptor at 00000100000010e0, superblock at 000001000009a000, pages = 8, objects free = 0/0
        span descriptor at 00000100000010a8, superblock at 0000010000092000, pages = 8, objects free = 0/0
        span descriptor at 0000010000001070, superblock at 0000010000012000, pages = 128, objects free = 0/0
      fullness class 2 is empty
      fullness class 3 is empty
    pool for size class 32 (object size 3640 bytes):
      fullness class 0 is empty
      fullness class 1:
        span descriptor at 0000010000001038, superblock at 0000010000002000, pages = 16, objects free = 17/18
      fullness class 2 is empty
      fullness class 3 is empty

"at least -2147483648" seems surprise.


melkij@melkij:~$ LANG=C ls -lt /dev/shm
total 0
-rw------- 1 melkij melkij 4194304 Feb 12 11:56 PostgreSQL.1822959854

only one segment, restart_after_crash = off and no more postgresql instances running.

regards, Sergei


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

Предыдущее
От: Kyotaro HORIGUCHI
Дата:
Сообщение: Re: Protect syscache from bloating with negative cache entries
Следующее
От: "Matsumura, Ryo"
Дата:
Сообщение: RE: [PROPOSAL]a new data type 'bytea' for ECPG