Hi Michael,
>> So, lets look at the bluetoothd code:
>>
>> watchdog_usec = getenv("WATCHDOG_USEC");
>> seconds = atoi(watchdog_usec) / (1000 * 1000);
>>
>> watchdog = g_timeout_add_seconds_full(G_PRIORITY_HIGH,
>> seconds / 2,
>> watchdog_callback,
>> NULL, NULL);
>>
>> If WATCHDOG_USEC is smaller than 2,000,000 (2s), then "seconds" is <=1
>> and thus "seconds / 2" is 0. Thus, bluetoothd sends watchdog
>> notifications without any timeout.
>>
>> Two solutions:
>> 1) Don't set such watchdog values for bluetoothd.
>> 2) Fix bluetoothd to use "usec" instead of seconds.
>
> Thanks for the detailed analysis, David.
> This indeed looks like a bug in bluetooth. Especially since you can
> break bluetooth completely by setting e.g. WatchdogSec=0..
setting WatchdogSec=0 should disable that feature (as described in the
manpage). Which means that systemd should never give us the environment
variable WATCHDOG_USEC in the first place. Are you saying that systemd does
that. In that case that is a systemd bug.
Regards
Marcel
_______________________________________________
systemd-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/systemd-devel