Re: [HACKERS] Broken hint bits (freeze)
От | Bruce Momjian |
---|---|
Тема | Re: [HACKERS] Broken hint bits (freeze) |
Дата | |
Msg-id | 20170630005634.GA4448@momjian.us обсуждение исходный текст |
Ответ на | Re: [HACKERS] Broken hint bits (freeze) (Bruce Momjian <bruce@momjian.us>) |
Ответы |
Re: [HACKERS] Broken hint bits (freeze)
|
Список | pgsql-hackers |
On Wed, Jun 28, 2017 at 10:11:35PM -0400, Bruce Momjian wrote: > On Fri, Jun 23, 2017 at 06:17:47PM +0300, Sergey Burladyan wrote: > > PS: > > I successfully upgraded last night from 9.2 to 9.4 and find other issue :-) > > > > It is about hash index and promote: > > 1. create master > > 2. create standby from it > > 3. create unlogged table and hash index like: > > create unlogged table test (id int primary key, v text); > > create index on test using hash (id); > > 3. stop master > > 4. promote standby > > > > now, if you try to upgrade this new promoted master pg_upgrade will stop > > on this hash index: > > error while creating link for relation "public.test_id_idx" ("s/9.2/base/16384/16393" to "m/9.4/base/16422/16393"): Nosuch file or directory > > Failure, exiting > > > > I touch this file (s/9.2/base/16384/16393) and rerun pg_upgrade from > > scratch and it complete successfully. > > Sergey, can you please test if the table "test" is not unlogged, does > pg_upgrade still fail on the hash index file? I was able to reproduce this failure on my server. :-) What I found is that the problem is larger than I thought. Sergey is correct that pg_upgrade fails because there is no hash file associated with the unlogged table, but in fact a simple access of the unlogged table with a hash index generates an error: test=> SELECT * FROM t_u_hash;ERROR: could not open file "base/16384/16392": No such file or directory What is interesting is that this is the only combination that generates an error. A unlogged able with a btree index or a logged table with a hash index are fine, e.g.: List of relations Schema | Name | Type | Owner--------+-----------+-------+---------- public | t_btree | table | postgres public | t_hash | table | postgres public | t_u_btree | table | postgres fail--> public | t_u_hash | table | postgres This doesn't fail on PG 10 since we WAL-log hash indexes. I think we have two questions: 1. do we fix this in the server 2. if not, do we fix pg_upgrade -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + As you are, so once was I. As I am, so you will be. + + Ancient Roman grave inscription +
В списке pgsql-hackers по дате отправления: