Skip to content

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

Merged
merged 2 commits into from
Jan 13, 2023

Conversation

rafaelcr
Copy link
Collaborator

@rafaelcr rafaelcr commented Jan 9, 2023

The current call to drainDbQueue on the token processor during boot sequence waits for the queue.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

@github-actions
Copy link

github-actions bot commented Jan 9, 2023

@github-actions github-actions bot temporarily deployed to pull request January 9, 2023 15:42 Inactive
@codecov-commenter
Copy link

codecov-commenter commented Jan 9, 2023

Codecov Report

Merging #1514 (54ca41f) into beta (5a5f07c) will decrease coverage by 0.02%.
The diff coverage is 50.00%.

@@            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     
Impacted Files Coverage Δ
src/index.ts 0.00% <0.00%> (ø)
src/token-metadata/tokens-processor-queue.ts 86.74% <100.00%> (ø)
src/datastore/pg-store.ts 93.65% <0.00%> (-0.19%) ⬇️
src/datastore/pg-write-store.ts 87.58% <0.00%> (-0.11%) ⬇️

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@coveralls
Copy link

coveralls commented Jan 9, 2023

Coverage Status

Coverage: 78.504%. Remained the same when pulling 54ca41f on fix/metadata-block into 5a5f07c on beta.

@github-actions github-actions bot temporarily deployed to commit January 9, 2023 16:30 Inactive
@github-actions github-actions bot temporarily deployed to pull request January 9, 2023 16:30 Inactive
@rafaelcr rafaelcr requested a review from zone117x January 9, 2023 17:15
Copy link
Member

@zone117x zone117x left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@github-actions github-actions bot temporarily deployed to pull request January 10, 2023 17:36 Inactive
@github-actions github-actions bot temporarily deployed to commit January 10, 2023 17:36 Inactive
@rafaelcr rafaelcr changed the base branch from master to beta January 13, 2023 15:19
@github-actions github-actions bot temporarily deployed to commit January 13, 2023 15:26 Inactive
@github-actions github-actions bot temporarily deployed to pull request January 13, 2023 15:27 Inactive
@github-actions github-actions bot temporarily deployed to pull request January 13, 2023 15:31 Inactive
@github-actions github-actions bot temporarily deployed to commit January 13, 2023 15:32 Inactive
@rafaelcr rafaelcr merged commit 63da7e1 into beta Jan 13, 2023
@rafaelcr rafaelcr deleted the fix/metadata-block branch January 13, 2023 16:34
blockstack-devops pushed a commit that referenced this pull request Jan 13, 2023
## [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))
@blockstack-devops
Copy link
Contributor

🎉 This PR is included in version 7.0.0-beta.2 🎉

The release is available on:

Your semantic-release bot 📦🚀

blockstack-devops pushed a commit that referenced this pull request Feb 7, 2023
## [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))
@blockstack-devops
Copy link
Contributor

🎉 This PR is included in version 7.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[testnet] port 3999 fails to open when STACKS_API_ENABLE_FT_METADATA is set to 1
5 participants