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  2014  2015  2016  2017  2018  2019  2020  <20212022  2023  2024  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  <20212022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: using autosave, iocInit hangs
From: Heinz Junkes via Tech-talk <tech-talk at aps.anl.gov>
To: Tech talk <tech-talk at aps.anl.gov>
Date: Sat, 5 Jun 2021 11:52:11 +0200
It was a problem with our configuration of RTEMS:

#define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 150 -> 64
CONFIGURE_MAXIMUM_FILE_DESCRIPTORS  must not be higher
than FD_SETSIZE which is defined by newlib to 64 in RTEMS.

Heinz

> On 30. May 2021, at 00:43, Michael Davidsaver <mdavidsaver at gmail.com> wrote:
> 
> On 5/25/21 12:33 PM, Heinz Junkes via Tech-talk wrote:
>> I also have the reccaster running on the system.
>> 
>> It looks like the casterInit function leads to blocking.
>> I have the function sockpair_compat under suspicion. 
>> However, I need to investigate this further.
>> Heinz 
> 
> If you can reproduce this hang, please reply with a stack trace of all threads.
> 
> 
>>> On 23. May 2021, at 22:24, junkes via Tech-talk <tech-talk at aps.anl.gov> wrote:
>>> 
>>> I was using EPICS 7 with RTEMS 5 and have now also enabled autosave.
>>> Unfortunately in Main iocInit does not come back but hangs at the last
>>> InitHookAnnounce in iocRun
>>> ...
>>>   if (iocState == iocBuilt)
>>>       initHookAnnounce(initHookAtEnd);
>>> 
>>>   errlogPrintf("iocRun: %s\n", iocState == iocBuilt ?
>>>       "All initialization complete" :
>>>       "IOC restarted");
>>>   iocState = iocRunning;
>>>   initHookAnnounce(initHookAfterIocRunning);
>>>   return 0;
>>> }
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> and no new iocsh(NULL) is started.
>>> 
>>> int main(int argc,char *argv[])
>>> {
>>>   if(argc>=2) {
>>>       iocsh(argv[1]);   <----- here it gets stuck
>>>       epicsThreadSleep(.2);
>>>   }
>>>   iocsh(NULL);
>>> 
>>> 
>>> 
>>> ...
>>> ########
>>> # autosave setup
>>> dbLoadRecords("db/save_restoreStatus.db", "P=iocvmeIOC3:")
>>> ## autoSaveRestore setup
>>> save_restoreSet_Debug(0)
>>> # status-PV prefix, so save_restore can find its status PV's.
>>> save_restoreSet_status_prefix("iocvmeIOC3:")
>>> # ok to restore a save set that had missing values (no CA connection to PV)?
>>> # ok to save a file if some CA connections are bad?
>>> save_restoreSet_IncompleteSetsOk(1)
>>> #In the restore operation, a copy of the save file will be written.  The
>>> # file name can look like "auto_settings.sav.bu", and be overwritten every
>>> # reboot, or it can look like "auto_settings.sav_020306-083522" (this is what
>>> # is meant by a dated backup file) and every reboot will write a new copy.
>>> save_restoreSet_DatedBackupFiles(1)
>>> # specify where save files should go
>>> set_savefile_path("/Volumes/Epics/LogDir/log/as","/save")
>>> # specify where request files can be found
>>> set_requestfile_path("/Volumes/Epics/LogDir/log/as","/req")
>>> # Specify what save files should be restored when.
>>> # Up to eight files can be specified for each pass.
>>> set_pass0_restoreFile("iocvmeIOC3_0.sav")
>>> set_pass1_restoreFile("iocvmeIOC3_1.sav")
>>> # Number of sequenced backup files (e.g., 'auto_settings.sav0') to write
>>> save_restoreSet_NumSeqFiles(3)
>>> save_restoreSet_SeqPeriodInSeconds(600)
>>> # Time between failed .sav-file write and the retry.
>>> save_restoreSet_RetrySeconds(60)
>>> makeAutosaveFileFromDbInfo("/Volumes/Epics/LogDir/log/as/req/iocvmeIOC3_0.req", "autosaveFields_pass0")
>>> makeAutosaveFileFromDbInfo("/Volumes/Epics/LogDir/log/as/req/iocvmeIOC3_1.req", "autosaveFields_pass1")
>>> iocInit
>>> iocInit: Reached initHookAtIocBuild
>>> Starting iocInit
>>> iocInit: Reached initHookAtBeginning
>>> ############################################################################
>>> ## EPICS R7.0.4.2-DEV
>>> ## Rev. R7.0.4.1-274-g31ade32004709a9d47e8-dirty
>>> ############################################################################
>>> iocInit: Reached initHookAfterCallbackInit
>>> iocInit: Reached initHookAfterCaLinkInit
>>> iocInit: Reached initHookAfterInitDrvSup
>>> iocInit: Reached initHookAfterInitRecSup
>>> reboot_restore: entry for file 'iocvmeIOC3_0.sav'
>>> reboot_restore: Found filename 'iocvmeIOC3_0.sav' in restoreFileList.
>>> *** restoring from '/Volumes/Epics/LogDir/log/as/save/iocvmeIOC3_0.sav' at initHookState 6 (before record/device init) ***
>>> reboot_restore: done with file 'iocvmeIOC3_0.sav'
>>> 
>>> iocInit: Reached initHookAfterInitDevSup
>>> 2021/05/23 20:07:03.501 sis0: Param Timestamp Clear can not be read
>>> reboot_restore: entry for file 'iocvmeIOC3_1.sav'
>>> reboot_restore: Found filename 'iocvmeIOC3_1.sav' in restoreFileList.
>>> *** restoring from '/Volumes/Epics/LogDir/log/as/save/iocvmeIOC3_1.sav' at initHookState 7 (after record/device init) ***
>>> reboot_restore: done with file 'iocvmeIOC3_1.sav'
>>> 
>>> iocInit: Reached initHookAfterInitDatabase
>>> iocInit: Reached initHookAfterFinishDevSup
>>> iocInit: Reached initHookAfterScanInit
>>> iocInit: Reached initHookAfterInitialProcess
>>> iocInit: Reached initHookAfterCaServerInit
>>> iocInit: Reached initHookAfterIocBuilt
>>> iocInit: Reached initHookAtIocRun
>>> iocInit: Reached initHookAfterDatabaseRunning
>>> iocInit: Reached Not an initHookState
>>> iocInit: Reached initHookAfterCaServerRunning
>>> iocInit: Reached Not an initHookState
>>> iocRun: All initialization complete
>>> ...
>>> no return ...
>>> 
>>> Danke, Heinz
>> 
> 

Attachment: smime.p7s
Description: S/MIME cryptographic signature


References:
using autosave, iocInit hangs junkes via Tech-talk
Re: using autosave, iocInit hangs Heinz Junkes via Tech-talk
Re: using autosave, iocInit hangs Michael Davidsaver via Tech-talk

Navigate by Date:
Prev: Re: caRepeater w/ systemd? Ernesto Paiser via Tech-talk
Next: Problems configuring alarms with PvaPy KRL Baker - STFC UKRI via Tech-talk
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  <20212022  2023  2024 
Navigate by Thread:
Prev: Re: using autosave, iocInit hangs Michael Davidsaver via Tech-talk
Next: EPICS support for Julabo chiller Neuman, Urszula (DLSLtd, RAL, LSCI) via Tech-talk
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  <20212022  2023  2024 
ANJ, 07 Jun 2021 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·