[{"id":33446,"web_url":"https://patchwork.libcamera.org/comment/33446/","msgid":"<Z7xkHkNv8nW3JZ2d@linux.intel.com>","date":"2025-02-24T12:20:46","subject":"Re: [PATCH 0/5] Fix occasional software ISP assertion error on stop","submitter":{"id":211,"url":"https://patchwork.libcamera.org/api/people/211/","name":"Stanislaw Gruszka","email":"stanislaw.gruszka@linux.intel.com"},"content":"Hi all,\n\nOn Mon, Feb 24, 2025 at 01:08:49PM +0100, Milan Zamazal wrote:\n> When software ISP is stopped, there can be pending messages in the\n> message queue that will attempt to call the already stopped IPA,\n> resulting in an assertion error like this:\n> \n>   FATAL default soft_ipa_proxy.cpp:456 assertion \"state_ == ProxyRunning\" failed in processStatsThread()\n> \n> This patch series fixes the problem and also attempts to prevent other\n> problems related to message handling when or after software ISP is\n> stopped.\n\nI can happily confirm this indeed fixes the assertion on qcam stop :-)\n\nFor the series:\nTested-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com>\n\n> Milan Zamazal (5):\n>   libcamera: software_isp: Emit ispStatsReady only if IPA is running\n>   libcamera: software_isp: Handle queued output buffers on stop\n>   libcamera: software_isp: Handle queued input buffers on stop\n>   libcamera: base: Fix formatting in thread.cpp\n>   libcamera: software_isp: Modify dispatching messages on stop\n> \n>  include/libcamera/base/thread.h               |  3 +-\n>  .../internal/software_isp/software_isp.h      |  3 ++\n>  src/libcamera/base/thread.cpp                 | 19 ++++----\n>  src/libcamera/software_isp/software_isp.cpp   | 46 +++++++++++++++++--\n>  .../libcamera_templates/proxy_functions.tmpl  |  2 +-\n>  5 files changed, 58 insertions(+), 15 deletions(-)\n> \n> -- \n> 2.48.1\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 7FDD4C32A9\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 24 Feb 2025 12:20:55 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A3C06686ED;\n\tMon, 24 Feb 2025 13:20:54 +0100 (CET)","from mgamail.intel.com (mgamail.intel.com [198.175.65.17])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 1951661856\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 24 Feb 2025 13:20:51 +0100 (CET)","from fmviesa002.fm.intel.com ([10.60.135.142])\n\tby orvoesa109.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n\t24 Feb 2025 04:20:50 -0800","from sgruszka-mobl.ger.corp.intel.com (HELO localhost)\n\t([10.245.97.15]) by fmviesa002-auth.fm.intel.com with\n\tESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Feb 2025 04:20:49 -0800"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=intel.com header.i=@intel.com\n\theader.b=\"gfvoDNjC\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple;\n\td=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n\tt=1740399652; x=1771935652;\n\th=date:from:to:cc:subject:message-id:references:\n\tmime-version:in-reply-to;\n\tbh=U4U3klTi5n200vckKAHwO1pkCPJRlq+Ugb85E9k/bUM=;\n\tb=gfvoDNjCt+5kB5Lr3btoOmsgDYLtuxNFIIOYAftdvYN0AFKskhbsvTKb\n\tiwZrRC3+q+acdXBxXrsUR+Hp/AmcRiaIxGwUkK5n+fZjy7xsuXITwTLbo\n\tdeDpOVRjAp+LM1b7QkrSPZc0I5UDgmo42Sj1jco0xWmZCHr8RYMLHkGSp\n\tkA4AQu6zEHvwLBRbIEZfcKhirFP01QINtTXXC0GAOlwDe9rPBSoycfwNO\n\t0dD3fFVXUGsdfn7V9P/RCFce7st9rEzqfs4S0Aw1xWJUPqvvu/fWg/ugh\n\tM/+201Ojlauoq84GqCqsMDlgasdFG6584PgWVloRSpd+bHgv9ljmePf+S Q==;","X-CSE-ConnectionGUID":["cGJOBScxTOu0+QvgXB9tUg==","pLN7xZwQSpWV5IUs9vE4Ng=="],"X-CSE-MsgGUID":["RgEdeIyaSniafHQbZiGaXw==","ZRsk+uaCQQepnMycv6mEJg=="],"X-IronPort-AV":["E=McAfee;i=\"6700,10204,11355\"; a=\"41166658\"","E=Sophos;i=\"6.13,309,1732608000\"; d=\"scan'208\";a=\"41166658\"","E=Sophos;i=\"6.13,309,1732608000\"; d=\"scan'208\";a=\"139277338\""],"X-ExtLoop1":"1","Date":"Mon, 24 Feb 2025 13:20:46 +0100","From":"Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com>","To":"Milan Zamazal <mzamazal@redhat.com>","Cc":"libcamera-devel@lists.libcamera.org,\n\tLaurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tKieran Bingham <kieran.bingham@ideasonboard.com>","Subject":"Re: [PATCH 0/5] Fix occasional software ISP assertion error on stop","Message-ID":"<Z7xkHkNv8nW3JZ2d@linux.intel.com>","References":"<20250224120854.19747-1-mzamazal@redhat.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20250224120854.19747-1-mzamazal@redhat.com>","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":33448,"web_url":"https://patchwork.libcamera.org/comment/33448/","msgid":"<Z7xnojg4RqwFL/cn@linux.intel.com>","date":"2025-02-24T12:35:46","subject":"Re: [PATCH 0/5] Fix occasional software ISP assertion error on stop","submitter":{"id":211,"url":"https://patchwork.libcamera.org/api/people/211/","name":"Stanislaw Gruszka","email":"stanislaw.gruszka@linux.intel.com"},"content":"On Mon, Feb 24, 2025 at 01:20:46PM +0100, Stanislaw Gruszka wrote:\n> Hi all,\n> \n> On Mon, Feb 24, 2025 at 01:08:49PM +0100, Milan Zamazal wrote:\n> > When software ISP is stopped, there can be pending messages in the\n> > message queue that will attempt to call the already stopped IPA,\n> > resulting in an assertion error like this:\n> > \n> >   FATAL default soft_ipa_proxy.cpp:456 assertion \"state_ == ProxyRunning\" failed in processStatsThread()\n> > \n> > This patch series fixes the problem and also attempts to prevent other\n> > problems related to message handling when or after software ISP is\n> > stopped.\n> \n> I can happily confirm this indeed fixes the assertion on qcam stop :-)\n> \n> For the series:\n> Tested-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com>\n\nAn update, I hit different one. Happened once and not reproduced\nfurther since then in approx 30 closing qcam tries.\n\nOn master + this set, is possible that other patches we recently\ndiscuss address this.\n\nRegards\nStanislaw\n\n[0:05:31.510204042] [3829] FATAL default thread.cpp:597 assertion \"!receiver->pendingMessages_\" failed in removeMessages()\nBacktrace:\nlibcamera::Thread::removeMessages(libcamera::Object*)+0x2c7 (../src/libcamera/base/thread.cpp:598)\nlibcamera::Object::~Object()+0x1f8 (../src/libcamera/base/object.cpp:113)\nlibcamera::ipa::soft::IPAProxySoft::~IPAProxySoft()+0x160 (src/libcamera/proxy/soft_ipa_proxy.cpp:98)\nlibcamera::ipa::soft::IPAProxySoft::~IPAProxySoft()+0x1c (src/libcamera/proxy/soft_ipa_proxy.cpp:98)\nstd::default_delete<libcamera::ipa::soft::IPAProxySoft>::operator()(libcamera::ipa::soft::IPAProxySoft*) const+0x2c (/usr/include/c++/13/bits/unique_ptr.h:100)\nstd::unique_ptr<libcamera::ipa::soft::IPAProxySoft, std::default_delete<libcamera::ipa::soft::IPAProxySoft> >::~unique_ptr()+0x56 (/usr/include/c++/13/bits/unique_ptr.h:405)\nlibcamera::SoftwareIsp::~SoftwareIsp()+0x6f (../src/libcamera/software_isp/software_isp.cpp:151)\nlibcamera::SoftwareIsp::~SoftwareIsp()+0x1c (../src/libcamera/software_isp/software_isp.cpp:151)\nstd::default_delete<libcamera::SoftwareIsp>::operator()(libcamera::SoftwareIsp*) const+0x2c (/usr/include/c++/13/bits/unique_ptr.h:100)\nstd::unique_ptr<libcamera::SoftwareIsp, std::default_delete<libcamera::SoftwareIsp> >::~unique_ptr()+0x56 (/usr/include/c++/13/bits/unique_ptr.h:405)\nlibcamera::SimpleCameraData::~SimpleCameraData()+0x34 (../src/libcamera/pipeline/simple/simple.cpp:214)\nlibcamera::SimpleCameraData::~SimpleCameraData()+0x1c (../src/libcamera/pipeline/simple/simple.cpp:214)\nstd::default_delete<libcamera::Extensible::Private>::operator()(libcamera::Extensible::Private*) const+0x2c (/usr/include/c++/13/bits/unique_ptr.h:100)\nstd::unique_ptr<libcamera::Extensible::Private, std::default_delete<libcamera::Extensible::Private> >::~unique_ptr()+0x56 (/usr/include/c++/13/bits/unique_ptr.h:405)\nlibcamera::Extensible::~Extensible()+0x1c (../include/libcamera/base/class.h:61)\nlibcamera::Camera::~Camera()+0x64 (../src/libcamera/camera.cpp:929)\nlibcamera::Camera::~Camera()+0x1c (../src/libcamera/camera.cpp:929)\nlibcamera::Camera::create(std::unique_ptr<libcamera::Camera::Private, std::default_delete<libcamera::Camera::Private> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::set<libcamera::Stream*, std::less<libcamera::Stream*>, std::allocator<libcamera::Stream*> > const&)::Deleter::operator()(libcamera::Camera*)+0x40 (../src/libcamera/camera.cpp:862)\nstd::_Sp_counted_deleter<libcamera::Camera*, libcamera::Camera::create(std::unique_ptr<libcamera::Camera::Private, std::default_delete<libcamera::Camera::Private> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::set<libcamera::Stream*, std::less<libcamera::Stream*>, std::allocator<libcamera::Stream*> > const&)::Deleter, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_M_dispose()+0x36 (/usr/include/c++/13/bits/shared_ptr_base.h:527)\nstd::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release_last_use()+0x27 (/usr/include/c++/13/bits/shared_ptr_base.h:187)\nstd::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release_last_use_cold()+0x1c (/usr/include/c++/13/bits/shared_ptr_base.h:199)\nstd::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release()+0x130 (/usr/include/c++/13/bits/shared_ptr_base.h:354)\nstd::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count()+0x2b (/usr/include/c++/13/bits/shared_ptr_base.h:1072)\nstd::__shared_ptr<libcamera::Camera, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr()+0x20 (/usr/include/c++/13/bits/shared_ptr_base.h:1524)\nstd::shared_ptr<libcamera::Camera>::~shared_ptr()+0x1c (/usr/include/c++/13/bits/shared_ptr.h:175)\nvoid std::_Destroy<std::shared_ptr<libcamera::Camera> >(std::shared_ptr<libcamera::Camera>*)+0x1c (/usr/include/c++/13/bits/stl_construct.h:153)\nvoid std::_Destroy_aux<false>::__destroy<std::shared_ptr<libcamera::Camera>*>(std::shared_ptr<libcamera::Camera>*, std::shared_ptr<libcamera::Camera>*)+0x2a (/usr/include/c++/13/bits/stl_construct.h:162)\nvoid std::_Destroy<std::shared_ptr<libcamera::Camera>*>(std::shared_ptr<libcamera::Camera>*, std::shared_ptr<libcamera::Camera>*)+0x27 (/usr/include/c++/13/bits/stl_construct.h:197)\nstd::vector<std::shared_ptr<libcamera::Camera>, std::allocator<std::shared_ptr<libcamera::Camera> > >::_M_erase_at_end(std::shared_ptr<libcamera::Camera>*)+0x66 (/usr/include/c++/13/bits/alloc_traits.h:949)\nstd::vector<std::shared_ptr<libcamera::Camera>, std::allocator<std::shared_ptr<libcamera::Camera> > >::clear()+0x26 (/usr/include/c++/13/bits/stl_vector.h:1606)\nlibcamera::CameraManager::Private::cleanup()+0x6b (../src/libcamera/camera_manager.cpp:181)\nlibcamera::CameraManager::Private::run()+0x130 (../src/libcamera/camera_manager.cpp:92)\nlibcamera::Thread::startThread()+0xf2 (../src/libcamera/base/thread.cpp:289)\nvoid std::__invoke_impl<void, void (libcamera::Thread::*)(), libcamera::Thread*>(std::__invoke_memfun_deref, void (libcamera::Thread::*&&)(), libcamera::Thread*&&)+0x6a (/usr/include/c++/13/bits/invoke.h:74)\nstd::__invoke_result<void (libcamera::Thread::*)(), libcamera::Thread*>::type std::__invoke<void (libcamera::Thread::*)(), libcamera::Thread*>(void (libcamera::Thread::*&&)(), libcamera::Thread*&&)+0x3b (/usr/include/c++/13/bits/invoke.h:97)\nvoid std::thread::_Invoker<std::tuple<void (libcamera::Thread::*)(), libcamera::Thread*> >::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>)+0x47 (/usr/include/c++/13/bits/std_thread.h:292)\nstd::thread::_Invoker<std::tuple<void (libcamera::Thread::*)(), libcamera::Thread*> >::operator()()+0x1c (/usr/include/c++/13/bits/std_thread.h:299)\nstd::thread::_State_impl<std::thread::_Invoker<std::tuple<void (libcamera::Thread::*)(), libcamera::Thread*> > >::_M_run()+0x20 (/usr/include/c++/13/bits/std_thread.h:244)\nexecute_native_thread_routine+0x14 (/build/gcc-14-ig5ci0/gcc-14-14.2.0/build/x86_64-linux-gnu/libstdc++-v3/include/bits/unique_ptr.h:93)\nstart_thread+0x384 (./nptl/pthread_create.c:447)\n__clone3+0x2c (../sysdeps/unix/sysv/linux/x86_64/clone3.S:80)","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 64F3CC324E\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 24 Feb 2025 12:35:55 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 85BA6686F0;\n\tMon, 24 Feb 2025 13:35:54 +0100 (CET)","from mgamail.intel.com (mgamail.intel.com [198.175.65.14])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 37C57686E1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 24 Feb 2025 13:35:52 +0100 (CET)","from orviesa004.jf.intel.com ([10.64.159.144])\n\tby orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n\t24 Feb 2025 04:35:51 -0800","from sgruszka-mobl.ger.corp.intel.com (HELO localhost)\n\t([10.245.97.15]) by orviesa004-auth.jf.intel.com with\n\tESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Feb 2025 04:35:48 -0800"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=intel.com header.i=@intel.com\n\theader.b=\"J//6pPaY\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple;\n\td=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n\tt=1740400553; x=1771936553;\n\th=date:from:to:cc:subject:message-id:references:\n\tmime-version:in-reply-to;\n\tbh=iwRb6Q9TvLLkN6byTghnuhW/FsEvovbr5ihPn9+Ozq8=;\n\tb=J//6pPaYapW8j/Hm3OK1gw4nOxGkIT8ta+wgN2zfoT2qpZ3SyESRYPU2\n\tOm9dCSRwy/tPhY6efbsJhFIweF4McZAe1+tjyt2WCTqFzr3iyI/c0fCnv\n\t5jccSO3ZfNUTa2mYVWL658+cyuodM0r+zLJtiD4OERZKUITQkRg2BZoir\n\tQxYLdv7kJc/mHs/CPa2Om3u7hROwni3I85Bwpoomhjf5kriRKsyil1iOP\n\tqNNsT9NWgnnoUCReREOAgXzRSNLcMcgm1af8mtHUUo+XZudghsL8tESaE\n\t+sHxHc5e40El17Io+s77ItV4Up6tmFuumel6JDuvCq5Mn5Bl21PF3G6yQ Q==;","X-CSE-ConnectionGUID":["7bfSMSgGRW6ZDzRn2fdIng==","k3y4+XbPRna10qKBe0N/dg=="],"X-CSE-MsgGUID":["YkdgGcgRSF27n3F3NQC2yw==","gOTLnJN5Q1GiKw6TdfjoFQ=="],"X-IronPort-AV":["E=McAfee;i=\"6700,10204,11355\"; a=\"44929370\"","E=Sophos;i=\"6.13,309,1732608000\"; d=\"scan'208\";a=\"44929370\"","E=Sophos;i=\"6.13,309,1732608000\"; d=\"scan'208\";a=\"121015786\""],"X-ExtLoop1":"1","Date":"Mon, 24 Feb 2025 13:35:46 +0100","From":"Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com>","To":"Milan Zamazal <mzamazal@redhat.com>","Cc":"libcamera-devel@lists.libcamera.org,\n\tLaurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tKieran Bingham <kieran.bingham@ideasonboard.com>","Subject":"Re: [PATCH 0/5] Fix occasional software ISP assertion error on stop","Message-ID":"<Z7xnojg4RqwFL/cn@linux.intel.com>","References":"<20250224120854.19747-1-mzamazal@redhat.com>\n\t<Z7xkHkNv8nW3JZ2d@linux.intel.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<Z7xkHkNv8nW3JZ2d@linux.intel.com>","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":33452,"web_url":"https://patchwork.libcamera.org/comment/33452/","msgid":"<85r03nmk2k.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","date":"2025-02-24T15:36:03","subject":"Re: [PATCH 0/5] Fix occasional software ISP assertion error on stop","submitter":{"id":177,"url":"https://patchwork.libcamera.org/api/people/177/","name":"Milan Zamazal","email":"mzamazal@redhat.com"},"content":"Hi Stanislaw,\n\nStanislaw Gruszka <stanislaw.gruszka@linux.intel.com> writes:\n\n> On Mon, Feb 24, 2025 at 01:20:46PM +0100, Stanislaw Gruszka wrote:\n>> Hi all,\n>> \n>> On Mon, Feb 24, 2025 at 01:08:49PM +0100, Milan Zamazal wrote:\n>> > When software ISP is stopped, there can be pending messages in the\n>> > message queue that will attempt to call the already stopped IPA,\n>> > resulting in an assertion error like this:\n>> > \n>> >   FATAL default soft_ipa_proxy.cpp:456 assertion \"state_ == ProxyRunning\" failed in\n>> > processStatsThread()\n>> > \n>> > This patch series fixes the problem and also attempts to prevent other\n>> > problems related to message handling when or after software ISP is\n>> > stopped.\n>> \n>> I can happily confirm this indeed fixes the assertion on qcam stop :-)\n\nThank you for testing.\n\n>> For the series:\n>> Tested-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com>\n>\n> An update, I hit different one. \n\nThis is a bug in the last patch of the series.  I'll post v2 with this\nfixed.\n\n> Happened once and not reproduced further since then in approx 30\n> closing qcam tries.\n>\n> On master + this set, is possible that other patches we recently\n> discuss address this.\n>\n> Regards\n> Stanislaw\n>\n> [0:05:31.510204042] [3829] FATAL default thread.cpp:597 assertion \"!receiver->pendingMessages_\" failed in\n> removeMessages()\n> Backtrace:\n> libcamera::Thread::removeMessages(libcamera::Object*)+0x2c7 (../src/libcamera/base/thread.cpp:598)\n> libcamera::Object::~Object()+0x1f8 (../src/libcamera/base/object.cpp:113)\n> libcamera::ipa::soft::IPAProxySoft::~IPAProxySoft()+0x160 (src/libcamera/proxy/soft_ipa_proxy.cpp:98)\n> libcamera::ipa::soft::IPAProxySoft::~IPAProxySoft()+0x1c (src/libcamera/proxy/soft_ipa_proxy.cpp:98)\n> std::default_delete<libcamera::ipa::soft::IPAProxySoft>::operator()(libcamera::ipa::soft::IPAProxySoft*)\n> const+0x2c (/usr/include/c++/13/bits/unique_ptr.h:100)\n> std::unique_ptr<libcamera::ipa::soft::IPAProxySoft,\n> std::default_delete<libcamera::ipa::soft::IPAProxySoft> >::~unique_ptr()+0x56\n> (/usr/include/c++/13/bits/unique_ptr.h:405)\n> libcamera::SoftwareIsp::~SoftwareIsp()+0x6f (../src/libcamera/software_isp/software_isp.cpp:151)\n> libcamera::SoftwareIsp::~SoftwareIsp()+0x1c (../src/libcamera/software_isp/software_isp.cpp:151)\n> std::default_delete<libcamera::SoftwareIsp>::operator()(libcamera::SoftwareIsp*) const+0x2c\n> (/usr/include/c++/13/bits/unique_ptr.h:100)\n> std::unique_ptr<libcamera::SoftwareIsp, std::default_delete<libcamera::SoftwareIsp> >::~unique_ptr()+0x56\n> (/usr/include/c++/13/bits/unique_ptr.h:405)\n> libcamera::SimpleCameraData::~SimpleCameraData()+0x34 (../src/libcamera/pipeline/simple/simple.cpp:214)\n> libcamera::SimpleCameraData::~SimpleCameraData()+0x1c (../src/libcamera/pipeline/simple/simple.cpp:214)\n> std::default_delete<libcamera::Extensible::Private>::operator()(libcamera::Extensible::Private*)\n> const+0x2c (/usr/include/c++/13/bits/unique_ptr.h:100)\n> std::unique_ptr<libcamera::Extensible::Private, std::default_delete<libcamera::Extensible::Private>\n>>::~unique_ptr()+0x56 (/usr/include/c++/13/bits/unique_ptr.h:405)\n> libcamera::Extensible::~Extensible()+0x1c (../include/libcamera/base/class.h:61)\n> libcamera::Camera::~Camera()+0x64 (../src/libcamera/camera.cpp:929)\n> libcamera::Camera::~Camera()+0x1c (../src/libcamera/camera.cpp:929)\n> libcamera::Camera::create(std::unique_ptr<libcamera::Camera::Private,\n> std::default_delete<libcamera::Camera::Private> >, std::__cxx11::basic_string<char,\n> std::char_traits<char>, std::allocator<char> > const&, std::set<libcamera::Stream*,\n> std::less<libcamera::Stream*>, std::allocator<libcamera::Stream*> >\n> const&)::Deleter::operator()(libcamera::Camera*)+0x40 (../src/libcamera/camera.cpp:862)\n> std::_Sp_counted_deleter<libcamera::Camera*,\n> libcamera::Camera::create(std::unique_ptr<libcamera::Camera::Private,\n> std::default_delete<libcamera::Camera::Private> >, std::__cxx11::basic_string<char,\n> std::char_traits<char>, std::allocator<char> > const&, std::set<libcamera::Stream*,\n> std::less<libcamera::Stream*>, std::allocator<libcamera::Stream*> > const&)::Deleter,\n> std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_M_dispose()+0x36\n> (/usr/include/c++/13/bits/shared_ptr_base.h:527)\n> std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release_last_use()+0x27\n> (/usr/include/c++/13/bits/shared_ptr_base.h:187)\n> std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release_last_use_cold()+0x1c\n> (/usr/include/c++/13/bits/shared_ptr_base.h:199)\n> std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release()+0x130\n> (/usr/include/c++/13/bits/shared_ptr_base.h:354)\n> std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count()+0x2b\n> (/usr/include/c++/13/bits/shared_ptr_base.h:1072)\n> std::__shared_ptr<libcamera::Camera, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr()+0x20\n> (/usr/include/c++/13/bits/shared_ptr_base.h:1524)\n> std::shared_ptr<libcamera::Camera>::~shared_ptr()+0x1c (/usr/include/c++/13/bits/shared_ptr.h:175)\n> void std::_Destroy<std::shared_ptr<libcamera::Camera> >(std::shared_ptr<libcamera::Camera>*)+0x1c\n> (/usr/include/c++/13/bits/stl_construct.h:153)\n> void\n> std::_Destroy_aux<false>::__destroy<std::shared_ptr<libcamera::Camera>*>(std::shared_ptr<libcamera::Camera>*,\n> std::shared_ptr<libcamera::Camera>*)+0x2a (/usr/include/c++/13/bits/stl_construct.h:162)\n> void std::_Destroy<std::shared_ptr<libcamera::Camera>*>(std::shared_ptr<libcamera::Camera>*,\n> std::shared_ptr<libcamera::Camera>*)+0x27 (/usr/include/c++/13/bits/stl_construct.h:197)\n> std::vector<std::shared_ptr<libcamera::Camera>, std::allocator<std::shared_ptr<libcamera::Camera> >\n>>::_M_erase_at_end(std::shared_ptr<libcamera::Camera>*)+0x66\n> (/usr/include/c++/13/bits/alloc_traits.h:949)\n> std::vector<std::shared_ptr<libcamera::Camera>, std::allocator<std::shared_ptr<libcamera::Camera> >\n>>::clear()+0x26 (/usr/include/c++/13/bits/stl_vector.h:1606)\n> libcamera::CameraManager::Private::cleanup()+0x6b (../src/libcamera/camera_manager.cpp:181)\n> libcamera::CameraManager::Private::run()+0x130 (../src/libcamera/camera_manager.cpp:92)\n> libcamera::Thread::startThread()+0xf2 (../src/libcamera/base/thread.cpp:289)\n> void std::__invoke_impl<void, void (libcamera::Thread::*)(),\n> libcamera::Thread*>(std::__invoke_memfun_deref, void (libcamera::Thread::*&&)(),\n> libcamera::Thread*&&)+0x6a (/usr/include/c++/13/bits/invoke.h:74)\n> std::__invoke_result<void (libcamera::Thread::*)(), libcamera::Thread*>::type std::__invoke<void\n> (libcamera::Thread::*)(), libcamera::Thread*>(void (libcamera::Thread::*&&)(), libcamera::Thread*&&)+0x3b\n> (/usr/include/c++/13/bits/invoke.h:97)\n> void std::thread::_Invoker<std::tuple<void (libcamera::Thread::*)(), libcamera::Thread*>\n>>::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>)+0x47 (/usr/include/c++/13/bits/std_thread.h:292)\n> std::thread::_Invoker<std::tuple<void (libcamera::Thread::*)(), libcamera::Thread*> >::operator()()+0x1c\n> (/usr/include/c++/13/bits/std_thread.h:299)\n> std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (libcamera::Thread::*)(),\n> libcamera::Thread*> > >::_M_run()+0x20 (/usr/include/c++/13/bits/std_thread.h:244)\n> execute_native_thread_routine+0x14\n> (/build/gcc-14-ig5ci0/gcc-14-14.2.0/build/x86_64-linux-gnu/libstdc++-v3/include/bits/unique_ptr.h:93)\n> start_thread+0x384 (./nptl/pthread_create.c:447)\n> __clone3+0x2c (../sysdeps/unix/sysv/linux/x86_64/clone3.S:80)","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 259F1C324E\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 24 Feb 2025 15:36:12 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 7B3D9686F4;\n\tMon, 24 Feb 2025 16:36:11 +0100 (CET)","from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.129.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 0905961856\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 24 Feb 2025 16:36:09 +0100 (CET)","from mail-wm1-f71.google.com (mail-wm1-f71.google.com\n\t[209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-673-IOrqdMrqOIS_TFFK4GmBdA-1; Mon, 24 Feb 2025 10:36:07 -0500","by mail-wm1-f71.google.com with SMTP id\n\t5b1f17b1804b1-4393e873962so23193975e9.3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 24 Feb 2025 07:36:07 -0800 (PST)","from mzamazal-thinkpadp1gen7.tpbc.csb\n\t(ip-77-48-47-2.net.vodafone.cz. [77.48.47.2])\n\tby smtp.gmail.com with ESMTPSA id\n\t5b1f17b1804b1-439b030bdb4sm110953155e9.27.2025.02.24.07.36.04\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tMon, 24 Feb 2025 07:36:05 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"EkFbAuUX\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1740411368;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=NlzvZC2oee3gWBc+wY6FmAMuZ0bXVgF1JAnc0lySdtw=;\n\tb=EkFbAuUXHte1hfn20M/EB3bOZMYP7d9GSVyT5fyQR+xeUh1QReJv2qfabhkDwMVH6puhVm\n\t3tQ5vTC2/0lAWGtKX+U3ol1CxRlq83dLJbBTBwypIIEQv07bm5c5H3OhfLGWbgZYiYigA8\n\tDnEkDplRqBLSErEygosLsfMXzt5qh5c=","X-MC-Unique":"IOrqdMrqOIS_TFFK4GmBdA-1","X-Mimecast-MFC-AGG-ID":"IOrqdMrqOIS_TFFK4GmBdA_1740411366","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1740411366; x=1741016166;\n\th=mime-version:user-agent:message-id:date:references:in-reply-to\n\t:subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=NlzvZC2oee3gWBc+wY6FmAMuZ0bXVgF1JAnc0lySdtw=;\n\tb=lI7n7AnebxmZclv1/aYqrQGcZKTM26EB3a46SdWAffz2WONuw3BOXQfVhqdhBEVigX\n\tHOQMVbrpvdDwkVUaFmBnEYqAYqoB4SF4wDz8wivZbyi6e35sBlAWoZ4xZixO9dwBpTCs\n\tvOsoGBSmOCy8G4Sb0Sl/7kJIs8AxzPtF5ivqF6TxrAY/SECc493F21T74uFYfyPru7WS\n\tIF3lhZDdnavu5eDQNfnWo6Bej87cq1WaCtUZGSR2jK/59YoJe9kRmpNXbC+dUlZ5E2LU\n\tkl7XEyi/mlxNdxw1ENcDZt+ghyLNVZw+dDUDu6H87Wi1fXm4I3SRUoCfyyPU2bvutkjY\n\tR18g==","X-Gm-Message-State":"AOJu0YyO7qhrK9LV+cr8EUGDEoJsiMVPnx0hLFAcYLy4vNPsygQ/V1eo\n\t3AN83j4Alm9Cya9IF8lkyRnk2+Ex7Qm62LzIYO5eX90Mvj4fza9E8X99JmgiC4ruP18DrNiK9AG\n\tqMC4dxcy6QjekU6ZHlZKKNCVcKhz0H4ACNlkliO9lE+ru3f/TdugaV4LG2xWm/Jq0hYk5NpJmSW\n\tK4VB4=","X-Gm-Gg":"ASbGncsXbLPAiljUagci8eLXelTK94lyDpWk9AFBkuR1Tfx0Pn+dzG7EohSbb9iDy2Y\n\tu2ro+OS0RPTRX+Rt9F3GfhFfiyCehswgVzUbVqtsiciApMY71bcm9mtvXA18KKM//SmQvmYa+PK\n\t4BVfGlfXdBV4Io3rBdRCbemZucIMhqTg69aQbWlNxddBoyW3ZgK0Dc6LNTMTpv2cSRTUbeuUIUP\n\tUXMcaC9m5UJpW1VOx1JEKGAw71XWX6EDMigLviMACz6oFB6sRjXcpNIGk6L+tEgDHxcrJBdyEgI\n\tdk+Bnfa5QG7aIKtckkGaBCnDcYBfcOa95vuvXPxnbt7+tUhnnohW6/3Q8OhhUxlppTN6","X-Received":["by 2002:a05:600c:674e:b0:439:9a5a:d3c4 with SMTP id\n\t5b1f17b1804b1-439af7f97a4mr107601715e9.2.1740411365975; \n\tMon, 24 Feb 2025 07:36:05 -0800 (PST)","by 2002:a05:600c:674e:b0:439:9a5a:d3c4 with SMTP id\n\t5b1f17b1804b1-439af7f97a4mr107601435e9.2.1740411365532; \n\tMon, 24 Feb 2025 07:36:05 -0800 (PST)"],"X-Google-Smtp-Source":"AGHT+IFluxFmA3qBsvMdyxf0cP0oeJ3g5J84dRci1evJsAUQL4zxVvHwYVM9LZyEHfhloFfkOf1M4A==","From":"Milan Zamazal <mzamazal@redhat.com>","To":"Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com>","Cc":"libcamera-devel@lists.libcamera.org,  Laurent Pinchart\n\t<laurent.pinchart@ideasonboard.com>,  Kieran Bingham\n\t<kieran.bingham@ideasonboard.com>","Subject":"Re: [PATCH 0/5] Fix occasional software ISP assertion error on stop","In-Reply-To":"<Z7xnojg4RqwFL/cn@linux.intel.com> (Stanislaw Gruszka's message\n\tof \"Mon, 24 Feb 2025 13:35:46 +0100\")","References":"<20250224120854.19747-1-mzamazal@redhat.com>\n\t<Z7xkHkNv8nW3JZ2d@linux.intel.com> <Z7xnojg4RqwFL/cn@linux.intel.com>","Date":"Mon, 24 Feb 2025 16:36:03 +0100","Message-ID":"<85r03nmk2k.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","User-Agent":"Gnus/5.13 (Gnus v5.13)","MIME-Version":"1.0","X-Mimecast-Spam-Score":"0","X-Mimecast-MFC-PROC-ID":"KbTExXoStXbfGPPdZdV7h9xhOihFTUud5FVL1LWVztc_1740411366","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]