Merge ~info-martin-konrad/epics-base:deprecation-warning-state-record into ~epics-core/epics-base/+git/epics-base:3.15

Proposed by Martin Konrad
Status: Superseded
Proposed branch: ~info-martin-konrad/epics-base:deprecation-warning-state-record
Merge into: ~epics-core/epics-base/+git/epics-base:3.15
Diff against target: 58 lines (+21/-1)
2 files modified
documentation/RELEASE_NOTES.md (+6/-0)
src/std/rec/stateRecord.c (+15/-1)
Reviewer Review Type Date Requested Status
EPICS Core Developers Pending
Review via email: mp+378400@code.launchpad.net

This proposal has been superseded by a proposal from 2020-02-13.

To post a comment you must log in.
Revision history for this message
Andrew Johnson (anj) wrote :

I would prefer that this go into the 7.0 branch; we aren't going to remove the state record from any 3.15 release and probably not from a 7.0 release, but I could see it going from 7.1. In any case it will need an entry in the Release Notes too.

Revision history for this message
Martin Konrad (info-martin-konrad) wrote :

I have updated the message to say the record will be removed in 7.1 - these details might save users some research.

Note that according to https://github.com/epics-base/epics-base/blob/3.15/src/std/rec/stateRecord.dbd.pod this record is deprecated even in 3.15. As a 3.15 user I would appreciate a warning like this - rather than silently running into surprises after upgrading to 7.1. Let me know if you still prefer to merge this into the 7.0 branch.

Revision history for this message
Andrew Johnson (anj) wrote :

That doc warning was only added at the Documentathon (last September, so not really "for a while") when we de-wikified the record reference docs, and it was more to scare people away from using the event record type in new databases than to actually flag that it was about to be deleted. I wouldn't have actually removed it until after lots of warning in the release notes. The disadvantage with putting this in 3.15 and the 3.15 release notes is that when they get merged up to 7.0 the release entries about 3.15 changes appear somewhere towards the middle of the release document, not at the top, so it will actually be less visible than if you were to make the change directly on the 7.0 branch.

db6e7c7... by mdavidsaver

use one osdSockAddrReuse impl for all targets

drop win32 specialization of osdSockAddrReuse

5064931... by mdavidsaver

try both to set both SO_REUSEPORT and SO_REUSEADDR

It seems that on Linux, SO_REUSEPORT shares with SO_REUSEPORT
and SO_REUSEADDR with SO_REUSEADDR, but not each other.

Setting both allows full sharing

6feb1c7... by Gabriel Fedel <email address hidden>

Add extern C for all c headers

This allow that these files could be imported to c++ correctly

7b6e48f... by mdavidsaver

casw shouldn't use monotonic

e6810a4... by mdavidsaver

processTarget() remove unnecessary NULL test

psrc and pdst will always be non-NULL

538f532... by Karl Vestin <email address hidden>

Added a free statement to release memory allocated for postbuf if the memory allocation for inbuf fails. Resolves an error level issue generated by the Codacy static code analysis.

Codacy link: https://app.codacy.com/gh/epics-base/epics-base/file/42098735308/issues/source?bid=16430872&fileBranchId=16430872#l201
Launchpad bug: https://bugs.launchpad.net/epics-base/+bug/1862917

LP: #1862917

45bbe27... by Aaron <email address hidden>

Error case for NULL arg causing segfault in iocshPersistentString

6e0706a... by Aaron <email address hidden>

Set argBuff->sval to NULL if arg is NULL

2bcaa54... by Karl Vestin <email address hidden>

Added null check in modules/ca/src/client/udpiiu.cpp to prevent possible dereferencing of null pointer. Flagged as error by Codacy static code analysis.

Codacy link: https://app.codacy.com/gh/epics-base/epics-base/file/42103575495/issues/source?bid=16430872&fileBranchId=16430872#l950
Launchpad bug: https://bugs.launchpad.net/epics-base/+bug/1862916

LP: #1862916

66f2a50... by Karl Vestin <email address hidden>

Added initialization of alarm severity on probe. This value is not used, but should be initialized regardless. This was flagged as an error by the Codacy static code analysis.

Codacy link: https://app.codacy.com/gh/epics-base/epics-base/file/42103575016/issues/source?bid=16430872&fileBranchId=16430872#l604
Launchpad bug: https://bugs.launchpad.net/epics-base/+bug/1862918

LP: #1862918

e5fe043... by Martin Konrad

Warn if deprecated state record is used

Unmerged commits

e5fe043... by Martin Konrad

Warn if deprecated state record is used

6feb1c7... by Gabriel Fedel <email address hidden>

Add extern C for all c headers

This allow that these files could be imported to c++ correctly

6e0706a... by Aaron <email address hidden>

Set argBuff->sval to NULL if arg is NULL

45bbe27... by Aaron <email address hidden>

Error case for NULL arg causing segfault in iocshPersistentString

2bcaa54... by Karl Vestin <email address hidden>

Added null check in modules/ca/src/client/udpiiu.cpp to prevent possible dereferencing of null pointer. Flagged as error by Codacy static code analysis.

Codacy link: https://app.codacy.com/gh/epics-base/epics-base/file/42103575495/issues/source?bid=16430872&fileBranchId=16430872#l950
Launchpad bug: https://bugs.launchpad.net/epics-base/+bug/1862916

LP: #1862916

66f2a50... by Karl Vestin <email address hidden>

Added initialization of alarm severity on probe. This value is not used, but should be initialized regardless. This was flagged as an error by the Codacy static code analysis.

Codacy link: https://app.codacy.com/gh/epics-base/epics-base/file/42103575016/issues/source?bid=16430872&fileBranchId=16430872#l604
Launchpad bug: https://bugs.launchpad.net/epics-base/+bug/1862918

LP: #1862918

538f532... by Karl Vestin <email address hidden>

Added a free statement to release memory allocated for postbuf if the memory allocation for inbuf fails. Resolves an error level issue generated by the Codacy static code analysis.

Codacy link: https://app.codacy.com/gh/epics-base/epics-base/file/42098735308/issues/source?bid=16430872&fileBranchId=16430872#l201
Launchpad bug: https://bugs.launchpad.net/epics-base/+bug/1862917

LP: #1862917

e6810a4... by mdavidsaver

processTarget() remove unnecessary NULL test

psrc and pdst will always be non-NULL

7b6e48f... by mdavidsaver

casw shouldn't use monotonic

f0bf61b... by mdavidsaver

rsrv: improve monitor/get error message

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/documentation/RELEASE_NOTES.md b/documentation/RELEASE_NOTES.md
2index 9b35b4a..c4254f5 100644
3--- a/documentation/RELEASE_NOTES.md
4+++ b/documentation/RELEASE_NOTES.md
5@@ -4,6 +4,12 @@ This version of EPICS Base has not been released yet.
6
7 ## Changes made on the 3.15 branch since 3.15.7
8
9+### `state` record deprecated
10+
11+IOCs now emit a warning when a database file containing the `state` record is
12+loaded. This record has been deprecated for a while and will be removed
13+beginning with EPICS 7.1. Consider using the `stringin` record instead.
14+
15 <!-- Insert new items immediately below here ... -->
16
17 ## Changes made between 3.15.6 and 3.15.7
18diff --git a/src/std/rec/stateRecord.c b/src/std/rec/stateRecord.c
19index 8170de7..2f72139 100644
20--- a/src/std/rec/stateRecord.c
21+++ b/src/std/rec/stateRecord.c
22@@ -28,6 +28,7 @@
23 #include "errMdef.h"
24 #include "recSup.h"
25 #include "recGbl.h"
26+#include "errlog.h"
27
28 #define GEN_SIZE_OFFSET
29 #include "stateRecord.h"
30@@ -37,7 +38,7 @@
31 /* Create RSET - Record Support Entry Table*/
32 #define report NULL
33 #define initialize NULL
34-#define init_record NULL
35+static long init_record(stateRecord *prec, int pass);
36 static long process(stateRecord *);
37 #define special NULL
38 #define get_value NULL
39@@ -75,6 +76,19 @@ rset stateRSET={
40 };
41 epicsExportAddress(rset,stateRSET);
42
43+static long init_record(stateRecord *prec, int pass)
44+{
45+ if(pass == 0) {
46+ errlogPrintf(
47+ "WARNING: Using deprecated record type \"state\" for record "
48+ "\"%s\". This record type will be removed beginning with EPICS 7.1."
49+ "Please replace it by a stringin record.\n",
50+ prec->name
51+ );
52+ }
53+ return 0;
54+}
55+
56 static void monitor(stateRecord *);
57
58
59 static long process(stateRecord *prec)

Subscribers

People subscribed via source and target branches