sidorares / sidorares/node-mysql2

node-mysql2 hangs for long time without showing anything

Open
#695 26 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

help wanted needs investigation needs reproduction
Dominant language
TypeScript
Stars
4.4k
Forks
680
Avg merge
9h 7m
Merged PRs (30d)
59

Description

I have a script, that makes heavy use of node-mysql2. It inserts large number of rows into db, then proceeds to make further modifications to those rows. First part is run as separate promise with lots of async/await.

After the first part, during the early stages of second part script suddenly hangs (at first I attributed that to some kind of terminal IO glitch, but the behaviour is reproducible in different terminals both on Windows and Linux). mysql processlist looks like this

+-----+------+-----------+------+---------+------+-------+-----------------------+----------+
| Id  | User | Host      | db   | Command | Time | State | Info                  | Progress |
+-----+------+-----------+------+---------+------+-------+-----------------------+----------+
| 130 | root | localhost | basa | Sleep   |    1 |       | NULL                  |    0.000 |
| 133 | root | localhost | NULL | Query   |    0 | init  | SHOW FULL PROCESSLIST |    0.000 |
+-----+------+-----------+------+---------+------+-------+-----------------------+----------+

Interestingly, running the first and second part of script separately eliminates the issue.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source file or test is named. Start by reducing the reported two-phase async/await script to a minimal reproduction and inspect the MySQL processlist while it hangs; done means the connection or query lifecycle causing the hang is identified and covered by a regression test or documented resolution.

Written by the indexing model from the issue text.

Assessment

Tech stack
mysql, node.js
Domain
databases
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.