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(QFlags<QEventLoop::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 <[email protected]> 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/Y2CCRubyClient.h
> https://github.com/yast/yast-ruby-bindings/blob/master/src/binary/Y2RubyClientComponent.h
>
> actual call of client
> https://github.com/yast/yast-ruby-bindings/blob/master/src/binary/Y2RubyClientComponent.cc#L53
> https://github.com/yast/yast-ruby-bindings/blob/master/src/binary/YRuby.cc#L237
>
> 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
[email protected]
SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 
(AG Nürnberg)

-- 
To unsubscribe, e-mail: [email protected]
To contact the owner, e-mail: [email protected]

Reply via email to