On Thursday, January 16, 2014 18:14:10 Emmanuel Mayssat wrote:
> This thread is related to
> http://www.aps.anl.gov/epics/tech-talk/2013/msg02331.php (csm as a
> replacement of breakpoint tables)
> Although csm package (i.e. the cvtRecord) is promising, I included it
> in many of my IOCs in preparation of a large adoption.
It turns out
> this library/record needs at least one instance of the record in the
> EPICS database Even an empty record can do!
>
> record(cvt, "FooCV")
> {
> }
>
> otherwise the same IOC without that database entry crashes
>
> [...]
> iocInit()
> Starting iocInit
> ######################################################################
> ######
## EPICS R3.14.11 $R3-14-11$ $2009/08/28 18:47:36$
> ## EPICS Base built Jun 23 2010
> ######################################################################
> ######
>
>
> A call to 'assert(capacity != 0)'
> by thread '_main_' failed in
> ../../../src/libCom/osi/os/default/osdMessageQueue.cpp line 76.
> EPICS Release EPICS R3.14.11 $R3-14-11$ $2009/08/28 18:47:36$. Local
> time is 2014-01-16 18:13:26.269437831 PST
> Please E-mail this message to the author or to [email protected]
> Calling epicsThreadSuspendSelf()
Hi Emmanuel
thanks for the report. This is indeed a bug in the csm module, the
record support contains this initialization call:
initConversionQ = epicsMessageQueueCreate(countCvtRecords(),
REINIT_MSG_SIZE);
which fails due to an assertion in base if there are no cvt records.
BTW, the precondition (that the first argument 'capacity' must not be 0)
is undocumented.
I uploaded a new release 4.2 that fixes this issue.
Cheers
Ben
> From: [email protected]
> To: [email protected]
> Subject: RE: A call to 'assert(capacity != 0)' by thread
> Date: Mon, 13 Jan 2014 14:30:41 -0800
>
>
>
>
> Just to close this thread and for future reference:
>
> * There were no errors before or after the iocInit but the one posted
> herein.
* The iocs were previously behaving correctly (i.e. were not
> in development) * The problems showed up in many of my IOCs at the
> same time.
> The culprit was a new record + associated library developed by third
> party I had compiled in my most of production IOCs.
Although I had
> previously tested this new record, it was in a simple IOC. The issue
> showed up in my "bulky" IOCs which include also many other non-base
> libraries/records. I suspect there is a conflict between libraries
> (why? which ones? Well, this needs to be further investigated).
> The solution was simply to recompile my IOCs without the new record.
>
> For your information,
> --
> Emmanuel
>
>
> > Date: Wed, 8 Jan 2014 17:26:32 +0100
> > From: [email protected]
> > To: [email protected]
> > Subject: Re: A call to 'assert(capacity != 0)' by thread
> >
> > On 08.01.2014 00:32, Michael Davidsaver wrote:
> >
> > > > epicsMessageQueueCreate(capacity, maxMessageSize)
> > >
> > >
> > >
> > > Someone is unwittingly attempting to create a message queue with
> > > capacity=0.
>
> >
> > Feature request: Can assert() write a stack dump?
> > What is written at the moment is not as helpful as it could be:
> >
> > A call to 'assert(capacity != 0)'
> >
> > by thread '_main_' failed in
> >
> > ../../../src/libCom/osi/os/default/osdMessageQueue.cpp line 76.
> >
> > Dirk
> >
> >
> > >
> > >
> > >
> > > https://github.com/epicsdeb/epics-base/blob/9813f3c5d6b4251bfcb33d
> > > fce8b8db3f8efbe7fe/src/libCom/osi/os/default/osdMessageQueue.cpp#L
> > > 76
> >
> > >
> > >
> > > (Code link to github since launchpad.net is having issue atm.)
> > >
> > >
> > >
> > > On 01/07/2014 05:45 PM, Emmanuel Mayssat wrote:
> > >
> > >> On our way to CE certification(required for export to Europe), we
> > >> have
3rd party consultants who are playing with the building
> > >> electrical power. Although we have UPSs everywhere, the shutdown
> > >> was much longer than anticipated.
> > >> Now as I am trying to recover from the shutdown, several of my
> > >> IOC
> > >> come up with this message:
> > >>
> > >>
> > >>
> > >>
> > >> [...]
> > >> iocInit()
> > >> Starting iocInit
> > >> #################################################################
> > >> ###########
## EPICS R3.14.11 $R3-14-11$ $2009/08/28 18:47:36$
> > >> ## EPICS Base built Apr 9 2010
> > >> #################################################################
> > >> ###########
> >>
> > >>
> > >>
> > >> A call to 'assert(capacity != 0)'
> > >>
> > >> by thread '_main_' failed in
> > >>
> > >> ../../../src/libCom/osi/os/default/osdMessageQueue.cpp line 76.
> > >> EPICS Release EPICS R3.14.11 $R3-14-11$ $2009/08/28 18:47:36$.
> > >> Local time is 2014-01-07 13:30:20.876609556 PST
> > >> Please E-mail this message to the author or to
> > >> [email protected]
> > >> Calling epicsThreadSuspendSelf()
> > >>
> > >>
> > >>
> > >> I am investigating the issue.
> > >> But as I have people breathing down my neck, pointers are
> > >> welcome.
> > >> Regards,
> > >> --
> > >> Emmanuel
> > >
> > >
> >
> >
--
"Make it so they have to reboot after every typo." ― Scott Adams
Attachment:
signature.asc
Description: This is a digitally signed message part.
- References:
- A call to 'assert(capacity != 0)' by thread Emmanuel Mayssat
- RE: A call to 'assert(capacity != 0)' by thread Emmanuel Mayssat
- RE: A call to 'assert(capacity != 0)' by thread Emmanuel Mayssat
- Navigate by Date:
- Prev:
CAJ "AlreadyBoundException" Mezger Anton Christian
- Next:
RE: garbage in zero length arrays Hill, Jeff
- 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:
RE: A call to 'assert(capacity != 0)' by thread Emmanuel Mayssat
- Next:
VLANS designing,Geographical vs functional? Zhang Yuliang
- 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
|