inconsistent RPRO queuing of busy async records

Bug #1745039 reported by mdavidsaver
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
EPICS Base
Status tracked in 7.0
3.16
Fix Released
Undecided
Unassigned
7.0
Fix Released
Undecided
mdavidsaver

Bug Description

I notice that dbPutField() sets RPRO=1 when PACT=1, but dbProcess()
itself does not. This means that dbPutField() to a record w/ PACT=1
is queued for reprocessing, but async records processed indirectly
(via DB link) are not queued for reprocessing.

A database which demonstrates the process is the following.
I think that "tst:val.VAL" should _eventually_ be 2.
Currently it's 1, with the change below, it's 2.

> record(fanout, "tst:fout") {
> field(PINI, "RUNNING")
> field(LNK1, "tst:calc")
> field(LNK2, "tst:calc")
> field(TPRO, "1")
> }
>
> record(calcout, "tst:calc") {
> field(INPA, "tst:calc")
> field(CALC, "A+1")
> field(ODLY, "0.1")
> field(OUT , "tst:val")
> field(TPRO, "1")
> }
>
> record(longin, "tst:val") {
> field(TPRO, "1")
> }

https://epics.anl.gov/core-talk/2018/msg00029.php

Revision history for this message
mdavidsaver (mdavidsaver) wrote :

Andrew rightly points out that my proposed simple fix would create a number of new problems. A better fix is:

https://code.launchpad.net/~epics-core/epics-base/+git/prop-putf/+merge/336468

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

AJ: MR needs re-reviewing.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.