cygwin rename instead of link (7.2.2)
Started by Henshall, Stuart - WCPalmost 24 years ago2 messagespatches
In the recently released 7.2.2 there is still the problem that this patch
solved:
http://archives.postgresql.org/pgsql-cygwin/2002-05/msg00053.php
Here is a patch against 7.2.2 to resolve it:
*** src/backend/access/transam/xlog.c.orig Fri Mar 15 19:20:42 2002
--- src/backend/access/transam/xlog.c Mon Jun 09 13:05:26 2002
***************
** 1506,1512 ****
* overwrite an existing logfile. However, there shouldn't be one,
so
* rename() is an acceptable substitute except for the truly
paranoid.
*/
! #ifndef __BEOS__
if (link(tmppath, path) < 0)
elog(STOP, "link from %s to %s (initialization of log file
%u, segment %u) failed: %m",
tmppath, path, log, seg);
--- 1506,1512 ----
* overwrite an existing logfile. However, there shouldn't be one,
so
* rename() is an acceptable substitute except for the truly
paranoid.
*/
! #if !defined(__BEOS__) && !defined(__CYGWIN__)
if (link(tmppath, path) < 0)
elog(STOP, "link from %s to %s (initialization of log file
%u, segment %u) failed: %m",
tmppath, path, log, seg);
Re: cygwin rename instead of link (7.2.2)
The fix will appear in 7.3:
#if !defined(__BEOS__) && !defined(N_PLAT_NLM) && !defined(__CYGWIN__)
if (link(tmppath, path) < 0)
elog(PANIC, "link from %s to %s (initialization of log file %u, segment %u) failed: %m",
tmppath, path, log, seg);
unlink(tmppath);
We could have back-patched this into 7.2.2, but one thought of it. Sorry.
---------------------------------------------------------------------------
Henshall, Stuart - WCP wrote:
In the recently released 7.2.2 there is still the problem that this patch solved: http://archives.postgresql.org/pgsql-cygwin/2002-05/msg00053.php Here is a patch against 7.2.2 to resolve it: *** src/backend/access/transam/xlog.c.orig Fri Mar 15 19:20:42 2002 --- src/backend/access/transam/xlog.c Mon Jun 09 13:05:26 2002 *************** ** 1506,1512 **** * overwrite an existing logfile. However, there shouldn't be one, so * rename() is an acceptable substitute except for the truly paranoid. */ ! #ifndef __BEOS__ if (link(tmppath, path) < 0) elog(STOP, "link from %s to %s (initialization of log file %u, segment %u) failed: %m", tmppath, path, log, seg); --- 1506,1512 ---- * overwrite an existing logfile. However, there shouldn't be one, so * rename() is an acceptable substitute except for the truly paranoid. */ ! #if !defined(__BEOS__) && !defined(__CYGWIN__) if (link(tmppath, path) < 0) elog(STOP, "link from %s to %s (initialization of log file %u, segment %u) failed: %m", tmppath, path, log, seg);
--
Bruce Momjian | http://candle.pha.pa.us
pgman@candle.pha.pa.us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073