]> granicus.if.org Git - postgresql/commitdiff
Fix erroneous choices of segNo variables
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Wed, 31 Oct 2012 14:05:28 +0000 (11:05 -0300)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Wed, 31 Oct 2012 14:05:28 +0000 (11:05 -0300)
Commit dfda6eba (which changed segment numbers to use a single 64 bit
variable instead of log/seg) introduced a couple of bogus choices of
exactly which log segment number variable to use in each case.

This is currently pretty harmless; in one place, the bogus number was
only being used in an error message for a pretty unlikely condition
(failure to fsync a WAL segment file).  In the other, it was using a
global variable instead of the local variable; but all callsites were
passing the value of the global variable anyway.

No need to backpatch because that commit is not on earlier branches.

src/backend/access/transam/xlog.c

index d251d08b1903b98603517084309184b11649f488..3cee540ac49ba9ee274eb57cb6fb17f56da0c416 100644 (file)
@@ -8175,7 +8175,7 @@ assign_xlog_sync_method(int new_sync_method, void *extra)
                                ereport(PANIC,
                                                (errcode_for_file_access(),
                                                 errmsg("could not fsync log segment %s: %m",
-                                                               XLogFileNameP(curFileTLI, readSegNo))));
+                                                               XLogFileNameP(curFileTLI, openLogSegNo))));
                        if (get_sync_bit(sync_method) != get_sync_bit(new_sync_method))
                                XLogFileClose();
                }
@@ -8199,7 +8199,7 @@ issue_xlog_fsync(int fd, XLogSegNo segno)
                                ereport(PANIC,
                                                (errcode_for_file_access(),
                                                 errmsg("could not fsync log file %s: %m",
-                                                               XLogFileNameP(ThisTimeLineID, openLogSegNo))));
+                                                               XLogFileNameP(ThisTimeLineID, segno))));
                        break;
 #ifdef HAVE_FSYNC_WRITETHROUGH
                case SYNC_METHOD_FSYNC_WRITETHROUGH:
@@ -8207,7 +8207,7 @@ issue_xlog_fsync(int fd, XLogSegNo segno)
                                ereport(PANIC,
                                                (errcode_for_file_access(),
                                                 errmsg("could not fsync write-through log file %s: %m",
-                                                               XLogFileNameP(ThisTimeLineID, openLogSegNo))));
+                                                               XLogFileNameP(ThisTimeLineID, segno))));
                        break;
 #endif
 #ifdef HAVE_FDATASYNC
@@ -8216,7 +8216,7 @@ issue_xlog_fsync(int fd, XLogSegNo segno)
                                ereport(PANIC,
                                                (errcode_for_file_access(),
                                                 errmsg("could not fdatasync log file %s: %m",
-                                                               XLogFileNameP(ThisTimeLineID, openLogSegNo))));
+                                                               XLogFileNameP(ThisTimeLineID, segno))));
                        break;
 #endif
                case SYNC_METHOD_OPEN: