EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: dbFreeLink called but link type unknown
From: Michael Johnson <[email protected]>
To: Andrew Johnson <[email protected]>
Cc: [email protected]
Date: Fri, 24 May 2013 21:55:11 -0400
Thanks for the responses, Andrew.

FYI, the CHECK_RELEASE=YES build reports nothing bad.

I did some experimentation and found that the inter-PV links seem to be generating the warnings. The INP and FLNK fields each generate one message each time the db file is loaded. If I delete those links, the errors go away. Exception: The INP for the actual hardware record is fine, VMIC0943 isn't complaining.

I tried some random changes, such as linking to RECORD.VAL instead of RECORD, specifying NPP NMS for the link type, but with no changes to behavior.

Speaking of behavior, these records all seem to be functioning properly once loaded. Here's a live snapshot of one. INPA and FLNK each generated a warning on this one when loaded.

vxwrks@iocea2->dbpr "E201B06C0943ADDR3:mux1",9
A: 682              ACKS: NO_ALARM      ACKT: YES           ADEL: 0             
ALST: 682           ASG:                ASP: 0x1091680      B: 0                
BKPT: 00            C: 0                CALC: A AND 65535   D: 0                
DESC: limit switch  DISA: 0             DISP: 0             DISS: NO_ALARM      
DISV: 1             DPVT: 0x0           DSET: 0x0           DTYP: <nil>         
E: 0                EGU:                EVNT: 0             F: 0                
FLNK:PV_LINK E201B06C0943ADDR3:low      G: 0                H: 0                
HHSV: NO_ALARM      HIGH: 0             HIHI: 0             HOPR: 0             
HSV: NO_ALARM       HYST: 0             I: 0                
INPA:PV_LINK E201B06C0943ADDR3:ai NPP NMS                   INPB:CONSTANT       
INPC:CONSTANT       INPD:CONSTANT       INPE:CONSTANT       INPF:CONSTANT       
INPG:CONSTANT       INPH:CONSTANT       INPI:CONSTANT       INPJ:CONSTANT       
INPK:CONSTANT       INPL:CONSTANT       J: 0                K: 0                
L: 0                LA: 682             LALM: 682           LB: 0               
LC: 0               LCNT: 0             LD: 0               LE: 0               
LF: 0               LG: 0               LH: 0               LI: 0               
LJ: 0               LK: 0               LL: 0               LLSV: NO_ALARM      
LOLO: 0             LOPR: 0             LOW: 0              LSET: 0x10fd890     
LSV: NO_ALARM       MDEL: 0             
MLIS: 00 00 00 00 00 00 00 00 00 00 00 00                   MLOK: 01 15 74 f0   
MLST: 682           NAME: E201B06C0943ADDR3:mux1            NSEV: NO_ALARM      
NSTA: NO_ALARM      PACT: 0             PHAS: 0             PINI: NO            
PPN: 0x0            PPNR: 0x0           PREC: 0             PRIO: LOW           
PROC: 0             PUTF: 0             RDES: 0x142b860     
RPCL: 03 01 40 ef ff e0 00 00 00 00 41 00 00 00 00 00 00 00 00 00               
RPRO: 0             RSET: 0x15fb458     SCAN: Passive       SDIS:CONSTANT       
SEVR: NO_ALARM      SPVT: 0x0           STAT: NO_ALARM      
TIME: 2013-05-24 12:37:15.118782174     TPRO: 0             TSE: 0              
TSEL:CONSTANT       UDF: 0              VAL: 682            
value = 0 = 0x0

- Mike



On Fri, May 24, 2013 at 5:07 PM, Andrew Johnson <[email protected]> wrote:
Hi Michael,

On 2013-05-24 Michael Johnson wrote:
> > On 2013-05-24 Michael Johnson wrote:
> >> I'm seeing this error (warning?) when I load a new database.
> >>
> >> dbFreeLink called but link type unknown

> Running 3.14.11. I can narrow it down to this simple-ish test case.
>
> -->  load commands (loaded by dbLoadTemplate)<--
>
> file "insertablesV/db/inchannels.db"
> {
> pattern {cardname, devicetype, deviceaddr, description}
> {"E201B06C0943ADDR3", "VMIC0943", "#C3 S2 @MES", "limit switch"}
> {"E201B06C0943ADDR4", "VMIC0943", "#C4 S2 @MES", "limit switch"}
> }
>
> -->  db file<--
>
> record(ai, "$(cardname):ai") {
>    field(DESC, "$(description)")
>    field(DTYP, "$(devicetype)")
>    field(FLNK, "$(cardname):mux2")
>    field(INP, "$(deviceaddr)")
>    field(SCAN, ".2 second")
>    field(PINI, "YES")
> }

That error message implies that some record link field has its plink->type set
to a value that it shouldn't have.  This could be due to some code overwriting
memory it shouldn't, but there are other explanations which are probably more
likely.

I suspect you have an issue with incompatible database definition (dbd) files,
meaning that one or more of the IOC's record types or device support modules
is being built using a different and incompatible definition (dbd file) than
some other module.  This is a build-time problem which can be discovered if
your IOC sets the variable CHECK_RELEASE=YES or CHECK_RELEASE=WARN in its
configure/CONFIG_SITE file (or for older modules the variable may be set in
configure/Makefile instead).  Unfortunately some sites set CHECK_RELEASE=NO
because they don't want to see the errors or warnings that the check
generates, but then you have to be 100% sure that your modules are compatible
(if you're wrong this is the kind of problem that results, which can be tricky
to track down).

I suggest you set the IOC build to CHECK_RELEASE=YES and run make from the top
level.  If the build stops with an error in the configure directory, look very
closely at the error message it outputs which is fairly detailed, and talk to
the local owners of the relevant support modules about compatibility.  If the
build doesn't stop then something else is the problem; it might be related to
the VMIC0943 device support, but it might be some other code, so you'll have
to look back at the history of changes to the IOC to work out when it started.

HTH,

- Andrew
--
It is difficult to get a man to understand something, when his salary
depends upon his not understanding it. -- Upton Sinclair


References:
dbFreeLink called but link type unknown Michael Johnson
Re: dbFreeLink called but link type unknown Andrew Johnson
Re: dbFreeLink called but link type unknown Michael Johnson
Re: dbFreeLink called but link type unknown Andrew Johnson

Navigate by Date:
Prev: Re: dbFreeLink called but link type unknown Andrew Johnson
Next: Re: streamdevice Sebastian Matkovich
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: dbFreeLink called but link type unknown Andrew Johnson
Next: Motor record .RDBD field Emma Shepherd
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 20 Apr 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·