1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 <2014> 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 2013 <2014> 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 |
<== Date ==> | <== Thread ==> |
---|
Subject: | RE: Fanout to Sub Records in a Different IOC Causes Core Dump |
From: | Mark Rivers <[email protected]> |
To: | "'Poff, Mark A'" <[email protected]>, "[email protected]" <[email protected]> |
Date: | Tue, 7 Oct 2014 19:59:26 +0000 |
What OS is the Processing IOC running on? If Linux, have you analyzed the core dump with gdb to see where it is crashing? Mark From: [email protected] [mailto:[email protected]]
On Behalf Of Poff, Mark A Hello all, On the EPICS project here we’ve run into an issue which we believe
may point to a bug with fanout records and CA links - and we’re wondering if anybody else has seen this behavior. For clarity, the following simplifies our project and the records in question, but I can provide additional detail if requested. We have two IOCs. The first IOC is responsible for publishing PVs and the second IOC is responsible for processing the PVs (using cpp routines) and placing the results in “output” PVs. The following
works with no errors: Data IOC ======== record(bi, “Data_PV_1”) { field(SCAN, “Passive”) field(FLNK, “Process1_sub.PROC”) } Processing IOC ============== record(sub, “Process1_sub”) { field(INPA, “Data_PV_1”) field(SNAM, “Process1_routine”) field(FLNK, “Output_PV_1”) } record(mbbi, “Output_PV_1”) { field(SCAN, “Passive”) field(INP, “Process1_sub”) } However, when
we incorporate a fanout record (to allow two different processing routines to be called when
a single data PV changes value), the second IOC (the processing IOC)
cores almost immediately after start up: Data IOC ======== record(bi, “Data_PV_1”) { field(SCAN, “Passive”) field(FLNK, “Process1_fanout”) } record(fanout, “Process1_fanout”) { field(LNK1, “Process1_sub.PROC”) field(LNK2,
“Process2_sub.PROC”) } Processing IOC ============== <Identical to the first example> As an alternate we tried placing the fanout record in the Processing IOC, but that also core’d. Has anyone seen this behavior? (I discussed this situation briefly with Andrew Johnson and he
recommended an alternate implementation using CP flags on the Processing IOC records, which works well - but of course, we’d still like to understand the issue with fanout.) Thanks, -Mark |