Closed zone117x closed 4 months ago
Vercel deployment URL: https://stacks-blockchain-i7qr60ei6-blockstack.vercel.app :rocket:
Attention: Patch coverage is 85.18519%
with 4 lines
in your changes are missing coverage. Please review.
Project coverage is 72.02%. Comparing base (
f522d79
) to head (e5299b9
). Report is 49 commits behind head on master.:exclamation: Current head e5299b9 differs from pull request most recent head cb4016d
Please upload reports for the commit cb4016d to get more accurate results.
Files | Patch % | Lines |
---|---|---|
src/event-stream/event-server.ts | 86.36% | 3 Missing :warning: |
src/datastore/pg-write-store.ts | 80.00% | 1 Missing :warning: |
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
@zone117x Just validated this fix against an archive synced from genesis. Please check the conversation on this devops issue for more context.
Blocks containing a large number of transactions are now included in the archive file.
For example, block 137843, which was the root cause of this issue, is now present in the archive file after the fix. Therefore, for a block to be present in the archive file, it must have also been present in the event_observer_requests
table.
Fix LGTM.
Awesome, thanks for the thorough testing @csgui!
:tada: This PR is included in version 7.11.0-beta.8 :tada:
The release is available on:
Your semantic-release bot :package::rocket:
:tada: This PR is included in version 7.11.0 :tada:
The release is available on:
Your semantic-release bot :package::rocket:
Issue found by @csgui where the
event_observer_requests
table can be missing events even if the rest of the event ingestion was successful.This appears to be because the function for inserting into
event_observer_requests
was ran after the event server http request has been completed. So when a large block was received, it may have been ingested into the regular tables, but could run into an OOM error on theevent_observer_requests
insert.This PR fixes the issue by ensuring the http request is not completed until insert into
event_observer_requests
is completed. Also the amount of JSON parsing/stringifying has been reduced in an attempt to reduce likelihood of an OOM when receiving a large/new_block
event payload.