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 systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel