Here's a backtrace from the core dump: #0 0x00007f1b19bc12c7 in ?? () from /lib64/libgcc_s.so.1 #1 0x00007f1b19bc2e78 in _Unwind_Backtrace () from /lib64/libgcc_s.so.1 #2 0x00007f1b2b679268 in backtrace () from /lib64/libc.so.6 #3 0x00007f1b185965e5 in ?? () from /usr/lib64/libruby2.2.so.2.2 #4 0x00007f1b1859681c in ?? () from /usr/lib64/libruby2.2.so.2.2 #5 0x00007f1b18472c4b in ?? () from /usr/lib64/libruby2.2.so.2.2 #6 0x00007f1b1852929e in ?? () from /usr/lib64/libruby2.2.so.2.2 #7 <signal handler called> #8 0x0000000000000060 in ?? () #9 0x00007f1b103d3c79 in QMetaObject::cast(QObject const*) const () from /usr/lib64/libQt5Core.so.5 #10 0x00007f1b111a1d8d in ?? () from /usr/lib64/libQt5Widgets.so.5 #11 0x00007f1b1115d276 in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/libQt5Widgets.so.5 #12 0x00007f1b103cb578 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib64/libQt5Core.so.5 #13 0x00007f1b1041f5ae in QTimerInfoList::activateTimers() () from /usr/lib64/libQt5Core.so.5 #14 0x00007f1b1041fca1 in ?? () from /usr/lib64/libQt5Core.so.5 #15 0x00007f1b0ea9cb37 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0 #16 0x00007f1b0ea9cd68 in ?? () from /usr/lib64/libglib-2.0.so.0 #17 0x00007f1b0ea9cdfc in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0 #18 0x00007f1b1042073f in QEventDispatcherGlib::processEvents(QFlagsQEventLoop::ProcessEventsFlag) () from /usr/lib64/libQt5Core.so.5 #19 0x00007f1b11e4571d in YQUI::idleLoop(int) () from /usr/lib64/yui/libyui-qt.so.8 #20 0x00007f1b1b1daadc in YUI::uiThreadMainLoop (this=0x558d3a611d60) at /usr/src/debug/libyui-3.3.3/src/YUI.cc:357 #21 0x00007f1b1b1dac9e in start_ui_thread (yui=<optimized out>) at /usr/src/debug/libyui-3.3.3/src/YUI.cc:493 #22 0x00007f1b2b92b4e7 in start_thread () from /lib64/libpthread.so.0 #23 0x00007f1b2b66ba2f in clone () from /lib64/libc.so.6 I'll try valgrinding it and send you the results. On 10/02/2017 09:51 AM, Josef Reidinger wrote:
V Mon, 2 Oct 2017 09:34:27 -0600 David Mulder
napsáno: I've written a yast module in python (can be found here: https://github.com/dmulder/yast-gpmc ), and have encountered some issues.
* When exiting the module, it always crashes, with a backtrace. It appears that yast is crashing in a destructor somewhere. <main>: [BUG] Segmentation fault at 0x000000000017f0 ruby 2.2.6p396 (2016-11-15 revision 56800) [x86_64-linux-gnu]
-- Control frame information ----------------------------------------------- c:0001 p:0000 s:0002 E:0025e0 TOP [FINISH]
-- Machine register context ------------------------------------------------ RIP: 0x00000000000017f0 RBP: 0x00007f69a34388c0 RSP: 0x00007f699f6b9a98 RAX: 0x00007f69983cff90 RBX: 0x00007f69980eb2a0 RCX: 0x00007f6998002e80 RDX: 0x00007f699f6b9cf0 RDI: 0x00007f69980eb2a0 RSI: 0x00007f69980eb2a0 R8: 0x00007f69984dadc8 R9: 0x00007f69984dada0 R10: 0x000055efbe7e7660 R11: 0x0000000000040614 R12: 0x00007f699f6b9cf0 R13: 0x00007f6998002150 R14: 0x00007f69980eb2a0 R15: 0x00007f699f6b9cf0 EFL: 0x0000000000010206
-- C level backtrace information ------------------------------------------- output is not much helpful, can you debug it with gdb and valgrind and print where it is badly accessed?
* Yast doesn't recognize python modules that are installed, and doesn't add them to the menu.
l /usr/local/share/YaST2/clients/gpmc.py -rw-r--r-- 1 root root 2057 Sep 28 09:03 /usr/local/share/YaST2/clients/gpmc.py sudo yast2 gpmc No such client module gpmc
It is known limitation of python bindings. Perl and python bindings does not have support for clients. Only ruby bindings have it and it was a bit tricky to add it. If you want to add it to python, check how ruby ones are done:
https://github.com/yast/yast-ruby-bindings/blob/master/src/binary/Y2CCRubyCl... https://github.com/yast/yast-ruby-bindings/blob/master/src/binary/Y2RubyClie...
actual call of client https://github.com/yast/yast-ruby-bindings/blob/master/src/binary/Y2RubyClie... https://github.com/yast/yast-ruby-bindings/blob/master/src/binary/YRuby.cc#L...
so in short. You have to have Component creator for clients, then client component which do then actual call of python method that somehow invoke python code.
-- David Mulder SUSE Labs Software Engineer - Samba dmulder@suse.com SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg) -- To unsubscribe, e-mail: yast-devel+unsubscribe@opensuse.org To contact the owner, e-mail: yast-devel+owner@opensuse.org