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 2023 <2024> 2025 | 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 2023 <2024> 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | RE: pvAccess assert error |
From: | Mark Rivers via Tech-talk <tech-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 |
This Message Is From an External Sender
This message came from outside your organization.
Folks, I’ve done some more testing on this problem:
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 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
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 |