The branch, v3-2-ctdb has been updated
       via  ed23ff5606ad24aa406f8668e673d154729e221a (commit)
       via  8a37e0917dab8025984b71ff2b9d744bb3aaf027 (commit)
       via  1da3552b4f8b2a485c1e6a2fe13dd778533f3450 (commit)
      from  b49f6499cd998e410aada0f3e00fb3ba906723a7 (commit)

http://gitweb.samba.org/?p=tridge/samba-ctdb.git;a=shortlog;h=v3-2-ctdb


- Log -----------------------------------------------------------------
commit ed23ff5606ad24aa406f8668e673d154729e221a
Author: Volker Lendecke <[EMAIL PROTECTED]>
Date:   Wed Apr 23 11:12:25 2008 +0200

    Increase level of debug msg when a regkey is not found
    
    This is a pretty normal situation if you have "include=registry" set but no
    configuration options have been set there yet.
    (cherry picked from commit 727127f1dcd49b31b5a48cc3f9314aa2380d60e1)

commit 8a37e0917dab8025984b71ff2b9d744bb3aaf027
Author: Volker Lendecke <[EMAIL PROTECTED]>
Date:   Wed Apr 23 11:35:51 2008 +0200

    Correctly initialize lp_load in smbstatus in the presence of registry on 
tdb2
    (cherry picked from commit c4f7bee9238db536a7d5215cebb0bf37f757dfad)

commit 1da3552b4f8b2a485c1e6a2fe13dd778533f3450
Author: Volker Lendecke <[EMAIL PROTECTED]>
Date:   Wed Apr 23 17:13:50 2008 +0200

    Fix CLEAR_IF_FIRST handling of messages.tdb
    
    We now open messages.tdb even before we do the become_daemon. 
become_daemon()
    involves a fork and an immediate exit of the parent, thus the
    parent_is_longlived argument must be set to false in this case. The parent 
is
    not really long lived :-)

-----------------------------------------------------------------------

Summary of changes:
 source/lib/smbconf/smbconf_reg.c |    2 +-
 source/lib/util.c                |    5 +++--
 source/nmbd/asyncdns.c           |    2 +-
 source/nmbd/nmbd.c               |    2 +-
 source/printing/printing.c       |    2 +-
 source/smbd/server.c             |    5 +++--
 source/utils/status.c            |   20 ++++++++++++++++----
 source/winbindd/winbindd.c       |    2 +-
 source/winbindd/winbindd_cm.c    |    2 +-
 source/winbindd/winbindd_dual.c  |    2 +-
 10 files changed, 29 insertions(+), 15 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/lib/smbconf/smbconf_reg.c b/source/lib/smbconf/smbconf_reg.c
index 0ac49a7..442ed13 100644
--- a/source/lib/smbconf/smbconf_reg.c
+++ b/source/lib/smbconf/smbconf_reg.c
@@ -110,7 +110,7 @@ static WERROR smbconf_reg_open_path(TALLOC_CTX *mem_ctx,
                             key);
 
        if (!W_ERROR_IS_OK(werr)) {
-               DEBUG(1, ("Error opening registry path '%s': %s\n",
+               DEBUG(5, ("Error opening registry path '%s': %s\n",
                          path, dos_errstr(werr)));
        }
 
diff --git a/source/lib/util.c b/source/lib/util.c
index 3b2d375..9b6f5ca 100644
--- a/source/lib/util.c
+++ b/source/lib/util.c
@@ -990,7 +990,8 @@ void become_daemon(bool Fork, bool no_process_group)
                                  attach it to the logfile */
 }
 
-bool reinit_after_fork(struct messaging_context *msg_ctx)
+bool reinit_after_fork(struct messaging_context *msg_ctx,
+                      bool parent_longlived)
 {
        NTSTATUS status;
 
@@ -1001,7 +1002,7 @@ bool reinit_after_fork(struct messaging_context *msg_ctx)
        set_need_random_reseed();
 
        /* tdb needs special fork handling */
-       if (tdb_reopen_all(1) == -1) {
+       if (tdb_reopen_all(parent_longlived ? 1 : 0) == -1) {
                DEBUG(0,("tdb_reopen_all failed.\n"));
                return false;
        }
diff --git a/source/nmbd/asyncdns.c b/source/nmbd/asyncdns.c
index 0329491..ab9b1ed 100644
--- a/source/nmbd/asyncdns.c
+++ b/source/nmbd/asyncdns.c
@@ -164,7 +164,7 @@ void start_async_dns(void)
        CatchSignal(SIGHUP, SIG_IGN);
         CatchSignal(SIGTERM, SIGNAL_CAST sig_term );
 
-       if (!reinit_after_fork(nmbd_messaging_context())) {
+       if (!reinit_after_fork(nmbd_messaging_context(), true)) {
                DEBUG(0,("reinit_after_fork() failed\n"));
                smb_panic("reinit_after_fork() failed");
        }
diff --git a/source/nmbd/nmbd.c b/source/nmbd/nmbd.c
index 234c4d5..c8c8dc0 100644
--- a/source/nmbd/nmbd.c
+++ b/source/nmbd/nmbd.c
@@ -900,7 +900,7 @@ static bool open_sockets(bool isdaemon, int port)
 
        pidfile_create("nmbd");
 
-       if (!reinit_after_fork(nmbd_messaging_context())) {
+       if (!reinit_after_fork(nmbd_messaging_context(), false)) {
                DEBUG(0,("reinit_after_fork() failed\n"));
                exit(1);
        }
diff --git a/source/printing/printing.c b/source/printing/printing.c
index fdf5e6c..c5fe53f 100644
--- a/source/printing/printing.c
+++ b/source/printing/printing.c
@@ -1406,7 +1406,7 @@ void start_background_queue(void)
                /* Child. */
                DEBUG(5,("start_background_queue: background LPQ thread 
started\n"));
 
-               if (!reinit_after_fork(smbd_messaging_context())) {
+               if (!reinit_after_fork(smbd_messaging_context(), true)) {
                        DEBUG(0,("reinit_after_fork() failed\n"));
                        smb_panic("reinit_after_fork() failed");
                }
diff --git a/source/smbd/server.c b/source/smbd/server.c
index 67a57a7..3e0dffe 100644
--- a/source/smbd/server.c
+++ b/source/smbd/server.c
@@ -739,7 +739,8 @@ static bool open_sockets_smbd(bool is_daemon, bool 
interactive, const char *smb_
                                                                
sizeof(remaddr)),
                                                                false);
 
-                               if 
(!reinit_after_fork(smbd_messaging_context())) {
+                               if (!reinit_after_fork(
+                                           smbd_messaging_context(), true)) {
                                        DEBUG(0,("reinit_after_fork() 
failed\n"));
                                        smb_panic("reinit_after_fork() failed");
                                }
@@ -1285,7 +1286,7 @@ extern void build_options(bool screen);
        if (is_daemon)
                pidfile_create("smbd");
 
-       if (!reinit_after_fork(smbd_messaging_context())) {
+       if (!reinit_after_fork(smbd_messaging_context(), false)) {
                DEBUG(0,("reinit_after_fork() failed\n"));
                exit(1);
        }
diff --git a/source/utils/status.c b/source/utils/status.c
index ffa3fbd..e4592dd 100644
--- a/source/utils/status.c
+++ b/source/utils/status.c
@@ -296,6 +296,7 @@ static int traverse_sessionid(struct db_record *db, void 
*state)
        };
        TALLOC_CTX *frame = talloc_stackframe();
        int ret = 0;
+       struct messaging_context *msg_ctx;
 
        sec_init();
        load_case_tables();
@@ -359,8 +360,9 @@ static int traverse_sessionid(struct db_record *db, void 
*state)
                d_printf("using configfile = %s\n", get_dyn_CONFIGFILE());
        }
 
-       if (!lp_load(get_dyn_CONFIGFILE(),False,False,False,True)) {
-               fprintf(stderr, "Can't load %s - run testparm to debug it\n", 
get_dyn_CONFIGFILE());
+       if (!lp_load_initial_only(get_dyn_CONFIGFILE())) {
+               fprintf(stderr, "Can't load %s - run testparm to debug it\n",
+                       get_dyn_CONFIGFILE());
                ret = -1;
                goto done;
        }
@@ -370,8 +372,18 @@ static int traverse_sessionid(struct db_record *db, void 
*state)
         * the db_open() calls further down.
         */
 
-       messaging_init(NULL, procid_self(), event_context_init(NULL));
-       
+       msg_ctx = messaging_init(NULL, procid_self(),
+                                event_context_init(NULL));
+
+       db_tdb2_setup_messaging(msg_ctx, true);
+
+       if (!lp_load(get_dyn_CONFIGFILE(),False,False,False,True)) {
+               fprintf(stderr, "Can't load %s - run testparm to debug it\n",
+                       get_dyn_CONFIGFILE());
+               ret = -1;
+               goto done;
+       }
+
        switch (profile_only) {
                case 'P':
                        /* Dump profile data */
diff --git a/source/winbindd/winbindd.c b/source/winbindd/winbindd.c
index 64674b8..1072f8e 100644
--- a/source/winbindd/winbindd.c
+++ b/source/winbindd/winbindd.c
@@ -1189,7 +1189,7 @@ int main(int argc, char **argv, char **envp)
 
        TimeInit();
 
-       if (!reinit_after_fork(winbind_messaging_context())) {
+       if (!reinit_after_fork(winbind_messaging_context(), false)) {
                DEBUG(0,("reinit_after_fork() failed\n"));
                exit(1);
        }
diff --git a/source/winbindd/winbindd_cm.c b/source/winbindd/winbindd_cm.c
index 579edcf..701500e 100644
--- a/source/winbindd/winbindd_cm.c
+++ b/source/winbindd/winbindd_cm.c
@@ -199,7 +199,7 @@ static bool fork_child_dc_connect(struct winbindd_domain 
*domain)
 
        /* Leave messages blocked - we will never process one. */
 
-       if (!reinit_after_fork(winbind_messaging_context())) {
+       if (!reinit_after_fork(winbind_messaging_context(), true)) {
                DEBUG(0,("reinit_after_fork() failed\n"));
                _exit(0);
        }
diff --git a/source/winbindd/winbindd_dual.c b/source/winbindd/winbindd_dual.c
index 77fbe3c..14ba38c 100644
--- a/source/winbindd/winbindd_dual.c
+++ b/source/winbindd/winbindd_dual.c
@@ -1005,7 +1005,7 @@ static bool fork_domain_child(struct winbindd_child 
*child)
        state.sock = fdpair[0];
        close(fdpair[1]);
 
-       if (!reinit_after_fork(winbind_messaging_context())) {
+       if (!reinit_after_fork(winbind_messaging_context(), true)) {
                DEBUG(0,("reinit_after_fork() failed\n"));
                _exit(0);
        }


-- 
SAMBA-CTDB repository

Reply via email to