From: | yuansong <yyuansong(at)126(dot)com> |
---|---|
To: | "Peter Geoghegan" <pg(at)bowt(dot)ie>, "pgsql-hackers(at)lists(dot)postgresql(dot)org" <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re:Re: Re:Re:Re: backup server core when redo btree_xlog_insert that type is XLOG_BTREE_INSERT_POST |
Date: | 2025-01-11 09:40:01 |
Message-ID: | 4ea3037a.2337.19454bc1a02.Coremail.yyuansong@126.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs pgsql-hackers |
Thank you very much for Peter Geoghegan's help. The issue has been resolved for some time now. It was indeed caused by corrupted index data, which resulted from collation differences between the hosts before and after the migration. Although the collation names were consistent, the differing glibc versions on the servers led to collation discrepancies, which caused the index sorting to become chaotic.
However, I noticed that the values of insertstate->postingoff are a bit disordered. In _bt_binsrch_posting, when if (!BTreeTupleIsPosting(itup)) return 0; is encountered, the normal search return value low starts from 0. In theory, there could also be a situation where the return value is 0. Therefore, it might be worth considering initializing or using non-PostList values as -1, and using -2 to represent ItemIdIsDead. Any other valid values should be greater than 0.
Additionally, I don’t think it's a good implementation for _bt_binsrch_insert to continue searching after finding the correct postingoff using binary search. The current approach is confusing and inefficient. Moreover, the idea of continuing the search to check if another postingoff exists in order to trigger an error seems to have minimal impact, as it only detects certain cases. This results in a function doing unrelated tasks. If such index anomalies need to be checked, it would be better to do so using external tools rather than checking during the core search process. The theory of single responsibility for a function。 If you agree with this proposal, I can try to implement the related fix later.
From | Date | Subject | |
---|---|---|---|
Next Message | PG Bug reporting form | 2025-01-11 17:27:35 | BUG #18771: ICU custom collations with rules ignore collator strength option. |
Previous Message | Tom Lane | 2025-01-10 14:48:16 | Re: BUG #18770: The function 'packGraph ' causes a memory leak. |
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Eisentraut | 2025-01-11 09:40:26 | Re: Include patch id in commitfest page |
Previous Message | Guillaume Lelarge | 2025-01-11 09:15:06 | Re: explain analyze rows=%.0f |