Hi Dominique,
On 2013-07-05 Dominique Touchard wrote:
> It seems that the number of macros for template substitutions during IOC
> startup is limited to 100. Over, a segmentation fault stop the IOCs.
>
> Is this number correct? Is there any reason?
I was surprised but you're right, src/dbtools/dbLoadTemplate.y defines
VAR_MAX_VARS as 100 which sets a limit to the number of variables that
dbLoadTemplate() can handle. It also defines VAR_MAX_VAR_STRING as 5000
setting the maximum size of the "variable=value,..." string which it
constructs to pass to dbLoadRecords(). In neither case though does it check
when the storage limit set by those macros gets exceeded, thus causing a
crash. This is obviously unacceptable and needs to be fixed in Base.
To get around this limit for a particular application you could do the
template expansion on the host at build time using the msi (Macro
Substitution and Include) program which is distributed as an EPICS extension.
You can also increase the above values in your source code and rebuild base,
which might be a simpler fix in some circumstances.
I have filed a bug-report for this issue. If someone feels inclined to look
at rewriting the dbLoadTemplate() code to remove these limitations please let
me know.
https://bugs.launchpad.net/epics-base/+bug/1198234
- Andrew
--
Advertising may be described as the science of arresting the human
intelligence long enough to get money from it. -- Stephen Leacock
- References:
- Macros limited (edition ;-) Touchard Dominique
- Navigate by Date:
- Prev:
Re: Reading binary file from sscan saveData Hovanes Egiyan
- Next:
Re: Development with EPICS and CSS marcus . michalsky
- 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
- Navigate by Thread:
- Prev:
Macros limited (edition ;-) Touchard Dominique
- Next:
Development with EPICS and CSS Ganesh Jangir
- 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
|