If doing the above seems like too much work, I want to see what happens
if you replace the internals of your SET_PV macro with a simple printf()
of the state values, because currently you are monitoring the state
machine at the end of a long pipeline:
SNL CA client → RSRV → dbAccess → record → dbEvent → RSRV → CA client
Calling printf() inside the SNL program would bypass that pipeline and
should prove whether the Sequencer is actually skipping states. Once we
know the answer to that we can decide if we need to investigate further
to explain the results you are seeing by monitoring it over CA.
Since there is a logging implemented, I see that the state are not
actually skipped.
It is just related to the PV. But a separate initial program is
subscribed to that PV and
can not react, when the PV does not change.
src/libCom/test
src/ioc/db/test
src/std/rec/test
Here are my observations: (all other tests passed):
src/libCom/test/cvtFastPerform produces only a hugh load, but does not
seem to work
some calculations are not possible on the powerpc, I guess.
src/libCom/test/epicsSpinTest
1..2
ok 1 # SKIP verifyTryLock() only for SMP systems
# spinThread 0 starting
# spinThread 1 starting
# spinThread 2 starting
# spinThread 0 exiting
# spinThread 1 exiting
# spinThread 2 exiting
ok 2 - Loops run = 1500 (expecting 1500)
# lock()*1/unlock()*1 takes 0.812376 microseconds
Results
=======
Tests: 2
Passed: 2 = 100.00%
Skipped: 1 = 50.00%
src/libCom/test/epicsStackTraceTest
1..5
ok 1 - epicsStackTraceGetFeatures() obtains features
# calling a few nested routines and eventually dump a stack trace
# now scan the result for what we expect
# found 1 x epicsStackTrace
# found 0 x epicsStackTraceRecurseGbl
# found 0 x epicsStackTraceRecurseLcl
ok 2 - dumping symbol from library
not ok 3 - dumping global symbols
not ok 4 - dumping local symbols
not ok 5 - dumping addresses
# Dumping a stack trace of thread '_main_':
# [0xb7f69c38]: /opt/epics/lib/libCom.so(epicsStackTrace+0xa0)
#
Results
=======
Tests: 5
Passed: 2 = 40.00%
Failed: 3 = 60.00%
src/libCom/test/epicsStdlibTest
1..199
ok 1 - Long '' => noConversion
ok 2 - ULong '' => noConversion
ok 3 - LLong '' => noConversion
ok 4 - ULLong '' => noConversion
ok 5 - Float '' => noConversion
ok 6 - Double '' => noConversion
ok 7 - Long '\t 1\n' => noConversion
ok 8 - ULong '\t 1\n' => noConversion
ok 9 - LLong '\t 1\n' => noConversion
ok 10 - ULLong '\t 1\n' => noConversion
ok 11 - Float '\t 1\n' => noConversion
ok 12 - Double '\t 1\n' => noConversion
ok 13 - Long '!' => noConversion
ok 14 - ULong '!' => noConversion
ok 15 - LLong '!' => noConversion
ok 16 - ULLong '!' => noConversion
ok 17 - Float '!' => noConversion
ok 18 - Double '!' => noConversion
ok 19 - Long '0'
ok 20 - ULong '0'
ok 21 - LLong '0'
ok 22 - ULLong '0'
ok 23 - Float '0'
ok 24 - Double '0'
ok 25 - Long '\t 1\n'
ok 26 - ULong '\t 1\n'
ok 27 - LLong '\t 1\n'
ok 28 - ULLong '\t 1\n'
ok 29 - Float '\t 1\n'
ok 30 - Double '\t 1\n'
ok 31 - Long '-1'
ok 32 - ULong '-1'
ok 33 - LLong '-1'
ok 34 - ULLong '-1'
ok 35 - Float '-1'
ok 36 - Double '-1'
ok 37 - Long '2!' => extraneous
ok 38 - ULong '2!' => extraneous
ok 39 - LLong '2!' => extraneous
ok 40 - ULLong '2!' => extraneous
ok 41 - Float '2!' => extraneous
ok 42 - Double '2!' => extraneous
ok 43 - Long '3 \n\t!' => extraneous
ok 44 - ULong '3 \n\t!' => extraneous
ok 45 - LLong '3 \n\t!' => extraneous
ok 46 - ULLong '3 \n\t!' => extraneous
ok 47 - Float '3 \n\t!' => extraneous
ok 48 - Double '3 \n\t!' => extraneous
ok 49 - Long '2!' => units='!'
ok 50 - ULong '2!' => units='!'
ok 51 - LLong '2!' => units='!'
ok 52 - ULLong '2!' => units='!'
ok 53 - Float '2!' => units='!'
ok 54 - Double '2!' => units='!'
ok 55 - Long '3 \n\t!' => units='!'
ok 56 - ULong '3 \n\t!' => units='!'
ok 57 - LLong '3 \n\t!' => units='!'
ok 58 - ULLong '3 \n\t!' => units='!'
ok 59 - Float '3 \n\t!' => units='!'
ok 60 - Double '3 \n\t!' => units='!'
ok 61 - Long '0x0'
ok 62 - ULong '0x0'
ok 63 - LLong '0x0'
ok 64 - ULLong '0x0'
ok 65 - Float '0x0'
ok 66 - Double '0x0'
ok 67 - Long '0x1'
ok 68 - ULong '0x1'
ok 69 - LLong '0x1'
ok 70 - ULLong '0x1'
ok 71 - Float '0x1'
ok 72 - Double '0x1'
ok 73 - Long '+0x1'
ok 74 - ULong '+0x1'
ok 75 - LLong '+0x1'
ok 76 - ULLong '+0x1'
ok 77 - Float '+0x1'
ok 78 - Double '+0x1'
ok 79 - Long '-0x1'
ok 80 - ULong '-0x1'
ok 81 - LLong '-0x1'
ok 82 - ULLong '-0x1'
ok 83 - Float '-0x1'
ok 84 - Double '-0x1'
ok 85 - Long '0xf'
ok 86 - ULong '0xf'
ok 87 - LLong '0xf'
ok 88 - ULLong '0xf'
ok 89 - Float '0xf'
ok 90 - Double '0xf'
ok 91 - Long '0XF'
ok 92 - ULong '0XF'
ok 93 - LLong '0XF'
ok 94 - ULLong '0XF'
ok 95 - Float '0XF'
ok 96 - Double '0XF'
ok 97 - Long '0x0' in base 10 => extraneous
ok 98 - ULong '0x0' in base 10 => extraneous
ok 99 - LLong '0x0' in base 10 => extraneous
ok 100 - ULLong '0x0' in base 10 => extraneous
ok 101 - Long '0x10' in base 0
ok 102 - ULong '0x10' in base 0
ok 103 - Long '0x10' in base 16
ok 104 - ULong '0x10' in base 16
ok 105 - Long '10' in base 16
ok 106 - ULong '10' in base 16
ok 107 - Long '0x7fffffff'
ok 108 - ULong '0xffffffff'
ok 109 - LLong '0x7fffffffffffffff'
ok 110 - ULLong '0xffffffffffffffff'
ok 111 - Float '0xffffff'
ok 112 - Double '0xffffffff'
ok 113 - Long '-0x7fffffff'
ok 114 - ULong '-0x7fffffff'
ok 115 - LLong '-0x7fffffffffffffff'
ok 116 - ULLong '-0x7fffffffffffffff'
ok 117 - Float '-0xffffff'
ok 118 - Double '-0x7fffffff'
ok 119 - Int8 '0x7f'
ok 120 - Int8 '-0x80'
ok 121 - UInt8 '0xff'
ok 122 - UInt8 '-1'
ok 123 - Int8 '0x80' => overflow
ok 124 - Int8 '-0x81' => overflow
ok 125 - UInt8 '0x100' => overflow
ok 126 - UInt8 '-0x100' => overflow
ok 127 - Int16 '0x7fff'
ok 128 - Int16 '-0x8000'
ok 129 - UInt16 '0xffff'
ok 130 - UInt16 '-1'
ok 131 - Int16 '0x8000' => overflow
ok 132 - Int16 '-0x8001' => overflow
ok 133 - UInt16 '0x10000' => overflow
ok 134 - UInt16 '-0x10000' => overflow
ok 135 - Int32 '0x7fffffff'
ok 136 - Int32 '-0x80000000'
ok 137 - UInt32 '0xffffffff'
ok 138 - UInt32 '-1'
ok 139 - Int32 '0x80000000' => overflow
ok 140 - Int32 '-0x80000001' => overflow
ok 141 - UInt32 '0x100000000' => overflow
ok 142 - UInt32 '-0x100000000' => overflow
ok 143 - Int64 '0x7fffffffffffffff'
ok 144 - Int64 '-0x8000000000000000'
ok 145 - UInt64 '0xffffffffffffffff'
ok 146 - UInt64 '-1'
ok 147 - Int64 '0x8000000000000000' => overflow
ok 148 - Int64 '-0x8000000000000001' => overflow
ok 149 - UInt64 '0x10000000000000000' => overflow
ok 150 - UInt64 '-0x10000000000000000' => overflow
ok 151 - Float '.1'
ok 152 - Double '.1'
ok 153 - Float '0.1'
ok 154 - Double '0.1'
ok 155 - Float '1e-1'
ok 156 - Double '1e-1'
ok 157 - Float '-.1'
ok 158 - Double '-.1'
ok 159 - Float '-0.1'
ok 160 - Double '-0.1'
ok 161 - Float '-1e-1'
ok 162 - Double '-1e-1'
ok 163 - Float '1e-30'
ok 164 - Double '1e-300'
ok 165 - Float '1e-40' => underflow
ok 166 - Double '1e-330' => underflow
ok 167 - Float '1e30'
ok 168 - Double '1e300'
ok 169 - Float '1e40' => overflow
ok 170 - Double '1e330' => overflow
ok 171 - Long '2147483647'
ok 172 - Long '-2147483647'
ok 173 - ULong '4294967295'
ok 174 - Float '16777214'
ok 175 - Float '16777215'
ok 176 - Float '-16777215'
ok 177 - Float '-16777216'
ok 178 - Double '4294967294'
ok 179 - Double '4294967295'
ok 180 - Double '-4294967295'
ok 181 - Double '-4294967296'
ok 182 - Float 'NAN'
ok 183 - Double 'NAN'
ok 184 - Float 'Nan'
ok 185 - Double 'Nan'
not ok 186 - Float 'nan()'
not ok 187 - Double 'nan()'
ok 188 - Float 'INF'
ok 189 - Double 'INF'
ok 190 - Float 'Infinity'
ok 191 - Double 'Infinity'
ok 192 - Float '+INF'
ok 193 - Double '+INF'
ok 194 - Float '+Infinity'
ok 195 - Double '+Infinity'
ok 196 - Float '-INF'
ok 197 - Double '-INF'
ok 198 - Float '-Infinity'
ok 199 - Double '-Infinity'
# This target defines epicsStrtod as strtod
Results
=======
Tests: 199
Passed: 197 = 98.99%
Failed: 2 = 1.01%
src/libCom/test/epicsUnitTestTest
1..11
ok 1 - testOk(1)
not ok 2 - testOk(0)
ok 3 - testPass()
not ok 4 - testFail()
ok 5 # SKIP Skipping two
ok 6 # SKIP Skipping two
ok 7 - Todo pass # TODO Testing Todo
not ok 8 - Todo fail # TODO Testing Todo
ok 9 # SKIP Todo skip
ok 10 - testOk1_success
not ok 11 - testOk1_failure
# Diagnostic
Results
=======
Tests: 11
Passed: 8 = 72.73%
Todo Passes: 1 = 9.09%
Failed: 3 = 27.27%
Skipped: 3 = 27.27%
In src/ioc/db/test only dbStressTest fails:
1..95
# lock set stress test
############################################################################
## EPICS R3.16.1
## EPICS Base built Jan 31 2018
############################################################################
# Running with 5 workers and 40 records
# worker 0 is 0x1003c310
# All started. Will run for 18.000000 sec
# Stopping
# worker 1 is 0x1003cd08
# worker 2 is 0x1003ce68
# worker 3 is 0x1003c5a0
# worker 4 is 0x1003d0b8
# All stopped
# Validate lockSet ref counts
ok 1 - rec01 only lockRecords hold refs. 38 == 38
ok 2 - ls->ownerlocker==NULL
ok 3 - rec02 only lockRecords hold refs. 38 == 38
ok 4 - ls->ownerlocker==NULL
ok 5 - rec03 only lockRecords hold refs. 38 == 38
ok 6 - ls->ownerlocker==NULL
ok 7 - rec04 only lockRecords hold refs. 38 == 38
ok 8 - ls->ownerlocker==NULL
ok 9 - rec05 only lockRecords hold refs. 38 == 38
ok 10 - ls->ownerlocker==NULL
ok 11 - rec06 only lockRecords hold refs. 1 == 1
ok 12 - ls->ownerlocker==NULL
ok 13 - rec07 only lockRecords hold refs. 38 == 38
ok 14 - ls->ownerlocker==NULL
ok 15 - rec08 only lockRecords hold refs. 38 == 38
ok 16 - ls->ownerlocker==NULL
ok 17 - rec09 only lockRecords hold refs. 38 == 38
ok 18 - ls->ownerlocker==NULL
ok 19 - rec10 only lockRecords hold refs. 38 == 38
ok 20 - ls->ownerlocker==NULL
ok 21 - rec11 only lockRecords hold refs. 38 == 38
ok 22 - ls->ownerlocker==NULL
ok 23 - rec12 only lockRecords hold refs. 38 == 38
ok 24 - ls->ownerlocker==NULL
ok 25 - rec13 only lockRecords hold refs. 38 == 38
ok 26 - ls->ownerlocker==NULL
ok 27 - rec14 only lockRecords hold refs. 38 == 38
ok 28 - ls->ownerlocker==NULL
ok 29 - rec15 only lockRecords hold refs. 38 == 38
ok 30 - ls->ownerlocker==NULL
ok 31 - rec16 only lockRecords hold refs. 38 == 38
ok 32 - ls->ownerlocker==NULL
ok 33 - rec17 only lockRecords hold refs. 38 == 38
ok 34 - ls->ownerlocker==NULL
ok 35 - rec18 only lockRecords hold refs. 38 == 38
ok 36 - ls->ownerlocker==NULL
ok 37 - rec19 only lockRecords hold refs. 38 == 38
ok 38 - ls->ownerlocker==NULL
ok 39 - rec20 only lockRecords hold refs. 38 == 38
ok 40 - ls->ownerlocker==NULL
ok 41 - rec21 only lockRecords hold refs. 38 == 38
ok 42 - ls->ownerlocker==NULL
ok 43 - rec22 only lockRecords hold refs. 38 == 38
ok 44 - ls->ownerlocker==NULL
ok 45 - rec23 only lockRecords hold refs. 38 == 38
ok 46 - ls->ownerlocker==NULL
ok 47 - rec24 only lockRecords hold refs. 38 == 38
ok 48 - ls->ownerlocker==NULL
ok 49 - rec25 only lockRecords hold refs. 38 == 38
ok 50 - ls->ownerlocker==NULL
ok 51 - rec26 only lockRecords hold refs. 38 == 38
ok 52 - ls->ownerlocker==NULL
ok 53 - rec27 only lockRecords hold refs. 38 == 38
ok 54 - ls->ownerlocker==NULL
ok 55 - rec28 only lockRecords hold refs. 38 == 38
ok 56 - ls->ownerlocker==NULL
ok 57 - rec29 only lockRecords hold refs. 38 == 38
ok 58 - ls->ownerlocker==NULL
ok 59 - rec30 only lockRecords hold refs. 38 == 38
ok 60 - ls->ownerlocker==NULL
ok 61 - rec31 only lockRecords hold refs. 38 == 38
ok 62 - ls->ownerlocker==NULL
ok 63 - rec32 only lockRecords hold refs. 38 == 38
ok 64 - ls->ownerlocker==NULL
ok 65 - rec33 only lockRecords hold refs. 38 == 38
ok 66 - ls->ownerlocker==NULL
ok 67 - rec34 only lockRecords hold refs. 38 == 38
ok 68 - ls->ownerlocker==NULL
ok 69 - rec35 only lockRecords hold refs. 38 == 38
ok 70 - ls->ownerlocker==NULL
ok 71 - rec36 only lockRecords hold refs. 38 == 38
ok 72 - ls->ownerlocker==NULL
ok 73 - rec37 only lockRecords hold refs. 38 == 38
ok 74 - ls->ownerlocker==NULL
ok 75 - rec38 only lockRecords hold refs. 38 == 38
ok 76 - ls->ownerlocker==NULL
ok 77 - rec39 only lockRecords hold refs. 38 == 38
ok 78 - ls->ownerlocker==NULL
ok 79 - rec40 only lockRecords hold refs. 1 == 1
ok 80 - ls->ownerlocker==NULL
# Statistics
# Worker 0
# N = 100442 99890 103835
# X = 987742 984295 1.02229e+06
# X2= 1.30059e+07 1.29665e+07 1.34493e+07
ok 81 - priv[i].N[0]>0
ok 82 - priv[i].N[1]>0
ok 83 - priv[i].N[2]>0
# Worker 1
# N = 0 0 0
# X = 0 0 0
# X2= 0 0 0
not ok 84 - priv[i].N[0]>0
not ok 85 - priv[i].N[1]>0
not ok 86 - priv[i].N[2]>0
# Worker 2
# N = 0 0 0
# X = 0 0 0
# X2= 0 0 0
not ok 87 - priv[i].N[0]>0
not ok 88 - priv[i].N[1]>0
not ok 89 - priv[i].N[2]>0
# Worker 3
# N = 0 0 0
# X = 0 0 0
# X2= 0 0 0
not ok 90 - priv[i].N[0]>0
not ok 91 - priv[i].N[1]>0
not ok 92 - priv[i].N[2]>0
# Worker 4
# N = 0 0 0
# X = 0 0 0
# X2= 0 0 0
not ok 93 - priv[i].N[0]>0
not ok 94 - priv[i].N[1]>0
not ok 95 - priv[i].N[2]>0
Results
=======
Tests: 95
Passed: 83 = 87.37%
Failed: 12 = 12.63%
But I also got message like
xRecord.db ..../xRecord.db: line 1: syntax error: unexpected word
(expecting ")")
and
dbStaticTest.db ..../dbStaticTest.db: line 2: syntax error: unexpected
word (expecting ")")
dbPutGetTest.db ..../dbPutGetTest.db: line 2: syntax error: unexpected
word (expecting ")")
dbCaLinkTest1.db ..../dbCaLinkTest1.db: line 1: syntax error:
unexpected word (expecting ")")
I copied all db and dbd files. Are there more files, I need to copy?
All tests of src/std/rec/test worked 100%.
Sorry for such a long message, I hope, this helps at least a bit.
Best,
Simon
- Replies:
- Re: Sequencer seem to skip states with EPICS 3.16.1 Simon Reiter
- References:
- Sequencer seem to skip states with EPICS 3.16.1 Simon Reiter
- Re: Sequencer seem to skip states with EPICS 3.16.1 Simon Reiter
- Re: Sequencer seem to skip states with EPICS 3.16.1 Ralph Lange
- Re: Sequencer seem to skip states with EPICS 3.16.1 Simon Reiter
- Re: Sequencer seem to skip states with EPICS 3.16.1 Ralph Lange
- Re: Sequencer seem to skip states with EPICS 3.16.1 Simon Reiter
- Re: Sequencer seem to skip states with EPICS 3.16.1 Benjamin Franksen
- Re: Sequencer seem to skip states with EPICS 3.16.1 Simon Reiter
- Re: Sequencer seem to skip states with EPICS 3.16.1 Benjamin Franksen
- Re: Sequencer seem to skip states with EPICS 3.16.1 Simon Reiter
- Re: Sequencer seem to skip states with EPICS 3.16.1 Andrew Johnson
- Re: Sequencer seem to skip states with EPICS 3.16.1 Simon Reiter
- Re: Sequencer seem to skip states with EPICS 3.16.1 Simon Reiter
- Re: Sequencer seem to skip states with EPICS 3.16.1 Andrew Johnson
- Navigate by Date:
- Prev:
RE: Seq-2.2.5 compilation on windows freddie.akeroyd
- Next:
Segmentation fault when setting motorStatusProblem_ to 1 Sobhani, Bayan
- 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
- Navigate by Thread:
- Prev:
Re: Sequencer seem to skip states with EPICS 3.16.1 Andrew Johnson
- Next:
Re: Sequencer seem to skip states with EPICS 3.16.1 Simon Reiter
- 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
|