EPICS Home

Experimental Physics and Industrial Control System


 
2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: [Bug 1899697] Re: PHAS is not always respected when SCAN=Event
From: Andrew Johnson via Core-talk <core-talk at aps.anl.gov>
To: core-talk at aps.anl.gov
Date: Tue, 13 Oct 2020 21:59:50 -0000
Oops! Accepted by inspecting the code, thanks for the fix! Note that
this won't just affect SCAN==Event, all the scan types respect PHAS and
could be affected.

This definitely needs to be fixed on the 3.15 branch and merged up.

It ought to be possible to combine the two calls to ellInsert() in that
routine. Remove the first call completely and the leading if() statement
in Bruno's patch and use (ptemp ? &ptemp->node : NULL) for the second
argument.

Bruno's patch also fixes a proto-bug in that the second argument to the
current ellAdd() call assumes that offsetof(scan_element, node)==0. I
thought we'd fixed most of those but we missed that one and in the
similar ellDelete() call lower down - replace (void *)pse with
&pse->node.

It would be nice to add some tests to dbScanTest.c for this and similar
scan-list manipulations, but that exists only on the 7.0 branch so it
would have to be done separately. Codeathon task?

-- 
You received this bug notification because you are a member of EPICS
Core Developers, which is subscribed to EPICS Base.
Matching subscriptions: epics-core-list-subscription
https://bugs.launchpad.net/bugs/1899697

Title:
  PHAS is not always respected when SCAN=Event

Status in EPICS Base:
  Triaged
Status in EPICS Base 3.15 series:
  Triaged
Status in EPICS Base 7.0 series:
  Triaged

Bug description:
  There is a bug when adding records to an Event scan list. Adding a
  record to an event scan list with a lower PHAS than any other
  previously added record will end up putting it at the *end* of the
  list (not at the beginning). Triggering the bug:

      $ cat test.db 
      record(ai, "SECOND") { field(EVNT, "E") field(SCAN, "Event") field(PHAS, "1") }
      record(ai, "FIRST")  { field(EVNT, "E") field(SCAN, "Event") field(PHAS, "0") }
      record(ai, "THIRD")  { field(EVNT, "E") field(SCAN, "Event") field(PHAS, "2") }

      $ softIoc -d test.db
      Starting iocInit
      ############################################################################
      ## EPICS R3.15.8-1+0~20200608134952.18+debian10~1.gbp3c2d35
      ## EPICS Base built Jun  8 2020
      ############################################################################
      iocRun: All initialization complete
      epics> scanpel
      Event "E"
       Priority Low
          SECOND                      
          FIRST                       
          THIRD                       
      epics>

  The expected order is FIRST, SECOND, THIRD. I attached a patch (for
  3.15.8) that I think fixes the issue. I found it in 3.15.8 but it
  seems to affect 7.0 series as well.

To manage notifications about this bug go to:
https://bugs.launchpad.net/epics-base/+bug/1899697/+subscriptions

References:
[Bug 1899697] [NEW] PHAS is not always respected when SCAN=Event Bruno Martins via Core-talk

Navigate by Date:
Prev: [Bug 1899697] Re: PHAS is not always respected when SCAN=Event Andrew Johnson via Core-talk
Next: [Bug 1899697] Re: PHAS is not always respected when SCAN=Event Martin Konrad via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
Navigate by Thread:
Prev: [Bug 1899697] Re: PHAS is not always respected when SCAN=Event Andrew Johnson via Core-talk
Next: [Bug 1899697] Re: PHAS is not always respected when SCAN=Event Martin Konrad via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024