]> git.sur5r.net Git - bacula/bacula/commitdiff
Update ReleaseNotes
authorKern Sibbald <kern@sibbald.com>
Wed, 9 May 2007 21:39:57 +0000 (21:39 +0000)
committerKern Sibbald <kern@sibbald.com>
Wed, 9 May 2007 21:39:57 +0000 (21:39 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@4737 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/ReleaseNotes
bacula/src/cats/cats.h
bacula/src/cats/mysql.c
bacula/src/cats/sql.c
bacula/src/dird/ua_status.c
bacula/src/lib/watchdog.c

index dd064788d602000e3a61e2cc1be4be3d5bb2ac18..b91abe4b2ca040d49604cdbd7333b5104d9a9b30 100644 (file)
@@ -3,6 +3,11 @@
 
   Bacula code: Total files = 438 Total lines = 154,329 (*.h *.c *.in)
 
+This Director and Storage daemon must be upgraded at the same time,
+but they should be compatible with all 2.0.x File daemons, unless you
+use some of the new features that affect the FD.  In other words, you should
+not have to upgrade all your File daemons.
+
 The major features are:
 - First cut of bat (Bacula Administration Tool)
 - Red/Black restore in memory tree (500 times faster loading).
index b6101e883e7237b0f0e7b107d75422cb9045f833..25254d32223a388ab2e4c6f0da70f2868875b239 100644 (file)
@@ -374,7 +374,7 @@ struct B_DB {
 /* "Generic" names for easier conversion */
 #define sql_store_result(x)   mysql_store_result((x)->db)
 #define sql_use_result(x)     mysql_use_result((x)->db)
-#define sql_free_result(x)    mysql_free_result((x)->result)
+#define sql_free_result(x)    my_mysql_free_result(x)
 #define sql_fetch_row(x)      mysql_fetch_row((x)->result)
 #define sql_query(x, y)       mysql_query((x)->db, (y))
 #define sql_close(x)          mysql_close((x)->db)
@@ -404,6 +404,7 @@ extern char* my_mysql_batch_lock_filename_query;
 extern char* my_mysql_batch_unlock_tables_query;
 extern char* my_mysql_batch_fill_filename_query;
 extern char* my_mysql_batch_fill_path_query;
+extern void  my_mysql_free_result(B_DB *mdb);
 
 #else
 
index 0834c5392a1d3eed570f32c32f7c616cb4e87749..ab993d187bdbaf4bf4a83ca0616f7241877dd281 100644 (file)
@@ -373,6 +373,14 @@ int db_sql_query(B_DB *mdb, const char *query, DB_RESULT_HANDLER *result_handler
 
 }
 
+void my_mysql_free_result(B_DB *mdb)
+{
+   if (mdb->result) {
+      mysql_free_result(mdb->result);
+      mdb->result = NULL;
+   }
+}
+
 char *my_mysql_batch_lock_path_query = "LOCK TABLES Path write,     " 
                                        "            batch write,    " 
                                        "            Path as p write ";
index 79296d5d0089aa7f8d450b4e3bc3db153448842c..fef68b35f65b1127e8147b9bdab4593017f247d8 100644 (file)
@@ -118,6 +118,8 @@ int
 QueryDB(const char *file, int line, JCR *jcr, B_DB *mdb, char *cmd)
 {
    int status;
+
+   sql_free_result(mdb);
    if ((status=sql_query(mdb, cmd)) != 0) {
       m_msg(file, line, &mdb->errmsg, _("query %s failed:\n%s\n"), cmd, sql_strerror(mdb));
       j_msg(file, line, jcr, M_FATAL, 0, "%s", mdb->errmsg);
index 7b264d28cd9224b38ac89ba7d0fb5d2154bc9354..0fd354c30816723609de9dde1b3dd534fc78e77e 100644 (file)
@@ -38,6 +38,8 @@
 #include "bacula.h"
 #include "dird.h"
 
+extern void *start_sbrk;
+
 static void list_scheduled_jobs(UAContext *ua);
 static void list_running_jobs(UAContext *ua);
 static void list_terminated_jobs(UAContext *ua);
@@ -256,7 +258,7 @@ static void do_all_status(UAContext *ua)
 void list_dir_status_header(UAContext *ua)
 {
    char dt[MAX_TIME_LENGTH];
-   char b1[35], b2[35], b3[35], b4[35];
+   char b1[35], b2[35], b3[35], b4[35], b5[35];
 
    ua->send_msg(_("%s Version: %s (%s) %s %s %s\n"), my_name, VERSION, BDATE,
             HOST_OS, DISTNAME, DISTVER);
@@ -268,11 +270,12 @@ void list_dir_status_header(UAContext *ua)
       ua->send_msg(_("Daemon started %s, %d Jobs run since started.\n"),
         dt, num_jobs_run);
    }
-   ua->send_msg(_(" Heap: bytes=%s max_bytes=%s bufs=%s max_bufs=%s\n"),
-            edit_uint64_with_commas(sm_bytes, b1),
-            edit_uint64_with_commas(sm_max_bytes, b2),
-            edit_uint64_with_commas(sm_buffers, b3),
-            edit_uint64_with_commas(sm_max_buffers, b4));
+   ua->send_msg(_(" Heap: sbrk=%s bytes=%s max_bytes=%s bufs=%s max_bufs=%s\n"),
+            edit_uint64_with_commas((uint64_t)sbrk(0)-(uint64_t)start_sbrk, b1),
+            edit_uint64_with_commas(sm_bytes, b2),
+            edit_uint64_with_commas(sm_max_bytes, b3),
+            edit_uint64_with_commas(sm_buffers, b4),
+            edit_uint64_with_commas(sm_max_buffers, b5));
 }
 
 static void do_director_status(UAContext *ua)
index e28be1161c0b2797e215c2a03f22e18a1f3116ef..2cd7bbfa0ec6319e2ddb178272a1293ff04e8b82 100644 (file)
@@ -40,6 +40,7 @@
 /* Exported globals */
 time_t watchdog_time = 0;             /* this has granularity of SLEEP_TIME */
 time_t watchdog_sleep_time = 60;      /* examine things every 60 seconds */
+void *start_sbrk;   
 
 /* Locals */
 static pthread_mutex_t timer_mutex = PTHREAD_MUTEX_INITIALIZER;
@@ -75,6 +76,7 @@ int start_watchdog(void)
    if (wd_is_init) {
       return 0;
    }
+   start_sbrk = sbrk(0);
    Dmsg0(800, "Initialising NicB-hacked watchdog thread\n");
    watchdog_time = time(NULL);