Skip to content

Filters without a deadline: iOS network filter and both platforms' breadcrumb filter never time out; Android keeps a pooled breadcrumb entry while a filter is unanswered #136

Closed

Description

@krassx

Found while documenting the 7.x beta (docs PR bugsee/docs#110). Checked against the source on main at 7.0.0-beta3; file:line references are to the SDK repo unless a repo is named. Not reproduced on a device unless a line says so.

A JS filter callback that never settles has different consequences per platform and provider:

log network breadcrumb
Android forgotten at 9 s, SDK drops at 10 s forgotten at 9 s, SDK drops at 10 s no deadline: the crumb is never recorded, its pooled entry is held
iOS no timer in the bridge (BugseeModule.mm:551-620) no deadline: a late answer is still recorded; a never answer leaves it pending no deadline

Android's breadcrumb provider borrows from a pool of 40 and does not recycle on a timeout (BreadcrumbFilterBridge.java class doc); the provider creates entries beyond the pool, so later crumbs are not lost, but each unanswered crumb leaks its entry for the session.

The JS side never settles only if the app's callback hangs, so this is an app-bug amplifier; the failure mode that is hard to see is "a breadcrumb or network event silently never appears".

Suggested direction

Give the iOS network filter and both breadcrumb filters a deadline that fails closed (drop) and recycles the entry, mirroring the Android log/network 9 s / 10 s pair; document the numbers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions