Index: src/backend/postmaster/syslogger.c
===================================================================
--- src/backend/postmaster/syslogger.c	(HEAD)
+++ src/backend/postmaster/syslogger.c	(working copy)
@@ -352,7 +352,15 @@
 		}
 
 		if (rotation_requested)
+		{
+			/*
+			 * Force rotation when both values are zero.
+			 * It means the request was sent by pg_rotate_logfile.
+			 */
+			if (!time_based_rotation && size_rotation_for == 0)
+				size_rotation_for = LOG_DESTINATION_STDERR | LOG_DESTINATION_CSVLOG;
 			logfile_rotate(time_based_rotation, size_rotation_for);
+		}
 
 #ifndef WIN32
 
@@ -1154,7 +1162,7 @@
 		EnterCriticalSection(&sysfileSection);
 #endif
 		fclose(csvlogFile);
-		syslogFile = fh;
+		csvlogFile = fh;
 #ifdef WIN32
 		LeaveCriticalSection(&sysfileSection);
 #endif
