Re: [Win32] Problem with rename()
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: "Peter Brant" <Peter.Brant@wicourts.gov>
Cc: "Bruce Momjian" <pgman@candle.pha.pa.us>, "<Qingqing Zhou" <zhouqq@cs.toronto.edu>, "<Magnus Hagander" <mha@sollentuna.net>, pgsql-bugs@postgresql.org
Date: 2006-04-18T14:50:58Z
Lists: pgsql-bugs
"Peter Brant" <Peter.Brant@wicourts.gov> writes: > LOG: could not rename file "pg_xlog/000000010000010A000000BD" to > "pg_xlog/000000010000010A000000D7", continuing to try > ... > Only one process (postgres.exe) is holding a handle to > pg_xlog/000000010000010A000000BD: > ... > The second is similar, except that two postgres.exe processes (and > nothing else) have the file open: Hmm, could these be backends that have been sitting idle for some time? I'd expect a backend to be holding open a handle for whichever WAL segment it last wrote to. If the backend sits idle for a couple of checkpoints while others are advancing the end of WAL, then that segment could become a target for renaming. The only workable fix I can think of is to allow the checkpointer to simply fail to rename this segment and go on about its business, figuring that we'll be able to rename/delete the WAL segment in some future checkpoint cycle. Not sure how messy that would be to implement. regards, tom lane