lirc 0.9.4a segfaults on opensuse tumbleweed

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

lirc 0.9.4a segfaults on opensuse tumbleweed

Yianni Vidalis
Hi, I just upgraded an opensuse tumbleweed pc, and I cannot start lircd anymore. Previous version was 0.9.1a-3.2 and was working flawlessly with kernel 3.19. I was using default driver with mceusb.
But I cannot start 0.9.4a with 3.19 either. I installed the debug packages and gdb gives:

Function "qFatal" not defined.
Breakpoint 1 (qFatal) pending.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
__strcmp_ssse3 () at ../sysdeps/x86_64/strcmp.S:174
174     ../sysdeps/x86_64/strcmp.S: No such file or directory.

Thread 1 (Thread 0x7ffff7fadcc0 (LWP 3366)):
#0  __strcmp_ssse3 () at ../sysdeps/x86_64/strcmp.S:174
No locals.
#1  0x00000000004034bb in main (argc=<optimized out>, argv=<optimized out>) at lircd.cpp:2443
        act = {__sigaction_handler = {sa_handler = 0x1, sa_sigaction = 0x1}, sa_mask = {__val = {140737351944308, 1, 0, 0,$
        permission = 438
        device = 0x6111f0 "/dev/lirc_mceusb"
        errmsg = '\000' <repeats 41 times>, "Dp\367\377\177\000\000\240\340\377\377\377\177\000\000\234M\026\367\377\177\0$
        opt = <optimized out>



I tried installing lircd on a different pc (a laptop) but it segfaults there, too (however, I didn't modify any lirc config, I just ran it after installation).
The installed packages (on the first affected pc are):
# rpm -qa | grep  lirc
lirc-disable-kernel-rc-0.9.4a-1.3.x86_64
lirc-config-0.9.4a-1.3.noarch
liblirc_driver0-debuginfo-0.9.4a-1.3.x86_64
liblirc_driver0-0.9.4a-1.3.x86_64
pulseaudio-module-lirc-9.0-2.2.x86_64
lirc-core-0.9.4a-1.3.x86_64
liblirc0-debuginfo-0.9.4a-1.3.x86_64
liblirc0-0.9.4a-1.3.x86_64
lirc-core-debuginfo-0.9.4a-1.3.x86_64
liblirc_client0-0.9.4a-1.3.x86_64
========================
# cat lirc_options.conf

# These are the default options to lircd, if installed as
# /etc/lirc/lirc_options.conf. See the lircd(8) and lircmd(8)
# manpages for info on the different options.
#
# Some tools including mode2 and irw uses values such as
# driver, device, plugindir and loglevel as fallback values
# in not defined elsewhere.

[lircd]
#nodaemon        = False
nodaemon        = True
#driver          = devinput
driver          = default
#device          = auto
#device          = /dev/lirc_mceusb
device          = /dev/lirc0
lircdfile       = /var/run/lirc/lircd
pidfile         = /var/run/lirc/lircd.pid
plugindir       = /usr/lib64/lirc/plugins
permission      = 666
allow-simulate  = No
repeat-max      = 600
#effective-user =
#listen         = [address:]port
#connect        = host[:port]
#loglevel       = 6
#uinput         = ...
#release        = ...
#logfile        = ...

[lircmd]
uinput          = False
nodaemon        = False

# [modinit]
# code = setserial /dev/ttyS0 uart none; modprobe lirc-serial
=====================

I'd appreciate any help.

Best regards,

Yianni.  
------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today. http://sdm.link/xeonphi
Reply | Threaded
Open this post in threaded view
|

Re: lirc 0.9.4a segfaults on opensuse tumbleweed

Alec Leamas


On 05/11/16 19:14, Yianni Vidalis wrote:
> Hi, I just upgraded an opensuse tumbleweed pc, and I cannot start lircd anymore. Previous version was 0.9.1a-3.2 and was working flawlessly with kernel 3.19. I was using default driver with mceusb.
> But I cannot start 0.9.4a with 3.19 either. I installed the debug packages and gdb gives:
>
> Function "qFatal" not defined.
> Breakpoint 1 (qFatal) pending.

> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib64/libthread_db.so.1".
>
> Program received signal SIGSEGV, Segmentation fault.
> __strcmp_ssse3 () at ../sysdeps/x86_64/strcmp.S:174
> 174     ../sysdeps/x86_64/strcmp.S: No such file or directory.
>
> Thread 1 (Thread 0x7ffff7fadcc0 (LWP 3366)):
> #0  __strcmp_ssse3 () at ../sysdeps/x86_64/strcmp.S:174
> No locals.
> #1  0x00000000004034bb in main (argc=<optimized out>, argv=<optimized out>) at lircd.cpp:2443
>         act = {__sigaction_handler = {sa_handler = 0x1, sa_sigaction = 0x1}, sa_mask = {__val = {140737351944308, 1, 0, 0,$
>         permission = 438
>         device = 0x6111f0 "/dev/lirc_mceusb"
>         errmsg = '\000' <repeats 41 times>, "Dp\367\377\177\000\000\240\340\377\377\377\177\000\000\234M\026\367\377\177\0$
>         opt = <optimized out>

OK, here are two issues:

  - lircd should not segfault, and this is a bug. Could you please file
an issue at the bugtracker about this, attaching the lirc_options.conf
you are using?

  - You seem to be confused about the driver and device options.

In short: The default devinput driver reads decoded events from the
kernel from a /dev/input/event* device. Valid devices for the devinput
driver includes devices like /dev/input/event11, 'name=*Topseed*' or a
plain 'auto'. The latter uses the first device it finds.. See the lircd
manpage for more.

The 'default' driver, the driver named 'default' is normally using the
/dev/lirc0 device. In the crash stacktrace you seem to have been using
/dev/lirc_mceusb; however, there is no such device. lirc_mcsusb is a
kernel module. The kernel loads the module and presents the output which
is raw timings on /dev/lirc0.

You should be able to walk around this by always defining both --driver
and --device, either on the commandline or in lirc_options.conf.

You should also use the latest version 0.9.4c, which has many bugfixes.

There is a configuration guide at
http://lirc.org/html/configuration-guide.html



Cheers!

--alec

------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today. http://sdm.link/xeonphi
Reply | Threaded
Open this post in threaded view
|

Απ: lirc 0.9.4a segfaults on opensuse tumbleweed

Yianni Vidalis
Hi, Alec, and thanks for your response.


OK, here are two issues:

  - lircd should not segfault, and this is a bug. Could you please file
an issue at the bugtracker about this, attaching the lirc_options.conf
you are using?

Ok, I will, tomorrow morning with a clear head!

  - You seem to be confused about the driver and device options.

In short: The default devinput driver reads decoded events from the
kernel from a /dev/input/event* device. Valid devices for the devinput
driver includes devices like /dev/input/event11, 'name=*Topseed*' or a
plain 'auto'. The latter uses the first device it finds.. See the lircd
manpage for more.

The 'default' driver, the driver named 'default' is normally using the
/dev/lirc0 device. In the crash stacktrace you seem to have been using
/dev/lirc_mceusb; however, there is no such device. lirc_mcsusb is a
kernel module. The kernel loads the module and presents the output which
is raw timings on /dev/lirc0.


Sorry about the confusion with the lirc_mceusb device, it comes from a udev rule to create a static name:

/etc/lirc # cat /etc/udev/rules.d/99-lirc-mceusb.rules
# 5/11/2013
# This is for using lirc mceusb device
# As per https://bbs.archlinux.org/viewtopic.php?id=136834
# lirc_mceusb
# then in /etc/sysconfig/lirc we point the device to /dev/lirc_mceusb
# for my hauppauge
KERNEL=="lirc[0-9]*", ATTRS{idVendor}=="0609", SYMLINK+="lirc_mceusb"
SUBSYSTEM=="rc", ATTRS{protocols}=="*lirc*" RUN+="/bin/sh -c 'echo lirc > /sys/$env{DEVPATH}/protocols'"

It was working perfectly before the upgrade, and I even tried the /dev/lirc0 device, too.

You should be able to walk around this by always defining both --driver
and --device, either on the commandline or in lirc_options.conf.

You should also use the latest version 0.9.4c, which has many bugfixes.

I'd prefer to wait for the packaged version, but I'll try and see if compilation is easy for opensuse.

There is a configuration guide at
http://lirc.org/html/configuration-guide.html


LIRC Configuration Guide - Linux Infrared Remote Control
lirc.org
About this guide. This guide tries to describe the basic configuration steps for commonly used hardware. It's focused on the basic usage scenario to get the remote ...



Cheers!

--alec




Thanks again,

Yianni.
------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today. http://sdm.link/xeonphi
Reply | Threaded
Open this post in threaded view
|

Re: lirc 0.9.4a segfaults on opensuse tumbleweed

Alec Leamas
In reply to this post by Alec Leamas


On 05/11/16 22:25, Alec Leamas wrote:

>
>
> On 05/11/16 19:14, Yianni Vidalis wrote:
>> Hi, I just upgraded an opensuse tumbleweed pc, and I cannot start
>> lircd anymore. Previous version was 0.9.1a-3.2 and was working
>> flawlessly with kernel 3.19. I was using default driver with mceusb.
>> But I cannot start 0.9.4a with 3.19 either. I installed the debug
>> packages and gdb gives:
>>
>> Function "qFatal" not defined.
>> Breakpoint 1 (qFatal) pending.
>
>> [Thread debugging using libthread_db enabled]
>> Using host libthread_db library "/lib64/libthread_db.so.1".
>>
>> Program received signal SIGSEGV, Segmentation fault.
>> __strcmp_ssse3 () at ../sysdeps/x86_64/strcmp.S:174
>> 174     ../sysdeps/x86_64/strcmp.S: No such file or directory.
>

Seems to be a broken suse package. See
https://bugzilla.opensuse.org/show_bug.cgi?id=1008764


Cheers!

--alec

------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today. http://sdm.link/xeonphi