rowboatlabs / rowboatlabs/rowboat

Crash (EXC_BREAKPOINT/SIGTRAP) during Google OAuth sign-in on macOS 27 beta

Open
#862 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
17.6k
Forks
1.7k
Avg merge
11h 37m
Merged PRs (30d)
173

Description

## Description

Rowboat 0.8.7 crashes with `EXC_BREAKPOINT` / `SIGTRAP` inside the bundled Node/V8
runtime, reproduced twice within a few minutes on the same machine. Both crash
reports have an (almost) identical native stack, so this looks deterministic
rather than random memory corruption.

## Environment

- Rowboat version: 0.8.7 (latest at time of filing)
- macOS: 27.0, build `26A5406e` (**beta**)
- Hardware: Apple Silicon (Mac16,12)

## Steps to reproduce

1. Open Settings → Connections
2. Click "Connect" under Google (Primary accounts) to start Gmail sign-in
3. If the browser callback doesn't complete immediately, click "Connect" again
before the first attempt finishes/errors
4. App crashes shortly after — both crashes in the two attached reports happened
right after TLS certificate validation activity (`SecTrustCopyAppleTrustAnchors`,
`SecKeyVerifySignature` in the system log), consistent with the OAuth token
exchange network call

Note: retrying "Connect" while a prior sign-in flow is still active also
separately produces a `Port 8081 is unavailable (EADDRINUSE)` error dialog
(the callback server from the earlier attempt isn't released before the new
one binds) — possibly related, possibly a separate symptom of the same
underlying race.

## Crash signature (both reports, same top frames)

```
Exception Type: EXC_BREAKPOINT (SIGTRAP)

ares_dns_rr_get_ttl (likely mis-symbolicated, stripped binary)
ares_dns_rr_get_ttl
ares_dns_rr_get_ttl
node::sqlite::UserDefinedFunction::xDestroy(void*)
v8::PropertyDescriptor::set() const
v8::PropertyDescriptor::set() const
temporal_rs_PlainDateTime_days_in_week
v8::Value::IsFunction() const
v8::Value::IsFunction() const
v8::Value::IsFunction() const
v8::internal::compiler::CompilationDependencies::DependOnConsistentJSFunctionView(...)
v8::internal::compiler::CompilationDependencies::DependOnConsistentJSFunctionView(...)
```

I want to flag explicitly: the symbol names above are almost certainly
**mis-attributed** (nearest-export symbolication on a stripped binary) --
please don't read `ares_dns_rr_get_ttl` or `temporal_rs_PlainDateTime_days_in_week`
literally as the actual crash site. I'm not filing this as "I found the bug",
just as a reproducible data point: same native crash, same rough location,
twice, correlated with an in-flight HTTPS request during the Google OAuth flow,
on a beta macOS build.

## My best-effort read (not a diagnosis, happy to be wrong)

Given this is a beta OS release (`26A5406e`) and the crash sits inside V8/Node
internals rather than app code, this may well be an Electron/Node/macOS-27-beta
compatibility issue rather than a Rowboat-specific bug -- flagging in case
others hit it on the same beta, or in case it's useful signal either way.

## Attachments

Full `.ips` crash reports available on request (contain local file paths;
happy to share via a different channel if preferred over pasting them here).

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the Settings → Connections Google “Connect” OAuth flow and the callback server using port 8081; reproduce the crash by retrying while the first sign-in remains active. Compare the two attached .ips reports and check whether the flow completes without a crash or EADDRINUSE error on macOS 27 beta.

Written by the indexing model from the issue text.

Assessment

Tech stack
macos, node.js
Domain
authentication, desktop, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.