diff -Nru sarrac-2.20.05/debian/changelog sarrac-2.20.07~ubuntu19.10.1/debian/changelog --- sarrac-2.20.05/debian/changelog 2020-05-19 01:42:07.000000000 +0000 +++ sarrac-2.20.07~ubuntu19.10.1/debian/changelog 2020-07-31 05:18:22.000000000 +0000 @@ -1,8 +1,15 @@ -sarrac (2.20.05-0~ubuntu19.10.1) eoan; urgency=low +sarrac (2.20.07~ubuntu19.10.1) eoan; urgency=low * Auto build. - -- Supercomputing @ Government of Canada Tue, 19 May 2020 01:42:07 +0000 + -- Supercomputing @ Government of Canada Fri, 31 Jul 2020 05:18:22 +0000 + +sarrac (2.20.07) stable; urgency=medium + + * fix for coredump when a path is set to a non-existe environment variable. + * statehost is now a boolean, as per sr_subscribe man page (core dumped before.) + + -- Peter Silva Mon, 20 Jul 2020 12:05:15 -0400 sarrac (2.20.05) unstable; urgency=medium diff -Nru sarrac-2.20.05/debian/git-build-recipe.manifest sarrac-2.20.07~ubuntu19.10.1/debian/git-build-recipe.manifest --- sarrac-2.20.05/debian/git-build-recipe.manifest 2020-05-19 01:42:07.000000000 +0000 +++ sarrac-2.20.07~ubuntu19.10.1/debian/git-build-recipe.manifest 2020-07-31 05:18:22.000000000 +0000 @@ -1,2 +1,2 @@ -# git-build-recipe format 0.4 deb-version {debupstream}-0 -lp:~ssc-hpc-chp-spc/metpx-sarrac/+git/master git-commit:9cd4ef2c9d28b8072408e49056df014d5b9e314f +# git-build-recipe format 0.4 deb-version {debupstream} +lp:~ssc-hpc-chp-spc/metpx-sarrac/+git/master git-commit:dcc5032a7af122ac25d1f13e9e06ab8c7361b94d diff -Nru sarrac-2.20.05/sr_config.c sarrac-2.20.07~ubuntu19.10.1/sr_config.c --- sarrac-2.20.05/sr_config.c 2020-05-19 01:42:07.000000000 +0000 +++ sarrac-2.20.07~ubuntu19.10.1/sr_config.c 2020-07-31 05:18:22.000000000 +0000 @@ -59,6 +59,8 @@ struct sr_path_s *p; struct sr_path_s *n; + if (option == NULL) return; + if (!strcmp(option, "add") || !strcmp(option, "cleanup") || !strcmp(option, "declare") @@ -1066,6 +1068,10 @@ retval = (2); } else if (!strcmp(option, "statehost") || !strcmp(option, "sh")) { + + val = StringIsTrue(argument); + sr_cfg->statehost = val & 2; +/* sr_cfg->statehost = 's'; if (!strcasecmp(argument, "short")) { sr_cfg->statehost = 's'; @@ -1081,6 +1087,7 @@ }; retval = (1 + (val & 1)); } + */ } else if (!strcmp(option, "strip")) { sr_cfg->strip = atoi(argument); // Check if arg was a number, if not: REGEX @@ -1321,7 +1328,7 @@ sr_cfg->heartbeat = 300.0; sr_cfg->help = 0; sr_cfg->source = NULL; - sr_cfg->statehost = '0'; + sr_cfg->statehost = 0; sr_cfg->strip = 0; sr_cfg->sumalgo = 'd'; sr_cfg->sumalgoz = 'd'; @@ -1332,9 +1339,6 @@ sr_cfg->topics = NULL; sr_cfg->post_base_url = NULL; - sr_cfg->statehost = '0'; - sr_cfg->statehostval = NULL; - sr_cfg->vip = NULL; sr_cfg->xattr_cc = 0; @@ -1511,16 +1515,10 @@ d = NULL; val = NULL; - if (sr_cfg->statehost != '0') { + if (sr_cfg->statehost) { val = sr_local_fqdn(); - - // short - if (sr_cfg->statehost == 's') { - d = strchr(val, '.'); - if (d) { - *d = '\0'; - } - } + d = strchr(val, '.'); + if (d) *d = '\0'; } if (val) sr_cfg->statehostval = strdup(val); @@ -1641,9 +1639,9 @@ sr_cfg->configname, sr_cfg->loglevel, sr_cfg->follow_symlinks ? "yes" : "no", sr_cfg->realpath ? "yes" : "no"); sr_log_msg(LOG_DEBUG, - "\tsleep=%g expire=%g heartbeat=%g sanity_log_dead=%g cache=%g\n", + "\tsleep=%g expire=%g heartbeat=%g sanity_log_dead=%g cache=%g statehost=%s\n", sr_cfg->sleep, sr_cfg->expire, sr_cfg->heartbeat, - sr_cfg->sanity_log_dead, sr_cfg->cache); + sr_cfg->sanity_log_dead, sr_cfg->cache, sr_cfg->statehost ? "yes" : "no" ); sr_log_msg(LOG_DEBUG, "\tcache_file=%s accept_unmatch=%s post_rate_limit=%d\n", sr_cfg->cachep ? p : "off", sr_cfg->accept_unmatched ? "on" : "off", sr_cfg->post_rate_limit ); sr_log_msg(LOG_DEBUG, diff -Nru sarrac-2.20.05/sr_consume.c sarrac-2.20.07~ubuntu19.10.1/sr_consume.c --- sarrac-2.20.05/sr_consume.c 2020-05-19 01:42:07.000000000 +0000 +++ sarrac-2.20.07~ubuntu19.10.1/sr_consume.c 2020-07-31 05:18:22.000000000 +0000 @@ -582,7 +582,7 @@ sr_log_msg( LOG_DEBUG, "Frame type %d, channel %d Method %s consumer_tag: %s, delivery_tag: %ld\n", frame.frame_type, frame.channel, amqp_method_name(frame.payload.method.id), - (char *)d->consumer_tag.bytes, d->delivery_tag); + (char *)d->consumer_tag.bytes, (long)(d->delivery_tag)); sr_c->cfg->broker->last_delivery_tag = d->delivery_tag; @@ -613,7 +613,7 @@ if (p->_flags & AMQP_BASIC_CONTENT_TYPE_FLAG) { sr_log_msg(LOG_DEBUG, "Content-type: %.*s frame.payload.properties.class_id: %d body_size: %ld\n", (int)p->content_type.len, (char *)p->content_type.bytes, frame.payload.properties.class_id, - frame.payload.properties.body_size ); + (long)frame.payload.properties.body_size ); } if (p->_flags & AMQP_BASIC_HEADERS_FLAG) { @@ -634,7 +634,7 @@ break; case AMQP_FIELD_KIND_TIMESTAMP: - sr_log_msg(LOG_WARNING, "skipping TIMESTAMP header %d value:%ld\n", i, (p->headers.entries[i].value.value.u64) ); + sr_log_msg(LOG_WARNING, "skipping TIMESTAMP header %d value:%lld\n", i, (long long unsigned)(p->headers.entries[i].value.value.u64) ); break; case AMQP_FIELD_KIND_UTF8: @@ -659,19 +659,19 @@ break; case AMQP_FIELD_KIND_U64: - sr_log_msg(LOG_WARNING, "skipping U64 header %d value:%ld\n", i, (p->headers.entries[i].value.value.u64) ); + sr_log_msg(LOG_WARNING, "skipping U64 header %d value:%lld\n", i, (long long unsigned)(p->headers.entries[i].value.value.u64) ); goto after_headers; break; case AMQP_FIELD_KIND_ARRAY: - sr_log_msg(LOG_WARNING, "skipping ARRAY header index: %d\n", i ); + sr_log_msg(LOG_WARNING, "skipping ARRAY header index: %d\n", i ); goto after_headers; break; case AMQP_FIELD_KIND_I64: - sr_log_msg(LOG_WARNING, "skipping I64 header %d: value:%ld\n", i, (p->headers.entries[i].value.value.i64) ); + sr_log_msg(LOG_WARNING, "skipping I64 header %d: value:%lld\n", i, (long long)(p->headers.entries[i].value.value.i64) ); goto after_headers; break; @@ -692,7 +692,7 @@ if (body_target >= SR_SARRAC_MAXIMUM_MESSAGE_LEN) { sr_log_msg(LOG_CRITICAL, "Message too big! received: (%ld bytes) max: %d", - body_target, SR_SARRAC_MAXIMUM_MESSAGE_LEN ); + (long)body_target, SR_SARRAC_MAXIMUM_MESSAGE_LEN ); abort(); } @@ -712,16 +712,16 @@ (int)frame.payload.body_fragment.len ); body_received += frame.payload.body_fragment.len; - sr_log_msg(LOG_DEBUG, "message body frame received: %lu bytes \n", frame.payload.body_fragment.len ); + sr_log_msg(LOG_DEBUG, "message body frame received: %lu bytes \n", (unsigned long)frame.payload.body_fragment.len ); buf[body_received] = '\0'; } if (body_received != body_target) { - sr_log_msg(LOG_ERROR, "incomplete message, received: %lu bytes, expected: %lu bytes.\n", body_received, body_target ); + sr_log_msg(LOG_ERROR, "incomplete message, received: %lu bytes, expected: %lu bytes.\n", (long)body_received, (long)body_target ); return (NULL); } else { - sr_log_msg(LOG_DEBUG, "complete message, received: %lu bytes \n", body_received ); + sr_log_msg(LOG_DEBUG, "complete message, received: %lu bytes \n", (unsigned long)body_received ); } //amqp_maybe_release_buffers(sr_c->cfg->broker->conn); diff -Nru sarrac-2.20.05/sr_cpost.c sarrac-2.20.07~ubuntu19.10.1/sr_cpost.c --- sarrac-2.20.05/sr_cpost.c 2020-05-19 01:42:07.000000000 +0000 +++ sarrac-2.20.07~ubuntu19.10.1/sr_cpost.c 2020-07-31 05:18:22.000000000 +0000 @@ -412,7 +412,7 @@ sr_log_msg(LOG_DEBUG, "bytes read: %d, sz ev: %ld, event: %04x %s: len=%d, fn=%s\n", - ret, sizeof(struct inotify_event) + e->len, + ret, (long)(sizeof(struct inotify_event) + e->len), e->mask, inotify_event_2string(e->mask), e->len, fn); if ((e->mask & IN_IGNORED)) { diff -Nru sarrac-2.20.05/sr_post.c sarrac-2.20.07~ubuntu19.10.1/sr_post.c --- sarrac-2.20.05/sr_post.c 2020-05-19 01:42:07.000000000 +0000 +++ sarrac-2.20.07~ubuntu19.10.1/sr_post.c 2020-07-31 05:18:22.000000000 +0000 @@ -133,8 +133,8 @@ strncpy(value2, value, AMQP_MAX_SS); value2[AMQP_MAX_SS - 1] = '\0'; sr_log_msg(LOG_ERROR, - "header %s too long (%ld bytes), truncating to: %s. Message corrupt.\n", - tag, strlen(value), value2); + "header %s too long (%lu bytes), truncating to: %s. Message corrupt.\n", + tag, (unsigned long)strlen(value), value2); headers[hdrcnt].value.value.bytes = amqp_cstring_bytes(value2); bad_hdrcnt++; } else {