cbowns / fitbit

Improvements to the Fitbit software on OS X
26 stars 1 forks source link

Fitbit prevents reboot #1

Closed tonyarnold closed 12 years ago

tonyarnold commented 13 years ago

I mentioned this on Twitter, but lets get it on record: Presently, fitbit seems to prevent reboots under Lion (not sure if this effects earlier releases) — I've tested under 10.7.0, 10.7.1 and 10.7.2 and every time I choose "Restart", the white reboot screen just shows the indeterminate progress spinner indefinitely.

It would be awesome if you found a way to fix this.

cbowns commented 13 years ago

My MacBook Air hangs at a grey screen with a mouse on shutdown, and it drives me batty. I’ll see what I can figure out.

(Even weirder is how to force a clean shutdown: if I tap my power button, loginwindow respawns, and I can shut down from there.)

tonyarnold commented 13 years ago

I wonder if it's the fitbit daemon (fitbitd) respawning endlessly and trying to bring services back up. A poorly configured launch daemon can potentially do this.

cbowns commented 13 years ago

So it looks like there’s two parts to the fitbit software: fitbitd, which is the userland process hangin’ out with the base station, and com.silabs.driver.SiLabsUSBDriver, which is a kext loaded when the base station is attached (and unloaded when it’s disconnected, typically).

cbowns commented 13 years ago

However, in my testing just now on my 2011 Air, I was unable to reproduce the hang, at least on a rapid reboot cycle while on battery. I tried the following configs:

cbowns commented 13 years ago

@tonyarnold, what specifc OS version are you on?

tonyarnold commented 13 years ago

@cbowns I'm on 10.7.2 (whatever the latest seed is at the time of writing).

cbowns commented 13 years ago

Ok. I just saw the hang again on shutdown in a different config, so it may be related to machine uptime with the tracker attached, or possibly other USB devices. I’ll see what I can figure out.

cbowns commented 13 years ago

[Edit: just kidding, the tracker wasn’t plugged in. Original comment below:]

t tried unloading com.fitbit.fitbitd prior to rebooting on a config that typically hangs, and the system didn’t hang. Hard to tell if this is a real fix or not, though, since I’m still hunting around for a sureshot repro case.

schwa commented 13 years ago

Wait - the hang on shutdown is due to fitbit? Motherfuckers.

I've been getting this too - not 100% of the time but enough.

cbowns commented 13 years ago

Yeah, I just hit it again. It seems to repro more reliably when I’m on power and clamshelled to my Cinema Display, but I’m still trying to figure out why.

Hung when I tried: shutdown after unloading com.fitbit.fitbitd with the base station attached to my Air via a 27” Cinema Display via USB. Disconnecting the base station didn’t unhang it.

cbowns commented 13 years ago

I need to do a better A/B test, but it appears that this may have helped my machine not hang just prior to my latest reboot:

sudo kextunload /System/Library/Extensions/SiLabsUSBDriver.kext
tonyarnold commented 13 years ago

Mine always occurs when I'm rebooting whilst my MacBook Pro is in clamshell mode connected to my Cinema Display via a ThunderBolt cable — I'll give the kextunload a go next time I need to reboot.

cbowns commented 13 years ago

Yeah, mine is in a very similar configuration: clamshell mode on a 13” TB Air, attached to a 27” (non-TB display). Give it a try, let me know how it goes.

loganb commented 13 years ago

I believe I'm experiencing this problem too; is there a way I can determine if it is actually fitbit preventing shutdown?

cbowns commented 13 years ago

@loganb Sort of: if you have a configuration that normally prevents shutdown with the Fitbit cable connected, try disconnecting it and rebooting.

manufactured commented 13 years ago

Just chiming in with a "me too."

On Aluminum iMac starting up in verbose mode, shutdown hangs indefinitely and fills the screen with:

com.apple.launchd 1 com.fitbitd 1687 PID is still valid com.apple.launchd 1 com.apple.launchd 1 System: Still alive with 1/1 (normal/anonymous) children.

Unplugging the fitbit USB cable made no difference after the mac already went into its shutdown sequence; I end up doing a hard shutdown by holding down power.

iMac was fine on reboot, problem seems intermittent now, troubleshooting as I can.

Running latest Lion.

gabrielrinaldi commented 12 years ago

I did the following test:

  1. On a clean Mac running Lion tried to reboot/shudown - OK
  2. Installed FitBit on a clean Mac running Lion and did the same - FAIL
  3. Restarted the Mac with FitBit installed but without connecting the dock - OK

So the problem is because of FitBit on Lion, and it only happens if you have the dock connected.

Temporary solution for me: Stop using FitBit, not being able to shutdown/reboot my MacBook was really annoying.

schwa commented 12 years ago

I see exactly the same problems as Gabriel.

Perhaps some kind of daemon that notices the fitbit has been disconnected and the kills fitbit processes with a extreme prejudice might work

Overkill for someone else's buggy software but hey

cbowns commented 12 years ago

Fitbit has released an update to their OS X client software that, unfortunately, overrides the launchd-based output redirection, but probably fixes at least a few of their crappy bugs (like my persistent kernel panics when detaching from a Thunderbolt display). There’s a magical secret incantation I saw a long time ago that disables their logging (via a defaults write, iirc), and I’ll comment here once I find it.

cbowns commented 12 years ago

(Found the logging silence switch for enterprising souls: http://blog.newsyland.com/mac-os-x/silence-fitbitd-console-messages. I’ll fold it into this shortly.)

tonyarnold commented 12 years ago

Thanks @cbowns!

One of us should email Fitbit and offer to turn their whacky daemon into an app that users can run/quit. At least that way there could be some kind of UI for controlling crap like this. I wonder who writes their software now? (SHAAAAME! SHAAAME!)

cbowns commented 12 years ago

Yeah, it’s still pretty gnarly. From the looks of it, they’re now using a kext loading/unloading technique to help avoid some of the USB re-enumeration issues that may have been causing kernel panics when the host’s USB tree changes. So far, it seems better?

cbowns commented 12 years ago

@tonyarnold I haven’t had any issues with their latest daemon software, how has it been treating you?

tonyarnold commented 12 years ago

@cbowns I haven't done too much testing, but my Mountain Lion install seems to be fine with the Fitbit software installed. No issues with reboots so far (although I've only rebooted 2-3 times in the last month).

cbowns commented 12 years ago

Ok, I’m thinking of closing this out. I’m pretty convinced the latest fitbit software doesn’t have this bug anymore, and it would have been pretty hard to test a workaround if it did, as I haven’t hit it in months.