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

Subject: Re: CSS panel switching causes epicsMutexLockOK assert fail
From: PaweÅ PrÄdki <[email protected]>
Cc: [email protected]
Date: Mon, 25 Oct 2010 18:07:56 +0200
Hi,

After several hours of thorugh debugging it turned out I forgot I had changed the waveform type from double to short without changing my data processing methods from double to short. Thus, when I was copying and modyfing data using pointers to doubles and pointer arithmetic I was accidentally overwriting memory twice as far as I was supposed to. :)

Problem solved. Next time I will spend more time looking at the simpler solutions...

Thanks for the replies,
Pawel Predki

On 25.10.2010 17:58, Tim Mooney wrote:
I'll guess somebody (scanIoRequest?) is trying to process a record that
is already
processing, or that is part of a lockset one of whose records is already
processing.

Is anything written to the database when CSS switches panels?
Tim Mooney

On 10/25/2010 9:20 AM, PaweÅ PrÄdki wrote:
Hello,

I'm having more problems with the data acquisition software I'm
developing. This time I have no idea where the error I'm getting is
coming from.

The idea is this - there are 12 DAQ cards in the system, each able to
support 4 channels. There are 12 action buttons which enable the
operator to switch between the DAQ cards and one XY Graph that
displays the waveforms from all 4 channels for each card. The contents
of the graph is controlled by a $(cardno) macro, which is changed
whenever the action button is pressed. To be more precise, another
panel is loaded with a different value of $(cardno) and it replaces
the previous one.

It is possible to switch between the cards without any problems until
data starts coming. I wrote my own device support for the cards using
the waveform record. Data is sent over TCP/IP and once a full sample
set is received a scanIoRequest function is called which, in turns,
calls the read_waveform function where I fill the buffer with valid data.

As I said, once the data starts coming, switching from one card to
another causes this error to appear:

A call to 'assert(status == epicsMutexLockOK)'
by thread 'CAS-client' failed in ../dbEvent.c line 460.
EPICS Release EPICS R3.14.11 $R3-14-11$ $2009/08/28 18:47:36$.
Local time is 2010-10-25 16:11:12.177758908 CEST
Please E-mail this message to the author or to [email protected]
Calling epicsThreadSuspendSelf()

A call to 'assert(status == epicsMutexLockOK)'
by thread 'CAS-client' failed in ../dbEvent.c line 442.
EPICS Release EPICS R3.14.11 $R3-14-11$ $2009/08/28 18:47:36$.
Local time is 2010-10-25 16:11:12.457952837 CEST
Please E-mail this message to the author or to [email protected]
Calling epicsThreadSuspendSelf()
Thread CAS-client (0x82eb670) suspended
Thread CAS-client (0x8308220) suspended


I looked in dbEvent.c but couldn't find anything that would have anything to do with my problem. Does anyone have any ideas what could be wrong? What could hold the mutex and what is the mutex really guarding here?

Kind Regards,
Pawel Predki



References:
CSS panel switching causes epicsMutexLockOK assert fail PaweÅ PrÄdki
Re: CSS panel switching causes epicsMutexLockOK assert fail Tim Mooney

Navigate by Date:
Prev: Re: CSS panel switching causes epicsMutexLockOK assert fail Kasemir, Kay
Next: RE: CSS panel switching causes epicsMutexLockOK assert fail Jeff Hill
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: CSS panel switching causes epicsMutexLockOK assert fail Tim Mooney
Next: Re: CSS panel switching causes epicsMutexLockOK assert fail Kasemir, Kay
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 25 Oct 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·