gdb breakpoints on fopen and fclose after triggering
Thread 127 "save_restore" hit Breakpoint 1, _IO_new_fopen
(filename=0x7faf45e68a40 "/mnt/iocdata/autosave/diag- strscam2/TISCam_ioc_strscam2_rec.cfg", mode=0x7fb024fae39b "rb") at
./libio/iofopen.c:86
86 ./libio/iofopen.c: No such file or directory.
(gdb) bt
#0 _IO_new_fopen (filename=0x7faf45e68a40 "/mnt/iocdata/autosave/diag- strscam2/TISCam_ioc_strscam2_rec.cfg", mode=0x7fb024fae39b "rb") at
./libio/iofopen.c:86
#1 0x00007fb024f9eabd in write_save_file (plist=0x560261caf180,
configName=0x7faf45e68d74 "TISCam_ioc_strscam2_rec.cfg",
retSaveFile=0x7faf45e68c70 "") at ../save_restore.c:2101
#2 0x00007fb024f9b8d7 in save_restore () at ../save_restore.c:1312
#3 0x00007fb024ae37cb in start_routine (arg=0x56025fe8e720) at
../osi/os/posix/osdThread.c:441
#4 0x00007fb024926044 in start_thread (arg=<optimized out>) at
./nptl/pthread_create.c:442
#5 0x00007fb0249a65fc in clone3 () at
../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
----------
Thread 127 "save_restore" hit Breakpoint 1, _IO_new_fopen
(filename=0x7faf45e68a40 "/mnt/iocdata/autosave/diag- strscam2/TISCam_ioc_strscam2_rec.cfg", mode=0x7fb024fab0d4 "rb") at
./libio/iofopen.c:86
86 in ./libio/iofopen.c
(gdb) bt
#0 _IO_new_fopen (filename=0x7faf45e68a40 "/mnt/iocdata/autosave/diag- strscam2/TISCam_ioc_strscam2_rec.cfg", mode=0x7fb024fab0d4 "rb") at
./libio/iofopen.c:86
#1 0x00007fb024f921ad in myFileCopy (source=0x7faf45e68a40 "/mnt/iocdata/autosave/diag-strscam2/TISCam_ioc_strscam2_rec.cfg",
dest=0x7faf45e68930 "/mnt/iocdata/autosave/diag-
strscam2/TISCam_ioc_strscam2_rec.cfg_231205-131000") at
../dbrestore.c:173
#2 0x00007fb024f9ebd6 in write_save_file (plist=0x560261caf180,
configName=0x7faf45e68d74 "TISCam_ioc_strscam2_rec.cfg",
retSaveFile=0x7faf45e68c70 "") at ../save_restore.c:2106
#3 0x00007fb024f9b8d7 in save_restore () at ../save_restore.c:1312
#4 0x00007fb024ae37cb in start_routine (arg=0x56025fe8e720) at
../osi/os/posix/osdThread.c:441
#5 0x00007fb024926044 in start_thread (arg=<optimized out>) at
./nptl/pthread_create.c:442
#6 0x00007fb0249a65fc in clone3 () at
../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
(gdb)
------------------------------
Thread 127 "save_restore" hit Breakpoint 1, _IO_new_fopen
(filename=0x7faf45e68930 "/mnt/iocdata/autosave/diag- strscam2/TISCam_ioc_strscam2_rec.cfg_231205-131000",
mode=0x7fb024fab107 "wb") at ./libio/iofopen.c:86
86 in ./libio/iofopen.c
(gdb) bt
#0 _IO_new_fopen (filename=0x7faf45e68930 "/mnt/iocdata/autosave/diag- strscam2/TISCam_ioc_strscam2_rec.cfg_231205-131000",
mode=0x7fb024fab107 "wb") at ./libio/iofopen.c:86
#1 0x00007fb024f9223c in myFileCopy (source=0x7faf45e68a40 "/mnt/iocdata/autosave/diag-strscam2/TISCam_ioc_strscam2_rec.cfg",
dest=0x7faf45e68930 "/mnt/iocdata/autosave/diag-
strscam2/TISCam_ioc_strscam2_rec.cfg_231205-131000") at
../dbrestore.c:185
#2 0x00007fb024f9ebd6 in write_save_file (plist=0x560261caf180,
configName=0x7faf45e68d74 "TISCam_ioc_strscam2_rec.cfg",
retSaveFile=0x7faf45e68c70 "") at ../save_restore.c:2106
#3 0x00007fb024f9b8d7 in save_restore () at ../save_restore.c:1312
#4 0x00007fb024ae37cb in start_routine (arg=0x56025fe8e720) at
../osi/os/posix/osdThread.c:441
#5 0x00007fb024926044 in start_thread (arg=<optimized out>) at
./nptl/pthread_create.c:442
#6 0x00007fb0249a65fc in clone3 () at
../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
---------------------------------------------------
Thread 127 "save_restore" hit Breakpoint 2, _IO_new_fclose
(fp=0x7faf6409cec0) at ./libio/iofclose.c:48
48 ./libio/iofclose.c: No such file or directory.
(gdb) bt
#0 _IO_new_fclose (fp=0x7faf6409cec0) at ./libio/iofclose.c:48
#1 0x00007fb024f922eb in myFileCopy (source=0x7faf45e68a40 "/mnt/iocdata/autosave/diag-strscam2/TISCam_ioc_strscam2_rec.cfg",
dest=0x7faf45e68930 "/mnt/iocdata/autosave/diag-
strscam2/TISCam_ioc_strscam2_rec.cfg_231205-131000") at
../dbrestore.c:198
#2 0x00007fb024f9ebd6 in write_save_file (plist=0x560261caf180,
configName=0x7faf45e68d74 "TISCam_ioc_strscam2_rec.cfg",
retSaveFile=0x7faf45e68c70 "") at ../save_restore.c:2106
#3 0x00007fb024f9b8d7 in save_restore () at ../save_restore.c:1312
#4 0x00007fb024ae37cb in start_routine (arg=0x56025fe8e720) at
../osi/os/posix/osdThread.c:441
#5 0x00007fb024926044 in start_thread (arg=<optimized out>) at
./nptl/pthread_create.c:442
#6 0x00007fb0249a65fc in clone3 () at
../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
(gdb)
---------------------------------------------------
Thread 127 "save_restore" hit Breakpoint 2, _IO_new_fclose
(fp=0x7faf64104a50) at ./libio/iofclose.c:48
48 in ./libio/iofclose.c
(gdb) bt
#0 _IO_new_fclose (fp=0x7faf64104a50) at ./libio/iofclose.c:48
#1 0x00007fb024f92324 in myFileCopy (source=0x7faf45e68a40 "/mnt/iocdata/autosave/diag-strscam2/TISCam_ioc_strscam2_rec.cfg",
dest=0x7faf45e68930 "/mnt/iocdata/autosave/diag-
strscam2/TISCam_ioc_strscam2_rec.cfg_231205-131000") at
../dbrestore.c:203
#2 0x00007fb024f9ebd6 in write_save_file (plist=0x560261caf180,
configName=0x7faf45e68d74
"TISCam_ioc_strscam2_rec.cfg", retSaveFile=0x7faf45e68c70 "") at
../save_restore.c:2106
#3 0x00007fb024f9b8d7 in save_restore () at ../save_restore.c:1312
#4 0x00007fb024ae37cb in start_routine (arg=0x56025fe8e720) at
../osi/os/posix/osdThread.c:441
#5 0x00007fb024926044 in start_thread (arg=<optimized out>) at
./nptl/pthread_create.c:442
#6 0x00007fb0249a65fc in clone3 () at
../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
-------------------------------------------------------
Thread 127 "save_restore" hit Breakpoint 2, _IO_new_fclose
(fp=0x7faf64104a50) at ./libio/iofclose.c:48
48 in ./libio/iofclose.c
(gdb) bt
#0 _IO_new_fclose (fp=0x7faf64104a50) at ./libio/iofclose.c:48
#1 0x00007fb024f9e0b7 in write_it (filename=0x7faf45e68a40 "/mnt/iocdata/autosave/diag-strscam2/TISCam_ioc_strscam2_rec.cfg",
plist=0x560261caf180) at ../save_restore.c:1950
#2 0x00007fb024f9ec1b in write_save_file (plist=0x560261caf180,
configName=0x7faf45e68d74 "TISCam_ioc_strscam2_rec.cfg",
retSaveFile=0x7faf45e68c70 "") at ../save_restore.c:2112
#3 0x00007fb024f9b8d7 in save_restore () at ../save_restore.c:1312
#4 0x00007fb024ae37cb in start_routine (arg=0x56025fe8e720) at
../osi/os/posix/osdThread.c:441
#5 0x00007fb024926044 in start_thread (arg=<optimized out>) at
./nptl/pthread_create.c:442
#6 0x00007fb0249a65fc in clone3 () at
../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
(gdb)
--------------------------------------------------------------
Thread 127 "save_restore" hit Breakpoint 1, _IO_new_fopen
(filename=0x7faf45e68a40 "/mnt/iocdata/autosave/diag- strscam2/TISCam_ioc_strscam2_rec.cfg", mode=0x7fb024face29 "r") at
./libio/iofopen.c:86
86 ./libio/iofopen.c: No such file or directory.
(gdb) bt
#0 _IO_new_fopen (filename=0x7faf45e68a40 "/mnt/iocdata/autosave/diag- strscam2/TISCam_ioc_strscam2_rec.cfg", mode=0x7fb024face29 "r") at
./libio/iofopen.c:86
#1 0x00007fb024f9d0a7 in check_file (file=0x7faf45e68a40
"/mnt/iocdata/autosave/diag-strscam2/TISCam_ioc_strscam2_rec.cfg") at
../save_restore.c:1685
#2 0x00007fb024f9e129 in write_it (filename=0x7faf45e68a40 "/mnt/iocdata/autosave/diag-strscam2/TISCam_ioc_strscam2_rec.cfg",
plist=0x560261caf180) at ../save_restore.c:1960
#3 0x00007fb024f9ec1b in write_save_file (plist=0x560261caf180,
configName=0x7faf45e68d74 "TISCam_ioc_strscam2_rec.cfg",
retSaveFile=0x7faf45e68c70 "") at ../save_restore.c:2112
#4 0x00007fb024f9b8d7 in save_restore () at ../save_restore.c:1312
#5 0x00007fb024ae37cb in start_routine (arg=0x56025fe8e720) at
../osi/os/posix/osdThread.c:441
#6 0x00007fb024926044 in start_thread (arg=<optimized out>) at
./nptl/pthread_create.c:442
#7 0x00007fb0249a65fc in clone3 () at
../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
(gdb)
--------------------------------------------------------------
(gdb) bt
#0 _IO_new_fclose (fp=0x7faf64104a50) at ./libio/iofclose.c:48
#1 0x00007fb024f9d299 in check_file (file=0x7faf45e68a40
"/mnt/iocdata/autosave/diag-strscam2/TISCam_ioc_strscam2_rec.cfg") at
../save_restore.c:1720
#2 0x00007fb024f9e129 in write_it (filename=0x7faf45e68a40 "/mnt/iocdata/autosave/diag-strscam2/TISCam_ioc_strscam2_rec.cfg",
plist=0x560261caf180) at ../save_restore.c:1960
#3 0x00007fb024f9ec1b in write_save_file (plist=0x560261caf180,
configName=0x7faf45e68d74 "TISCam_ioc_strscam2_rec.cfg",
retSaveFile=0x7faf45e68c70 "") at ../save_restore.c:2112
#4 0x00007fb024f9b8d7 in save_restore () at ../save_restore.c:1312
#5 0x00007fb024ae37cb in start_routine (arg=0x56025fe8e720) at
../osi/os/posix/osdThread.c:441
#6 0x00007fb024926044 in start_thread (arg=<optimized out>) at
./nptl/pthread_create.c:442
#7 0x00007fb0249a65fc in clone3 () at
../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
(gdb)
Describe the issue When a manual configuration is saved via write to saveConfig.PROC PV, a new file descriptor stays open after completion.
Steps to reproduce
Expected behaivour Saving succeeds and tears down file descriptors after writing
Actual behaviour One file descriptor remains open forever after writing.
Build Environment Architecture: linux-x86_64-debug Epics Base Version: 7.0.7-1 Dependent Module Versions: autosave 5-10-2
Autosave debug output
gdb breakpoints on
fopen
andfclose
after triggering