]> granicus.if.org Git - postgresql/commitdiff
Free walmethods before exiting
authorMagnus Hagander <magnus@hagander.net>
Tue, 25 Oct 2016 16:57:56 +0000 (18:57 +0200)
committerMagnus Hagander <magnus@hagander.net>
Tue, 25 Oct 2016 17:00:12 +0000 (19:00 +0200)
Not strictly necessary since we quite after, but could become important
in the future if we do restarts etc.

Michael Paquier with nitpicking from me

src/bin/pg_basebackup/pg_basebackup.c
src/bin/pg_basebackup/pg_receivexlog.c
src/bin/pg_basebackup/walmethods.c
src/bin/pg_basebackup/walmethods.h

index 16cab978d06601e7bb02543badc16185c64feb84..e2875df6334aae30cc54478e6e52e4ef62fb434d 100644 (file)
@@ -495,6 +495,13 @@ LogStreamerMain(logstreamer_param *param)
        }
 
        PQfinish(param->bgconn);
+
+       if (format == 'p')
+               FreeWalDirectoryMethod();
+       else
+               FreeWalTarMethod();
+       pg_free(stream.walmethod);
+
        return 0;
 }
 
index bbdf96edfd284b831a20a2d952b2b7245a5b12b5..99445e6584466108b9babe88d2cb3f43dd92a0a0 100644 (file)
@@ -352,6 +352,10 @@ StreamLog(void)
        }
 
        PQfinish(conn);
+
+       FreeWalDirectoryMethod();
+       pg_free(stream.walmethod);
+
        conn = NULL;
 }
 
index 632e095c4e83dbd3f56a9012e282761765dafdb8..1ecc23c2560b83bcd3414444997c105e288e14b2 100644 (file)
@@ -299,6 +299,13 @@ CreateWalDirectoryMethod(const char *basedir, bool sync)
        return method;
 }
 
+void
+FreeWalDirectoryMethod(void)
+{
+       pg_free(dir_data->basedir);
+       pg_free(dir_data);
+}
+
 
 /*-------------------------------------------------------------------------
  * WalTarMethod - write wal to a tar file containing pg_xlog contents
@@ -894,3 +901,14 @@ CreateWalTarMethod(const char *tarbase, int compression, bool sync)
 
        return method;
 }
+
+void
+FreeWalTarMethod(void)
+{
+       pg_free(tar_data->tarfilename);
+#ifdef HAVE_LIBZ
+       if (tar_data->compression)
+                pg_free(tar_data->zlibOut);
+#endif
+       pg_free(tar_data);
+}
index 0c8eac7c619b83db75c0122b4d3d3f3c1464cc0e..8cea8ff4c05a4d93f30ed8b940551fb4e2c84000 100644 (file)
@@ -43,3 +43,7 @@ struct WalWriteMethod
  */
 WalWriteMethod *CreateWalDirectoryMethod(const char *basedir, bool sync);
 WalWriteMethod *CreateWalTarMethod(const char *tarbase, int compression, bool sync);
+
+/* Cleanup routines for previously-created methods */
+void FreeWalDirectoryMethod(void);
+void FreeWalTarMethod(void);