Bug 382656 - Crash at launch because of palette docker script
Summary: Crash at launch because of palette docker script
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Scripting (show other bugs)
Version: git master (please specify the git hash!)
Platform: Other Linux
: NOR crash
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-07-24 13:07 UTC by animtim
Modified: 2017-07-24 15:29 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description animtim 2017-07-24 13:07:56 UTC
When building Krita git master on mageia6, I have this error message:

KeyError
Python 3.5.3: /bin/python3
Mon Jul 24 15:04:12 2017

A problem occurred in a Python script.  Here is the sequence of
function calls leading up to the error, in the order they occurred.

 /home/timo/kde/inst/share/krita/pykrita/krita/dockwidgetfactory.py in createDockWidget(self=<krita.dockwidgetfactory.DockWidgetFactory object>)
    9       super().__init__(_id, _dockPosition)
   10       self.klass = _klass
   11 
   12   def createDockWidget(self):
   13       return self.klass()
self = <krita.dockwidgetfactory.DockWidgetFactory object>
self.klass = <class 'palette_docker.palette_docker.Palette_Docker'>

 /home/timo/kde/inst/share/krita/pykrita/palette_docker/palette_docker.py in __init__(self=<palette_docker.palette_docker.Palette_Docker object>)
   27             self.cmb_palettes.addItem(palette_name)
   28 
   29         self.currentPalette = Palette(allPalettes["Default"])
   30         self.cmb_palettes.currentTextChanged.connect(self.slot_paletteChanged)
   31         layout.addWidget(self.cmb_palettes) # add combobox to the layout
self = <palette_docker.palette_docker.Palette_Docker object>
self.currentPalette undefined
global Palette = <class 'PyKrita.krita.Palette'>
allPalettes = {'Concept-cookie': <PyKrita.krita.Resource object>, 'Dégradé': <PyKrita.krita.Resource object>, 'Markers': <PyKrita.krita.Resource object>, 'Par défaut': <PyKrita.krita.Resource object>, 'PixelArt 16': <PyKrita.krita.Resource object>, 'PixelArt 32': <PyKrita.krita.Resource object>, 'Ps': <PyKrita.krita.Resource object>, 'Swatch CMYK': <PyKrita.krita.Resource object>, 'Swatch RGB': <PyKrita.krita.Resource object>, 'Swatch colored grey': <PyKrita.krita.Resource object>, ...}
KeyError: 'Default'
    __cause__ = None
    __class__ = <class 'KeyError'>
    __context__ = None
    __delattr__ = <method-wrapper '__delattr__' of KeyError object>
    __dict__ = {}
    __dir__ = <built-in method __dir__ of KeyError object>
    __doc__ = 'Mapping key not found.'
    __eq__ = <method-wrapper '__eq__' of KeyError object>
    __format__ = <built-in method __format__ of KeyError object>
    __ge__ = <method-wrapper '__ge__' of KeyError object>
    __getattribute__ = <method-wrapper '__getattribute__' of KeyError object>
    __gt__ = <method-wrapper '__gt__' of KeyError object>
    __hash__ = <method-wrapper '__hash__' of KeyError object>
    __init__ = <method-wrapper '__init__' of KeyError object>
    __le__ = <method-wrapper '__le__' of KeyError object>
    __lt__ = <method-wrapper '__lt__' of KeyError object>
    __ne__ = <method-wrapper '__ne__' of KeyError object>
    __new__ = <built-in method __new__ of type object>
    __reduce__ = <built-in method __reduce__ of KeyError object>
    __reduce_ex__ = <built-in method __reduce_ex__ of KeyError object>
    __repr__ = <method-wrapper '__repr__' of KeyError object>
    __setattr__ = <method-wrapper '__setattr__' of KeyError object>
    __setstate__ = <built-in method __setstate__ of KeyError object>
    __sizeof__ = <built-in method __sizeof__ of KeyError object>
    __str__ = <method-wrapper '__str__' of KeyError object>
    __subclasshook__ = <built-in method __subclasshook__ of type object>
    __suppress_context__ = False
    __traceback__ = <traceback object>
    args = ('Default',)
    with_traceback = <built-in method with_traceback of KeyError object>

The above is a description of an error in a Python program.  Here is
the original traceback:

Traceback (most recent call last):
  File "/home/timo/kde/inst/share/krita/pykrita/krita/dockwidgetfactory.py", line 13, in createDockWidget
    return self.klass()
  File "/home/timo/kde/inst/share/krita/pykrita/palette_docker/palette_docker.py", line 29, in __init__
    self.currentPalette = Palette(allPalettes["Default"])
KeyError: 'Default'



Also, here is the gdb log:
Application: krita (krita), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7fc5995a5840 (LWP 4082))]

Thread 9 (Thread 0x7fc56318c700 (LWP 4092)):
#0  0x00007fc5a1100c4f in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007fc5a2efedfb in QWaitCondition::wait(QMutex*, unsigned long) () at /lib64/libQt5Core.so.5
#2  0x00007fc5a3bfe582 in QFileInfoGatherer::run() () at /lib64/libQt5Widgets.so.5
#3  0x00007fc5a2efdff9 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007fc5a10fb66d in start_thread () at /lib64/libpthread.so.0
#5  0x00007fc5a22fee4d in clone () at /lib64/libc.so.6

Thread 8 (Thread 0x7fc56298b700 (LWP 4091)):
#0  0x00007fc5a1100c4f in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007fc5a2efedfb in QWaitCondition::wait(QMutex*, unsigned long) () at /lib64/libQt5Core.so.5
#2  0x00007fc5a2ef83e6 in QSemaphore::tryAcquire(int, int) () at /lib64/libQt5Core.so.5
#3  0x00007fc5aa634513 in KisTileDataSwapper::waitForWork() (this=<optimized out>) at /home/timo/kde/src/krita/libs/image/tiles3/swap/kis_tile_data_swapper.cpp:86
#4  0x00007fc5aa6346da in KisTileDataSwapper::run() (this=0x7fc5aaaf1d00 <(anonymous namespace)::Q_QGS_s_instance::innerFunction()::holder+64>) at /home/timo/kde/src/krita/libs/image/tiles3/swap/kis_tile_data_swapper.cpp:92
#5  0x00007fc5a2efdff9 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#6  0x00007fc5a10fb66d in start_thread () at /lib64/libpthread.so.0
#7  0x00007fc5a22fee4d in clone () at /lib64/libc.so.6

Thread 7 (Thread 0x7fc573fff700 (LWP 4088)):
#0  0x00007fc5a1100ff8 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007fc5a2efed46 in QWaitCondition::wait(QMutex*, unsigned long) () at /lib64/libQt5Core.so.5
#2  0x00007fc5a2efa764 in QThreadPoolThread::run() () at /lib64/libQt5Core.so.5
#3  0x00007fc5a2efdff9 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007fc5a10fb66d in start_thread () at /lib64/libpthread.so.0
#5  0x00007fc5a22fee4d in clone () at /lib64/libc.so.6

Thread 6 (Thread 0x7fc578fe8700 (LWP 4087)):
#0  0x00007fc5a1100ff8 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007fc5a2efed46 in QWaitCondition::wait(QMutex*, unsigned long) () at /lib64/libQt5Core.so.5
#2  0x00007fc5a2efa764 in QThreadPoolThread::run() () at /lib64/libQt5Core.so.5
#3  0x00007fc5a2efdff9 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007fc5a10fb66d in start_thread () at /lib64/libpthread.so.0
#5  0x00007fc5a22fee4d in clone () at /lib64/libc.so.6

Thread 5 (Thread 0x7fc5797e9700 (LWP 4086)):
#0  0x00007fc5a1100ff8 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007fc5a2efed46 in QWaitCondition::wait(QMutex*, unsigned long) () at /lib64/libQt5Core.so.5
#2  0x00007fc5a2efa764 in QThreadPoolThread::run() () at /lib64/libQt5Core.so.5
#3  0x00007fc5a2efdff9 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007fc5a10fb66d in start_thread () at /lib64/libpthread.so.0
#5  0x00007fc5a22fee4d in clone () at /lib64/libc.so.6

Thread 4 (Thread 0x7fc579fea700 (LWP 4085)):
#0  0x00007fc5a1100ff8 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007fc5a2efed46 in QWaitCondition::wait(QMutex*, unsigned long) () at /lib64/libQt5Core.so.5
#2  0x00007fc5a2efa764 in QThreadPoolThread::run() () at /lib64/libQt5Core.so.5
#3  0x00007fc5a2efdff9 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007fc5a10fb66d in start_thread () at /lib64/libpthread.so.0
#5  0x00007fc5a22fee4d in clone () at /lib64/libc.so.6

Thread 3 (Thread 0x7fc585019700 (LWP 4084)):
#0  0x00007fc5a22f300d in poll () at /lib64/libc.so.6
#1  0x00007fc59e95dc94 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#2  0x00007fc59e95dd9c in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#3  0x00007fc5a3113e2b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#4  0x00007fc5a30bf49a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#5  0x00007fc5a2ef93bc in QThread::exec() () at /lib64/libQt5Core.so.5
#6  0x00007fc5a6095635 in QDBusConnectionManager::run() () at /lib64/libQt5DBus.so.5
#7  0x00007fc5a2efdff9 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#8  0x00007fc5a10fb66d in start_thread () at /lib64/libpthread.so.0
#9  0x00007fc5a22fee4d in clone () at /lib64/libc.so.6

Thread 2 (Thread 0x7fc58fe1f700 (LWP 4083)):
#0  0x00007fc5a22f300d in poll () at /lib64/libc.so.6
#1  0x00007fc5a5c55902 in _xcb_conn_wait () at /lib64/libxcb.so.1
#2  0x00007fc5a5c57657 in xcb_wait_for_event () at /lib64/libxcb.so.1
#3  0x00007fc591ca7be9 in QXcbEventReader::run() () at /lib64/libQt5XcbQpa.so.5
#4  0x00007fc5a2efdff9 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#5  0x00007fc5a10fb66d in start_thread () at /lib64/libpthread.so.0
#6  0x00007fc5a22fee4d in clone () at /lib64/libc.so.6

Thread 1 (Thread 0x7fc5995a5840 (LWP 4082)):
[KCrash Handler]
#6  0x00007fc5a3b038b0 in QDockWidget::toggleViewAction() const () at /lib64/libQt5Widgets.so.5
#7  0x00007fc5abb122f0 in KisMainWindow::KisMainWindow() (this=<optimized out>, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /home/timo/kde/src/krita/libs/ui/KisMainWindow.cpp:325
#8  0x00007fc5abb1e576 in KisPart::createMainWindow() (this=0x7fc5ac007fe0 <_ZZN12_GLOBAL__N_116Q_QGS_s_instance13innerFunctionEvE6holder>) at /home/timo/kde/src/krita/libs/ui/KisPart.cpp:210
#9  0x00007fc5abad8290 in KisApplication::start(KisApplicationArguments const&) (this=this@entry=0x7fffa89d44b0, args=...) at /home/timo/kde/src/krita/libs/ui/KisApplication.cpp:422
#10 0x000000000040532e in main(int, char**) (argc=1, argv=<optimized out>) at /home/timo/kde/src/krita/krita/main.cc:257
Comment 1 wolthera 2017-07-24 15:20:29 UTC
default is the palette named default... why don't you have this?

I mean, I can try to get the last selected palette from the config, but honestly, why don't you have the default palette?
Comment 2 wolthera 2017-07-24 15:29:02 UTC
Git commit 81fda7a88f945f3d71cd8cd4a4b29555a515a688 by Wolthera van Hövell tot Westerflier.
Committed on 24/07/2017 at 15:28.
Pushed by woltherav into branch 'master'.

Pick the first palette in the list always to prevent crashes.

But why are people missing the default palette?

M  +1    -1    plugins/extensions/pykrita/plugin/plugins/palette_docker/palette_docker.py

https://commits.kde.org/krita/81fda7a88f945f3d71cd8cd4a4b29555a515a688