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  2013  <20142015  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  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: A call to 'assert(capacity != 0)' by thread‏
From: Emmanuel Mayssat <[email protected]>
To: EPICS mailing list <[email protected]>
Date: Thu, 16 Jan 2014 18:14:10 -0800
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()

Regards,
--
Emmanuel


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/9813f3c5d6b4251bfcb33dfce8b8db3f8efbe7fe/src/libCom/osi/os/default/osdMessageQueue.cpp#L76
> >
> > (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
> >
>

Replies:
Re: A call to 'assert(capacity != 0)' by thread‏ Benjamin Franksen
References:
A call to 'assert(capacity != 0)' by thread‏ Emmanuel Mayssat
Re: A call to 'assert(capacity != 0)' by thread‏ Michael Davidsaver
Re: A call to 'assert(capacity != 0)' by thread‏ Dirk Zimoch
RE: A call to 'assert(capacity != 0)' by thread‏ Emmanuel Mayssat

Navigate by Date:
Prev: RE: PV for both input AND output Emmanuel Mayssat
Next: Re: PV for both input AND output Ralph Lange
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  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: Re: A call to 'assert(capacity != 0)' by thread‏ Benjamin Franksen
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 17 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·