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  2020  2021  2022  2023  <2024 Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  <2024
<== Date ==> <== Thread ==>

Subject: RE: pvAccess assert error
From: Mark Rivers via Core-talk <core-talk at aps.anl.gov>
To: "'tech-talk at aps.anl.gov'" <tech-talk at aps.anl.gov>
Cc: "core-talk at aps.anl.gov" <core-talk at aps.anl.gov>
Date: Tue, 27 Feb 2024 22:30:38 +0000
Folks, I’ve done some more testing on this problem: It happens on the windows-x64 and windows-x64-debug architectures. It does not happen on the windows-x64-static architecture. The application crashes if a pvAccess client connects to
ZjQcmQRYFpfptBannerStart
This Message Is From an External Sender
This message came from outside your organization.
 
ZjQcmQRYFpfptBannerEnd

Folks,

 

I’ve done some more testing on this problem:

 

  • It happens on the windows-x64 and windows-x64-debug architectures.
  • It does not happen on the windows-x64-static architecture.
  • The application crashes if a pvAccess client connects to the 13BF1:Pva1:Image, even if the camera is not acquiring.

 

This is the complete stack trace when the error happens:

 

            ucrtbased.dll!00007ffaac605d32()         Unknown

           ucrtbased.dll!00007ffaac605590()         Unknown

           pvAccess.dll!std::vector<char,std::allocator<char>>::operator[](const unsigned __int64 _Pos) Line 1885  C++

>          pvAccess.dll!epics::pvAccess::EchoTransportSender::EchoTransportSender(osiSockAddr * echoFrom, unsigned __int64 payloadSize, epics::pvData::ByteBuffer & payloadBuffer) Line 99       C++

           pvAccess.dll!epics::pvAccess::ServerEchoHandler::handleResponse(osiSockAddr * responseFrom, const std::shared_ptr<epics::pvAccess::Transport> & transport, char version, char command, unsigned __int64 payloadSize, epics::pvData::ByteBuffer * payloadBuffer) Line 234     C++

           pvAccess.dll!epics::pvAccess::ServerResponseHandler::handleResponse(osiSockAddr * responseFrom, const std::shared_ptr<epics::pvAccess::Transport> & transport, char version, char command, unsigned __int64 payloadSize, epics::pvData::ByteBuffer * payloadBuffer) Line 174     C++

           pvAccess.dll!epics::pvAccess::detail::BlockingTCPTransportCodec::processApplicationMessage() Line 319            C++

           pvAccess.dll!epics::pvAccess::detail::AbstractCodec::processReadNormal() Line 255     C++

           pvAccess.dll!epics::pvAccess::detail::AbstractCodec::processRead() Line 157     C++

           pvAccess.dll!epics::pvAccess::detail::BlockingTCPTransportCodec::receiveThread() Line 1129  C++

           pvAccess.dll!epics::pvData::detail::MethRunner<epics::pvAccess::detail::BlockingTCPTransportCodec>::run() Line 57 C++

           [External Code]

 

The last line for which I can see the source code and variable values is line 99 in pvAccess/src/server/pv/responseHandlers.h

 

https://github.com/epics-base/pvAccessCPP/blob/981ea5a540a0e53fe94fc33c8734e855b1b90e3a/src/server/pv/responseHandlers.h#L99

 

The value of payloadSize in this function is 0.  I see that line 98 above calls toEcho.resize(payLoadSize), and then passes address 0 of this vector in line 99.  This seems suspicious, but maybe it is OK?

 

Mark

 

 

From: Mark Rivers
Sent: Monday, February 26, 2024 6:37 PM
To: tech-talk at aps.anl.gov
Subject: pvAccess assert error

 

Folks,

 

I am running a new areaDetector camera.  It generates frames that are 4096x3072 pixels, 8-bit.  I can collect data from the camera at 150 frames/s using a BitFlow CoaXSpress card with no problems.  This is on a Windows PC.

 

However, when I try to use pvAccess to read the data from the NDPluginPva plugin I get an assert error in pvAccess in my Windows application.  The error message is in the attachment.

 

This happens when I use the ImageJ pvAccess plugin, and also when I use the following Linux command on another machine:

 

$ pvmonitor 13BF1:Pva1:Image > /dev/null

 

Any idea what the problem could be?  This is base 7.0.7.

 

Thanks,

Mark

 


Navigate by Date:
Prev: Re: pC_->doCallbacksEnum() coming too early Johnson, Andrew N. via Core-talk
Next: RE: pC_->doCallbacksEnum() coming too early Mark Rivers via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  <2024
Navigate by Thread:
Prev: Re: pC_->doCallbacksEnum() coming too early Johnson, Andrew N. via Core-talk
Next: Build failed: EPICS Base 7 base-7.0-1107 AppVeyor via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  <2024
ANJ, 29 Feb 2024 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·