Select record does not handle inf correctly

Bug #1349456 reported by Ralph Lange
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
EPICS Base
Fix Released
Medium
Ralph Lange

Bug Description

The select record has not been updated to correctly work with inf and NaN values.

The code in selRecord.c contains code like:
    if (!isinf(val)) {
        prec->val = val;
        prec->udf = isnan(prec->val);
    } else {
        recGblSetSevr(prec,UDF_ALARM,MAJOR_ALARM);
        /* If UDF is TRUE this alarm will be overwritten by checkAlarms*/
    }

which sets the record in MAJOR alarm for inf values, no matter if the record's alarm levels have been set or not.

Tags: rec 3.14

Related branches

description: updated
Revision history for this message
Andrew Johnson (anj) wrote :

Be careful when working on this, the select record does use and check for NaNs, and also uses ±Inf values in the do_sel() routine above the quoted code. I suspect the UDF/Major alarm was meant to fire if the none of the input links are set so all of the input value fields contain NaNs (see init_record). The Record Reference has some information about this (which I just corrected).

Changed in epics-base:
status: New → Fix Committed
Andrew Johnson (anj)
Changed in epics-base:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.