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