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

            Bug ID: 386353
           Summary: Crash on startup, related to Util::Css::warningBorder
           Product: trojita
           Version: git
          Platform: Compiled Sources
                OS: OpenBSD
            Status: UNCONFIRMED
          Severity: normal
          Priority: NOR
         Component: Desktop GUI
          Assignee: trojita-b...@kde.org
          Reporter: cas...@schutijser.com
  Target Milestone: ---

Trojita currently crashes on startup on my machine (OpenBSD current on amd64,
clang 5.0.0). The back trace:

$ egdb _build/trojita
GNU gdb (GDB) 7.12.1
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-unknown-openbsd6.2".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from _build/trojita...done.
(gdb) r
Starting program: /home/caspar/src/trojita/_build/trojita 

Program received signal SIGSEGV, Segmentation fault.
0x00001f50a730a262 in std::__1::__atomic_base<int, false>::load (this=0x0,
__m=std::__1::memory_order_relaxed) at /usr/include/c++/v1/atomic:894
894             {return __c11_atomic_load(&__a_, __m);}
(gdb) bt full
#0  0x00001f50a730a262 in std::__1::__atomic_base<int, false>::load (this=0x0,
__m=std::__1::memory_order_relaxed) at /usr/include/c++/v1/atomic:894
No locals.
#1  QAtomicOps<int>::load<int> (_q_value=...) at
/usr/local/include/X11/qt5/QtCore/qatomic_cxx11.h:227
No locals.
#2  0x00001f50a730a1e5 in QBasicAtomicInteger<int>::load (this=0x0) at
/usr/local/include/X11/qt5/QtCore/qbasicatomic.h:102
No locals.
#3  0x00001f50a730a549 in QtPrivate::RefCount::ref (this=0x0) at
/usr/local/include/X11/qt5/QtCore/qrefcount.h:55
        count = 8016
#4  0x00001f50a7309f22 in QString::QString (this=0x1f50a7b7ff40
<Gui::SettingsDialog::warningStyleSheet>, other=...) at
/usr/local/include/X11/qt5/QtCore/qstring.h:907
No locals.
#5  0x00001f50a7358a6e in QStringBuilder<QString, QString>::operator QString
(this=0x7f7ffffda648) at /usr/local/include/X11/qt5/QtCore/qstringbuilder.h:147
        r = {static null = {<No data fields>}, d = 0x0}
#6  0x00001f50a7401f00 in __cxx_global_var_init () at
/home/caspar/src/trojita/src/Gui/SettingsDialog.cpp:67
No locals.
#7  0x00001f50a7412ed9 in _GLOBAL__sub_I_SettingsDialog.cpp () at
/usr/local/include/X11/qt5/QtWidgets/qwidget.h:790
        Gui::SettingsDialog::warningStyleSheet = {static null = {<No data
fields>}, d = 0x0}
#8  0x00001f50a7307662 in ?? ()
No symbol table info available.
#9  0x00001f50a7300399 in __init ()
No symbol table info available.
#10 0x00007f7ffffda6e0 in ?? ()
No symbol table info available.
#11 0x00001f50a73075a6 in _start ()
No symbol table info available.
(gdb)


Using git bisect, I identified the commit that introduced the problem: commit
f70690899d2a6c69495d225214a7279ba8c1ff73,
https://cgit.kde.org/trojita.git/commit/?id=f70690899d2a6c69495d225214a7279ba8c1ff73
Right now I'm using the patch at the bottom as a workaround. That's obviously
not a proper fix but it demonstrates that the way Util::Css::warningBorder is
used causes the problem. How can we fix this properly?

https://bugs.kde.org/show_bug.cgi?id=386351 is probably the same problem as the
diff below works for miqlas as well.

diff --git a/src/Gui/SettingsDialog.cpp b/src/Gui/SettingsDialog.cpp
index 6535caff..d9c4c44d 100644
--- a/src/Gui/SettingsDialog.cpp
+++ b/src/Gui/SettingsDialog.cpp
@@ -63,7 +63,8 @@
 namespace Gui
 {

-QString SettingsDialog::warningStyleSheet = Util::Css::warningBorder +
QStringLiteral("font-weight: bold;");
+QString SettingsDialog::warningStyleSheet = QStringLiteral("font-weight:
bold;");

 /** @short Check a text field for being non empty. If it's empty, show an
error to the user. */
 template<typename T>

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to