Hello, I'm testing an IOC that uses autosave-5-6-1 from synApps 5.8 and I'm seeing a large amount of crashes during IOC boot. Spreading debug messages through EPICS code showed that autosave was calling the function epicsMessageQueueSend() with a null
message queue object, for example:
(...)
iocRun: All initialization complete
makeAutosaveFileFromDbInfo("/usr/local/epics/apps/config/SOL1/autosave/parker_positions1.req", "autosaveFields_pass0")
dbpf SOL1:PARKER1:m1.SSET 1
DBR_SHORT: 1 0x1
create_triggered_set("parker_positions1.req", SOL1:PARKER1:autosave.VAL, "")
fdbrestore("parker_positions1.sav")
save_restore:fdbrestore:entry
../save_restore.c:request_manual_restore:2678 Called epicsMessageQueueSend with opMsgQueue=NULL
pmg=NULL
save_restore:806
Falha de segmentação (imagem do núcleo gravada)
Core dump backtrace shows the same problem:
(gdb) bt
#0 0x001e454f in mySend (pmsg=0x0, message=0xbfb95e2c, size=500, timeout=-1)
at ../../../src/libCom/osi/os/default/osdMessageQueue.cpp:161
#1 0x00768cd0 in request_manual_restore (filename=0x836ea3b "parker_positions1.sav",
file_type=1, macrostring=0x0, callbackFunction=0x7663c0 <defaultCallback>, puserPvt=0x0)
at ../save_restore.c:2680
#2 0x00768e5b in fdbrestore (filename=0x836ea3b "parker_positions1.sav")
at ../save_restore.c:2639
#3 0x00768e8f in fdbrestore_CallFunc (args=0x83080c0) at ../save_restore.c:3566
#4 0x001cfcb1 in iocshBody (pathname=<value optimized out>, commandLine=0x0, macros=0x0)
at ../../../src/libCom/iocsh/iocsh.cpp:813
#5 0x001d0475 in iocsh (pathname=0xbfb96729 "./parker_st1.cmd")
at ../../../src/libCom/iocsh/iocsh.cpp:881
#6 0x0804e33d in main (argc=2, argv=0xbfb96264) at ../motorPXIMain.cpp:17
Can anybody confirm this problem ? Here is the relevant st.cmd snippet:
set_requestfile_path("${MOTORHYPPIE_AUTOSAVE}", "")
set_savefile_path("${MOTORHYPPIE_AUTOSAVE}", "")
set_pass0_restoreFile("parker_positions1.sav")
save_restoreSet_NumSeqFiles(0)
save_restoreSet_DatedBackupFiles(0)
pxiCreateSM("motor","COM3PARKER1Motor1")
motorHyppieSetup(10, 1)
motorHyppieConfig(0,"COM3PARKER1Motor1")
dbLoadTemplate ("/usr/local/epics/apps/config/${EPICS_HOSTNAME}/parker_motor1.substitutions")
cd ${TOP}/iocBoot/${IOC}
iocInit
makeAutosaveFileFromDbInfo("${MOTORHYPPIE_AUTOSAVE}/parker_positions1.req", "autosaveFields_pass0")
dbpf SOL1:PARKER1:m1.SSET 1
create_triggered_set("parker_positions1.req", SOL1:PARKER1:autosave.VAL, "")
fdbrestore("parker_positions1.sav")
dbpf SOL1:PARKER1:m1.SUSE 1