Noboru,
It appears that you have found a bug which occurs only on IOC's
implemented on RISC architectures. Many thanks for bringing this
to my attention.
Symptoms:
Your IOC is running on a RISC CPU and you see the following message:
> CA event: A call to "assert (ev_que->evUser->nDuplicates>=1u)" failed
Cause:
A variable was maintained with the C increment (p->nDuplicates++)
and the C decrement (p->nDuplicates--) operators. These operations are
atomic
on CISC architectures such as M68k and the Intel Pentium, but not on RISC
architectures. I was well aware of this fact, and a mutex lock was applied
while
the variables were changed, but a low level lock was inadvertently applied
to protect
this counter, and unfortunately the locking granularity was incorrect and
the
variable was not protected.
Scope:
This problem was introduced in 'epics_R3_13_0_beta9'. Noboru indicates
that the problem is seen occasionally at KECK.
I have patched the next release 3.13 and also 3.14, but can not 100%
test the fix because we don't have a RISC arch IOC at this site.
Sorry about any inconvenience that this has caused.
Jeff
> -----Original Message-----
> From: Noboru Yamamoto [mailto:[email protected]]
> Sent: Wednesday, November 17, 1999 3:39 AM
> To: [email protected]
> Subject: assertion failiure in dbEvent.c
>
>
> Hi,
>
> We occasionary encounter the following error messages on IOC.
>
> CA event: A call to "assert (ev_que->evUser->nDuplicates>=1u)" failed in
> ../dbEvent.c at 977
> Please send a copy of the output from "tt (0xddc5f0)" and a copy
> of this message
> to the author or "[email protected]"
> This problem occurred in "@(#)Version R3.13.1.1 $$Date: 1999/05/13
> 05:35:28 $$"
> filename="../taskwd.c" line number=176
> task ddc5f0 CA event suspended
>
> -> tt (0xddc5f0)
> 173f5c vxTaskEntry +60 : event_task ()
> 1c96778 event_task +100: 1c96928 ()
> 1c96a68 event_task +3f0: epicsAssert ()
> 1cb4320 epicsAssert +d4 : taskSuspend ()
> value = 0 = 0x0
> -> ti (0xddc5f0)
>
> NAME ENTRY TID PRI STATUS PC SP ERRNO
> DELAY
> ---------- ------------ -------- --- ---------- -------- --------
> ------- -----
> CA event event_task ddc5f0 49 SUSPEND+I 16f230 ddc510
> 0 0
>
> stack: base 0xddc5f0 end 0xddb208 size 4816 high 2840 margin 1976
>
> options: 0xc
> VX_DEALLOC_STACK VX_FP_TASK
>
> r0 = 160620c sp = ddc510 r2 = 0 r3 =
> 0
> r4 = fcfbe r5 = 32 r6 = 0 r7 =
> 3
> r8 = 2 r9 = 64 r10 = 1 r11 =
> 0
> r12 = 2 r13 = 0 r14 = 0 r15 =
> 0
> r16 = 0 r17 = 0 r18 = 0 r19 =
> 0
>
>
> As you see, this error suspend "CA event" task and noone can open new CA
> connection on this IOC, resulting IOC reboot.
> In the tech-talk archive, I can find the similar but slightly different
> post shown bellow.
>
> >
> > Hi Rosemary,
> > I think you must be running the sequencer and
> > there may be a problem with it.
> >
> > There were several bugs fixed in the sequencer between the
> > versions sent out with Beta11 and the one sent out with Beta12
> > and there is also a special version that William Lupton at Keck
> > is using, so it would be helpful to know which one you have.
> >
> >
> >
> > When you first start
> > up the sequencer on the ioc by
> > typing
> > seq &<your sequence program name>
> > it should tell you what version you are using.
> >
> > In my case I type:
> > seq & llrfFillHistory
> > and it replies:
> > @(#)SNC/SEQ Version 1.9.2.Beta12 : Fri Sep 4 10:42:22 1998
> > which means it is Version 1.9.2.Beta12.
> >
> > Could you please tell us what Version of the sequencer you are using?
> >
> >
> > Thanks,
> > Rozelle
> >
> > ---------------------------------------------------------
> > | |
> > |Rozelle Wright Phone (505) 667-4804 |
> > |Los Alamos Natl Labs LANSCE-8 FAX (505) 665-5107 |
> > |PO Box 1663 MS-H820 Group Office (505) 667-6087|
> > |Los Alamos, NM 87545 email : [email protected] |
> > | |
> > ---------------------------------------------------------
> >
> >
> >
> >
> >
> > > From [email protected] Mon Oct 5 21:06 MDT 1998
> > > Date: Mon, 5 Oct 1998 17:00:47 -1000
> > > To: [email protected]
> > > Subject: Failure of assert within dbEvet.c
> > > Content-Type: text
> > > Content-Length: 1095
> > > X-Lines: 36
> > >
> > >
> > >
> > > Aloha,
> > >
> > > Any ideas with regard to the below?
> > >
> > >
> > > ------------------------------------------------------------
> > > EV seqAux: A call to "assert
> (ev_que->evUser->nDuplicates>=1u)" failed in ../dbEvent.c at 1036
> > > Please send a copy of the output from "tt (0xb635d8)" and a
> copy of this message
> > > to the author or "[email protected]"
> > > This problem occurred in "@(#)Version R3.13.0.beta.11 $$Date:
> 1997/07/14 14:04:12 $$"
> > >
> > >
> > > ###################################
> > > cp_control (ready): offset
> > > task: 0Xc7b338 taskwd
> > > task b635d8 EV seqAux suspended
> > >
> > >
> > > -> tt (0xb635d8)
> > > 2cb98 _vxTaskEntry +c : _event_task (c4e188, a63478,
> b6ce60, 0, 0, 0)
> > > e5367c _event_task +cc : e53858 (a63478, ffffffff, 0,
> b2000, 4401fc3, 8)
> > > e53968 _event_task +3b8: _epicsAssert (e53130, 40c,
> e53838, 0, e7a208, 4)
> > > e6fcd8 _epicsAssert +8c : _taskSuspend (0, e6fc10, e53838,
> e53130, 40c, &_dtiPixX)
> > > value = 0 = 0x0
> > > ->
> > > ------------------------------------------------------------
> > >
> > > Mahalo,
> > > Rosemary Alles
> > > Software Engineer
> > > Canada France Hawaii Telescope
> > > e-mail: <[email protected]>
> > > Phone : 808-885-3178
> > > Fax : 808-885-7288
> > >
>
> Does anyone have any idea to avoid this error ?
>
> Thanks,
>
> Noboru Yamamoto
> KEKB control group
> KEK, Accelerator Lab.
>
- References:
- assertion failiure in dbEvent.c Noboru Yamamoto
- Navigate by Date:
- Prev:
RE: Channel Archiving Jeff Hill
- Next:
Re: Channel Archiving Christopher A. Larrieu
- 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:
assertion failiure in dbEvent.c Noboru Yamamoto
- Next:
SDDS archiving Michael Borland
- 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
|