From: | Sergei Kornilov <sk(at)zsrv(dot)org> |
---|---|
To: | Justin Pryzby <pryzby(at)telsasoft(dot)com>, Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com> |
Cc: | "pgsql-hackers(at)lists(dot)postgresql(dot)org" <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: pg11.1: dsa_area could not attach to segment |
Date: | 2019-02-12 09:14:59 |
Message-ID: | 2614901549962899@sas1-4b7566131ec9.qloud-c.yandex.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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(at)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
From | Date | Subject | |
---|---|---|---|
Next Message | Dean Rasheed | 2019-02-12 10:33:33 | Re: BUG #15623: Inconsistent use of default for updatable view |
Previous Message | Kyotaro HORIGUCHI | 2019-02-12 09:05:47 | Re: Protect syscache from bloating with negative cache entries |