Menu ▾ ▴

#63 Ryos MK FX causing eventhandler segfault

v1.0_(example)
closed
nobody
ryos mk fx (1)
1
2016-05-26
2016-04-14
worzel910
No

Built and installed roccat-tools 4.0, built and installed fine

My kone xtd and iskufx work fine. Tried a ryos mk fx and eventhandler throws an segfault.
Looking through journalctl it displays this
roccateventhand[2072]: segfault at 3f195 ip 00007f67442423b3 sp 00007ffe14739ba0 error 4 in libryosmkfxeventhandler.so[7f674423d000+a000]

Also ryos config shows a blank page proberbly due to the eventhandler.

The udev rules are in place for both keyboards + mouse.

I also removed the iskufx keyboard and tried.

It's been built against lua 5.2 if that makes a difference.

Mageia 5 64bit

Discussion

  • Anonymous

    Anonymous - 2016-04-16

    Maybe you have the same issue as mine, here is the backtrace :

    Thread 1 "roccateventhand" received signal SIGSEGV, Segmentation fault.
    activate_profile (eventhandler=eventhandler@entry=0x686900)
        at /var/tmp/portage/sys-apps/roccat-tools-4.0.0/work/roccat-tools-4.0.0/ryosmkfx/libryosmkfxeventhandler/ryosmkfx_eventhandler.c:106
    106 /var/tmp/portage/sys-apps/roccat-tools-4.0.0/work/roccat-tools-4.0.0/ryosmkfx/libryosmkfxeventhandler/ryosmkfx_eventhandler.c: Permission denied.
    (gdb) bt
    #0  activate_profile (eventhandler=eventhandler@entry=0x686900)
        at /var/tmp/portage/sys-apps/roccat-tools-4.0.0/work/roccat-tools-4.0.0/ryosmkfx/libryosmkfxeventhandler/ryosmkfx_eventhandler.c:106
    #1  0x00007ffff1e5b6c1 in device_add_cb (interface=<optimized out>, device=<optimized out>, user_data=<optimized out>)
        at /var/tmp/portage/sys-apps/roccat-tools-4.0.0/work/roccat-tools-4.0.0/ryosmkfx/libryosmkfxeventhandler/ryosmkfx_eventhandler.c:725
    #2  0x00007ffff7433fd5 in g_closure_invoke () from /usr/lib64/libgobject-2.0.so.0
    #3  0x00007ffff7446321 in ?? () from /usr/lib64/libgobject-2.0.so.0
    #4  0x00007ffff744edc5 in g_signal_emit_valist () from /usr/lib64/libgobject-2.0.so.0
    #5  0x00007ffff744f027 in g_signal_emit () from /usr/lib64/libgobject-2.0.so.0
    #6  0x00007ffff7bcc752 in roccat_device_scanner_interface_device_added (self=<optimized out>, device=<optimized out>)
        at /var/tmp/portage/sys-apps/roccat-tools-4.0.0/work/roccat-tools-4.0.0/libroccat/roccat_device_scanner_interface.c:37
    #7  0x00007ffff7bd1955 in handle_add (device_scanner=0x647c20, client=<optimized out>, usb_device=<optimized out>, just_plugged_in=0)
        at /var/tmp/portage/sys-apps/roccat-tools-4.0.0/work/roccat-tools-4.0.0/libroccat/roccat_device_scanner_udev.c:148
    #8  0x00007ffff7bd1ba0 in iterate_existing (device_scanner=0x647c20)
        at /var/tmp/portage/sys-apps/roccat-tools-4.0.0/work/roccat-tools-4.0.0/libroccat/roccat_device_scanner_udev.c:184
    #9  roccat_device_scanner_start (self=<optimized out>) at /var/tmp/portage/sys-apps/roccat-tools-4.0.0/work/roccat-tools-4.0.0/libroccat/roccat_device_scanner_udev.c:194
    #10 0x00000000004048dc in append_plugins (application=0x624030)
        at /var/tmp/portage/sys-apps/roccat-tools-4.0.0/work/roccat-tools-4.0.0/roccateventhandler/roccat_eventhandler_application.c:346
    #11 roccat_eventhandler_application_init (application=0x624030)
        at /var/tmp/portage/sys-apps/roccat-tools-4.0.0/work/roccat-tools-4.0.0/roccateventhandler/roccat_eventhandler_application.c:394
    #12 0x00007ffff7456689 in g_type_create_instance () from /usr/lib64/libgobject-2.0.so.0
    #13 0x00007ffff7439547 in ?? () from /usr/lib64/libgobject-2.0.so.0
    #14 0x00007ffff743af3d in g_object_newv () from /usr/lib64/libgobject-2.0.so.0
    #15 0x00007ffff743b6ac in g_object_new () from /usr/lib64/libgobject-2.0.so.0
    #16 0x0000000000404f7a in roccat_eventhandler_application_new ()
        at /var/tmp/portage/sys-apps/roccat-tools-4.0.0/work/roccat-tools-4.0.0/roccateventhandler/roccat_eventhandler_application.c:279
    #17 0x000000000040354f in main (argc=1, argv=0x7fffffffe4b8) at /var/tmp/portage/sys-apps/roccat-tools-4.0.0/work/roccat-tools-4.0.0/roccateventhandler/roccat_eventhandler.c:134
    (gdb) p priv
    $1 = (RyosmkfxEventhandlerPrivate *) 0x686850
    (gdb) p priv->effect
    $2 = (RyosEffectLua *) 0x621aa0
    (gdb) p profile_data
    $3 = (const RyosmkfxProfileData *) 0x0
    

    I tried adding a check for NULL pointers, now eventhandler doesn't crash anymore but ryos mk fx config is still blank, missing the profile page init.

     

    Last edit: Anonymous 2016-04-16
  • Anonymous

    Anonymous - 2016-04-21

    Can you give us the firmware version of your keyboard ? you should be able to get it with either roccatryosmkfxconfig or control

    From our investigation on bug #64 there is a highly likely possibility that old firmwares (1.16 for instance) reacts quite differently from moderns ones (latest i know about is 1.29) leading to roccat-tools wrongly believe that 0 profiles are presents.

    ... And to various ioctl errors preventing the tool to configure almost anything.

     
  • worzel910

    worzel910 - 2016-04-22

    Runing 1.17 on the ryos fx

     
  • Anonymous

    Anonymous - 2016-04-22

    Well i think you have to find someone with a windows station and update your keyboard with roccat's swarm then :(
    I don't know at which version the ABI changed but since 1.17 is closer to 1.16 than 1.29 and you have the same behavior i had, it seems to be a safe guess.

    I asked Roccat some technical details about how to upgrade the firmware but for now i didn't have any answers.

     
    • worzel910

      worzel910 - 2016-04-25

      Well the good news is your wright, Updated to 1.29 and now works.

      Have a lot of errors though when trying to change something

      ** (roccatryosmkfxconfig:7570): WARNING **: No marshaller for signature of signal 'BrightnessChanged'
      
      ** (roccatryosmkfxconfig:7570): WARNING **: No marshaller for signature of signal 'MacroChanged'
      
      (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_path_get_dirname: assertion 'file_name != NULL' failed
      
      (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_key_file_set_string: assertion 'string != NULL' failed
      
      (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_path_get_dirname: assertion 'file_name != NULL' failed
      
      (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_key_file_set_string: assertion 'string != NULL' failed
      
      (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_path_get_dirname: assertion 'file_name != NULL' failed
      
      (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_key_file_set_string: assertion 'string != NULL' failed
      
      (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_path_get_dirname: assertion 'file_name != NULL' failed
      
      (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_key_file_set_string: assertion 'string != NULL' failed
      
      (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_path_get_dirname: assertion 'file_name != NULL' failed                                                                                  
      
      (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_key_file_set_string: assertion 'string != NULL' failed                                                                                  
      
      (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_path_get_dirname: assertion 'file_name != NULL' failed                                                                                  
      
      (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_key_file_set_string: assertion 'string != NULL' failed
      
      (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_path_get_dirname: assertion 'file_name != NULL' failed
      
      (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_key_file_set_string: assertion 'string != NULL' failed
      
      (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_path_get_dirname: assertion 'file_name != NULL' failed
      
      (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_key_file_set_string: assertion 'string != NULL' failed
      
      (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_path_get_dirname: assertion 'file_name != NULL' failed
      
      (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_key_file_set_string: assertion 'string != NULL' failed
      
      (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_path_get_dirname: assertion 'file_name != NULL' failed
      
      (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_key_file_set_string: assertion 'string != NULL' failed
      
      (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_path_get_dirname: assertion 'file_name != NULL' failed
      
      (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_key_file_set_string: assertion 'string != NULL' failed
      
      (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_path_get_dirname: assertion 'file_name != NULL' failed
      
      (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_key_file_set_string: assertion 'string != NULL' failed
      
      (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_path_get_dirname: assertion 'file_name != NULL' failed
      
      (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_key_file_set_string: assertion 'string != NULL' failed
      
      (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_path_get_dirname: assertion 'file_name != NULL' failed
      
      (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_key_file_set_string: assertion 'string != NULL' failed
      
      (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_path_get_dirname: assertion 'file_name != NULL' failed
      
      (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_key_file_set_string: assertion 'string != NULL' failed
      [pete@com1 ~]$ su -
      Password: 
      [root@com1 ~]# ** (roccatryosmkfxconfig:7570): WARNING **: No marshaller for signature of signal 'BrightnessChanged'
      -bash: syntax error near unexpected token `roccatryosmkfxconfig:7570'
      [root@com1 ~]# 
      [root@com1 ~]# ** (roccatryosmkfxconfig:7570): WARNING **: No marshaller for signature of signal 'MacroChanged'
      -bash: syntax error near unexpected token `roccatryosmkfxconfig:7570'
      [root@com1 ~]# 
      [root@com1 ~]# (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_path_get_dirname: assertion 'file_name != NULL' failed
      -bash: syntax error near unexpected token `:'
      [root@com1 ~]# 
      [root@com1 ~]# (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_key_file_set_string: assertion 'string != NULL' failed
      -bash: syntax error near unexpected token `:'
      [root@com1 ~]# 
      [root@com1 ~]# (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_path_get_dirname: assertion 'file_name != NULL' failed
      -bash: syntax error near unexpected token `:'
      [root@com1 ~]# 
      [root@com1 ~]# (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_key_file_set_string: assertion 'string != NULL' failed
      -bash: syntax error near unexpected token `:'
      [root@com1 ~]# 
      [root@com1 ~]# (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_path_get_dirname: assertion 'file_name != NULL' failed
      -bash: syntax error near unexpected token `:'
      [root@com1 ~]# 
      [root@com1 ~]# (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_key_file_set_string: assertion 'string != NULL' failed
      -bash: syntax error near unexpected token `:'
      [root@com1 ~]# 
      [root@com1 ~]# (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_path_get_dirname: assertion 'file_name != NULL' failed
      -bash: syntax error near unexpected token `:'
      [root@com1 ~]# 
      [root@com1 ~]# (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_key_file_set_string: assertion 'string != NULL' failed
      -bash: syntax error near unexpected token `:'
      [root@com1 ~]# 
      [root@com1 ~]# (roccatryosmkfxconfig:7570): GLib-CRITICAL **: g_path_get_dirname: assertion 'file_name != NULL' failed                                                                                  
      -bash: syntax error near unexpected token `:'
      

      I'll have a play to see if it's a lib/perm thing on my end.

       
  • Anonymous

    Anonymous - 2016-04-25

    I don't think this is a permission issue, except if you have a problem i didn't have before.

    Get the patch from ticket #64 adding the "if(filename) [..]", this should fix the glib path errors
    Also, get the patch from #65 if you intend to use the export/import profile feature

     
  • worzel910

    worzel910 - 2016-05-12

    Fixed in v5 :)

     
  • Stefan Achatz

    Stefan Achatz - 2016-05-26
    • status: open --> closed
     

Anonymous
Anonymous

Add attachments
Cancel