[kontact] [Bug 456535] kontact crashed when closing

Matt Fagnani bugzilla_noreply at kde.org
Sun Jul 10 13:40:00 BST 2022


https://bugs.kde.org/show_bug.cgi?id=456535

--- Comment #1 from Matt Fagnani <matt.fagnani at bell.net> ---
Created attachment 150510
  --> https://bugs.kde.org/attachment.cgi?id=150510&action=edit
valgrind log when running and closing kontact

When I ran kontact in konsole, I got the following output all but the first
line of which happened when closing it.

Cannot initialize model with data QJsonObject(). missing: QJsonValue(string,
"urls")
kf.xmlgui: 0x31bb9170 deleted without having been removed from the factory
first. This will leak standalone popupmenus and could lead to crashes.
kf.xmlgui: 0x31b6b048 deleted without having been removed from the factory
first. This will leak standalone popupmenus and could lead to crashes.
kf.xmlgui: 0x31bdace0 deleted without having been removed from the factory
first. This will leak standalone popupmenus and could lead to crashes.
kf.xmlgui: 0x31ba27e8 deleted without having been removed from the factory
first. This will leak standalone popupmenus and could lead to crashes.
kf.xmlgui: 0x2ef98678 deleted without having been removed from the factory
first. This will leak standalone popupmenus and could lead to crashes.
kf.xmlgui: 0x31b8a878 deleted without having been removed from the factory
first. This will leak standalone popupmenus and could lead to crashes.
kf.xmlgui: 0x31b15598 deleted without having been removed from the factory
first. This will leak standalone popupmenus and could lead to crashes.
kf.xmlgui: 0x31b532c8 deleted without having been removed from the factory
first. This will leak standalone popupmenus and could lead to crashes.

I ran valgrind --log-file=valgrind_kontact_1.txt kontact in a Fedora 36 KDE
Plasma installation and closed it. The valgrind log showed use of uninitialized
variables repeatedly such as the following.

==2302== Conditional jump or move depends on uninitialised value(s)
==2302==    at 0x12BDC9F0: re2::SparseSetT<void>::contains(int) const
(sparse_set.h:227)
==2302==    by 0x12BFCD19: UnknownInlinedFun (sparse_set.h:156)
==2302==    by 0x12BFCD19: UnknownInlinedFun (sparse_set.h:133)
==2302==    by 0x12BFCD19: UnknownInlinedFun (prog.cc:138)
==2302==    by 0x12BFCD19: UnknownInlinedFun (prog.cc:136)
==2302==    by 0x12BFCD19: re2::Prog::Optimize() (prog.cc:241)
==2302==    by 0x12BE159B: re2::Compiler::Finish(re2::Regexp*)
(compile.cc:1172)
==2302==    by 0x12BE6898: re2::Compiler::Compile(re2::Regexp*, bool, long)
(compile.cc:1156)
==2302==    by 0x12C08E47: re2::RE2::Init(re2::StringPiece const&,
re2::RE2::Options const&) (re2.cc:223)
==2302==    by 0x12C099D3: re2::RE2::RE2(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&) (re2.cc:118)
==2302==    by 0x794DB2A: StringMismatch (gpu_control_list.cc:112)
==2302==    by 0x794DB2A: gpu::(anonymous
namespace)::StringMismatch(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, char const*) [clone
.part.0] (gpu_control_list.cc:119)
==2302==    by 0x794E2A5: StringMismatch (gpu_control_list.cc:316)
==2302==    by 0x794E2A5: gpu::GpuControlList::GLStrings::Contains(gpu::GPUInfo
const&) const (gpu_control_list.cc:316)
==2302==    by 0x7950653:
gpu::GpuControlList::Conditions::Contains(gpu::GpuControlList::OsType,
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >
const&, gpu::GPUInfo const&) const (gpu_control_list.cc:521)
==2302==    by 0x7950A75:
gpu::GpuControlList::Entry::Contains(gpu::GpuControlList::OsType,
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >
const&, gpu::GPUInfo const&) const (gpu_control_list.cc:536)
==2302==    by 0x7951665:
gpu::GpuControlList::MakeDecision(gpu::GpuControlList::OsType,
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >
const&, gpu::GPUInfo const&, unsigned int) (gpu_control_list.cc:667)
==2302==    by 0x796242C: gpu::ComputeGpuFeatureInfo(gpu::GPUInfo const&,
gpu::GpuPreferences const&, base::CommandLine*, bool*) (gpu_util.cc:588)
==2302== 
==2302== Use of uninitialised value of size 8
==2302==    at 0x12BDC9F2: re2::SparseSetT<void>::contains(int) const
(sparse_set.h:227)
==2302==    by 0x12BFCD19: UnknownInlinedFun (sparse_set.h:156)
==2302==    by 0x12BFCD19: UnknownInlinedFun (sparse_set.h:133)
==2302==    by 0x12BFCD19: UnknownInlinedFun (prog.cc:138)
==2302==    by 0x12BFCD19: UnknownInlinedFun (prog.cc:136)
==2302==    by 0x12BFCD19: re2::Prog::Optimize() (prog.cc:241)
==2302==    by 0x12BE159B: re2::Compiler::Finish(re2::Regexp*)
(compile.cc:1172)
==2302==    by 0x12BE6898: re2::Compiler::Compile(re2::Regexp*, bool, long)
(compile.cc:1156)
==2302==    by 0x12C08E47: re2::RE2::Init(re2::StringPiece const&,
re2::RE2::Options const&) (re2.cc:223)
==2302==    by 0x12C099D3: re2::RE2::RE2(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&) (re2.cc:118)
==2302==    by 0x794DB2A: StringMismatch (gpu_control_list.cc:112)
==2302==    by 0x794DB2A: gpu::(anonymous
namespace)::StringMismatch(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, char const*) [clone
.part.0] (gpu_control_list.cc:119)
==2302==    by 0x794E2A5: StringMismatch (gpu_control_list.cc:316)
==2302==    by 0x794E2A5: gpu::GpuControlList::GLStrings::Contains(gpu::GPUInfo
const&) const (gpu_control_list.cc:316)
==2302==    by 0x7950653:
gpu::GpuControlList::Conditions::Contains(gpu::GpuControlList::OsType,
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >
const&, gpu::GPUInfo const&) const (gpu_control_list.cc:521)
==2302==    by 0x7950A75:
gpu::GpuControlList::Entry::Contains(gpu::GpuControlList::OsType,
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >
const&, gpu::GPUInfo const&) const (gpu_control_list.cc:536)
==2302==    by 0x7951665:
gpu::GpuControlList::MakeDecision(gpu::GpuControlList::OsType,
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >
const&, gpu::GPUInfo const&, unsigned int) (gpu_control_list.cc:667)
==2302==    by 0x796242C: gpu::ComputeGpuFeatureInfo(gpu::GPUInfo const&,
gpu::GpuPreferences const&, base::CommandLine*, bool*) (gpu_util.cc:588)

Invalid reads which might've been use-after-free errors occurred multiple times
starting with

==2302== Invalid read of size 1
==2302==    at 0x484B5F6: strlen (vg_replace_strmem.c:495)
==2302==    by 0x987E08F: UnknownInlinedFun (char_traits.h:395)
==2302==    by 0x987E08F: UnknownInlinedFun (basic_string.h:641)
==2302==    by 0x987E08F: gl::GLSurface::ExtensionsContain(char const*, char
const*) (gl_surface.cc:271)
==2302==    by 0x988C71F: gl::GLContextEGL::Initialize(gl::GLSurface*,
gl::GLContextAttribs const&) (gl_context_egl.cc:120)
==2302==    by 0x986D474: gl::InitializeGLContext(scoped_refptr<gl::GLContext>,
gl::GLSurface*, gl::GLContextAttribs const&) (gl_context.cc:522)
==2302==    by 0x92940D8: ui::GLOzoneEGL::CreateGLContext(gl::GLShareGroup*,
gl::GLSurface*, gl::GLContextAttribs const&) (gl_ozone_egl.cc:64)
==2302==    by 0x9B804DE: gl::init::CreateGLContext(gl::GLShareGroup*,
gl::GLSurface*, gl::GLContextAttribs const&) (gl_factory_ozone.cc:74)
==2302==    by 0x795B2EE: InitializeGLContext (gpu_info_collector.cc:80)
==2302==    by 0x795B2EE: gpu::CollectGraphicsInfoGL(gpu::GPUInfo*)
(gpu_info_collector.cc:281)
==2302==    by 0xA302B16: gpu::GpuInit::InitializeInProcess(base::CommandLine*,
gpu::GpuPreferences const&) (gpu_init.cc:711)
==2302==    by 0xB73DBFE: content::InProcessGpuThread::Init()
(in_process_gpu_thread.cc:57)
==2302==    by 0x9323FB4: base::Thread::ThreadMain() (thread.cc:371)
==2302==    by 0x9341C6A: base::(anonymous namespace)::ThreadFunc(void*)
(platform_thread_posix.cc:87)
==2302==    by 0x6134E2C: start_thread (pthread_create.c:442)
==2302==  Address 0x2efb52e0 is 0 bytes inside a block of size 858 free'd
==2302==    at 0x48488DD: operator delete(void*, unsigned long)
(vg_replace_malloc.c:935)
==2302==    by 0x9887FF4: UnknownInlinedFun (new_allocator.h:158)
==2302==    by 0x9887FF4: UnknownInlinedFun (alloc_traits.h:496)
==2302==    by 0x9887FF4: UnknownInlinedFun (basic_string.h:293)
==2302==    by 0x9887FF4: UnknownInlinedFun (basic_string.h:287)
==2302==    by 0x9887FF4: UnknownInlinedFun (basic_string.h:795)
==2302==    by 0x9887FF4: ~pair (stl_pair.h:185)
==2302==    by 0x9887FF4: destroy<std::pair<void* const,
std::__cxx11::basic_string<char> > > (new_allocator.h:181)
==2302==    by 0x9887FF4: destroy<std::pair<void* const,
std::__cxx11::basic_string<char> > > (alloc_traits.h:535)
==2302==    by 0x9887FF4: _M_destroy_node (stl_tree.h:623)
==2302==    by 0x9887FF4: _M_drop_node (stl_tree.h:631)
==2302==    by 0x9887FF4: std::_Rb_tree<void*, std::pair<void* const,
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >
>, std::_Select1st<std::pair<void* const, std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > > >, std::less<void*>,
std::allocator<std::pair<void* const, std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > > >
>::_M_erase(std::_Rb_tree_node<std::pair<void* const,
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >
> >*) [clone .isra.0] (stl_tree.h:1937)
==2302==    by 0x988BE2C: _M_erase (stl_tree.h:1935)
==2302==    by 0x988BE2C: clear (stl_tree.h:1254)
==2302==    by 0x988BE2C: clear (stl_map.h:1182)
==2302==    by 0x988BE2C:
gl::RealEGLApi::SetDisabledExtensions(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&)
(gl_egl_api_implementation.cc:65)
==2302==    by 0xA302C2B: gpu::GpuInit::InitializeInProcess(base::CommandLine*,
gpu::GpuPreferences const&) (gpu_init.cc:691)
==2302==    by 0xB73DBFE: content::InProcessGpuThread::Init()
(in_process_gpu_thread.cc:57)
==2302==    by 0x9323FB4: base::Thread::ThreadMain() (thread.cc:371)
==2302==    by 0x9341C6A: base::(anonymous namespace)::ThreadFunc(void*)
(platform_thread_posix.cc:87)
==2302==    by 0x6134E2C: start_thread (pthread_create.c:442)
==2302==    by 0x61B97D3: clone (clone.S:100)
==2302==  Block was alloc'd at
==2302==    at 0x4845FF5: operator new(unsigned long) (vg_replace_malloc.c:422)
==2302==    by 0x5FBF164: std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> >::reserve(unsigned long)
(basic_string.tcc:311)
==2302==    by 0x92E7DE0: JoinStringT<base::span<const
base::BasicStringPiece<std::__cxx11::basic_string<char> > >,
std::__cxx11::basic_string<char> > (string_util_internal.h:529)
==2302==    by 0x92E7DE0:
base::JoinString(base::span<base::BasicStringPiece<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > > const,
18446744073709551615ul>,
base::BasicStringPiece<std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > >) (string_util.cc:409)
==2302==    by 0x987E65B: gl::FilterGLExtensionList(char const*,
std::vector<std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > > > const&)
(gl_implementation.cc:219)
==2302==    by 0x988C218: gl::RealEGLApi::eglQueryStringFn(void*, int)
(gl_egl_api_implementation.cc:86)
==2302==    by 0x7289747: gl::GLSurfaceEGLQt::InitializeOneOff()
(gl_surface_egl_qt.cpp:95)
==2302==    by 0x7288F88: ui::GLOzoneEGLQt::InitializeGLOneOffPlatform()
(gl_ozone_egl_qt.cpp:103)
==2302==    by 0x9B80FB9:
gl::init::InitializeGLOneOffPlatformImplementation(bool, bool, bool)
(gl_factory.cc:177)
==2302==    by 0x9B81163: gl::init::(anonymous
namespace)::InitializeGLOneOffPlatformHelper(bool) (gl_factory.cc:107)
==2302==    by 0x9B869D7: gl::init::InitializeGLNoExtensionsOneOff(bool)
(gl_factory.cc:134)
==2302==    by 0xA302600: gpu::GpuInit::InitializeInProcess(base::CommandLine*,
gpu::GpuPreferences const&) (gpu_init.cc:666)
==2302==    by 0xB73DBFE: content::InProcessGpuThread::Init()
(in_process_gpu_thread.cc:57)
==2302== 

Invalid reads which looked like buffer overreads happened many times after
that.

==2302== Thread 1:
==2302== Invalid read of size 16
==2302==    at 0x3ADE4BD5: ???
==2302==    by 0x31C1E507: ???
==2302==  Address 0x31c1e52e is 62 bytes inside a block of size 76 alloc'd
==2302==    at 0x484586F: malloc (vg_replace_malloc.c:381)
==2302==    by 0x59D8481: QArrayData::allocate(unsigned long, unsigned long,
unsigned long, QFlags<QArrayData::AllocationOption>) (qarraydata.cpp:218)
==2302==    by 0x5A560D6: allocate (qarraydata.h:224)
==2302==    by 0x5A560D6: QString::QString(int, Qt::Initialization)
(qstring.cpp:2163)
==2302==    by 0x5BE0BC0: QUtf8::convertToUnicode(char const*, int)
(qutfcodec.cpp:485)
==2302==    by 0x5A5A415: QString::fromUtf8_helper(char const*, int)
(qstring.cpp:5591)
==2302==    by 0x67EF6EF: UnknownInlinedFun (qstring.h:706)
==2302==    by 0x67EF6EF: UnknownInlinedFun (kconfig.cpp:300)
==2302==    by 0x67EF6EF: UnknownInlinedFun (stl_algo.h:4263)
==2302==    by 0x67EF6EF:
stringListFromUtf8Collection(std::unordered_set<std::basic_string_view<char,
std::char_traits<char> >, std::hash<std::basic_string_view<char,
std::char_traits<char> > >, std::equal_to<std::basic_string_view<char,
std::char_traits<char> > >, std::allocator<std::basic_string_view<char,
std::char_traits<char> > > > const&) [clone .lto_priv.0] (kconfig.cpp:299)
==2302==    by 0x67EF8B7: KConfig::groupList() const (kconfig.cpp:317)
==2302==    by 0x3F25D2BE: FolderArchiveManager::load()
(folderarchivemanager.cpp:152)
==2302==    by 0x3F306AA8: UnknownInlinedFun (folderarchivemanager.cpp:30)
==2302==    by 0x3F306AA8: KMKernel::KMKernel(QObject*) (kmkernel.cpp:130)
==2302==    by 0x3DEAD8A2: UnknownInlinedFun (kmail_part.cpp:50)
==2302==    by 0x3DEAD8A2: QObject*
KPluginFactory::createPartInstance<KMailPart>(QWidget*, QObject*,
QList<QVariant> const&) (kpluginfactory.h:881)
==2302==    by 0x4A6E4E2: KPluginFactory::create(char const*, QWidget*,
QObject*, QList<QVariant> const&, QString const&) (kpluginfactory.cpp:236)
==2302==    by 0x48CECC7: UnknownInlinedFun (kpluginfactory.h:922)
==2302==    by 0x48CECC7: UnknownInlinedFun (kpluginfactory.h:509)
==2302==    by 0x48CECC7: KontactInterface::Core::createPart(char const*)
(core.cpp:70)
==2302== 

I'm attaching the full valgrind log. I've only seen kontact crash once when
closing it several times.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the Kdepim-bugs mailing list