Print this page
Revert "NEX-5801 Snapshots left over after failed backups"
This reverts commit f182fb95f09036db71fbfc6f0a6b90469b761f21.
NEX-5801 Snapshots left over after failed backups
Reviewed by: Rick Mesta <rick.mesta@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com>
NEX-2911 NDMP logging should use syslog and is too chatty
        
@@ -37,10 +37,11 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
 #include <sys/param.h>
 #include <sys/types.h>
+#include <syslog.h>
 #include <ctype.h>
 #include <errno.h>
 #include <fcntl.h>
 #include <limits.h>
 #include <stdarg.h>
@@ -48,11 +49,10 @@
 #include <stdlib.h>
 #include <string.h>
 #include <time.h>
 #include <unistd.h>
 #include <libnvpair.h>
-#include "ndmpd_log.h"
 #include "ndmpd.h"
 
 /*
  * The dumpdates file on file system.
  */
@@ -159,11 +159,11 @@
         then.tm_min = atoi(&dbuf[E_MINUTE]);
         then.tm_sec = atoi(&dbuf[E_SECOND]);
         then.tm_year = atoi(&dbuf[E_YEAR]) - 1900;
         then.tm_isdst = ndmp_isdst;
 
-        NDMP_LOG(LOG_DEBUG,
+        syslog(LOG_DEBUG,
             "yday %d wday %d %d/%d/%d %02d:%02d:%02d",
             then.tm_yday, then.tm_wday, then.tm_year, then.tm_mon,
             then.tm_mday, then.tm_hour, then.tm_min, then.tm_sec);
 
         *t = mktime(&then);
@@ -296,11 +296,11 @@
 
         /*
          * For 'F', 'A', 'I', and 'D' return the character itself.
          */
         if (IS_LBR_BKTYPE(*t)) {
-                NDMP_LOG(LOG_DEBUG, "Lbr bk type %c", *t);
+                syslog(LOG_DEBUG, "Lbr bk type %c", *t);
                 /*
                  * Skip the backup type character and null terminate the
                  * string.
                  */
                 *++t = '\0';
@@ -392,12 +392,10 @@
         char tbuf[64];
 
         if (!fp)
                 return;
 
-        NDMP_LOG(LOG_DEBUG, "[%u]", t);
-
         (void) ctime_r(&t, tbuf, sizeof (tbuf));
         /* LINTED variable format specifier */
         (void) fprintf(fp, tbuf);
 }
 
@@ -444,20 +442,20 @@
          */
         if (!ddp || !tbuf)
                 rv = -1;
         else if (!(nmp = get_ddname(&tbuf))) {
                 rv = -1;
-                NDMP_LOG(LOG_DEBUG, "get_ddname failed 0x%p", nmp);
+                syslog(LOG_ERR, "get_ddname failed 0x%p", nmp);
         } else if ((ddp->dd_level = get_ddlevel(&tbuf)) < 0) {
                 rv = -1;
-                NDMP_LOG(LOG_DEBUG, "dd_level < 0 %d", ddp->dd_level);
+                syslog(LOG_ERR, "dd_level < 0 %d", ddp->dd_level);
         } else if (!(un_buf = get_ddate(&tbuf))) {
                 rv = -1;
-                NDMP_LOG(LOG_DEBUG, "get_ddate failed 0x%p", un_buf);
+                syslog(LOG_ERR, "get_ddate failed 0x%p", un_buf);
         } else if (unctime(un_buf, &ddp->dd_ddate) < 0) {
                 rv = -1;
-                NDMP_LOG(LOG_DEBUG, "unctime failed \"%s\"", un_buf);
+                syslog(LOG_ERR, "unctime failed \"%s\"", un_buf);
         } else {
                 (void) strlcpy(ddp->dd_name, nmp, TLM_MAX_PATH_NAME);
                 rv = 0;
         }
 
@@ -487,22 +485,15 @@
                 if (getaline(fp, tbuf, sizeof (tbuf)) != tbuf)
                         return (-1);
         } while (!*tbuf);
 
         if (makedumpdate(ddatep, tbuf) < 0)
-                NDMP_LOG(LOG_DEBUG,
+                syslog(LOG_ERR,
                     "Unknown intermediate format in %s, line %d", tbuf, *recno);
 
         (*recno)++;
 
-        if (IS_LBR_BKTYPE(ddatep->dd_level & 0xff)) {
-                NDMP_LOG(LOG_DEBUG, "Lbr: [%s][%c][%u]",
-                    ddatep->dd_name, ddatep->dd_level, ddatep->dd_ddate);
-        } else
-                NDMP_LOG(LOG_DEBUG, "[%s][%d][%u]",
-                    ddatep->dd_name, ddatep->dd_level, ddatep->dd_ddate);
-
         return (0);
 }
 
 
 /*
@@ -553,17 +544,10 @@
 dumprecout(FILE *fp, dumpdates_t *ddp)
 {
         if (!ddp)
                 return;
 
-        if (IS_LBR_BKTYPE(ddp->dd_level)) {
-                NDMP_LOG(LOG_DEBUG, "Lbr: [%s][%c][%u]",
-                    ddp->dd_name, ddp->dd_level, ddp->dd_ddate);
-        } else
-                NDMP_LOG(LOG_DEBUG, "[%s][%d][%u]",
-                    ddp->dd_name, ddp->dd_level, ddp->dd_ddate);
-
         put_ddname(fp, ddp->dd_name);
         (void) fputc('\t', fp);
         put_ddlevel(fp, ddp->dd_level);
         (void) fputc('\t', fp);
         put_ddate(fp, ddp->dd_ddate);
@@ -594,29 +578,29 @@
                 return (-1);
 
         fp = fopen(fname, "r");
         if (!fp) {
                 if (errno != ENOENT) {
-                        NDMP_LOG(LOG_ERR, "Cannot read %s: %m.", fname);
+                        syslog(LOG_ERR, "Cannot read %s: %m.", fname);
                         return (-1);
                 }
                 /*
                  * Dumpdates does not exist, make an empty one.
                  */
-                NDMP_LOG(LOG_DEBUG,
+                syslog(LOG_DEBUG,
                     "No file `%s', making an empty one", fname);
 
                 fp = fopen(fname, "w");
                 if (!fp) {
-                        NDMP_LOG(LOG_ERR, "Cannot create %s: %m.", fname);
+                        syslog(LOG_ERR, "Cannot create %s: %m.", fname);
                         return (-1);
                 }
                 (void) fclose(fp);
 
                 fp = fopen(fname, "r");
                 if (!fp) {
-                        NDMP_LOG(LOG_ERR,
+                        syslog(LOG_ERR,
                             "Cannot read %s after creating it. %m.", fname);
                         return (-1);
                 }
         }
 
@@ -649,35 +633,35 @@
 
         if (!path)
                 return (-1);
 
         if (IS_LBR_BKTYPE(level)) {
-                NDMP_LOG(LOG_DEBUG, "Lbr: [%s][%c][%u]", path, level, ddate);
+                syslog(LOG_DEBUG, "Lbr: [%s][%c][%u]", path, level, ddate);
         } else {
-                NDMP_LOG(LOG_DEBUG, "[%s][%d][%u]", path, level, ddate);
+                syslog(LOG_DEBUG, "[%s][%d][%u]", path, level, ddate);
         }
 
         if (!ddates_pathname(fname)) {
-                NDMP_LOG(LOG_ERR, "Cannot get dumpdate file path name.");
+                syslog(LOG_ERR, "Cannot get dumpdate file path name.");
                 return (-1);
         }
 
         rfp = fopen(fname, "r");
         if (!rfp) {
-                NDMP_LOG(LOG_DEBUG, "Creating %s.", fname);
+                syslog(LOG_DEBUG, "Creating %s.", fname);
                 (void) memset((void *)&ddhead, 0, sizeof (ddhead));
                 if (initdumptimes(&ddhead) < 0) {
-                        NDMP_LOG(LOG_ERR, "Could not initialize %s.",
+                        syslog(LOG_ERR, "Could not initialize %s.",
                             NDMP_DUMPDATES);
                         dd_free(&ddhead);
                         return (-1);
                 }
         } else {
                 rv = readdumptimes(rfp, &ddhead);
 
                 if (rv < 0) {
-                        NDMP_LOG(LOG_ERR, "Error reading dumpdates file.");
+                        syslog(LOG_ERR, "Error reading dumpdates file.");
                         (void) fclose(rfp);
                         dd_free(&ddhead);
                         return (-1);
                 }
                 (void) fclose(rfp);
@@ -684,33 +668,33 @@
         }
 
         (void) snprintf(bakfname, PATH_MAX, "%s.bak", fname);
         wfp = fopen(bakfname, "w");
         if (!wfp) {
-                NDMP_LOG(LOG_ERR, "Cannot open %s: %m.", bakfname);
+                syslog(LOG_ERR, "Cannot open %s: %m.", bakfname);
                 dd_free(&ddhead);
                 return (-1);
         }
 
-        NDMP_LOG(LOG_DEBUG, "[%s][%s]", fname, bakfname);
+        syslog(LOG_DEBUG, "[%s][%s]", fname, bakfname);
 
         /* try to locate the entry in the file */
         found = 0;
         for (ddp = ddhead.dd_next; ddp; ddp = ddp->dd_next) {
                 if (ddp->dd_level != level)
                         continue;
                 if (strcmp(path, ddp->dd_name))
                         continue;
 
-                NDMP_LOG(LOG_DEBUG, "Found: [%s][%d][%u]",
+                syslog(LOG_DEBUG, "Found: [%s][%d][%u]",
                     ddp->dd_name, ddp->dd_level, ddp->dd_ddate);
 
                 /* update the record for the entry */
                 found = 1;
                 ddp->dd_ddate = ddate;
 
-                NDMP_LOG(LOG_DEBUG,
+                syslog(LOG_DEBUG,
                     "Updated to: [%s][%d][%u]",
                     ddp->dd_name, ddp->dd_level, ddp->dd_ddate);
         }
 
         /* dump all the read records */
@@ -748,19 +732,19 @@
 
         if (!fname || !*fname || !path || !*path)
                 return (-1);
 
         if (IS_LBR_BKTYPE(level & 0xff)) {
-                NDMP_LOG(LOG_DEBUG,
+                syslog(LOG_DEBUG,
                     "Lbr: [%s][%s][%c][%u]",
                     fname, path, level, ddate);
         } else
-                NDMP_LOG(LOG_DEBUG, "[%s][%s][%d][%u]",
+                syslog(LOG_DEBUG, "[%s][%s][%d][%u]",
                     fname, path, level, ddate);
 
         if (!ndmpd_make_bk_dir_path(fpath, fname)) {
-                NDMP_LOG(LOG_ERR, "Cannot get dumpdate file path name %s.",
+                syslog(LOG_ERR, "Cannot get dumpdate file path name %s.",
                     fname);
                 return (-1);
         }
 
         (void) snprintf(bakfpath, PATH_MAX, "%s.bak", fpath);
@@ -771,24 +755,24 @@
          */
         fp = fopen(fpath, "r");
         if (fp) {
                 (void) fclose(fp);
                 if (filecopy(bakfpath, fpath) != 0) {
-                        NDMP_LOG(LOG_ERR, "Cannot copy %s to %s: %m.",
+                        syslog(LOG_ERR, "Cannot copy %s to %s: %m.",
                             fpath, bakfpath);
                         return (-1);
                 }
         }
 
         /* open the new copy to append the record to it */
         fp = fopen(bakfpath, "a");
         if (!fp) {
-                NDMP_LOG(LOG_ERR, "Cannot open %s: %m.", bakfpath);
+                syslog(LOG_ERR, "Cannot open %s: %m.", bakfpath);
                 return (-1);
         }
 
-        NDMP_LOG(LOG_DEBUG, "[%s][%s]", fpath, bakfpath);
+        syslog(LOG_DEBUG, "[%s][%s]", fpath, bakfpath);
 
         /* append a new record */
         (void) strlcpy(tmpdd.dd_name, path, TLM_MAX_PATH_NAME);
         tmpdd.dd_level = level;
         tmpdd.dd_ddate = ddate;
@@ -840,11 +824,11 @@
         char *strval = NULL;
 
         if (!path || !level || !ddate)
                 return (-1);
 
-        NDMP_LOG(LOG_DEBUG, "[%s] level %d",
+        syslog(LOG_DEBUG, "[%s] level %d",
             path, *level);
 
         if (*level == 0) {
                 *ddate = (time_t)0;
                 return (0);
@@ -911,11 +895,11 @@
          * type.
          */
         if (IS_LBR_BKTYPE(*level & 0xff)) {
                 save = find_date(ddp, path, *level, *ddate);
 
-                NDMP_LOG(LOG_DEBUG,
+                syslog(LOG_DEBUG,
                     "LBR_BKTYPE save 0x%p", save);
 
                 *ddate = save ? save->dd_ddate : (time_t)0;
         } else {
                 /*
@@ -960,11 +944,11 @@
         char vol[ZFS_MAX_DATASET_NAME_LEN];
         zfs_handle_t *zhp;
         char tbuf[64];
         int rv;
 
-        NDMP_LOG(LOG_DEBUG, "[%s][%d][%u]", path, level,
+        syslog(LOG_DEBUG, "[%s][%d][%u]", path, level,
             ddate);
 
         /* Check if this is a ZFS dataset */
         (void) mutex_lock(&zlib_mtx);
         if ((zlibh != NULL) &&
@@ -997,11 +981,11 @@
         char vol[ZFS_MAX_DATASET_NAME_LEN];
         zfs_handle_t *zhp;
         char tbuf[64];
         int rv;
 
-        NDMP_LOG(LOG_DEBUG, "[%s][%s][%d][%u]", fname,
+        syslog(LOG_DEBUG, "[%s][%s][%d][%u]", fname,
             path, level, ddate);
 
         /* Check if this is a ZFS dataset */
         (void) mutex_lock(&zlib_mtx);
         if ((zlibh != NULL) &&