EPICS Home

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  <20242025  Index 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: 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  <20242025 
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  <20242025