diff --git a/userspace/libsinsp/container.cpp b/userspace/libsinsp/container.cpp index 90c2a85ce1..af065d0745 100644 --- a/userspace/libsinsp/container.cpp +++ b/userspace/libsinsp/container.cpp @@ -96,10 +96,13 @@ bool sinsp_container_manager::remove_inactive_containers() for(auto it = containers->begin(); it != containers->end();) { sinsp_container_info::ptr_t container = it->second; - auto container_info = container.get(); - if (m_inspector != nullptr && container_info && container_info->m_image.empty()) + if (m_inspector != nullptr) { - m_inspector->m_sinsp_stats_v2.m_n_missing_container_images++; + auto container_info = container.get(); + if (!container_info || (container_info && container_info->m_image.empty())) + { + m_inspector->m_sinsp_stats_v2.m_n_missing_container_images++; + } } if(containers_in_use.find(it->first) == containers_in_use.end()) { diff --git a/userspace/libsinsp/stats.h b/userspace/libsinsp/stats.h index e28e4ffd59..ccc0a7406e 100644 --- a/userspace/libsinsp/stats.h +++ b/userspace/libsinsp/stats.h @@ -37,8 +37,8 @@ typedef struct sinsp_stats_v2 uint64_t m_n_failed_thread_lookups; uint64_t m_n_added_threads; uint64_t m_n_removed_threads; - uint64_t m_n_missing_container_images; - uint64_t m_n_containers; + uint32_t m_n_missing_container_images; + uint32_t m_n_containers; }sinsp_stats_v2; typedef enum sinsp_stats_v2_resource_utilization { diff --git a/userspace/libsinsp/test/sinsp_stats.ut.cpp b/userspace/libsinsp/test/sinsp_stats.ut.cpp index 963b90acc6..54a7a9537c 100644 --- a/userspace/libsinsp/test/sinsp_stats.ut.cpp +++ b/userspace/libsinsp/test/sinsp_stats.ut.cpp @@ -24,7 +24,7 @@ limitations under the License. TEST_F(sinsp_with_test_input, sinsp_stats_v2_resource_utilization) { - open_inspector(SCAP_MODE_LIVE); + open_inspector(); // Adopted from test: TEST_F(sinsp_with_test_input, PROC_FILTER_nthreads) DEFAULT_TREE /* we call a random event to obtain an event associated with this thread info */