-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Autosave when saving a string without value causes fprintf ERRLEVEL #55
Comments
@tim-speight can you provide an example? I don't seem to see a problem when autosaving string PVs that are empty. For example this is the value in the auto_settings.sav file for the .DESC field of an ai record which has no value:
This is what caget and cainfo show for that PV:
This is what dbpr shows for that record in the IOC:
What version of autosave are you using? |
Hi Mark, I am using 5.10.2 and doing some config for EPICS MOTOR with the motorAcsMotion controllers. ile "$(TOP)/db/basic_asyn_motor_clf.db" |
#Record describing the loop status When I forgot to get my substitution file prepared - it ended up with a null value in the system and at the point it tried to write my new additional m1:STAGE_TYPE field autosave came up with cannot write file at its dated and time 'sav file'... |
FYI I'm writing additional values in like "Lin OLV" - for a linear stage with OpenLoop verfication. And Rot OL for plain old open loop rotational stage and Lin ACL - to deign it has an active closed loop for that linear stage. More of an engineers description as I find EPICS MOTOR record a bit lacking here... |
I am not sure I understand this. A zero-length string has a null character in the first byte, and zero-length strings are saved with autosave with no problem. I have not tested what happens when the macro is not present like your case, but it seems strange that would not work. |
I will try to give a better worked example. All my Linux perms were fine the file actually wrote the vast majority of the record and when I took a look at the dated sav file it blew up on that last field I had recently added to my UAT system
Sent from Android- 07725 477807
…________________________________
From: Mark Rivers ***@***.***>
Sent: Friday, July 7, 2023 6:09:59 PM
To: epics-modules/autosave ***@***.***>
Cc: Speight, Timothy (STFC,RAL,CLF) ***@***.***>; Mention ***@***.***>
Subject: Re: [epics-modules/autosave] Autosave when saving a string without value causes fprintf ERRLEVEL (Issue #55)
#Record describing the loop status
record(stringout, "$(P)$(M):STAGE_TYPE") {
field(DESC, "Stage or Load type")
field(VAL, "$(STAGE_TYPE=0)")
}
When I forgot to get my substitution file prepared - it ended up with a null value in the system and at the point it tried to write my new additional m1:STAGE_TYPE field autosave came up with cannot write file at its dated and time 'sav file'...
I am not sure I understand this. A zero-length string has a null character in the first byte, and zero-length strings are saved with autosave with no problem. I have not tested what happens when the macro is not present like your case, but it seems strange that would not work.
—
Reply to this email directly, view it on GitHub<#55 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AOQ5OMRPF73IC4CAI62B5K3XPA7GPANCNFSM6AAAAAA2BTAGOU>.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
I just tried to reproduce the problem and I cannot. Here is my startup script:
Here is string_test.db:
This is the complete output when the IOC boots:
So I don't get any autosave error, even though I have not passed the macro STAGE_TYPE when loading the database. This is the resulting auto_settings.sav file:
|
Autosave when saving a string without value causes fprintf ERRLEVEL, which is problematic as you will incur data loss at the first null value one is trying to autosave.
Can null values be checked for and make this a warning or blank for the output sav files and the datestamped sav files
The text was updated successfully, but these errors were encountered: