New issue
Advanced search Search tips

Issue 624999 link

Starred by 2 users

Issue metadata

Status: WontFix
Owner: ----
Closed: Nov 14
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Feature



Sign in to add a comment

Callbacks may be dropped and it's relatively difficult to discover where and when this happens

Project Member Reported by ortuno@chromium.org, Jul 1 2016

Issue description

Having stack traces about these cases happening in the wild would really help debug issues.

In Web Bluetooth we have some issues opened in which Web Bluetooth randomly stops working. After some investigation I figured out that at least the reproducible instance was because of a callback being dropped and our service being destroyed because the pipe closed. I suspect that other reports are for similar reasons but the lack of reproduction steps or any type of logging is making it really hard to debug.

We would be happy with a LOG(WARNING) or a LOG(ERROR) given that our users are used to submitting logs.


 
Status: Assigned (was: Untriaged)
Cc: yzshen@chromium.org
Labels: -Pri-3 Pri-2
Summary: Callbacks may be dropped and it's relatively difficult to discover where and when this happens (was: Should we CHECK when callbacks are dropped?)
I don't think a LOG(WARNING) or LOG(ERROR) is the best approach here. It might be suitable for issues hit in developer-focused feature implementations but many more features will have the potential to hit this and we can't rely on log submissions.

Given that it's not crash-worthy (IMHO) maybe it would make sense to use base::DumpWithoutCrashing() to log these occurrences. This would get us crash reports with full stacks from exactly where a callback was dropped.
SGTM

Comment 4 by roc...@chromium.org, May 29 2017

Cc: roc...@chromium.org
Components: Internals>Mojo>Bindings
Owner: ----
Status: Available (was: Assigned)
Project Member

Comment 5 by sheriffbot@chromium.org, May 29 2018

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Cc: -roc...@chromium.org rockot@google.com
Cc: -yzshen@chromium.org
Status: Assigned (was: Untriaged)
DumpWithoutCrashing is actually pretty strongly discouraged now.

I think I'll just make this a CHECK failure, as it should be considered a programmer error in the same vein as a memory leak. I'm terrified of just how many bugs are going to get assigned to me once I land this, but I think it might be better than having random silent failures. :}

Status: WontFix (was: Assigned)
Actually, nevermind. It turns out that checking the callback status must be done asynchronously, and generating code to do this on every interface has a non-negligible impact on binary size, so we only generate it with DCHECK on.

I think we have to be OK with this as-is. At least now we have Albatross feeding reports from DCHECK builds in the wild.

Sign in to add a comment