@@ -753,7 +753,7 @@ delete_walfiles_internal(XLogRecPtr keep_lsn, timelineInfo *tlinfo,
753
753
754
754
if (XLogRecPtrIsInvalid (keep_lsn ))
755
755
{
756
- /* Drop all segments in timeline */
756
+ /* Drop all files in timeline */
757
757
elog (INFO , "All files on timeline %i will be removed" , tlinfo -> tli );
758
758
StartSegNo = tlinfo -> begin_segno ;
759
759
EndSegNo = tlinfo -> end_segno ;
@@ -769,9 +769,11 @@ delete_walfiles_internal(XLogRecPtr keep_lsn, timelineInfo *tlinfo,
769
769
if (EndSegNo > 0 && EndSegNo > StartSegNo )
770
770
elog (INFO , "WAL segments between %08X%08X and %08X%08X on timeline %i will be removed" ,
771
771
(uint32 ) StartSegNo / xlog_seg_size , (uint32 ) StartSegNo % xlog_seg_size ,
772
- (uint32 ) EndSegNo / xlog_seg_size , (uint32 ) EndSegNo % xlog_seg_size ,
772
+ (uint32 ) (EndSegNo - 1 ) / xlog_seg_size ,
773
+ (uint32 ) (EndSegNo - 1 ) % xlog_seg_size ,
773
774
tlinfo -> tli );
774
775
776
+ /* sanity */
775
777
if (EndSegNo > StartSegNo )
776
778
/* typical scenario */
777
779
wal_size_logical = (EndSegNo - StartSegNo ) * xlog_seg_size ;
@@ -787,7 +789,7 @@ delete_walfiles_internal(XLogRecPtr keep_lsn, timelineInfo *tlinfo,
787
789
*/
788
790
if (StartSegNo > 0 && EndSegNo > 0 )
789
791
elog (WARNING , "On timeline %i first segment %08X%08X is greater than "
790
- "oldest segment to keep %08X%08X. Possible WAL archive corruption. " ,
792
+ "oldest segment to keep %08X%08X. Possible WAL archive corruption! " ,
791
793
tlinfo -> tli ,
792
794
(uint32 ) StartSegNo / xlog_seg_size , (uint32 ) StartSegNo % xlog_seg_size ,
793
795
(uint32 ) EndSegNo / xlog_seg_size , (uint32 ) EndSegNo % xlog_seg_size );
0 commit comments