EPICS Home

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  2023  <20242025  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  <20242025 
<== Date ==> <== Thread ==>

Subject: Re: iSeghal queue overflow
From: Florian Feldbauer via Tech-talk <tech-talk at aps.anl.gov>
To: tech-talk at aps.anl.gov
Date: Thu, 5 Sep 2024 12:01:56 +0200

Hey Marco,


unfortunately I cannot tell you where these messages originate from.


As for the `devIsegHalSetOpt` command:


>   if( strcmp( args[1].sval, "LogLevel" ) == 0 ) {


In your first example args[1] is "0", so this comparison evaluates to false,

in the second example args[1] is "NoMoreLogsPlease", so again false.


You need to call


devIsegHalSetOpt( "<interface name>", "LogLevel", 0 )


The interface name is the same as you used in the `isegHalConnect` function to connect to the isegHal server.


HTH,
Florian



On 9/5/24 11:42, Marco Filho via Tech-talk wrote:

Hello all

I'm using iSegHal epics module to control an equipment and I keep getting lots of queue overflows but I can't find where they are coming from:

(...)

0.6.33.EventMask: Warning: iseg Client Mgt queue overflow.
0.6.33.DelayedTripAction: Warning: iseg Client Mgt queue overflow.
0.6.33.ExternalInhibitAction: Warning: iseg Client Mgt queue overflow.
0.6.34.EventMask: Warning: iseg Client Mgt queue overflow.
0.6.34.DelayedTripAction: Warning: iseg Client Mgt queue overflow.
0.6.34.ExternalInhibitAction: Warning: iseg Client Mgt queue overflow.
(...)
etc...

The IOC operation seems to work, but this is flooding my logs. I tried:

devIsegHalSetOpt("LogLevel", "0")

But to no avail. Also, I noticed that in the source code:

    if( strcmp( args[1].sval, "LogLevel" ) == 0 ) {
      if( iseg_setItem( args[0].sval, "LogLevel", args[2].sval ) != ISEG_OK ) {
        fprintf( stderr, "\033[31;1mCould not change LogLevel to '%s'\033[0m\n", args[2].sval );
        return;
      }
    }

However, if I try to set the logLevel to a garbage value, nothing is printed to my stderr:

2098138 > devIsegHalSetOpt("LogLevel", "NoMoreLogsPlease")
2098138 >

Also, I tried grepping "queue overflow" in both the devISegHal and the iseghal source code but found nothing that made sense to me. Is this message coming directly from epics base? Is there any way to allocate a bigger queue (what is this queue?) to avoid overflow?

Thanks in advance for any help,

Marco.
-- 
Ruhr-Universität Bochum
AG der Experimentalphysik I
Dr. Florian Feldbauer
NB 2/131 / Fach 125
Universitätsstr. 150
D-44801 Bochum

Office: NB 2/134
Phone:  (+49)234 / 32-23563
Fax:    (+49)234 / 32-14170
https://paluma.ruhr-uni-bochum.de

References:
iSeghal queue overflow Marco Filho via Tech-talk

Navigate by Date:
Prev: Re: iSeghal queue overflow Marco Filho via Tech-talk
Next: Re: Asyn or Stream device interface for struct data Zimoch Dirk 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  2023  <20242025 
Navigate by Thread:
Prev: Re: iSeghal queue overflow Marco Filho via Tech-talk
Next: Adding additional fields to be archived in "policies.py" Windsor Tanner 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  2023  <20242025