Description of problem: Version-Release number of selected component (if applicable): How reproducible: Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info:
** CID 1202376: Unchecked return value (CHECKED_RETURN) /xlators/mgmt/glusterd/src/glusterd-utils.c: 3123 in glusterd_do_volume_quorum_action() ** CID 1202384: Logically dead code (DEADCODE) /xlators/mgmt/glusterd/src/glusterd-snapshot.c: 1095 in glusterd_lvm_snapshot_remove() ** CID 1202383: Logically dead code (DEADCODE) /xlators/mgmt/glusterd/src/glusterd-snapshot.c: 3578 in glusterd_snapshot_remove_commit() ** CID 1202382: Logically dead code (DEADCODE) /xlators/mgmt/glusterd/src/glusterd-snapshot.c: 4222 in glusterd_get_brick_lvm_details() ** CID 1202381: Logically dead code (DEADCODE) /xlators/mgmt/glusterd/src/glusterd-utils.c: 5720 in glusterd_add_brick_mount_details() ** CID 1202379: Logically dead code (DEADCODE) /xlators/mgmt/glusterd/src/glusterd-utils.c: 5758 in glusterd_get_brick_mount_details() ** CID 1202380: Logically dead code (DEADCODE) /xlators/mgmt/glusterd/src/glusterd-mgmt.c: 435 in glusterd_mgmt_v3_initiate_lockdown() ** CID 1202378: Logically dead code (DEADCODE) /xlators/mgmt/glusterd/src/glusterd-snapshot.c: 2343 in glusterd_handle_snapshot_status() ** CID 1202377: Logically dead code (DEADCODE) /cli/src/cli-cmd-snapshot.c: 43 in cli_cmd_snapshot_cbk() ** CID 1202389: Null pointer dereference (FORWARD_NULL) /xlators/mgmt/glusterd/src/glusterd-mgmt-handler.c: 194 in glusterd_handle_mgmt_v3_lock_fn() /xlators/mgmt/glusterd/src/glusterd-mgmt-handler.c: 194 in glusterd_handle_mgmt_v3_lock_fn() ** CID 1202388: Null pointer dereference (FORWARD_NULL) /xlators/mgmt/glusterd/src/glusterd-mgmt-handler.c: 865 in glusterd_handle_mgmt_v3_unlock_fn() /xlators/mgmt/glusterd/src/glusterd-mgmt-handler.c: 865 in glusterd_handle_mgmt_v3_unlock_fn() ** CID 1202387: Dereference after null check (FORWARD_NULL) /xlators/mgmt/glusterd/src/glusterd-rpc-ops.c: 1469 in glusterd_mgmt_v3_lock_peers() ** CID 1202386: Dereference after null check (FORWARD_NULL) /xlators/mgmt/glusterd/src/glusterd-rpc-ops.c: 1536 in glusterd_mgmt_v3_unlock_peers() ** CID 1202385: Dereference after null check (FORWARD_NULL) /xlators/mgmt/glusterd/src/glusterd-mgmt.c: 521 in gd_mgmt_v3_pre_validate_cbk_fn() ** CID 1202390: Data race condition (MISSING_LOCK) /xlators/protocol/server/src/server.c: 991 in init() ** CID 1202391: Negative array index write (NEGATIVE_RETURNS) /xlators/mgmt/glusterd/src/glusterd-mgmt.c: 101 in gd_mgmt_v3_collate_errors() ** CID 1202393: Unsigned compared against 0 (NO_EFFECT) /xlators/mgmt/glusterd/src/glusterd-snapshot.c: 314 in snap_max_hard_limits_validate() ** CID 1202392: Unsigned compared against 0 (NO_EFFECT) /xlators/mgmt/glusterd/src/glusterd-snapshot.c: 395 in glusterd_snapshot_config_prevalidate() ** CID 1202395: Resource leak (RESOURCE_LEAK) /xlators/mgmt/glusterd/src/glusterd-store.c: 2532 in glusterd_store_update_volinfo() /xlators/mgmt/glusterd/src/glusterd-store.c: 2532 in glusterd_store_update_volinfo() ** CID 1202394: Resource leak (RESOURCE_LEAK) /xlators/mgmt/glusterd/src/glusterd-store.c: 2902 in glusterd_store_update_snap() /xlators/mgmt/glusterd/src/glusterd-store.c: 2902 in glusterd_store_update_snap() ________________________________________________________________________________________________________ *** CID 1202376: Unchecked return value (CHECKED_RETURN) /xlators/mgmt/glusterd/src/glusterd-utils.c: 3123 in glusterd_do_volume_quorum_action() 3117 list_for_each_entry (brickinfo, &volinfbricks, brick_list) { 3118 if (!glusterd_is_local_brick (this, volinfo, brickinfo)) 3119 continue; 3120 if (meets_quorum) 3121 glusterd_brick_start (volinfo, brickinfo, _gf_false); 3122 else >>> CID 1202376: Unchecked return value (CHECKED_RETURN) >>> No check of the return value of "glusterd_brick_stop(volinfo, brickinfo, _gf_false)". 3123 glusterd_brick_stop (volinfo, brickinfo, _gf_false); 3124 } 3125 out: 3126 return; 3127 } 3128 ________________________________________________________________________________________________________ *** CID 1202384: Logically dead code (DEADCODE) /xlators/mgmt/glusterd/src/glusterd-snapshot.c: 1095 in glusterd_lvm_snapshot_remove() 1089 goto out; 1090 } 1091 ret = glusterd_do_lvm_snapshot_remove (snap_vol, brickinfo, 1092 mnt_pt, 1093 entry->mnt_fsname); 1094 if (mtab) >>> CID 1202384: Logically dead code (DEADCODE) >>> Execution cannot reach this statement "endmntent(mtab);". 1095 endmntent (mtab); 1096 if (ret) { 1097 gf_log (this->name, GF_LOG_ERROR, "failed to " 1098 "remove the snapshot %s (%s)", 1099 brickinfpath, entry->mnt_fsname); 1100 goto out; ________________________________________________________________________________________________________ *** CID 1202383: Logically dead code (DEADCODE) /xlators/mgmt/glusterd/src/glusterd-snapshot.c: 3578 in glusterd_snapshot_remove_commit() 3572 */ 3573 snap_volinfo = list_entry (snap->volumes.next, 3574 glusterd_volinfo_t, 3575 vol_list); 3576 if (!snap_volinfo) { 3577 gf_log (this->name, GF_LOG_ERROR, >>> CID 1202383: Logically dead code (DEADCODE) >>> Execution cannot reach this statement "do { do { if (0) ...". 3578 "Unable to fetch snap_volinfo"); 3579 ret = -1; 3580 goto out; 3581 } 3582 3583 /* From origin glusterd check if * ________________________________________________________________________________________________________ *** CID 1202382: Logically dead code (DEADCODE) /xlators/mgmt/glusterd/src/glusterd-snapshot.c: 4222 in glusterd_get_brick_lvm_details() 4216 break; 4217 token = strtok (buf, ":"); 4218 if (token != NULL) { 4219 while (token && token[0] == ' ') 4220 token++; 4221 if (!token) { >>> CID 1202382: Logically dead code (DEADCODE) >>> Execution cannot reach this statement "ret = -1;". 4222 ret = -1; 4223 gf_log (this->name, GF_LOG_ERROR, 4224 "Invalid vg entry"); 4225 goto end; 4226 } 4227 value = gf_strdup (token); ________________________________________________________________________________________________________ *** CID 1202381: Logically dead code (DEADCODE) /xlators/mgmt/glusterd/src/glusterd-utils.c: 5720 in glusterd_add_brick_mount_details() 5714 mnt_options = gf_strdup (entry->mnt_opts); 5715 ret = dict_set_dynstr (dict, key, mnt_options); 5716 5717 out: 5718 GF_FREE (mnt_pt); 5719 if (mtab) >>> CID 1202381: Logically dead code (DEADCODE) >>> Execution cannot reach this statement "endmntent(mtab);". 5720 endmntent (mtab); 5721 5722 return ret; 5723 } 5724 5725 char* ________________________________________________________________________________________________________ *** CID 1202379: Logically dead code (DEADCODE) /xlators/mgmt/glusterd/src/glusterd-utils.c: 5758 in glusterd_get_brick_mount_details() 5752 5753 /* get the fs_name/device */ 5754 device = gf_strdup (entry->mnt_fsname); 5755 5756 out: 5757 if (NULL != mtab) { >>> CID 1202379: Logically dead code (DEADCODE) >>> Execution cannot reach this statement "endmntent(mtab);". 5758 endmntent (mtab); 5759 } 5760 5761 return device; 5762 } 5763 #endif ________________________________________________________________________________________________________ *** CID 1202380: Logically dead code (DEADCODE) /xlators/mgmt/glusterd/src/glusterd-mgmt.c: 435 in glusterd_mgmt_v3_initiate_lockdown() 429 if (ret) { 430 if (*op_errstr) 431 gf_log (this->name, GF_LOG_ERROR, "%s", 432 *op_errstr); 433 434 if (volname) >>> CID 1202380: Logically dead code (DEADCODE) >>> Execution cannot reach this statement "ret = gf_asprintf(op_errstr...". 435 ret = gf_asprintf (op_errstr, 436 "Another transaction is in progress " 437 "for %s. Please try again after " 438 "sometime.", volname); 439 else 440 ret = gf_asprintf (op_errstr, ________________________________________________________________________________________________________ *** CID 1202378: Logically dead code (DEADCODE) /xlators/mgmt/glusterd/src/glusterd-snapshot.c: 2343 in glusterd_handle_snapshot_status() 2337 } 2338 2339 ret = 0; 2340 2341 out: 2342 if (voldict) { >>> CID 1202378: Logically dead code (DEADCODE) >>> Execution cannot reach this statement "dict_unref(voldict);". 2343 dict_unref (voldict); 2344 } 2345 return ret; 2346 } 2347 2348 ________________________________________________________________________________________________________ *** CID 1202377: Logically dead code (DEADCODE) /cli/src/cli-cmd-snapshot.c: 43 in cli_cmd_snapshot_cbk() 37 rpc_clnt_procedure_t *proc = NULL; 38 call_frame_t *frame = NULL; 39 cli_local_t *local = NULL; 40 41 proc = &cli_rpc_prog->proctable [GLUSTER_CLI_SNAP]; 42 if (proc == NULL) { >>> CID 1202377: Logically dead code (DEADCODE) >>> Execution cannot reach this statement "ret = -1;". 43 ret = -1; 44 goto out; 45 } 46 47 frame = create_frame (THIS, THIS->ctx->pool); 48 if (frame == NULL) { ________________________________________________________________________________________________________ *** CID 1202389: Null pointer dereference (FORWARD_NULL) /xlators/mgmt/glusterd/src/glusterd-mgmt-handler.c: 194 in glusterd_handle_mgmt_v3_lock_fn() 188 ctx); 189 } 190 191 out: 192 193 if (ret || free_ctx) { >>> CID 1202389: Null pointer dereference (FORWARD_NULL) >>> Dereferencing null pointer "ctx". 194 if (ctx->dict) 195 dict_unref (ctx->dict); 196 if (ctx) 197 GF_FREE (ctx); 198 } 199 /xlators/mgmt/glusterd/src/glusterd-mgmt-handler.c: 194 in glusterd_handle_mgmt_v3_lock_fn() 188 ctx); 189 } 190 191 out: 192 193 if (ret || free_ctx) { >>> CID 1202389: Null pointer dereference (FORWARD_NULL) >>> Dereferencing null pointer "ctx". 194 if (ctx->dict) 195 dict_unref (ctx->dict); 196 if (ctx) 197 GF_FREE (ctx); 198 } 199 ________________________________________________________________________________________________________ *** CID 1202388: Null pointer dereference (FORWARD_NULL) /xlators/mgmt/glusterd/src/glusterd-mgmt-handler.c: 865 in glusterd_handle_mgmt_v3_unlock_fn() 859 ctx); 860 } 861 862 out: 863 864 if (ret || free_ctx) { >>> CID 1202388: Null pointer dereference (FORWARD_NULL) >>> Dereferencing null pointer "ctx". 865 if (ctx->dict) 866 dict_unref (ctx->dict); 867 if (ctx) 868 GF_FREE (ctx); 869 } 870 /xlators/mgmt/glusterd/src/glusterd-mgmt-handler.c: 865 in glusterd_handle_mgmt_v3_unlock_fn() 859 ctx); 860 } 861 862 out: 863 864 if (ret || free_ctx) { >>> CID 1202388: Null pointer dereference (FORWARD_NULL) >>> Dereferencing null pointer "ctx". 865 if (ctx->dict) 866 dict_unref (ctx->dict); 867 if (ctx) 868 GF_FREE (ctx); 869 } 870 ________________________________________________________________________________________________________ *** CID 1202387: Dereference after null check (FORWARD_NULL) /xlators/mgmt/glusterd/src/glusterd-rpc-ops.c: 1469 in glusterd_mgmt_v3_lock_peers() 1463 ret = glusterd_submit_request (peerinfrpc, &req, dummy_frame, 1464 peerinfmgmt_v3, 1465 GLUSTERD_MGMT_V3_LOCK, NULL, 1466 this, glusterd_mgmt_v3_lock_peers_cbk, 1467 (xdrproc_t)xdr_gd1_mgmt_v3_lock_req); 1468 out: >>> CID 1202387: Dereference after null check (FORWARD_NULL) >>> Dereferencing null pointer "this". 1469 gf_log (this->name, GF_LOG_DEBUG, "Returning %d", ret); 1470 return ret; 1471 } 1472 1473 int32_t 1474 glusterd_mgmt_v3_unlock_peers (call_frame_t *frame, xlator_t *this, ________________________________________________________________________________________________________ *** CID 1202386: Dereference after null check (FORWARD_NULL) /xlators/mgmt/glusterd/src/glusterd-rpc-ops.c: 1536 in glusterd_mgmt_v3_unlock_peers() 1530 peerinfmgmt_v3, 1531 GLUSTERD_MGMT_V3_UNLOCK, NULL, 1532 this, glusterd_mgmt_v3_unlock_peers_cbk, 1533 (xdrproc_t) 1534 xdr_gd1_mgmt_v3_unlock_req); 1535 out: >>> CID 1202386: Dereference after null check (FORWARD_NULL) >>> Dereferencing null pointer "this". 1536 gf_log (this->name, GF_LOG_DEBUG, "Returning %d", ret); 1537 return ret; 1538 } 1539 1540 int32_t 1541 glusterd_cluster_unlock (call_frame_t *frame, xlator_t *this, ________________________________________________________________________________________________________ *** CID 1202385: Dereference after null check (FORWARD_NULL) /xlators/mgmt/glusterd/src/glusterd-mgmt.c: 521 in gd_mgmt_v3_pre_validate_cbk_fn() 515 516 if (!iov) { 517 gf_log (this->name, GF_LOG_ERROR, "iov is NULL"); 518 op_errno = EINVAL; 519 } 520 >>> CID 1202385: Dereference after null check (FORWARD_NULL) >>> Dereferencing null pointer "iov". 521 ret = xdr_to_generic (*iov, &rsp, 522 (xdrproc_t)xdr_gd1_mgmt_v3_pre_val_rsp); 523 if (ret < 0) 524 goto out; 525 526 if (rsp.dict.dict_len) { ________________________________________________________________________________________________________ *** CID 1202390: Data race condition (MISSING_LOCK) /xlators/protocol/server/src/server.c: 991 in init() 985 ret = -1; 986 goto out; 987 } 988 989 LOCK_INIT (&barrier->lock); 990 INIT_LIST_HEAD (&barrier->queue); >>> CID 1202390: Data race condition (MISSING_LOCK) >>> Accessing "barrier->on" without holding lock "_gf_barrier.lock". Elsewhere, "barrier->on" is accessed with "_gf_barrier.lock" held 4 out of 5 times. 991 barrier->on = _gf_false; 992 993 GF_OPTION_INIT ("barrier-queue-length", barrier->max_size, 994 int64, out); 995 GF_OPTION_INIT ("barrier-timeout", barrier->time_out, 996 uint64, out); ________________________________________________________________________________________________________ *** CID 1202391: Negative array index write (NEGATIVE_RETURNS) /xlators/mgmt/glusterd/src/glusterd-mgmt.c: 101 in gd_mgmt_v3_collate_errors() 95 len = snprintf (op_err, sizeof(op_err) - 1, 96 "Unlocking failed " 97 "on %s. %s", peer_str, err_str); 98 break; 99 } 100 } >>> CID 1202391: Negative array index write (NEGATIVE_RETURNS) >>> Using variable "len" as an index to array "op_err". 101 op_err[len] = '\0'; 102 103 if (args->errstr) { 104 len = snprintf (err_str, sizeof(err_str) - 1, 105 "%s\n%s", args->errstr, 106 op_err); ________________________________________________________________________________________________________ *** CID 1202393: Unsigned compared against 0 (NO_EFFECT) /xlators/mgmt/glusterd/src/glusterd-snapshot.c: 314 in snap_max_hard_limits_validate() 308 max_limit = conf->snap_max_hard_limit; 309 } else { 310 max_limit = GLUSTERD_SNAPS_MAX_HARD_LIMIT; 311 } 312 } 313 >>> CID 1202393: Unsigned compared against 0 (NO_EFFECT) >>> This less-than-zero comparison of an unsigned value is never true. "value < 0UL". 314 if ((value < 0) || (value > max_limit)) { 315 ret = -1; 316 snprintf (err_str, PATH_MAX, "Invalid snap-max-hard-limit" 317 "%"PRIu64 ". Expected range 0 - %"PRIu64, 318 value, max_limit); 319 goto out; ________________________________________________________________________________________________________ *** CID 1202392: Unsigned compared against 0 (NO_EFFECT) /xlators/mgmt/glusterd/src/glusterd-snapshot.c: 395 in glusterd_snapshot_config_prevalidate() 389 goto out; 390 } 391 } 392 393 if (soft_limit) { 394 max_limit = GLUSTERD_SNAPS_MAX_SOFT_LIMIT_PERCENT; >>> CID 1202392: Unsigned compared against 0 (NO_EFFECT) >>> This less-than-zero comparison of an unsigned value is never true. "soft_limit < 0UL". 395 if ((soft_limit < 0) || (soft_limit > max_limit)) { 396 ret = -1; 397 snprintf (err_str, PATH_MAX, "Invalid " 398 "snap-max-soft-limit ""%" 399 PRIu64 ". Expected range 0 - %"PRIu64, 400 value, max_limit); ________________________________________________________________________________________________________ *** CID 1202395: Resource leak (RESOURCE_LEAK) /xlators/mgmt/glusterd/src/glusterd-store.c: 2532 in glusterd_store_update_volinfo() 2526 "iter"); 2527 goto out; 2528 } 2529 2530 ret = 0; 2531 out: >>> CID 1202395: Resource leak (RESOURCE_LEAK) >>> Variable "iter" going out of scope leaks the storage it points to. 2532 return ret; 2533 } 2534 2535 glusterd_volinfo_t* 2536 glusterd_store_retrieve_volume (char *volname, glusterd_snap_t *snap) 2537 { /xlators/mgmt/glusterd/src/glusterd-store.c: 2532 in glusterd_store_update_volinfo() 2526 "iter"); 2527 goto out; 2528 } 2529 2530 ret = 0; 2531 out: >>> CID 1202395: Resource leak (RESOURCE_LEAK) >>> Variable "iter" going out of scope leaks the storage it points to. 2532 return ret; 2533 } 2534 2535 glusterd_volinfo_t* 2536 glusterd_store_retrieve_volume (char *volname, glusterd_snap_t *snap) 2537 { ________________________________________________________________________________________________________ *** CID 1202394: Resource leak (RESOURCE_LEAK) /xlators/mgmt/glusterd/src/glusterd-store.c: 2902 in glusterd_store_update_snap() 2896 if (ret) { 2897 gf_log (this->name, GF_LOG_ERROR, "Failed to destroy store " 2898 "iter"); 2899 } 2900 2901 out: >>> CID 1202394: Resource leak (RESOURCE_LEAK) >>> Variable "iter" going out of scope leaks the storage it points to. 2902 return ret; 2903 } 2904 2905 int32_t 2906 glusterd_store_retrieve_snap (char *snapname) 2907 { /xlators/mgmt/glusterd/src/glusterd-store.c: 2902 in glusterd_store_update_snap() 2896 if (ret) { 2897 gf_log (this->name, GF_LOG_ERROR, "Failed to destroy store " 2898 "iter"); 2899 } 2900 2901 out: >>> CID 1202394: Resource leak (RESOURCE_LEAK) >>> Variable "iter" going out of scope leaks the storage it points to. 2902 return ret; 2903 } 2904 2905 int32_t 2906 glusterd_store_retrieve_snap (char *snapname) 2907 {
pre-release version is ambiguous and about to be removed as a choice. If you believe this is still a bug, please change the status back to NEW and choose the appropriate, applicable version for it.