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
<2021>
2022
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
<2021>
2022
2023
2024
|