Hi Jeffrey, thanks a lot for this analysis. Any chance that somebody could turn this into a patch I could try?
Kind regards Andreas. On Thu, Apr 30, 2020 at 03:40:12PM -0400, Jeffrey Walton wrote: > On Fri, Apr 17, 2020 at 7:21 AM Andreas Tille <andr...@an3as.eu> wrote: > > ... > > So it seems the bus error occures somehow here: > > > > > > https://salsa.debian.org/med-team/clustalo/-/blob/master/src/clustal/pair_dist.c#L346 > > NewProgress is at > https://salsa.debian.org/med-team/clustalo/-/blob/master/src/clustal/progress.c#L53. > It uses a progress_t at > https://salsa.debian.org/med-team/clustalo/-/blob/master/src/clustal/progress.h#L25. > > typedef struct { > /* where to write to */ > FILE *prFile; > /* prefix printed before each step */ > char *pcPrefix; > bool bPrintCR; > char pcLastLogMsg[1024]; > Stopwatch_t *prStopwatch; > } progress_t; > > And stopwatch_t at > https://salsa.debian.org/med-team/clustalo/-/blob/master/src/squid/stopwatch.h: > > struct stopwatch_s { > time_t t0; /* Wall clock time, ANSI time() */ > #ifdef SRE_STRICT_ANSI > clock_t cpu0; /* CPU time, ANSI clock() */ > #else > struct tms cpu0; /* CPU/system time, POSIX times()*/ > #endif > > double elapsed; /* elapsed time, seconds */ > double user; /* CPU time, seconds */ > double sys; /* system time, seconds */ > }; > > There are your doubles that are likely the problem. > > And what do we have here at > https://salsa.debian.org/med-team/clustalo/-/blob/master/src/squid/stopwatch.c#L276 > ... > > void > StopwatchPVMPack(Stopwatch_t *w) > { > pvm_pkdouble(&(w->elapsed), 1, 1); > pvm_pkdouble(&(w->user), 1, 1); > pvm_pkdouble(&(w->sys), 1, 1); > } > void > StopwatchPVMUnpack(Stopwatch_t *w) > { > pvm_upkdouble(&(w->elapsed), 1, 1); > pvm_upkdouble(&(w->user), 1, 1); > pvm_upkdouble(&(w->sys), 1, 1); > } > > I can't track the trail any further. The source code is missing for > pvm_pkdouble and pvm_upkdouble. I would be very suspect of > pvm_pkdouble and pvm_upkdouble. > > Jeff > -- http://fam-tille.de