drizzle-team / drizzle-team/drizzle-orm

[BUG]: Closing drizzle-studio with ctrl+c causes corrupted PGLite database

Open
#3,017 3 comments 10 reactions 0 assignees View on GitHub
bug driver/pglite drizzle/studio
Dominant language
TypeScript
Stars
35.8k
Forks
1.6k
Avg merge
2d 7h
Merged PRs (30d)
4

Description

### What version of `drizzle-orm` are you using?

0.33.0

### What version of `drizzle-kit` are you using?

0.24.2

### Describe the Bug

After running a few `DELETE FROM` commands in the query runner in Drizzle Studio, I must have closed the cli too early, because upon running my server again I got the following error from PGLite:

```
RuntimeError: Aborted(). Build with -sASSERTIONS for more info.
at abort (/Users/robertlong/Workspace/sidekick-server/node_modules/.pnpm/@electric-sql+pglite@0.2.7/node_modules/@electric-sql/pglite/dist/postgres.js:740:11)
at __abort_js (/Users/robertlong/Workspace/sidekick-server/node_modules/.pnpm/@electric-sql+pglite@0.2.7/node_modules/@electric-sql/pglite/dist/postgres.js:7244:7)
at postgres.wasm.abort (wasm://wasm/postgres.wasm-02856b0a:wasm-function[14927]:0x6db55a)
at postgres.wasm.errfinish (wasm://wasm/postgres.wasm-02856b0a:wasm-function[5153]:0x205c39)
at postgres.wasm.InitWalRecovery (wasm://wasm/postgres.wasm-02856b0a:wasm-function[11909]:0x52ce57)
at postgres.wasm.StartupXLOG (wasm://wasm/postgres.wasm-02856b0a:wasm-function[11579]:0x5076b2)
at postgres.wasm.InitPostgres (wasm://wasm/postgres.wasm-02856b0a:wasm-function[874]:0x98cb8)
at postgres.wasm.AsyncPostgresSingleUserMain (wasm://wasm/postgres.wasm-02856b0a:wasm-function[6038]:0x264cbc)
at postgres.wasm.pg_initdb (wasm://wasm/postgres.wasm-02856b0a:wasm-function[8324]:0x341265)
at Object.Module._pg_initdb (/Users/robertlong/Workspace/sidekick-server/node_modules/.pnpm/@electric-sql+pglite@0.2.7/node_modules/@electric-sql/pglite/dist/postgres.js:10397:109)
```

The last time I saw this error, it was when I forgot to call `await pg.close()` in my migration script. I expect this is for similar reasons.

### Expected behavior

Upon receiving a termination signal, the drizzle-studio should close the database connection gracefully. The [close-with-grace](https://github.com/mcollina/close-with-grace) package could help with this.

### Environment & setup

Local node.js 22 macOS development environment with PGLite.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.