ActivityWatch / ActivityWatch/aw-watcher-window
macOS jxa strategy: multiprocessing child processes crash with unrecognized arguments, killing the watcher
- 主要言語
- Python
- スター
- 129
- フォーク
- 81
- 平均マージ
- 2日 10時間
- マージ済み PR(30日)
- 4
説明
## Description
On macOS, when using the `jxa` strategy mentioned in [#1141](https://github.com/ActivityWatch/activitywatch/issues/1141) (or `applescript`), the `aw-client` library spawns child processes via Python's `multiprocessing` module. These child processes inherit the parent's command-line arguments, which include multiprocessing-specific flags like `--multiprocessing-fork tracker_fd=7 pipe_handle=9` and `-B -S -I -c from multiprocessing.resource_tracker import main;main(6)`.
`aw-watcher-window`'s argparse rejects these unrecognized arguments, causing the child processes to crash. This eventually corrupts or kills the parent process, causing the window watcher to stop collecting data entirely.
## To Reproduce
1. Set `strategy_macos = "jxa"` in `aw-watcher-window.toml`
2. Start ActivityWatch
3. Observe that aw-watcher-window starts and sends heartbeats
4. After ~15 minutes, aw-watcher-window stops (crashed by multiprocessing child process failure)
## Expected behavior
The watcher should either:
- Ignore unrecognized arguments in multiprocessing child processes
- Use `spawn` multiprocessing context instead of `fork` (which doesn't inherit argv)
- Or handle this in `aw-client`'s queued client implementation
## Actual behavior
The child processes crash with:
```
usage: aw-watcher-window [-h] [--host HOST] [--port PORT] [--testing]
[--exclude-title]
[--exclude-titles EXCLUDE_TITLES [EXCLUDE_TITLES ...]]
[--verbose] [--poll-time POLL_TIME]
[--strategy {jxa,applescript,swift}]
aw-watcher-window: error: unrecognized arguments: --multiprocessing-fork tracker_fd=7 pipe_handle=9
aw-watcher-window: error: unrecognized arguments: -B -S -I -c from multiprocessing.resource_tracker import main;main(6)
```
## Environment
- **OS**: macOS Sequoia 15.x
- **ActivityWatch version**: v0.13.2
- **Strategy**: jxa (also affects applescript)
## Additional context
This blocks the workaround for #121 (swift exclude_title/exclude_titles). The jxa fallback crashes due to this multiprocessing bug, making title exclusion impossible on macOS.
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
評価
この issue はまだ評価されていません。