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: quadEM-R7-0 ParamValNotDefined
From: Rong Huang via Tech-talk <tech-talk at aps.anl.gov>
To: Mark Rivers <rivers at cars.uchicago.edu>
Cc: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Tue, 19 Dec 2023 17:19:37 -0600
Hello Mark,

Thank you for checking this!

I realized I used the wrong version of asyn after I sent the previous
email. I installed asyn-R4-30, re-installed areaDetector, ipUnidig and
quadEM-R7-0, but I still get the same error when I start the IOC.

The backtrace printout is as follows:

terminate called after throwing an instance of 'ParamValNotDefined'
  what():  paramVal::getInteger value not defined

Thread 1 "quadEMTestApp" received signal SIGABRT, Aborted.
0x0000fffff78d6650 in __pthread_kill_implementation () from /usr/lib64/libc.so.6
Missing separate debuginfos, use: dnf debuginfo-install
glibc-2.34-83.el9_3.7.aarch64 keyutils-libs-1.6.3-1.el9.aarch64
krb5-libs-1.21.1-1.el9.aarch64 libaec-1.0.6-1.el9.aarch64
libcom_err-1.46.5-3.el9.aarch64 libgcc-11.4.1-2.1.el9.aarch64
libjpeg-turbo-2.0.90-6.el9_1.aarch64 libselinux-3.5-1.el9.aarch64
libstdc++-11.4.1-2.1.el9.aarch64 libtirpc-1.3.3-2.el9.aarch64
libxml2-2.9.13-5.el9_3.aarch64 openssl-libs-3.0.7-24.el9.aarch64
pcre2-10.40-2.el9.aarch64 xz-libs-5.2.5-8.el9_0.aarch64
zlib-1.2.11-40.el9.aarch64
(gdb) backtrace
#0  0x0000fffff78d6650 in __pthread_kill_implementation () from
/usr/lib64/libc.so.6
#1  0x0000fffff789186c in raise () from /usr/lib64/libc.so.6
#2  0x0000fffff7879030 in abort () from /usr/lib64/libc.so.6
#3  0x0000fffff7aa491c in __gnu_cxx::__verbose_terminate_handler() ()
from /usr/lib64/libstdc++.so.6
#4  0x0000fffff7aa22bc in __cxxabiv1::__terminate(void (*)()) () from
/usr/lib64/libstdc++.so.6
#5  0x0000fffff7aa2320 in std::terminate() () from /usr/lib64/libstdc++.so.6
#6  0x0000fffff7aa2604 in __cxa_throw () from /usr/lib64/libstdc++.so.6
#7  0x00000000007b3fc0 in paramVal::getInteger (this=this@entry=0xc0d7c0)
    at /usr/include/c++/11/ext/new_allocator.h:89
#8  0x0000000000796160 in paramList::getInteger (this=<optimized out>,
index=index@entry=51, value=0xffffffffe050)
    at ../../asyn/asynPortDriver/asynPortDriver.cpp:259
#9  0x000000000079627c in asynPortDriver::getIntegerParam
(value=<optimized out>, index=51, list=0, this=0xc09ee0)
    at ../../asyn/asynPortDriver/asynPortDriver.cpp:1302
#10 asynPortDriver::getIntegerParam (this=0xc09ee0, index=51,
value=<optimized out>)
    at ../../asyn/asynPortDriver/asynPortDriver.cpp:1289
#11 0x000000000048b364 in NDPluginDriver::connectToArrayPort
(this=this@entry=0xc09ee0) at ../NDPluginDriver.cpp:253
#12 0x000000000044fdc8 in NDPluginStats::NDPluginStats (this=0xc09ee0,
portName=<optimized out>,
    queueSize=<optimized out>, blockingCallbacks=<optimized out>,
NDArrayPort=<optimized out>,
    NDArrayAddr=<optimized out>, maxBuffers=<optimized out>,
maxMemory=<optimized out>, priority=0, stackSize=0)
    at ../NDPluginStats.cpp:838
#13 0x000000000044fe6c in NDStatsConfigure (portName=0xc0fae1
"STATS1", queueSize=20, blockingCallbacks=0,
    NDArrayPort=0xc0faed "TetrAMM", NDArrayAddr=0, maxBuffers=0,
maxMemory=0, priority=0, stackSize=0)
    at ../NDPluginStats.cpp:848
#14 0x000000000044feec in initCallFunc (args=<optimized out>) at
../NDPluginStats.cpp:874
#15 0x0000000000899c00 in iocshBody (
    pathname=pathname@entry=0xbdcad0
"/epicsioc/used/epics/synApps_5_8_3_14_8/quadEM-R7-0/iocBoot/commonPlugins.cmd",
commandLine=commandLine@entry=0x0) at
../../../src/libCom/iocsh/iocsh.cpp:771
#16 0x0000000000899a24 in iocshBody (
    pathname=pathname@entry=0xbbe4c0
"/epicsioc/used/epics/synApps_5_8_3_14_8/quadEM-R7-0/iocBoot/iocTetrAMM/TetrAMM.cmd",
commandLine=commandLine@entry=0x0) at
../../../src/libCom/iocsh/iocsh.cpp:744
#17 0x0000000000899a24 in iocshBody (pathname=<optimized out>,
commandLine=<optimized out>)
    at ../../../src/libCom/iocsh/iocsh.cpp:744
--Type <RET> for more, q to quit, c to continue without paging--
#18 0x00000000004095f8 in main (argc=<optimized out>, argv=<optimized
out>) at ../quadEMTestAppMain.cpp:16


Some additional information about quadEM-R7-0 compiling: I initially
had compiling error like:
../drvTetrAMM.cpp:258:22: error: narrowing conversion of
‘18443366386873925631’ from ‘long long unsigned int’ to ‘long long
int’ [-Wnarrowing] 258 | case 0xfff40002ffffffffll:
So I changed line 258 (and three following case ***** sentences) to:
case static_cast<long long int>(0xfff40002ffffffff):
.....
case static_cast<long long int>(0xfff40000ffffffff):
.....
case static_cast<long long int>(0xfff40001ffffffff):
.....
case static_cast<long long int>(0xfff40003ffffffff):

I hope these changes are irrelevant.

Thank you very much!
Rong

On Tue, Dec 19, 2023 at 4:10 PM Mark Rivers <rivers at cars.uchicago.edu> wrote:
>
> Hi Rong,
>
>
>
> You appear to be running asyn R4-36.
>
>
>
> You are getting this error:
>
>
>
> NDStatsConfigure("STATS1", 20, 0, "TetrAMM", 0, 0, 0) terminate called after throwing an instance of 'ParamValNotDefined'
>
>   what():  paramVal::getInteger value not defined Aborted (core dumped)
>
>
>
> I do not understand that.  The only place where paramVal::getInteger should be called is in this line in asynPortDriver R4-36:
>
> https://github.com/epics-modules/asyn/blob/89c2b93d14cdb7fe48d490785cd7780c1b997277/asyn/asynPortDriver/asynPortDriver.cpp#L288
>
>
>
> Note that paramVal::getInteger is called in a try/catch block, and exception ParamValNotDefined is explicitly caught.  So it should simply return asynParamUndefined to the function that called paramList::GetInteger, which is normally asynPortDriver::getIntegerParam().
>
>
>
> Your error message says that the crash generated a core dump.  I think you need to run gdb on that core file and send the output of the gdb “backtrace” command.
>
>
>
> Alternatively you can run the IOC again under gdb as follows:
>
>
>
> gdb ../../bin/linux-arm/quadEMTestApp
>
> run st.cmd
>
>
>
> (when it crashes type this command)
>
> backtrace
>
>
>
> That will show the call stack when it crashed, and we may be able to figure out why it is happening.
>
>
>
> Mark
>
>
>
> -----Original Message-----
> From: Tech-talk <tech-talk-bounces at aps.anl.gov> On Behalf Of Rong Huang via Tech-talk
> Sent: Tuesday, December 19, 2023 2:35 PM
> To: tech-talk at aps.anl.gov
> Subject: quadEM-R7-0 ParamValNotDefined
>
>
>
> Hello,
>
>
>
> Sorry I am living in the past. I am trying to install the old version
>
> quadEM-R7-0 to match the  EPICS_base version (3.14.12.8) and Asyn version in use.
>
>
>
> I installed everything without vxWorks, with the intention to run the IOC on a PC. Currently working on RHEL linux-arm inside VMware Fusion.
>
>
>
> The TetrAMM instrument is new, but I guess the error message is not about hardware but EPICS software. The printout of starting IOC is as
>
> follows:
>
>
>
> [rh@localhost iocTetrAMM]$ ../../bin/linux-arm/quadEMTestApp st.cmd
>
> errlogInit(5000)
>
> < envPaths
>
> epicsEnvSet("ARCH","linux-x86_64")
>
> epicsEnvSet("IOC","iocTetrAMM")
>
> epicsEnvSet("TOP","/epicsioc/used/epics/synApps_5_8_3_14_8/quadEM-R7-0")
>
> epicsEnvSet("SUPPORT","/epicsioc/used/epics/synApps_5_8_3_14_8")
>
> epicsEnvSet("AREA_DETECTOR","/epicsioc/used/epics/synApps_5_8_3_14_8/areaDetector-R2-5")
>
> epicsEnvSet("EPICS_BASE","/epicsioc/used/epics/base-3.14.12.8")
>
> epicsEnvSet("ASYN","/epicsioc/used/epics/synApps_5_8_3_14_8/asyn-4-36")
>
> epicsEnvSet("ADSUPPORT","/epicsioc/used/epics/synApps_5_8_3_14_8/areaDetector-R2-5/ADSupport")
>
> epicsEnvSet("ADCORE","/epicsioc/used/epics/synApps_5_8_3_14_8/areaDetector-R2-5/ADCore")
>
> epicsEnvSet("AUTOSAVE","/epicsioc/used/epics/synApps_5_8_3_14_8/autosave-5-10")
>
> epicsEnvSet("BUSY","/epicsioc/used/epics/synApps_5_8_3_14_8/busy-1-7-2")
>
> epicsEnvSet("CALC","/epicsioc/used/epics/synApps_5_8_3_14_8/calc-3-7-3")
>
> epicsEnvSet("SNCSEQ","/epicsioc/used/epics/synApps_5_8_3_14_8/seq-2-2-7")
>
> epicsEnvSet("SSCAN","/epicsioc/used/epics/synApps_5_8_3_14_8/sscan-2-11-3")
>
> epicsEnvSet("DEVIOCSTATS","/epicsioc/used/epics/synApps_5_8_3_14_8/iocStats-3-1-16")
>
> epicsEnvSet("IPAC","/epicsioc/used/epics/synApps_5_8_3_14_8/ipac-2-15")
>
> epicsEnvSet("IPUNIDIG","/epicsioc/used/epics/synApps_5_8_3_14_8/ipUnidig-2-10")
>
> # Tell EPICS all about the record types, device-support modules, drivers, # etc. in this build
>
> epicsEnvSet("QUADEM","/epicsioc/used/epics/synApps_5_8_3_14_8/quadEM-R7-0")
>
> dbLoadDatabase("/epicsioc/used/epics/synApps_5_8_3_14_8/quadEM-R7-0/dbd/quadEMTestApp.dbd")
>
> quadEMTestApp_registerRecordDeviceDriver(pdbbase)
>
> # The search path for database files
>
> # Note: the separator between the path entries needs to be changed to a semicolon (;) on Windows epicsEnvSet("EPICS_DB_INCLUDE_PATH",
>
> "/epicsioc/used/epics/synApps_5_8_3_14_8/areaDetector-R2-5/ADCore/db:/epicsioc/used/epics/synApps_5_8_3_14_8/quadEM-R7-0/db")
>
> < /epicsioc/used/epics/synApps_5_8_3_14_8/quadEM-R7-0/iocBoot/iocTetrAMM/TetrAMM.cmd
>
> epicsEnvSet("PREFIX",    "quadEMTest:")
>
> epicsEnvSet("RECORD",    "TetrAMM:")
>
> epicsEnvSet("PORT",      "TetrAMM")
>
> epicsEnvSet("TEMPLATE",  "TetrAMM")
>
> epicsEnvSet("QSIZE",     "20")
>
> epicsEnvSet("RING_SIZE", "10000")
>
> epicsEnvSet("TSPOINTS",  "2048")
>
> #epicsEnvSet("IP",        "164.54.160.165:10001")
>
> epicsEnvSet("IP",        "10.1.17.35:10001")
>
> #drvAsynIPPortConfigure("portName","hostInfo",priority,noAutoConnect,
>
> #                        noProcessEos)
>
> drvAsynIPPortConfigure("IP_TetrAMM", "10.1.17.35:10001", 0, 0, 0) asynOctetSetInputEos("IP_TetrAMM",  0, "\r\n") asynOctetSetOutputEos("IP_TetrAMM", 0, "\r") # Set both TRACE_IO_ESCAPE (for ASCII command/response) and TRACE_IO_HEX (for binary data) asynSetTraceIOMask("IP_TetrAMM", 0, 6)
>
> #asynSetTraceFile("IP_$(PORT)",   0, "AHxxx.out")
>
> #asynSetTraceMask("IP_$(PORT)",   0,  9)
>
> asynSetTraceIOTruncateSize("IP_TetrAMM", 0, 4000) # Load asynRecord record dbLoadRecords("/epicsioc/used/epics/synApps_5_8_3_14_8/asyn-4-36/db/asynRecord.db",
>
> "P=quadEMTest:, R=asyn1,PORT=IP_TetrAMM,ADDR=0,OMAX=256,IMAX=256")
>
> drvTetrAMMConfigure("TetrAMM", "IP_TetrAMM", 10000) dbLoadRecords("/epicsioc/used/epics/synApps_5_8_3_14_8/quadEM-R7-0/db/TetrAMM.template",
>
> "P=quadEMTest:, R=TetrAMM:, PORT=TetrAMM") < /epicsioc/used/epics/synApps_5_8_3_14_8/quadEM-R7-0/iocBoot/commonPlugins.cmd
>
> epicsEnvSet("T1",  "Current1")
>
> epicsEnvSet("T2",  "Current2")
>
> epicsEnvSet("T3",  "Current3")
>
> epicsEnvSet("T4",  "Current4")
>
> epicsEnvSet("T5",  "SumX")
>
> epicsEnvSet("T6",  "SumY")
>
> epicsEnvSet("T7",  "SumAll")
>
> epicsEnvSet("T8",  "DiffX")
>
> epicsEnvSet("T9",  "DiffY")
>
> epicsEnvSet("T10", "PosX")
>
> epicsEnvSet("T11", "PosY")
>
> # Create 11 statistics plugins
>
> NDStatsConfigure("STATS1", 20, 0, "TetrAMM", 0, 0, 0) terminate called after throwing an instance of 'ParamValNotDefined'
>
>   what():  paramVal::getInteger value not defined Aborted (core dumped)
>
>
>
>
>
> Thank you for your attention,
>
> Rong

Replies:
RE: quadEM-R7-0 ParamValNotDefined Mark Rivers via Tech-talk
References:
quadEM-R7-0 ParamValNotDefined Rong Huang via Tech-talk
RE: quadEM-R7-0 ParamValNotDefined Mark Rivers via Tech-talk

Navigate by Date:
Prev: RE: quadEM-R7-0 ParamValNotDefined Mark Rivers via Tech-talk
Next: struct evSubscrip error compiling caputRecorder with EPICS 7.0.8 J. Lewis Muir 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: quadEM-R7-0 ParamValNotDefined Mark Rivers via Tech-talk
Next: RE: quadEM-R7-0 ParamValNotDefined Mark Rivers 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, 19 Dec 2023 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·