-
Notifications
You must be signed in to change notification settings - Fork 123
fix: prevent token metadata processor from blocking api launch #1514
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Codecov Report
@@ Coverage Diff @@
## beta #1514 +/- ##
==========================================
- Coverage 78.78% 78.75% -0.03%
==========================================
Files 77 77
Lines 10835 10835
Branches 2397 2397
==========================================
- Hits 8536 8533 -3
- Misses 2199 2201 +2
- Partials 100 101 +1
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
77c2e94
to
54ca41f
Compare
## [7.0.0-beta.2](v7.0.0-beta.1...v7.0.0-beta.2) (2023-01-13) ### Bug Fixes * prevent token metadata processor from blocking api launch ([#1514](#1514)) ([63da7e1](63da7e1))
🎉 This PR is included in version 7.0.0-beta.2 🎉 The release is available on: Your semantic-release bot 📦🚀 |
## [7.0.0](v6.3.4...v7.0.0) (2023-02-07) ### ⚠ BREAKING CHANGES * support for upcoming Stacks 2.1 features, event-replay required; * a sync from genesis is required to use with a Stacks v2.1-rc node ### Features * [Stacks 2.1] `delegate-stx` Bitcoin-op parsing ([#1527](#1527)) ([ea01587](ea01587)) * **agg-paging-limits:** aggregated all paging query limits ([#1401](#1401)) ([0203d36](0203d36)), closes [#1379](#1379) [#1379](#1379) * Stacks 2.1 support ([#1498](#1498)) ([dcbdfb9](dcbdfb9)), closes [#1279](#1279) [#1280](#1280) [#1283](#1283) [#1285](#1285) [#1289](#1289) [#1290](#1290) [#1295](#1295) [#1339](#1339) [#1363](#1363) [#1367](#1367) [#1372](#1372) [#1413](#1413) [#1449](#1449) [#1205](#1205) [#1197](#1197) [#1206](#1206) [#1179](#1179) [#1190](#1190) [#1167](#1167) [#1363](#1363) [#1193](#1193) [#1162](#1162) [#1216](#1216) [#1289](#1289) [#1290](#1290) [#1241](#1241) [#1168](#1168) [#1218](#1218) [#1339](#1339) [#1413](#1413) [#1283](#1283) [#1280](#1280) [#1285](#1285) [#1403](#1403) [#1456](#1456) [#1454](#1454) [#1454](#1454) [#1456](#1456) [#1403](#1403) [#1461](#1461) [#1476](#1476) [#1329](#1329) [#1287](#1287) [#1476](#1476) [#1366](#1366) [#1304](#1304) [#1331](#1331) [#1332](#1332) [#1379](#1379) [#1379](#1379) [#1355](#1355) [#1287](#1287) [#1389](#1389) [#1323](#1323) [#1368](#1368) [#1348](#1348) [#1314](#1314) [#1303](#1303) [#1425](#1425) [#1334](#1334) [#1309](#1309) [#1445](#1445) [#1374](#1374) [#1345](#1345) [#1353](#1353) [#1433](#1433) [#1424](#1424) [#1427](#1427) [#1301](#1301) [#1458](#1458) [#1379](#1379) [#1270](#1270) [#1324](#1324) [#1356](#1356) [#1360](#1360) [#1315](#1315) [#1326](#1326) [#1440](#1440) [#1351](#1351) [#1410](#1410) [#1337](#1337) [#1420](#1420) [#1328](#1328) [#1329](#1329) [#1343](#1343) [#1329](#1329) [#1495](#1495) ### Bug Fixes * add bnsImportUpdate to event emitter to fix BNS import test ([#1491](#1491)) ([2f9cb0c](2f9cb0c)) * build rosetta with node 16 ([654b64f](654b64f)) * datastore tests ([bb96507](bb96507)) * guarantee db is empty before performing a replay ([#1374](#1374)) ([ef8e7a9](ef8e7a9)) * lint docs ci dependencies ([#1458](#1458)) ([90d0c7b](90d0c7b)) * make query limits backwards compatible ([#1509](#1509)) ([a0cebf5](a0cebf5)) * prevent token metadata processor from blocking api launch ([#1514](#1514)) ([63da7e1](63da7e1)) * reorg txs by inserting txs that are missing from the mempool table ([#1429](#1429)) ([a512511](a512511)) * synthetic tx parsing for pox2 bitcoin-ops ([#1505](#1505)) ([720dc87](720dc87)) * test tx types ([11b9013](11b9013)) * use correct `pox-addr` arg while parsing `stack-stx` bitcoin-op [#415](#415) ([#1533](#1533)) ([ab14ad5](ab14ad5)) * use pg bigint for `pox_v1_unlock_height` column ([#1521](#1521)) ([d3fd685](d3fd685)) ### Miscellaneous Chores * note for Stacks 2.1 support and major version bump ([d27f956](d27f956)) * support for Stacks 2.1 ([e88ec29](e88ec29))
🎉 This PR is included in version 7.0.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
The current call to
drainDbQueue
on the token processor during boot sequence waits for thequeue.onEmpty
promise to resolve before continuing to launch the API server.This promise is supposed to wait until every token is processed, so if the token queue has a lot of work (and especially if it has
STACKS_API_TOKEN_METADATA_STRICT_MODE
enabled) this could lead to a very long (or infinite) wait time for the token metadata work to conclude, preventing the API server from ever launching.This PR only changes the call so the first few tokens are enqueued and the API launch can proceed as expected. The rest of the token queue will be processed automatically afterwards in a non-blocking way.
Fixes #1482