On Tue, 2018-11-20 at 02:46 +0100, Bernhard Übelacker wrote:
> Package: qcontrol
> Version: 0.5.6-1
> Severity: important

Thank you for your report.

> Therefore I made following change and qcontrol started up
> successfully, as far as I can see:
>     root@qnap-119p-ii:~# nano /lib/systemd/system/qcontrold.service
>     -Requires=dev-input-by\x2dpath-platform\x2dgpio_keys\x2devent.device
>     -After=dev-input-by\x2dpath-platform\x2dgpio_keys\x2devent.device
>     +#Requires=dev-input-by\x2dpath-platform\x2dgpio_keys\x2devent.device
>     +#After=dev-input-by\x2dpath-platform\x2dgpio_keys\x2devent.device
> 
>     root@qnap-119p-ii:~# systemctl daemon-reload
> 
>     root@qnap-119p-ii:~# invoke-rc.d qcontrold start

I think what you've done here is remove a (broken) dependency on the
device, which has opened up a race which you happen to be now winning
(i.e. the device happens to be present even though the package is not
longer explicitly waiting for it).

> I assume "dev-input-by\x2dpath-platform\x2dgpio_keys\x2devent.device"
> is just a systemd notation to "/dev/input/by-path/platform-gpio_keys-event",
> like used in /etc/qcontrol.conf ?

Correct.

> This path is a symlink to the actual device file:
>     root@qnap-119p-ii:~# ls -lisah 
> /dev/input/by-path/platform-gpio_keys-event /dev/input/event0 
>     5496 0 lrwxrwxrwx 1 root root       9 Nov 20 01:39 
> /dev/input/by-path/platform-gpio_keys-event -> ../event0
>     5311 0 crw-rw---- 1 root input 13, 64 Nov 20 01:39 /dev/input/event0
> 
> And following this notation waiting directly for the device I assume
> works:
>     systemctl start dev-input-event0.device
> 
> But following takes 90 seconds and responds with a failure:
>     systemctl start dev-input-by\x2dpath-
> platform\x2dgpio_keys\x2devent.device
>     Job for dev-input-byx2dpath-platformx2dgpio_keysx2devent.device
> timed out.
> 
> Some searching mentioned also a possibly missing TAG+="systemd" in the udev 
> rule,
> which made no difference as far as I can say.

What exactly did you try here? I would expect that correctly adding
this tag should have worked (and for this bug to therefore be a
duplicate of #912376).

> Maybe /dev/input/by-path/platform-gpio_keys-event would be still better,
> because that path stays the same after rmmod gpio_keys && modprobe gpio_keys.

Correct, we want to keep using the symlink for this reason, also
because plugging in any input device would cause the numbers to change
as well. Not that there is much cause to plugin e.g. a keyboard or
mouse etc, but you never know...

> But there is still the problem to tell systemd to wait for
> the symlink to the device file.

Indeed. I'm going to (speculatively) merge this with #912376 which I
intend to fix with the upload of 0.5.6-2 very shortly (hopefully today)
since I believe this should fix the issue you are seeing too. If not
then please reopen this bug (or ping me to do so).

Thanks,
Ian.

Reply via email to