Thread
-
Bug in writeTimeLineHistory
Fujii Masao <masao.fujii@gmail.com> — 2010-10-14T05:11:31Z
Hi, -------------- if (recoveryTarget == RECOVERY_TARGET_XID) snprintf(buffer, sizeof(buffer), "%s%u\t%s\t%s transaction %u\n", (srcfd < 0) ? "" : "\n", parentTLI, xlogfname, recoveryStopAfter ? "after" : "before", recoveryStopXid); if (recoveryTarget == RECOVERY_TARGET_TIME) snprintf(buffer, sizeof(buffer), "%s%u\t%s\t%s %s\n", (srcfd < 0) ? "" : "\n", parentTLI, xlogfname, recoveryStopAfter ? "after" : "before", timestamptz_to_str(recoveryStopTime)); else snprintf(buffer, sizeof(buffer), "%s%u\t%s\tno recovery target specified\n", (srcfd < 0) ? "" : "\n", parentTLI, xlogfname); -------------- In writeTimeLineHistory, the result of the above first snprintf is always overwritten by the following snprintf wrongly. I guess we forgot putting "else" in the second "if" statement. I attached the very simple patch. Since this bug was introduced in v9.0, the patch needs to be backported to 9.0. Regards, -- Fujii Masao NIPPON TELEGRAPH AND TELEPHONE CORPORATION NTT Open Source Software Center
-
Re: Bug in writeTimeLineHistory
Simon Riggs <simon@2ndquadrant.com> — 2010-10-14T18:17:35Z
Agreed, committed and backpatched. On Thu, 2010-10-14 at 14:11 +0900, Fujii Masao wrote: > Hi, > > -------------- > if (recoveryTarget == RECOVERY_TARGET_XID) > snprintf(buffer, sizeof(buffer), > "%s%u\t%s\t%s transaction %u\n", > (srcfd < 0) ? "" : "\n", > parentTLI, > xlogfname, > recoveryStopAfter ? "after" : "before", > recoveryStopXid); > if (recoveryTarget == RECOVERY_TARGET_TIME) > snprintf(buffer, sizeof(buffer), > "%s%u\t%s\t%s %s\n", > (srcfd < 0) ? "" : "\n", > parentTLI, > xlogfname, > recoveryStopAfter ? "after" : "before", > timestamptz_to_str(recoveryStopTime)); > else > snprintf(buffer, sizeof(buffer), > "%s%u\t%s\tno recovery target specified\n", > (srcfd < 0) ? "" : "\n", > parentTLI, > xlogfname); > -------------- > > In writeTimeLineHistory, the result of the above first snprintf is always > overwritten by the following snprintf wrongly. I guess we forgot putting > "else" in the second "if" statement. I attached the very simple patch. > > Since this bug was introduced in v9.0, the patch needs to be backported > to 9.0. > > Regards, > -- Simon Riggs www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Training and Services