Skip to content

mcp: concurrent sessions cause SQLite lock contention, hanging new connections #226

@igor

Description

@igor

When multiple Claude Code sessions each spawn their own msgvault mcp instance, they all open the same SQLite database. After ~3 concurrent instances, new sessions hang indefinitely trying to acquire a database lock.

Reproduction

  1. Enable msgvault in enabledMcpjsonServers in Claude Code settings
  2. Launch 3-4 Claude Code sessions (each spawns its own msgvault mcp process)
  3. The 3rd or 4th session hangs on MCP connection — Claude Code accepts input but never responds

All instances hold open the same ~/.msgvault/msgvault.db (WAL + SHM files visible via lsof).

Environment

  • msgvault v0.7.0-10-g68517c1
  • macOS (darwin/arm64)
  • ~16GB database
  • Claude Code v2.1.84

Suggested fix

Run msgvault mcp as a single shared daemon (e.g. HTTP/SSE server) that multiple sessions connect to, rather than spawning one process per session. This would also reduce memory usage from duplicate database handles.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions