Skip to content

Commit b03b274

Browse files
authored
Merge pull request #3662 from yosefe/topic/ucx-v1.5.2-multiple-fixes
Multiple fixes for UCX v1.5.2
2 parents 7e67a4b + 0cb7b64 commit b03b274

File tree

14 files changed

+110
-19
lines changed

14 files changed

+110
-19
lines changed

NEWS

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@
77
##
88
#
99

10+
## 1.5.2 (TBD)
11+
Bugfixes:
12+
- Fix segfault when libuct.so is reloaded - issue #3558
13+
- Fix ucx_info crash when printing configuration alias
14+
- Fix static checker errors
15+
1016
## 1.5.1 (April 1, 2019)
1117
Bugfixes:
1218
- Fix dc_mlx5 transport support check for inbox libmlx5 drivers - issue #3301

configure.ac

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ AC_PREREQ([2.63])
1010

1111
define([ucx_ver_major], 1)
1212
define([ucx_ver_minor], 5)
13-
define([ucx_ver_patch], 1)
13+
define([ucx_ver_patch], 2)
1414
define([ts], esyscmd([sh -c "date +%Y%m%d%H%M%S"]))
1515

1616
# This is the API version (see libtool library versioning)

contrib/test_jenkins.sh

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ build_docs() {
188188
fi
189189
../configure --prefix=$ucx_inst --with-docs-only
190190
$MAKE clean
191-
$MAKE docs
191+
make docs
192192
$MAKE clean # FIXME distclean does not work with docs-only
193193
}
194194

@@ -702,6 +702,15 @@ test_dlopen() {
702702
! grep '^socket' strace.log
703703
}
704704

705+
test_dlopen_cfg_print() {
706+
../contrib/configure-devel --prefix=$ucx_inst
707+
$MAKE clean
708+
$MAKE
709+
710+
echo "==== Running test_dlopen_cfg_print ===="
711+
./test/apps/test_dlopen_cfg_print
712+
}
713+
705714
test_memtrack() {
706715
../contrib/configure-devel --prefix=$ucx_inst
707716
$MAKE clean
@@ -930,6 +939,7 @@ run_tests() {
930939
do_distributed_task 1 4 run_ucp_client_server
931940
do_distributed_task 3 4 test_profiling
932941
do_distributed_task 3 4 test_dlopen
942+
do_distributed_task 2 4 test_dlopen_cfg_print
933943
do_distributed_task 3 4 test_memtrack
934944
do_distributed_task 0 4 test_unused_env_var
935945
do_distributed_task 1 3 test_malloc_hook

src/ucp/rma/amo_sw.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,10 @@ UCS_PROFILE_FUNC(ucs_status_t, ucp_atomic_req_handler, (arg, data, length, am_fl
215215
} else {
216216
/* atomic operation with result */
217217
req = ucp_request_get(worker);
218-
ucs_assert(req != NULL);
218+
if (req == NULL) {
219+
ucs_error("failed to allocate atomic reply");
220+
return UCS_OK;
221+
}
219222

220223
switch (atomicreqh->length) {
221224
case sizeof(uint32_t):

src/ucp/rma/rma.inl

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ static inline ucs_status_t ucp_rma_wait(ucp_worker_h worker, void *user_req,
4848
req = (ucp_request_t*)user_req - 1;
4949
do {
5050
ucp_worker_progress(worker);
51-
status = ucp_request_check_status(user_req);
5251
} while (!(req->flags & UCP_REQUEST_FLAG_COMPLETED));
5352
status = req->status;
5453
ucp_request_release(user_req);

src/ucp/rma/rma_sw.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,10 @@ void ucp_rma_sw_send_cmpl(ucp_ep_h ep)
130130
ucp_request_t *req;
131131

132132
req = ucp_request_get(ep->worker);
133-
ucs_assert(req != NULL);
133+
if (req == NULL) {
134+
ucs_error("failed to allocate put completion");
135+
return;
136+
}
134137

135138
req->send.ep = ep;
136139
req->send.uct.func = ucp_progress_rma_cmpl;
@@ -210,7 +213,10 @@ UCS_PROFILE_FUNC(ucs_status_t, ucp_get_req_handler, (arg, data, length, am_flags
210213
ucp_request_t *req;
211214

212215
req = ucp_request_get(worker);
213-
ucs_assert(req != NULL);
216+
if (req == NULL) {
217+
ucs_error("failed to allocate get reply");
218+
return UCS_OK;
219+
}
214220

215221
req->send.ep = ep;
216222
req->send.buffer = (void*)getreqh->address;

src/ucs/config/parser.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1231,9 +1231,9 @@ ucs_config_parser_print_opts_recurs(FILE *stream, const void *opts,
12311231
opts + alias_table_offset,
12321232
env_prefix, prefix_list,
12331233
field->name, aliased_field,
1234-
flags, "%-*s %s%s%s", "alias of:",
1234+
flags, "%-*s %s%s",
12351235
UCP_CONFIG_PARSER_DOCSTR_WIDTH,
1236-
env_prefix, prefix_list,
1236+
"alias of:", env_prefix,
12371237
aliased_field->name);
12381238
}
12391239
} else {

src/ucs/config/parser.h

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -82,14 +82,19 @@ typedef struct ucs_config_global_list_entry {
8282

8383

8484
#define UCS_CONFIG_REGISTER_TABLE(_fields, _name, _prefix, _type) \
85+
static ucs_config_global_list_entry_t _fields##_config_entry; \
8586
UCS_STATIC_INIT { \
87+
ucs_config_global_list_entry_t *entry = &_fields##_config_entry; \
8688
extern ucs_list_link_t ucs_config_global_list; \
87-
static ucs_config_global_list_entry_t entry; \
88-
entry.fields = _fields; \
89-
entry.name = _name; \
90-
entry.prefix = _prefix; \
91-
entry.size = sizeof(_type); \
92-
ucs_list_add_tail(&ucs_config_global_list, &entry.list); \
89+
entry->fields = _fields; \
90+
entry->name = _name; \
91+
entry->prefix = _prefix; \
92+
entry->size = sizeof(_type); \
93+
ucs_list_add_tail(&ucs_config_global_list, &entry->list); \
94+
} \
95+
\
96+
UCS_STATIC_CLEANUP { \
97+
ucs_list_del(&_fields##_config_entry.list); \
9398
}
9499

95100

src/ucs/sys/sys.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -569,7 +569,6 @@ static void ucs_sysv_shmget_format_error(size_t alloc_size, int flags,
569569
out:
570570
if (!error_detected) {
571571
snprintf(p, endp - p, ", please check shared memory limits by 'ipcs -l'");
572-
p += strlen(p);
573572
}
574573
}
575574

src/uct/ib/base/ib_iface.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,6 @@ void uct_ib_address_unpack(const uct_ib_address_t *ib_addr, uint16_t *lid,
315315

316316
if (ib_addr->flags & UCT_IB_ADDRESS_FLAG_SUBNET64) {
317317
gid->global.subnet_prefix = *(uint64_t*) ptr;
318-
ptr += sizeof(uint64_t);
319318
}
320319
}
321320

0 commit comments

Comments
 (0)