Skip to content

Commit

Permalink
don't upload crash logs from forks (commaai#30203)
Browse files Browse the repository at this point in the history
* don't upload crash logs from forks

* fix
  • Loading branch information
adeebshihadeh authored Oct 6, 2023
1 parent 8b2b724 commit 1abea5a
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 15 deletions.
6 changes: 4 additions & 2 deletions selfdrive/sentry.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,11 @@ def set_tag(key: str, value: str) -> None:
sentry_sdk.set_tag(key, value)


def init(project: SentryProject) -> None:
def init(project: SentryProject) -> bool:
# forks like to mess with this, so double check
comma_remote = is_comma_remote() and "commaai" in get_origin(default="")
if not comma_remote or not is_registered_device() or PC:
return
return False

env = "release" if is_tested_branch() else "master"
dongle_id = Params().get("DongleId", encoding='utf-8')
Expand All @@ -73,3 +73,5 @@ def init(project: SentryProject) -> None:

if project == SentryProject.SELFDRIVE:
sentry_sdk.Hub.current.start_session()

return True
31 changes: 18 additions & 13 deletions selfdrive/tombstoned.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,19 +46,16 @@ def get_apport_stacktrace(fn):


def get_tombstones():
"""Returns list of (filename, ctime) for all tombstones in /data/tombstones
and apport crashlogs in /var/crash"""
"""Returns list of (filename, ctime) for all crashlogs"""
files = []
for folder in [TOMBSTONE_DIR, APPORT_DIR]:
if os.path.exists(folder):
with os.scandir(folder) as d:

# Loop over first 1000 directory entries
for _, f in zip(range(1000), d, strict=False):
if f.name.startswith("tombstone"):
files.append((f.path, int(f.stat().st_ctime)))
elif f.name.endswith(".crash") and f.stat().st_mode == 0o100640:
files.append((f.path, int(f.stat().st_ctime)))
if os.path.exists(APPORT_DIR):
with os.scandir(APPORT_DIR) as d:
# Loop over first 1000 directory entries
for _, f in zip(range(1000), d, strict=False):
if f.name.startswith("tombstone"):
files.append((f.path, int(f.stat().st_ctime)))
elif f.name.endswith(".crash") and f.stat().st_mode == 0o100640:
files.append((f.path, int(f.stat().st_ctime)))
return files


Expand Down Expand Up @@ -143,7 +140,7 @@ def report_tombstone_apport(fn):


def main() -> NoReturn:
sentry.init(sentry.SentryProject.SELFDRIVE_NATIVE)
should_report = sentry.init(sentry.SentryProject.SELFDRIVE_NATIVE)

# Clear apport folder on start, otherwise duplicate crashes won't register
clear_apport_folder()
Expand All @@ -153,6 +150,14 @@ def main() -> NoReturn:
now_tombstones = set(get_tombstones())

for fn, _ in (now_tombstones - initial_tombstones):
# clear logs if we're not interested in them
if not should_report:
try:
os.remove(fn)
except Exception:
pass
continue

try:
cloudlog.info(f"reporting new tombstone {fn}")
if fn.endswith(".crash"):
Expand Down

0 comments on commit 1abea5a

Please sign in to comment.