From commits-return-8558-archive-asf-public=cust-asf.ponee.io@zookeeper.apache.org Mon Oct 12 08:53:33 2020 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mxout1-ec2-va.apache.org (mxout1-ec2-va.apache.org [3.227.148.255]) by mx-eu-01.ponee.io (Postfix) with ESMTPS id A7DAB18064E for ; Mon, 12 Oct 2020 10:53:33 +0200 (CEST) Received: from mail.apache.org (mailroute1-lw-us.apache.org [207.244.88.153]) by mxout1-ec2-va.apache.org (ASF Mail Server at mxout1-ec2-va.apache.org) with SMTP id E8C2A43829 for ; Mon, 12 Oct 2020 08:53:32 +0000 (UTC) Received: (qmail 74797 invoked by uid 500); 12 Oct 2020 08:53:32 -0000 Mailing-List: contact commits-help@zookeeper.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@zookeeper.apache.org Delivered-To: mailing list commits@zookeeper.apache.org Received: (qmail 74785 invoked by uid 99); 12 Oct 2020 08:53:32 -0000 Received: from ec2-52-202-80-70.compute-1.amazonaws.com (HELO gitbox.apache.org) (52.202.80.70) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 12 Oct 2020 08:53:32 +0000 Received: by gitbox.apache.org (ASF Mail Server at gitbox.apache.org, from userid 33) id 12C7281A7C; Mon, 12 Oct 2020 08:53:31 +0000 (UTC) Date: Mon, 12 Oct 2020 08:53:31 +0000 To: "commits@zookeeper.apache.org" Subject: [zookeeper] branch branch-3.6 updated: ZOOKEEPER-3954: C client: GCC 10 compilation fixes MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Message-ID: <160249281173.9732.1983758456160132953@gitbox.apache.org> From: symat@apache.org X-Git-Host: gitbox.apache.org X-Git-Repo: zookeeper X-Git-Refname: refs/heads/branch-3.6 X-Git-Reftype: branch X-Git-Oldrev: 4f6c88fef1b7b37ad9fb8c116ac7f0a518bec5c4 X-Git-Newrev: 1a1e7b0a3a8f3dbbf782877258d5a390c20b3949 X-Git-Rev: 1a1e7b0a3a8f3dbbf782877258d5a390c20b3949 X-Git-NotificationType: ref_changed_plus_diff X-Git-Multimail-Version: 1.5.dev Auto-Submitted: auto-generated This is an automated email from the ASF dual-hosted git repository. symat pushed a commit to branch branch-3.6 in repository https://gitbox.apache.org/repos/asf/zookeeper.git The following commit(s) were added to refs/heads/branch-3.6 by this push: new 1a1e7b0 ZOOKEEPER-3954: C client: GCC 10 compilation fixes 1a1e7b0 is described below commit 1a1e7b0a3a8f3dbbf782877258d5a390c20b3949 Author: Damien Diederen AuthorDate: Mon Oct 12 08:53:01 2020 +0000 ZOOKEEPER-3954: C client: GCC 10 compilation fixes The most important change in this PR avoids a confusing and scary compilation issue [encountered by Michael Hudson-Doyle](https://issues.apache.org/jira/browse/ZOOKEEPER-3954) when building the C client with GCC 10 and "aggressive" optimization settings: > `free_auth_completions` is being inlined into `free_completions`, and this lets gcc see that members of `a_list` are being accessed without initialization This is (fortunately!) a red herring: what GCC doesn't see is that, in practice, `zoo_lock_auth` always returns zero, and that `a_list` is always initialized in the conditional block which follows it. That issue is easily "fixed" by removing the `if`. The rest of the client code doesn't check `zoo_lock_auth`'s return value--and we have bigger issues if unconditional locks start failing anyway. The remaining changes get rid of a couple of innocuous warnings, to that the client can successfully build even when configured with `-Werror`. See also https://github.com/apache/zookeeper/pull/1481. Author: Damien Diederen Reviewers: Mate Szalay-Beko Closes #1486 from ztzg/ZOOKEEPER-3954-gcc10-compilation-fixes-3.6 --- zookeeper-client/zookeeper-client-c/src/load_gen.c | 2 -- .../zookeeper-client-c/src/zookeeper.c | 30 ++++++++++++---------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/zookeeper-client/zookeeper-client-c/src/load_gen.c b/zookeeper-client/zookeeper-client-c/src/load_gen.c index 886fe1b..f25edcb 100644 --- a/zookeeper-client/zookeeper-client-c/src/load_gen.c +++ b/zookeeper-client/zookeeper-client-c/src/load_gen.c @@ -27,8 +27,6 @@ static zhandle_t *zh; -static int shutdownThisThing=0; - // ***************************************************************************** // static pthread_cond_t cond=PTHREAD_COND_INITIALIZER; diff --git a/zookeeper-client/zookeeper-client-c/src/zookeeper.c b/zookeeper-client/zookeeper-client-c/src/zookeeper.c index 092ec93..89d61fb 100644 --- a/zookeeper-client/zookeeper-client-c/src/zookeeper.c +++ b/zookeeper-client/zookeeper-client-c/src/zookeeper.c @@ -330,11 +330,13 @@ static socket_t zookeeper_connect(zhandle_t *, struct sockaddr_storage *, socket /* * abort due to the use of a sync api in a singlethreaded environment */ +#ifndef THREADED static void abort_singlethreaded(zhandle_t *zh) { LOG_ERROR(LOGCALLBACK(zh), "Sync completion used without threads"); abort(); } +#endif /* ifndef THREADED */ static ssize_t zookeeper_send(zsock_t *fd, const void* buf, size_t len) { @@ -1797,23 +1799,23 @@ void free_completions(zhandle_t *zh,int callCompletion,int reason) } } } - if (zoo_lock_auth(zh) == 0) { - a_list.completion = NULL; - a_list.next = NULL; - get_auth_completions(&zh->auth_h, &a_list); - zoo_unlock_auth(zh); + zoo_lock_auth(zh); + a_list.completion = NULL; + a_list.next = NULL; + get_auth_completions(&zh->auth_h, &a_list); + zoo_unlock_auth(zh); - a_tmp = &a_list; - // chain call user's completion function - while (a_tmp->completion != NULL) { - auth_completion = a_tmp->completion; - auth_completion(reason, a_tmp->auth_data); - a_tmp = a_tmp->next; - if (a_tmp == NULL) - break; - } + a_tmp = &a_list; + // chain call user's completion function + while (a_tmp->completion != NULL) { + auth_completion = a_tmp->completion; + auth_completion(reason, a_tmp->auth_data); + a_tmp = a_tmp->next; + if (a_tmp == NULL) + break; } + free_auth_completion(&a_list); }