EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

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  <20232024  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  <20232024 
<== Date ==> <== Thread ==>

Subject: Re: asyn ioctestIPServer prints many accept errors after IOC exit?
From: "J. Lewis Muir via Tech-talk" <tech-talk at aps.anl.gov>
To: Mark Rivers <rivers at cars.uchicago.edu>
Cc: EPICS Tech-Talk <tech-talk at aps.anl.gov>
Date: Wed, 20 Dec 2023 17:19:24 -0600
On 12/20, Mark Rivers wrote:
> I have replied to your issue on Github:
 
Hi, Mark!

Thanks!

> - You had an error when you started the IOC because envPaths could not be found.  This is probably because you did not change ARCH in ioctestIPServer/Makefile to match your EPICS_HOST_ARCH, so it did not create the envPaths file.

Yes, I didn't think it would cause this problem, so I ignored it.  I
arranged for the envPaths file to be created, and I still get thousands
of error messages on IOC exit.

> - When I run the IOC on linux-x86_64 it exits cleanly, I do not see any error messages.

OK, thanks for trying that.

> - When I run the IOC on windows-x64-static I see 2 error messages and then it exits cleanly.
 
OK, thanks for trying that.

> The problem may be specific to Darwin.  You are one of relatively few people who run EPICS on Darwin, so you may need to debug this yourself and submit a Pull Request to fix it.

Yes, it would seem so.  Any ideas from anyone?  Since Windows seems to
have a similar problem, but not so many error messages, could this have
something to do with the fact that EPICS has some known difficulties
with shutting down cleanly (e.g., stopping threads, etc.)?  I know I've
seen EPICS improvements in this area, but am I right that there are
likely still issues?

It appears that in asyn's

  drvAsynSerial/drvAsynIPServerPort.c

it calls EPICS's

  epicsSocketAccept

So maybe EPICS's epicsSocketAccept needs to handle some error condition
that arises on darwin-aarch64 on IOC exit that doesn't arise on
linux-x86_64?

That's the path I'll probably investigate, but I'm certainly interested
in hearing other ideas.

I suppose another idea would be to register an IOC exit handler or
something in the test IOC application, and then stop the two servers on
IOC exit?

Thanks!

Lewis

References:
asyn ioctestIPServer prints many accept errors after IOC exit? J. Lewis Muir via Tech-talk
RE: asyn ioctestIPServer prints many accept errors after IOC exit? Mark Rivers via Tech-talk

Navigate by Date:
Prev: RE: asyn ioctestIPServer prints many accept errors after IOC exit? Freddie Akeroyd - STFC UKRI via Tech-talk
Next: IP520 not communcating with baud rates other than 9600bps Mrinal Bera via Tech-talk
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  <20232024 
Navigate by Thread:
Prev: RE: asyn ioctestIPServer prints many accept errors after IOC exit? Freddie Akeroyd - STFC UKRI via Tech-talk
Next: IP520 not communcating with baud rates other than 9600bps Mrinal Bera via Tech-talk
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  <20232024 
ANJ, 21 Dec 2023 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·