EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  <20042005  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  <20042005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: bug and fix in iocCore
From: Dirk Zimoch <[email protected]>
To: TECHTALK <[email protected]>
Date: Thu, 03 Jun 2004 18:12:01 +0200
Hi all,

at least on all EPICS releases 3.13.2 to 3.13.9, is a bug that causes crashes on PPC iocs. (I have not seen a 68k crash here.)

Bug:

When reading the DTYP field of "pure soft records" such as calc via CA, the CA_client task crashes and leaves the ioc in a state where no further access via CA is possible.

data access
Exception current instruction address: 0x01705f54
Machine Status Register: 0x0000b030
Data Access Register: 0xf0f0f0f0
Condition Register: 0x28000040
Data storage interrupt Register: 0x40000000
Task: 0x17c31f0 "CA_client"

> tt
17807c vxTaskEntry    +60 : camsgtask ()
1727a44 camsgtask      +2e4: camessage ()
172a7f0 camessage      +120: read_action ()
17286bc read_action    +e8 : read_reply ()
17284b4 read_reply     +144: db_get_field ()
171f838 .L198          +40 : dbGetField ()
1707650 dbGetField     +164: dbGet ()
1707760 dbGet          +cc : getOptions ()
17065d8 getOptions     +208: get_enum_strs ()

Fix:

*** base/src/db/dbAccess.c.orig Thu Jun  3 18:04:26 2004
--- base/src/db/dbAccess.c      Thu Jun  3 18:10:33 2004
***************
*** 129,134 ****
--- 129,138 ----
                    goto choice_common;
                case DBF_DEVICE:
                    pdbDeviceMenu = (dbDeviceMenu *)pdbFldDes->ftPvt;
+                   if (pdbDeviceMenu == NULL) {
+                       no_str = 0;
+                       goto choice_common;
+                   }
                    no_str = pdbDeviceMenu->nChoice;
                    papChoice = pdbDeviceMenu->papChoice;
                    goto choice_common;


After this fix, calc records and the like report DTYP as 0.


Dirk

--
Dr. Dirk Zimoch
Swiss Light Source
Paul Scherrer Institut
Computing and Controls
phone +41 56 310 5182
fax   +41 56 310 4413


Navigate by Date:
Prev: Re: found a bug in 3.13.9 dbLoadTemplate - after all that time Luedeke Andreas
Next: RE: found a bug in 3.13.9 dbLoadTemplate - after all that time Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  <20042005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: PXI & EPICS Al-Adwan Ahed
Next: Bugs in 3.14.5 Kate Feng
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  <20042005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 10 Aug 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·