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  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: ca.py - Throws error - workaround
From: Matt Newville <[email protected]>
To: Jeff Hill <[email protected]>
Cc: [email protected], EPICS Tech Talk <[email protected]>
Date: Mon, 18 Apr 2011 20:36:00 -0500
Hi Jeff,

Thanks.  I thought the error message reported was a little cryptic
too.    The message I see when an array size is larger than
EPCIS_CA_MAX_ARRAY_BYTES looks like this:

>>> import os, epics
>>> print os.getenv('EPICS_CA_MAX_ARRAY_BYTES')
100000
>>> epics.caget('Py:double64k')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.6/site-packages/epics/__init__.py", line 95, in caget
    as_numpy=as_numpy)
  File "/usr/lib/python2.6/site-packages/epics/pv.py", line 190, in get
    as_numpy=as_numpy)
  File "/usr/lib/python2.6/site-packages/epics/ca.py", line 360, in wrapper
    return fcn(*args, **kwds)
  File "/usr/lib/python2.6/site-packages/epics/ca.py", line 853, in get
    PySEVCHK('get', ret)
  File "/usr/lib/python2.6/site-packages/epics/ca.py", line 372, in PySEVCHK
    raise CASeverityException(func_name, message(status))
epics.ca.CASeverityException:  get returned 'The requested data
transfer is greater than available memory or EPICS_CA_MAX_ARRAY_BYTES'

so the message in the python exception does include the text from
ca_message(status), in this case with 'status' being the value
returned from ca_array_get().   For reference:

~>caget Py:double64k
Read operation timed out: some PV data was not read.
Py:double64k*** CA error The requested data transfer is greater than
available memory or EPICS_CA_MAX_ARRAY_BYTES

Also, thanks for clarifying the finite if (currently) very large upper
limit on array sizes!

--Matt Newville

References:
Re: ca.py - Throws error - workaround Matt Newville
RE: ca.py - Throws error - workaround Jeff Hill

Navigate by Date:
Prev: Re: ioc segfault if - c seq flag is not set or +c? Benjamin Franksen
Next: Re: How to know type of record at client end [Py-epics v3.1.1 interface ] Ritesh Sugandhi
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: ca.py - Throws error - workaround Jeff Hill
Next: Re: ca.py - Throws error - workaround Luca Luisa
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·