Ralph Lange wrote:
> The periodic scan tasks ARE automatically restarted. (See line 539 +-20 of
> dbScan.c) Looks safe to me in that case. Generally I would agree with you.
In my version I see
near top of dbScan.c
int volatile scanRestart=FALSE;
Then later:
static void wdPeriodic(long ind)
{
scan_list *psl;
if(!scanRestart)return;
Thus tasks are not restarted. Many things could go wrong.
For example a task is likely to have records locked.
Restarting will merely hide original problem and cause
really strange behavior.
> > If you get a stack trace of crashed scanOnce task it should help.
>
Note that on ioc onceTask is given name scanOnce. This is confusing.
> We're trying to catch the task that is calling scanOnce() to see where the
> crap comes from. I think the onceTask itself doesn't do too much
> interesting things - it just reads from the ring buffer and calls
> dbScanLock without checking the validity of the precord it got from the
> buffer - then dies.
Note that onceTask scans a record. Since records can be linked,
this means an arbitrary number of records can process. This means
an arbitrary set of record/device/driver support can be executed.
Marty Kraimer
- Replies:
- Re: IOC hangs (scanOnce crashes) Ralph Lange
- References:
- Re: IOC hangs (scanOnce crashes) Ralph Lange
- Navigate by Date:
- Prev:
Re: copying of monitored data Jeff Hill
- Next:
ACS Microstepper Drives Guy_Jennings
- 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: IOC hangs (scanOnce crashes) Ralph Lange
- Next:
Re: IOC hangs (scanOnce crashes) Ralph Lange
- 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
|