BUG #15207: In crash recovery,SyncDataDirectory() will fall into recursion trap

Поиск
Список
Период
Сортировка
От PG Bug reporting form
Тема BUG #15207: In crash recovery,SyncDataDirectory() will fall into recursion trap
Дата
Msg-id 152706182839.26748.2392292684934019090@wrigleys.postgresql.org
обсуждение исходный текст
Ответы Re: BUG #15207: In crash recovery, SyncDataDirectory() will fall into recursion trap  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
The following bug has been logged on the website:

Bug reference:      15207
Logged by:          bret shao
Email address:      bret.shao@outlook.com
PostgreSQL version: 9.5.7
Operating system:   windows 10
Description:

Hi,

I'm R&D engineer of HighGo Co. Ltd.

i run the test case as below.
I install the PG at location "D:\highgo\database\", then i create a table
space with "create tablespace spacetest location 'D:\highgo\database\'"
then make the PG crash.
In crash recovery,  SyncDataDirectory() will be called in function
StartupXLOG(), in this function will call walkdir() to fsync the dir and its
contents.
Because of that the table space spacetest is point to data dir of PG, here
is 'D:\highgo\database\', 
so function walkdir will fall into recursion trap due to lstat is defined to
stat in windows environment when the pg_tblspc is handled.
Due to windows restrict the length of filename to 255, so the recursion will
terminate when the length of file name reach 255. 

Although, this issue will not affect the startup of PG but i think this
issue should be considered to fix.


the logs are showed as below.
2018-05-23 09:39:46 HKTLOG:  58P01: could not stat file

"./pg_tblspc/16384/pg_tblspc/16384/pg_tblspc/16384/pg_tblspc/16384/pg_tblspc/16384/pg_tblspc/16384/pg_tblspc/16384/pg_tblspc/16384/pg_tblspc/16384/pg_tblspc/16384/pg_tblspc/16384/pg_tblspc/16384/hgdb_log/postgresql-2018-05-23_082809.log":
No such file or directory
2018-05-23 09:39:46 HKTLOG:  58P01: could not stat file 
.........
2018-05-23 09:43:24 HKTLOG:  58P01: could not stat file

"pg_tblspc/16384/pg_tblspc/16384/pg_tblspc/16384/pg_tblspc/16384/pg_tblspc/16384/pg_tblspc/16384/pg_tblspc/16384/pg_tblspc/16384/pg_tblspc/16384/pg_tblspc/16384/pg_tblspc/16384/pg_tblspc/16384/pg_tblspc/16384/pg_xlog/archive_status":
No such file or directory
2018-05-23 09:43:25 HKTLOG:  00000: database system was not properly shut
down; automatic recovery in progress
2018-05-23 09:43:25 HKTLOG:  00000: invalid record length at 0/1743418
2018-05-23 09:43:25 HKTLOG:  00000: redo is not required
2018-05-23 09:43:25 HKTLOG:  00000: MultiXact member wraparound protections
are now enabled
2018-05-23 09:43:25 HKTLOG:  00000: database system is ready to accept
connections
2018-05-23 09:43:25 HKTLOG:  00000: autovacuum launcher started


thanks.
Br.
Bret


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

Предыдущее
От: "158306855"
Дата:
Сообщение: Re: [BUG] Re-entering malloc problem when use --enable-nlsbuildpostgresql
Следующее
От: Tom Lane
Дата:
Сообщение: Re: BUG #15207: In crash recovery, SyncDataDirectory() will fall into recursion trap