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 | 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 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: How to: IOC reading information from file? |
From: | "Marco A. Barra Montevechi Filho via Tech-talk" <tech-talk at aps.anl.gov> |
To: | Michael Davidsaver <mdavidsaver at gmail.com> |
Cc: | "Nariyoshi, Pedro" <nariyosh at frib.msu.edu>, "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov> |
Date: | Wed, 30 Nov 2022 02:37:16 +0000 |
Hi, Michael!
About autosave usage: the IOC in which i was trying to use it was kinda big and i tried to create a minimal working example which would reproduce the sigfault, but i got weird compilation problems. I have, thus, one big IOC in which i can reproduce the segmentation fault and one in which even compiling wont happen (but this is probably me doing something wrong). Case 1: real IOC compiled with Epics Base R7.0.5 and autosave R5-10-2. Compiles, sigfaults with fdbrestore. Case 2: dummy IOC compiled with Epics Base R7.0.5 and autosave R5-10-2. Doesnt compile. In both cases, EPICS_BASE was cross compiled in an Ubuntu 16.04 container for both linux-x86_64 and linux-aarch64. Same goes for autosave. About case 2: ioc was created with makeBaseApp.pl -t ioc dummyIOC I just added the paths to epics_base, asyn and autosave to configure/RELEASE, and added dummyIOC_DBD += base.dbd dummyIOC_DBD += asyn.dbd dummyIOC_DBD += asSupport.dbd and dummyIOC_LIBS += $(EPICS_BASE_IOC_LIBS) dummyIOC_LIBS += asyn
dummyIOC_LIBS += autosaveto dummyIOC/src/Makefile. Compiling this IOC seems to generate problems with the aarch64 architecture in linking stage which is weird for me because in no way inside the dummyIOC i specify i want to cross-compile it (does the cross-compilation come automatically?). I append the failed compilation output at the end of this e-mail. About case 1: ioc was compiled in the same container and with the same EPICS_BASE and autosave as case 2, so the cross-compilation thing also happens, but the ioc compiles for some reason. Im actually running the IOC in an aarch64 ubuntu 16.04. I created a .req file in /autosave/folder/file.req with the names of some PVs. I then initialized the IOC (init log is pretty long) and did: epics> set_requestfile_path("/autosave/folder/")
epics> set_savefile_path("/autosave/folder/")
##The IOC is running as root so it does have write permission
epics> save_restoreSet_NumSeqFiles(1) epics> save_restoreSet_SeqPeriodInSeconds(5) epics> create_monitor_set("file.req")
epics> save_restore:write_save_file: Backup file (/autosave/folder/file.savB) bad or not found. Writing a new one. [221130-001349]
After waiting 5 seconds i have my .sav files as expected.
Then, running with gdb:
gdb --args /path/to/ioc/binary /path/to/ioc/st.cmd
(gdb) run
#Several lines later...
epics> set_savefile_path("/autosave/folder/") epics> fdbrestore("file.sav")
epics> #Here i also tried just fdbrestore("/autosave/folder/file.sav") without setting the path, but result
was equal
save_restore:fdbrestore:entry
Thread 1 "mobipixApp" received signal SIGSEGV, Segmentation fault.
0x0000000000f18758 in epicsMessageQueueSend ()
(gdb) backtrace
#0 0x0000000000f18758 in epicsMessageQueueSend ()
#1 0x0000000000e1fff8 in request_manual_restore ()
#2 0x0000000000f03ec4 in iocshBody ()
#3 0x0000000000599650 in main (argc=<optimized out>, argv=<optimized out>) at ../mobipixAppMain.cpp:20
am i doing something wrong here?
Compilation output for case 2: inside dummyIOC folder: $make make -C ./configure install
make[1]: Entering directory '/root/dummyIOC/configure'
perl -CSD /usr/local/epics-nfs/base/R7.0.5/bin/linux-x86_64/makeMakefile.pl O.linux-x86_64 ../..
perl -CSD /usr/local/epics-nfs/base/R7.0.5/bin/linux-x86_64/makeMakefile.pl O.linux-aarch64 ../..
mkdir -p O.Common
make -C O.linux-x86_64 -f ../Makefile TOP=../.. \
T_A=linux-x86_64 install
make[2]: Entering directory '/root/dummyIOC/configure/O.linux-x86_64'
perl -CSD /usr/local/epics-nfs/base/R7.0.5/bin/linux-x86_64/convertRelease.pl checkRelease
make[2]: Leaving directory '/root/dummyIOC/configure/O.linux-x86_64'
make -C O.linux-aarch64 -f ../Makefile TOP=../.. \
T_A=linux-aarch64 install
make[2]: Entering directory '/root/dummyIOC/configure/O.linux-aarch64'
perl -CSD /usr/local/epics-nfs/base/R7.0.5/bin/linux-x86_64/convertRelease.pl checkRelease
make[2]: Leaving directory '/root/dummyIOC/configure/O.linux-aarch64'
make[1]: Leaving directory '/root/dummyIOC/configure'
make -C ./dummyIOCApp install
make[1]: Entering directory '/root/dummyIOC/dummyIOCApp'
make -C ./src install
make[2]: Entering directory '/root/dummyIOC/dummyIOCApp/src'
perl -CSD /usr/local/epics-nfs/base/R7.0.5/bin/linux-x86_64/makeMakefile.pl O.linux-x86_64 ../../..
perl -CSD /usr/local/epics-nfs/base/R7.0.5/bin/linux-x86_64/makeMakefile.pl O.linux-aarch64 ../../..
mkdir -p O.Common
make -C O.linux-x86_64 -f ../Makefile TOP=../../.. \
T_A=linux-x86_64 install
make[3]: Entering directory '/root/dummyIOC/dummyIOCApp/src/O.linux-x86_64'
/usr/bin/g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_X86_64_ -DUNIX -Dlinux -O3 -g -Wall -mtune=generic -m64 -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc -I../../../include/os/Linux -I../../../include
-I/usr/local/epics-nfs/base/R7.0.5/include/compiler/gcc -I/usr/local/epics-nfs/base/R7.0.5/include/os/Linux -I/usr/local/epics-nfs/base/R7.0.5/include -I/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/asyn-R4-42//include -I/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/autosave-R5-10-2/include/os/Linux
-I/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/autosave-R5-10-2/include -MM -MF dummyIOCMain.d ../dummyIOCMain.cpp
Creating dbd file dummyIOC.dbd
perl -CSD /usr/local/epics-nfs/base/R7.0.5/bin/linux-x86_64/dbdExpand.pl -I. -I.. -I../O.Common -I../../../dbd -I/usr/local/epics-nfs/base/R7.0.5/dbd -I/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/asyn-R4-42//dbd
-I/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/autosave-R5-10-2/dbd -o dummyIOC.dbd base.dbd asyn.dbd asSupport.dbd
perl -CSD /usr/local/epics-nfs/base/R7.0.5/bin/linux-x86_64/registerRecordDeviceDriver.pl -I. -I.. -I../O.Common -I../../../dbd -I/usr/local/epics-nfs/base/R7.0.5/dbd -I/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/asyn-R4-42//dbd
-I/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/autosave-R5-10-2/dbd -o dummyIOC_registerRecordDeviceDriver.cpp ../O.Common/dummyIOC.dbd dummyIOC_registerRecordDeviceDriver /root/dummyIOC
/usr/bin/g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_X86_64_ -DUNIX -Dlinux -O3 -g -Wall -mtune=generic -m64 -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc -I../../../include/os/Linux -I../../../include
-I/usr/local/epics-nfs/base/R7.0.5/include/compiler/gcc -I/usr/local/epics-nfs/base/R7.0.5/include/os/Linux -I/usr/local/epics-nfs/base/R7.0.5/include -I/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/asyn-R4-42//include -I/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/autosave-R5-10-2/include/os/Linux
-I/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/autosave-R5-10-2/include -MM -MF dummyIOC_registerRecordDeviceDriver.d dummyIOC_registerRecordDeviceDriver.cpp
Installing created dbd file ../../../dbd/dummyIOC.dbd
mkdir ../../../dbd
/usr/bin/g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_X86_64_ -DUNIX -Dlinux -O3 -g -Wall -mtune=generic -m64 -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc -I../../../include/os/Linux -I../../../include
-I/usr/local/epics-nfs/base/R7.0.5/include/compiler/gcc -I/usr/local/epics-nfs/base/R7.0.5/include/os/Linux -I/usr/local/epics-nfs/base/R7.0.5/include -I/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/asyn-R4-42//include -I/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/autosave-R5-10-2/include/os/Linux
-I/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/autosave-R5-10-2/include -c dummyIOC_registerRecordDeviceDriver.cpp
/usr/bin/g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_X86_64_ -DUNIX -Dlinux -O3 -g -Wall -mtune=generic -m64 -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc -I../../../include/os/Linux -I../../../include
-I/usr/local/epics-nfs/base/R7.0.5/include/compiler/gcc -I/usr/local/epics-nfs/base/R7.0.5/include/os/Linux -I/usr/local/epics-nfs/base/R7.0.5/include -I/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/asyn-R4-42//include -I/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/autosave-R5-10-2/include/os/Linux
-I/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/autosave-R5-10-2/include -c ../dummyIOCMain.cpp
/usr/bin/g++ -o dummyIOC -L/root/dummyIOC/lib/linux-x86_64 -L/usr/local/epics-nfs/base/R7.0.5/lib/linux-x86_64 -L/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/asyn-R4-42/lib/linux-x86_64 -L/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/autosave-R5-10-2/lib/linux-x86_64
-Wl,-rpath,/root/dummyIOC/lib/linux-x86_64 -Wl,-rpath,/usr/local/epics-nfs/base/R7.0.5/lib/linux-x86_64 -Wl,-rpath,/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/asyn-R4-42/lib/linux-x86_64 -Wl,-rpath,/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/autosave-R5-10-2/lib/linux-x86_64
-rdynamic -m64 dummyIOC_registerRecordDeviceDriver.o dummyIOCMain.o -ldbRecStd -ldbCore -lca -lCom -lasyn -lautosave
Installing created executable ../../../bin/linux-x86_64/dummyIOC
mkdir ../../../bin
mkdir ../../../bin/linux-x86_64
make[3]: Leaving directory '/root/dummyIOC/dummyIOCApp/src/O.linux-x86_64'
make -C O.linux-aarch64 -f ../Makefile TOP=../../.. \
T_A=linux-aarch64 install
make[3]: Entering directory '/root/dummyIOC/dummyIOCApp/src/O.linux-aarch64'
/usr/bin/aarch64-linux-gnu-g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE -DUNIX -Dlinux -O3 -Wall -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc -I../../../include/os/Linux -I../../../include
-I/usr/local/epics-nfs/base/R7.0.5/include/compiler/gcc -I/usr/local/epics-nfs/base/R7.0.5/include/os/Linux -I/usr/local/epics-nfs/base/R7.0.5/include -I/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/asyn-R4-42//include -I/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/autosave-R5-10-2/include/os/Linux
-I/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/autosave-R5-10-2/include -I/usr/aarch64-linux-gnu/include -MM -MF dummyIOCMain.d ../dummyIOCMain.cpp
perl -CSD /usr/local/epics-nfs/base/R7.0.5/bin/linux-x86_64/registerRecordDeviceDriver.pl -I. -I.. -I../O.Common -I../../../dbd -I/usr/local/epics-nfs/base/R7.0.5/dbd -I/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/asyn-R4-42//dbd
-I/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/autosave-R5-10-2/dbd -o dummyIOC_registerRecordDeviceDriver.cpp ../O.Common/dummyIOC.dbd dummyIOC_registerRecordDeviceDriver /root/dummyIOC
/usr/bin/aarch64-linux-gnu-g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE -DUNIX -Dlinux -O3 -Wall -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc -I../../../include/os/Linux -I../../../include
-I/usr/local/epics-nfs/base/R7.0.5/include/compiler/gcc -I/usr/local/epics-nfs/base/R7.0.5/include/os/Linux -I/usr/local/epics-nfs/base/R7.0.5/include -I/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/asyn-R4-42//include -I/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/autosave-R5-10-2/include/os/Linux
-I/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/autosave-R5-10-2/include -I/usr/aarch64-linux-gnu/include -MM -MF dummyIOC_registerRecordDeviceDriver.d dummyIOC_registerRecordDeviceDriver.cpp
/usr/bin/aarch64-linux-gnu-g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE -DUNIX -Dlinux -O3 -Wall -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc -I../../../include/os/Linux -I../../../include
-I/usr/local/epics-nfs/base/R7.0.5/include/compiler/gcc -I/usr/local/epics-nfs/base/R7.0.5/include/os/Linux -I/usr/local/epics-nfs/base/R7.0.5/include -I/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/asyn-R4-42//include -I/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/autosave-R5-10-2/include/os/Linux
-I/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/autosave-R5-10-2/include -I/usr/aarch64-linux-gnu/include -c dummyIOC_registerRecordDeviceDriver.cpp
/usr/bin/aarch64-linux-gnu-g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE -DUNIX -Dlinux -O3 -Wall -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc -I../../../include/os/Linux -I../../../include
-I/usr/local/epics-nfs/base/R7.0.5/include/compiler/gcc -I/usr/local/epics-nfs/base/R7.0.5/include/os/Linux -I/usr/local/epics-nfs/base/R7.0.5/include -I/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/asyn-R4-42//include -I/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/autosave-R5-10-2/include/os/Linux
-I/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/autosave-R5-10-2/include -I/usr/aarch64-linux-gnu/include -c ../dummyIOCMain.cpp
/usr/bin/aarch64-linux-gnu-g++ -o dummyIOC -Wl,-Bstatic -L/root/dummyIOC/lib/linux-aarch64 -L/usr/local/epics-nfs/base/R7.0.5/lib/linux-aarch64 -L/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/asyn-R4-42/lib/linux-aarch64
-L/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/autosave-R5-10-2/lib/linux-aarch64 -Wl,-rpath,/root/dummyIOC/lib/linux-aarch64 -Wl,-rpath,/usr/local/epics-nfs/base/R7.0.5/lib/linux-aarch64 -Wl,-rpath,/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/asyn-R4-42/lib/linux-aarch64
-Wl,-rpath,/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/autosave-R5-10-2/lib/linux-aarch64 -rdynamic -L/usr/aarch64-linux-gnu/lib dummyIOC_registerRecordDeviceDriver.o dummyIOCMain.o -ldbRecStd -ldbCore -lca -lCom -lasyn
-lautosave -Wl,-Bdynamic -lpthread -lm -lrt -ldl -lgcc
/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/autosave-R5-10-2/lib/linux-aarch64/libautosave.a(save_restore.o): In function `manual_save':
save_restore.c:(.text+0x898): undefined reference to `epicsMessageQueueSend'
/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/autosave-R5-10-2/lib/linux-aarch64/libautosave.a(save_restore.o): In function `remove_data_set':
save_restore.c:(.text+0x48a4): undefined reference to `epicsMessageQueueSend'
/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/autosave-R5-10-2/lib/linux-aarch64/libautosave.a(save_restore.o): In function `reload_periodic_set':
save_restore.c:(.text+0x4ba0): undefined reference to `epicsMessageQueueSend'
/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/autosave-R5-10-2/lib/linux-aarch64/libautosave.a(save_restore.o): In function `reload_triggered_set':
save_restore.c:(.text+0x4cec): undefined reference to `epicsMessageQueueSend'
/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/autosave-R5-10-2/lib/linux-aarch64/libautosave.a(save_restore.o): In function `reload_monitor_set':
save_restore.c:(.text+0x4e10): undefined reference to `epicsMessageQueueSend'
/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/autosave-R5-10-2/lib/linux-aarch64/libautosave.a(save_restore.o):save_restore.c:(.text+0x4f2c): more undefined references to `epicsMessageQueueSend' follow
/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/autosave-R5-10-2/lib/linux-aarch64/libautosave.a(save_restore.o): In function `create_data_set':
save_restore.c:(.text+0x7d20): undefined reference to `epicsMessageQueueCreate'
/usr/local/epics-nfs/modules/R7.0.5/support/synApps/support/autosave-R5-10-2/lib/linux-aarch64/libautosave.a(save_restore.o): In function `save_restore':
save_restore.c:(.text+0x84bc): undefined reference to `epicsMessageQueueReceiveWithTimeout'
collect2: error: ld returned 1 exit status
/usr/local/epics-nfs/base/R7.0.5/configure/RULES_BUILD:226: recipe for target 'dummyIOC' failed
make[3]: *** [dummyIOC] Error 1
make[3]: Leaving directory '/root/dummyIOC/dummyIOCApp/src/O.linux-aarch64'
/usr/local/epics-nfs/base/R7.0.5/configure/RULES_ARCHS:58: recipe for target 'install.linux-aarch64' failed
make[2]: *** [install.linux-aarch64] Error 2
make[2]: Leaving directory '/root/dummyIOC/dummyIOCApp/src'
/usr/local/epics-nfs/base/R7.0.5/configure/RULES_DIRS:85: recipe for target 'src.install' failed
make[1]: *** [src.install] Error 2
make[1]: Leaving directory '/root/dummyIOC/dummyIOCApp'
/usr/local/epics-nfs/base/R7.0.5/configure/RULES_DIRS:85: recipe for target 'dummyIOCApp.install' failed
make: *** [dummyIOCApp.install] Error 2
$From: Michael Davidsaver <mdavidsaver at gmail.com>
Sent: 28 November 2022 17:55 To: Marco A. Barra Montevechi Filho <marco.filho at lnls.br> Cc: Nariyoshi, Pedro <nariyosh at frib.msu.edu>; tech-talk at aps.anl.gov <tech-talk at aps.anl.gov> Subject: Re: How to: IOC reading information from file? On 11/28/22 12:37, Michael Davidsaver wrote:
> On 11/28/22 12:05, Marco A. Barra Montevechi Filho via Tech-talk wrote: >> Thanks for the suggestion, Pedro! >> >> At the end of the day, i figured that maybe autosave fdbrestore function would do what i wanted. Unfortunately, the function was resulting in segmentation fault. Looking in tech-talk i found this thread: https://epics.anl.gov/tech-talk/2014/msg01851.php <https://epics.anl.gov/tech-talk/2014/msg01851.php> which suggested that for autosave versions before 5.4.1 it is a known bug which is fixed after that. Since im using autosave 5-10-2 and the PVs are not very long, i gave up using autosave for this. > > Could you provide any details which might go into a ticket? > Specific arguments used? ideally a stack trace? etc... > > https://github.com/epics-modules/autosave/issues I haven't tried fdbrestore() previously, so I'm not certain about the caput() errors. It certainly didn't crash on me. Did you do full cleanup and rebuild when switching between autosave versions? (eg. "make distclean", or just deleting and re-downloading the source) Linking in old object code files is great way to experience some bizarre crashes. > epics> var save_restoreDebug 5 > epics> fdbrestore "ioc_settings.sav" > save_restore:fdbrestore:entry > save_restore:request_manual_restore: entry > save_restore task: calling do_manual_restore('ioc_settings.sav') > save_restore:do_manual_restore: entry for file 'ioc_settings.sav' > epics> do_manual_restore:ca_put() to 'TST:Speed-SP.VAL'failed. > do_manual_restore:ca_put() to 'TST:DM-Sel.VAL'failed. > do_manual_restore:ca_put() to 'TST:SampT-Sel.VAL'failed. > do_manual_restore:ca_put() to 'TST:SampT:N-Sel.VAL'failed. > do_manual_restore:ca_put() to 'TST:SampDet-Sel.VAL'failed. > do_manual_restore:ca_put() to 'TST:Plt-SP.VAL'failed. > do_manual_restore:ca_put() to 'TST:Samp-SP.VAL'failed. > do_manual_restore:ca_put() to 'TST:Plt:N-SP.VAL'failed. > do_manual_restore:ca_put() to 'TST:Samp:N-SP.VAL'failed. > do_manual_restore:ca_put() to 'TST:Gn:X-SP.VAL'failed. > do_manual_restore:ca_put() to 'TST:Gn:Y-SP.VAL'failed. > do_manual_restore:ca_put() to 'TST:Gn:Z-SP.VAL'failed. > do_manual_restore:ca_put() to 'TST:Tl-Sel.VAL'failed. > save_restore: manual restore status=1 (0==success) Aviso Legal: Esta mensagem e seus anexos podem conter informações confidenciais e/ou de uso restrito. Observe atentamente seu conteúdo e considere eventual consulta ao remetente antes de copiá-la, divulgá-la ou distribuí-la. Se você recebeu esta mensagem por engano, por favor avise o remetente e apague-a imediatamente. Disclaimer: This email and its attachments may contain confidential and/or privileged information. Observe its content carefully and consider possible querying to the sender before copying, disclosing or distributing it. If you have received this email by mistake, please notify the sender and delete it immediately. |