[Debian-med-packaging] Bug#956324: Clustalo bus error on mipsel (Was: Bug#956324: python-biopython: FTBFS on mipsel)

Jeffrey Walton noloader at gmail.com
Fri May 1 08:27:43 BST 2020


On Fri, May 1, 2020 at 3:05 AM Jeffrey Walton <noloader at gmail.com> wrote:
>
> On Fri, May 1, 2020 at 2:14 AM Andreas Tille <andreas at fam-tille.de> wrote:
> >
> >  ...
> > ==13209== Process terminating with default action of signal 10 (SIGBUS)
> > ==13209==    at 0x12D5CC: PairDistances (pair_dist.c:346)
> > ==13209==    by 0x119410: AlignmentOrder (clustal-omega.c:835)
> > ==13209==    by 0x11A6C4: Align (clustal-omega.c:1221)
> > ==13209==    by 0x1171C8: MyMain (mymain.c:1192)
> > ==13209==    by 0x113CCC: main (main.cpp:469)
>
> Here is line 346 in
> https://salsa.debian.org/med-team/clustalo/-/blob/master/src/clustal/pair_dist.c#L346:
>
>             NewProgress(&prProgress, LogGetFP(&rLog, LOG_INFO),
>                         "Ktuple-distance calculation progress", bPrintCR);
>
> For testing, change LogGetFP(&rLog, LOG_INFO) for stdout for testing. I.e.,
>
>             NewProgress(&prProgress, stdout,,
>                         "Ktuple-distance calculation progress", bPrintCR);
>
> It looks like LogGetFP retrieves an entry in an array of FILE*. From
> https://salsa.debian.org/med-team/clustalo/-/blob/master/src/clustal/log.h:
>
> typedef struct {
>     /* the higher the level, the more priority it has. numbers must be
>      *  sequential
>      */
>
>     /* array of function pointers */
>     void (*prFunc[LOG_NUM_LEVELS]) (FILE *prFP, char *pcFormat,
> va_list rVArgList);
>     FILE *prFP[LOG_NUM_LEVELS];
>     char *prPrefix[LOG_NUM_LEVELS];
>
>     /* everything above this level will be printed */
>     int iLogLevelEnabled;
> } log_t;
>
> And https://salsa.debian.org/med-team/clustalo/-/blob/master/src/clustal/log.c:
>
> FILE *
> LogGetFP(log_t *prLog, int iLevel)
> {
>     assert(iLevel>=0 && iLevel<=LOG_NUM_LEVELS);
>     return prLog->prFP[iLevel];
> }
>
> That should help determine if something is sideways in the log_t structure.

Also, I think this should be:

> FILE *
> LogGetFP(log_t *prLog, int iLevel)
> {
>     assert(iLevel>=0 && iLevel<LOG_NUM_LEVELS);
>     return prLog->prFP[iLevel];
> }

That is, 'iLevel<LOG_NUM_LEVELS' (not 'iLevel<=LOG_NUM_LEVELS').

Jeff



More information about the Debian-med-packaging mailing list