Bug 168325

Summary: IrDA Services (initscript) brocken in fc4
Product: [Fedora] Fedora Reporter: morgan read <mstuff>
Component: irda-utilsAssignee: Karsten Hopp <karsten>
Status: CLOSED RAWHIDE QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 4CC: pebolle
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-08-01 12:36:50 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
patch to /etc/rc.d/init.d/irda (and to /etc/rc.d/init.d/functions) none

Description morgan read 2005-09-14 23:41:01 UTC
Description of problem:
(Not sure if I've chosen the correct component - perhaps 'initscripts'?)
Start IrDA Service, irda appears to start but fails
Stop IrDA Service, fails
Same when invoked at Startup and Shutdown
This worked in fc3 without issue
Also, see additional info

Version-Release number of selected component (if applicable):
irda-utils-0.9.16-7 (initscripts-8.11.1-1)

How reproducible:
Always

Steps to Reproduce:
1./etc/rc.d/init.d/irda start
2./etc/rc.d/init.d/irda stop
3.
  
Actual results:
No working irda service

Expected results:
Working irda service

Additional info:
- On '/etc/rc.d/init.d/irda start' there is a lot of disk activity and then no
service:
[root@morgansmachine ~]# irdadump

0 packets received by filter

- So, nothing.

- And:
[root@morgansmachine ~]# /etc/rc.d/init.d/irda stop
Shutting down IrDA:                                        [FAILED]

- Here's the end of dmesg and lsmod:
[root@morgansmachine ~]# dmesg
...
slamr: slamr0 is SiS630 card.
CSLIP: code copyright 1989 Regents of the University of California
PPP generic driver version 2.4.2
PPP Deflate Compression module registered
NET: Registered protocol family 23
IrCOMM protocol (Dag Brattli)
[root@morgansmachine ~]# lsmod | grep ir
irnet                  27397  0
irtty_sir               6209  0
sir_dev                20813  1 irtty_sir
ircomm_tty             30537  0
ircomm                 14021  1 ircomm_tty
irda                  130425  4 irnet,sir_dev,ircomm_tty,ircomm
crc_ccitt               2241  2 irda,ppp_async
ppp_generic            39892  7 irnet,ppp_deflate,ppp_async
dm_mirror              26157  0
dm_mod                 58101  8 dm_snapshot,dm_zero,dm_mirror

- But if I follow the instructions for starting IrDA from the howto at
<http://tuxmobil.org/Infrared-HOWTO/infrared-howto-s-configuration.html#id2878405>
IrDA seems to start (with swapping irtty for irtty_sir):

[root@morgansmachine ~]# modprobe irda irtty_sir
[root@morgansmachine ~]# lsmod | grep ir
irda                  130425  0
crc_ccitt               2241  2 irda,ppp_async
dm_mirror              26157  0
dm_mod                 58101  8 dm_snapshot,dm_zero,dm_mirror
[root@morgansmachine ~]# irattach /dev/ttyS1 -s
[root@morgansmachine ~]# irdadump
23:33:20.447554 xid:cmd abca3c67 > ffffffff S=6 s=0 (14)
23:33:20.537533 xid:cmd abca3c67 > ffffffff S=6 s=1 (14)
23:33:20.627517 xid:cmd abca3c67 > ffffffff S=6 s=2 (14)
23:33:20.717506 xid:cmd abca3c67 > ffffffff S=6 s=3 (14)
23:33:20.807493 xid:cmd abca3c67 > ffffffff S=6 s=4 (14)
23:33:20.897477 xid:cmd abca3c67 > ffffffff S=6 s=5 (14)
23:33:20.987467 xid:cmd abca3c67 > ffffffff S=6 s=* morgansmachine hint=0400 [
Computer ] (30)
23:33:23.447100 xid:cmd abca3c67 > ffffffff S=6 s=0 (14)
23:33:23.537077 xid:cmd abca3c67 > ffffffff S=6 s=1 (14)
23:33:23.627064 xid:cmd abca3c67 > ffffffff S=6 s=2 (14)
23:33:23.717048 xid:cmd abca3c67 > ffffffff S=6 s=3 (14)
23:33:23.807038 xid:cmd abca3c67 > ffffffff S=6 s=4 (14)
23:33:23.897023 xid:cmd abca3c67 > ffffffff S=6 s=5 (14)
23:33:23.987010 xid:cmd abca3c67 > ffffffff S=6 s=* morgansmachine hint=0400 [
Computer ] (30)

14 packets received by filter
[root@morgansmachine ~]# dmesg
...
slamr: slamr0 is SiS630 card.
CSLIP: code copyright 1989 Regents of the University of California
PPP generic driver version 2.4.2
PPP Deflate Compression module registered
NET: Registered protocol family 23
IrCOMM protocol (Dag Brattli)
NET: Unregistered protocol family 23
irda: Unknown parameter `irtty'
NET: Registered protocol family 23
NET: Unregistered protocol family 23
irda: Unknown parameter `irtty_sir'
NET: Registered protocol family 23
[root@morgansmachine ~]#

- Also, kIrDAd seems to stay 'running' after '/etc/rc.d/init.d/irda stop' and
won't be killed.

Comment 1 Paul Bolle 2005-09-15 12:17:22 UTC
I also ran into this.

I even "patched" /etc/init.d/irda (and /etc/rc.d/init.d/functions) to correct
this. Sadly, the machine I have this patch on, is now in repair. I'll try to
attach my patch shortly.

The problem is caused by
        daemon /usr/sbin/irattach ${DEVICE} ${ARGS}
in start().

My analysis: irattach will fork quite quickly and the old process will exit(0)
directly after forking. This has as a side effect that the initscript will
always return success. All subsequent errors in daemon mode (for instance errors
in [irattach/irattach.c:] start_tty()) will not be noticed by this initscript.

(A less important issue is that the initscript uses /var/lock/subsys/irda. I
think it would be more elegant to use irattachs pidfile: /var/run/irattach.pid.
I corrected that also in my patch.)

Please prod me if I haven't attached my patch in a few days.

Comment 2 Paul Bolle 2005-09-26 22:56:37 UTC
Created attachment 119282 [details]
patch to /etc/rc.d/init.d/irda (and to /etc/rc.d/init.d/functions)

As described in my earlier comment:
- adds --quiet option to daemon() in /etc/rc.d/init.d/functions
  (that file is part of the initscripts rpm)
- uses that --quiet option in /etc/rc.d/init.d/irda
- uses /var/run/irattach.pid and not /var/lock/subsys/irda

I'd appreciate any comments.

Comment 3 Karsten Hopp 2006-08-01 12:36:50 UTC
I've added your patch to the irda initscript, but didn't add --quiet to functions.
You need to propose this in a new bugzilla filed against initscripts