+19Mar04
+- Hunt down missing free_locked_jcr() in SD that caused zombies.
+- Modify status outputs to be more consistent for zombie checking.
+- Add tests to regression script for zombie jobs.
+- Set EIO in dev_errno for all error returns when bad data found. This
+ fixes ERR=Success messages.
+- Make error messages all contain ERROR for easy regression testing.
+- Add sanity check in DIR for VolFiles becoming smaller.
+18Mar04
+- Second cut GTK+ restore GUI. Ready for testing but much more to do.
+- Phil reported an sql path length=0 message. This broke saves of
+ / -- fixed in scan.c
+- Fixed seg fault in btape "test" due to missing allocation of dcr.
+- Tweaked some btape messages.
+- Sort Volume names in Job report according to the order they were
+ written -- user request.
+17Mar04
+- First cut GTK+ restore GUI.
+- Applied bsmtp patch supplied by a user. Thanks.
+- Made a new split_path_and_filename() subroutine -- in lib/scan.c
+15Mar04
+- Fix "typos" in RedHat install-autostart Makefile.in
13Mar04
- Added two tar files that Phil sent for adding slackware support.
Thanks Phil and Matt Howard.
Most Significant Changes since 1.32f-4
+- Native Win32 Client -- much faster and does better restores than old
+ Cygwin Win32 Client.
+- Implement Gnome 2.0 restore GUI
+- Implement data spooling
+- Implement Volume Polling
- Add a missing unlock in the jobq handler.
- Fix bug where a soft linked file and a directory had the same name
by treating the soft link as a directory and putting the entries under
/*
* Request to update Media record. Comes typically at the end
- * of a Storage daemon Job Session or when labeling/relabeling a
- * Volume.
+ * of a Storage daemon Job Session, when labeling/relabeling a
+ * Volume, or when an EOF mark is written.
*/
} else if (sscanf(bs->msg, Update_media, &Job, &sdmr.VolumeName, &sdmr.VolJobs,
&sdmr.VolFiles, &sdmr.VolBlocks, &sdmr.VolBytes, &sdmr.VolMounts, &sdmr.VolErrors,
Dmsg2(300, "label=%d labeldate=%d\n", label, mr.LabelDate);
if (label || mr.LabelDate == 0) {
mr.LabelDate = time(NULL);
+ } else {
+ /*
+ * Insanity check for VolFiles get set to a smaller value
+ */
+ if (sdmr.VolFiles < mr.VolFiles) {
+ Jmsg(jcr, M_ERROR, 0, _("ERROR!! Volume Files at %u being set to %u. This is probably wrong.\n"),
+ mr.VolFiles, sdmr.VolFiles);
+ }
}
Dmsg2(300, "Update media: BefVolJobs=%u After=%u\n", mr.VolJobs, sdmr.VolJobs);
/* Copy updated values to original media record */
break;
case M_ERROR:
if (level == -1) /* skip details */
- len = bsnprintf(buf, sizeof(buf), "%s: Error: ", my_name);
+ len = bsnprintf(buf, sizeof(buf), "%s: ERROR: ", my_name);
else
- len = bsnprintf(buf, sizeof(buf), "%s: Error in %s:%d ", my_name, file, line);
+ len = bsnprintf(buf, sizeof(buf), "%s: ERROR in %s:%d ", my_name, file, line);
break;
case M_WARNING:
len = bsnprintf(buf, sizeof(buf), "%s: Warning: ", my_name);