[SCM] Samba Shared Repository - branch master updated

Volker Lendecke vlendec at samba.org
Thu Jan 12 11:41:01 UTC 2023


The branch, master has been updated
       via  98d84192a03 s3:utils:mdsearch go to cmdline_messaging_context_free
      from  de5d31f452b s3:smbstatus: go to cmdline_messaging_context_free

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 98d84192a03a4f1135eaf1590fb62b16d8bc49c8
Author: Jones Syue <jonessyue at qnap.com>
Date:   Thu Jan 12 15:47:20 2023 +0800

    s3:utils:mdsearch go to cmdline_messaging_context_free
    
    mdsearch utility would exit earlier with failure in several cases like:
    a. samba server is not running yet,
    [~] # mdsearch -Uuser%password1 ${server} Public '*=="Samba"'
    main: Cannot connect to server: NT_STATUS_CONNECTION_REFUSED
    
    b. spotlight backend service is not ready yet,
    [~] # mdsearch -Uuser%password1 ${server} Public '*=="Samba"'
    Failed to connect mdssvc
    
    c. mdsearch utility paramters is not as expecred,
    [~] # mdsearch -Uuser%password1 ${server} share_not_exist '*=="Samba"'
    mdscli_search failed
    
    And in the mean while once mdsearch utility exit earlier with failure,
    the lock files are left behind in the directory 'msg.sock' and 'msg.lock'.
    If a script to run mdsearch utility in a loop,
    this might result in used space slowly growing-up on underlying filesystem.
    
    Supposed to add a new label 'fail_free_messaging',
    make it go through the cmdline_messaging_context_free() which deletes the
    lock files in the directory msg.sock and msg.lock before mdsearch utility
    is exiting with failure.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=15284
    
    Signed-off-by: Jones Syue <jonessyue at qnap.com>
    Reviewed-by: Ralph Boehme <slow at samba.org>
    Reviewed-by: Volker Lendecke <vl at samba.org>
    
    Autobuild-User(master): Volker Lendecke <vl at samba.org>
    Autobuild-Date(master): Thu Jan 12 11:40:19 UTC 2023 on sn-devel-184

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

Summary of changes:
 source3/utils/mdsearch.c | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/utils/mdsearch.c b/source3/utils/mdsearch.c
index ab48e366a0a..eddb83874cb 100644
--- a/source3/utils/mdsearch.c
+++ b/source3/utils/mdsearch.c
@@ -144,12 +144,12 @@ int main(int argc, char **argv)
 					   flags);
 	if (!NT_STATUS_IS_OK(status)) {
 		DBG_ERR("Cannot connect to server: %s\n", nt_errstr(status));
-		goto fail;
+		goto fail_free_messaging;
 	}
 
 	status = cli_rpc_pipe_open_noauth(cli, &ndr_table_mdssvc, &rpccli);
 	if (!NT_STATUS_IS_OK(status)) {
-		goto fail;
+		goto fail_free_messaging;
 	}
 
 	status = mdscli_connect(frame,
@@ -159,7 +159,7 @@ int main(int argc, char **argv)
 				&mdscli_ctx);
 	if (!NT_STATUS_IS_OK(status)) {
 		printf("Failed to connect mdssvc\n");
-		goto fail;
+		goto fail_free_messaging;
 	}
 
 	if (opt_path == NULL) {
@@ -168,7 +168,7 @@ int main(int argc, char **argv)
 		basepath = talloc_strdup(frame, opt_path);
 	}
 	if (basepath == NULL) {
-		goto fail;
+		goto fail_free_messaging;
 	}
 
 	status = mdscli_search(frame,
@@ -179,7 +179,7 @@ int main(int argc, char **argv)
 			       &search);
 	if (!NT_STATUS_IS_OK(status)) {
 		printf("mdscli_search failed\n");
-		goto fail;
+		goto fail_free_messaging;
 	}
 
 	if (!opt_live) {
@@ -199,7 +199,7 @@ int main(int argc, char **argv)
 		}
 		if (!NT_STATUS_IS_OK(status)) {
 			printf("mdscli_get_results failed\n");
-			goto fail;
+			goto fail_free_messaging;
 		}
 
 		ncnids = talloc_array_length(cnids);
@@ -217,7 +217,7 @@ int main(int argc, char **argv)
 			if (!NT_STATUS_IS_OK(status)) {
 				printf("Get path for CNID 0x%"PRIx64" failed\n",
 				       cnids[i]);
-				goto fail;
+				goto fail_free_messaging;
 			}
 			printf("%s\n", path);
 			TALLOC_FREE(path);
@@ -227,13 +227,13 @@ int main(int argc, char **argv)
 	status = mdscli_close_search(&search);
 	if (!NT_STATUS_IS_OK(status)) {
 		printf("mdscli_close_search failed\n");
-		goto fail;
+		goto fail_free_messaging;
 	}
 
 	status = mdscli_disconnect(mdscli_ctx);
 	if (!NT_STATUS_IS_OK(status)) {
 		printf("mdscli_disconnect failed\n");
-		goto fail;
+		goto fail_free_messaging;
 	}
 
 	cmdline_messaging_context_free();
@@ -241,6 +241,8 @@ int main(int argc, char **argv)
 	poptFreeContext(pc);
 	return 0;
 
+fail_free_messaging:
+	cmdline_messaging_context_free();
 fail:
 	poptFreeContext(pc);
 	TALLOC_FREE(frame);


-- 
Samba Shared Repository



More information about the samba-cvs mailing list