EPICS Controls Argonne National Laboratory

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: AW: Crash in EPICS 7 at iocInit
From: "Zimoch Dirk \(PSI\) via Core-talk" <core-talk at aps.anl.gov>
To: Michael Davidsaver <mdavidsaver at gmail.com>
Cc: "'core-talk at aps.anl.gov'" <core-talk at aps.anl.gov>
Date: Tue, 11 Aug 2020 12:32:19 +0000
The IOC does not crash with 7.0.3.1, but it always crashes with 7.0.4 on this architecture. My 7.0.4 includes all 7.0 commits up to 19146a597b42bc5f03aed1d97ccef56b4c4d0fac.

I have set the breakpoint
(gdb) break clientContextImpl.cpp:4758
Breakpoint 1 at 0xfc6db80: file ../../src/remoteClient/clientContextImpl.cpp, line 4758.
and restarted the program.
(gdb) print internal
$6 = {<std::tr1::__shared_ptr<<unnamed>::InternalClientContextImpl,_S_atomic>> = {_M_ptr = 0x100c0d50, _M_refcount = {
      _M_pi = 0x100be220}}, <No data fields>}
(gdb) print internal._M_ptr
$7 = ((anonymous namespace)::InternalClientContextImpl *) 0x100c0d50
(gdb) print *internal._M_ptr
Cannot access memory at address 0x1fcffc90

Is that normal?

(gdb) print external
$8 = {<std::tr1::__shared_ptr<<unnamed>::InternalClientContextImpl,_S_atomic>> = {_M_ptr = 0x100c0d50, _M_refcount = {
      _M_pi = 0x100be148}}, <No data fields>}

(gdb) step

Program received signal SIGSEGV, Segmentation fault.
0x00000028 in ?? ()


> -----Ursprüngliche Nachricht-----
> Von: Michael Davidsaver <mdavidsaver at gmail.com>
> Gesendet: Montag, 10. August 2020 16:53
> An: Zimoch Dirk (PSI) <dirk.zimoch at psi.ch>
> Cc: 'core-talk at aps.anl.gov' <core-talk at aps.anl.gov>
> Betreff: Re: Crash in EPICS 7 at iocInit
> 
> On 8/10/20 7:43 AM, Zimoch Dirk (PSI) via Core-talk wrote:
> > Program terminated with signal 11, Segmentation fault.
> > #0 0x00000028 in ?? ()
> > (gdb) bt
> > #0 0x00000028 in ?? ()
> 
> This is consistent a bad virtual call (this==NULL).  However,
> I don't think this could happen as the preceding 'new'
> should throw an exception on error.  The PVA code makes
> extensive use of exceptions, so building with eg. '-fno-exception'
> is not supported.
> 
> The alternative I can think of is stack corruption in 'initialize()'.
> 
> If this is happening consistently, can you set a break point on
> line 4758 and inspect the value of 'internal' before the call?
> 
> 
> > #1 0x0fc6db90 in epics::pvAccess::createClientProvider (conf=...) at
> ../../src/remoteClient/clientContextImpl.cpp:4758
> > #2 0x0fbe33a4 in epics::pvAccess::(anonymous
> namespace)::FunctionFactory::newInstance (this=<optimized out>, conf=<error
> reading variable: value has been optimized out>)
> > at ../../src/factory/ChannelAccessFactory.cpp:118
> > #3 0x0fbe4ac0 in epics::pvAccess::ChannelProviderRegistry::createProvider
> (this=<optimized out>, providerName=..., conf=...) at
> ../../src/factory/ChannelAccessFactory.cpp:57
> > #4 0x0fbb91b4 in pvac::ClientProvider::ClientProvider (this=0x7ff43dc0,
> providerName=..., conf=...) at ../../src/client/client.cpp:270
> > #5 0x0ff7dafc in (anonymous namespace)::initPVALink(._91) (state=<optimized
> out>) at ../pvalink.cpp:120
> > #6 0x0f63d49c in initHookAnnounce (state=initHookAfterInitDatabase) at
> ../iocsh/initHooks.c:87
> > #7 0x0f7efa80 in iocBuild_2 () at ../misc/iocInit.c:168
> > #8 0x0f7efd68 in iocBuild () at ../misc/iocInit.c:205
> > #9 0x0f7efde0 in iocInit () at ../misc/iocInit.c:110
> > #10 0x0f7f0330 in iocInitCallFunc (args=<error reading variable: value has been
> optimized out>) at ../misc/miscIocRegister.c:25
> > #11 0x0f63c834 in iocshBody (pathname=0x14 <Address 0x14 out of bounds>,
> commandLine=0x0, macros=0x0) at ../iocsh/iocsh.cpp:937
> > #12 0x0f63ca18 in iocsh (pathname=<error reading variable: value has been
> optimized out>) at ../iocsh/iocsh.cpp:1013
> > #13 0x10004c8c in main (argc=1, argv=0x7ff44250) at ../softMain.cpp:236
> >
> > In modules/pvAccess/src/remoteClient/clientContextImpl.cpp line 4758
> 'internal' seems to be NULL:
> >     internal->initialize();
> >
> > This only happens with one of my embedded Linux architectures using ELDK
> 4.2. It uses gcc 4.2.2.
> >


References:
Crash in EPICS 7 at iocInit Zimoch Dirk (PSI) via Core-talk
Re: Crash in EPICS 7 at iocInit Michael Davidsaver via Core-talk

Navigate by Date:
Prev: [Bug 1783475] Re: const link support can't handle escaped charactors Andrew Johnson via Core-talk
Next: epicsExportShared symbols Mark Rivers 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: Re: Crash in EPICS 7 at iocInit Michael Davidsaver via Core-talk
Next: Re: AW: Crash in EPICS 7 at iocInit Michael Davidsaver 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 
ANJ, 11 Aug 2020 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·