Skip to content
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

2755 operator vs txn fees #2781

Merged
merged 10 commits into from
Aug 1, 2024
Merged

2755 operator vs txn fees #2781

merged 10 commits into from
Aug 1, 2024

Conversation

ebadiere
Copy link
Collaborator

@ebadiere ebadiere commented Aug 1, 2024

Cherry-pick 2755
Related issue(s):

Fixes #

Notes for reviewer:

Checklist

  • Documented (Code comments, README, etc.)
  • Tested (unit, integration, etc.)

quiet-node and others added 9 commits August 1, 2024 09:09
* test: added E2E test fir preemtive rate limit

Signed-off-by: Logan Nguyen <[email protected]>

* Update hbarLimiter.spec.ts

Signed-off-by: Logan Nguyen <[email protected]>

---------

Signed-off-by: Logan Nguyen <[email protected]>
Signed-off-by: ebadiere <[email protected]>
* test: expand integration tests for SDK client

Signed-off-by: Victor Yanev <[email protected]>

* chore: minor improvements to sdkClient.ts

Signed-off-by: Victor Yanev <[email protected]>

* fix: typescript error

Signed-off-by: Victor Yanev <[email protected]>

* fix: simplify test data

Signed-off-by: Victor Yanev <[email protected]>

* chore: formatting

Signed-off-by: Victor Yanev <[email protected]>

* chore: fix typescript errors and warnings

Signed-off-by: Victor Yanev <[email protected]>

* chore: optimize imports

Signed-off-by: Victor Yanev <[email protected]>

* chore: address comments

Signed-off-by: Victor Yanev <[email protected]>

* chore: improve readability of tests

Signed-off-by: Victor Yanev <[email protected]>

* test: fix wrong MIRROR_NODE_LIMIT_PARAM in relay tests

Signed-off-by: Victor Yanev <[email protected]>

* fix: wrong env file loaded

Signed-off-by: Victor Yanev <[email protected]>

* test: remove hardcoded usages of MIRROR_NODE_LIMIT_PARAM in relay tests

Signed-off-by: Victor Yanev <[email protected]>

* test: revert changes to rpc_batch1.spec.ts

Signed-off-by: Victor Yanev <[email protected]>

* chore: remove unused import

Signed-off-by: Victor Yanev <[email protected]>

* chore: fix test after merge

Signed-off-by: Victor Yanev <[email protected]>

* chore: fix test after merge

Signed-off-by: Victor Yanev <[email protected]>

* chore: revert changes to usages of MIRROR_NODE_LIMIT_PARAM

Signed-off-by: Victor Yanev <[email protected]>

* chore: revert changes to usages of MIRROR_NODE_LIMIT_PARAM

Signed-off-by: Victor Yanev <[email protected]>

---------

Signed-off-by: Victor Yanev <[email protected]>
Signed-off-by: ebadiere <[email protected]>
* chore: refactor eth.ts

Signed-off-by: nikolay <[email protected]>

* chore: bump hedera-local version

Signed-off-by: nikolay <[email protected]>

---------

Signed-off-by: nikolay <[email protected]>
Signed-off-by: ebadiere <[email protected]>
* chore: Implement memory leak detection in tests

Signed-off-by: Victor Yanev <[email protected]>

* chore: Implement memory leak detection in tests

Signed-off-by: Victor Yanev <[email protected]>

* chore: Implement memory leak detection in tests

Signed-off-by: Victor Yanev <[email protected]>

* chore: Implement memory leak detection in tests

Signed-off-by: Victor Yanev <[email protected]>

* chore: Implement memory leak detection in tests

Signed-off-by: Victor Yanev <[email protected]>

* chore: add docs

Signed-off-by: Victor Yanev <[email protected]>

* chore: fix sonar issues

Signed-off-by: Victor Yanev <[email protected]>

* chore: formatting

Signed-off-by: Victor Yanev <[email protected]>

* chore: small fix

Signed-off-by: Victor Yanev <[email protected]>

* chore: trace GC and write snapshot if memory leak > 0.5 MB

Signed-off-by: Victor Yanev <[email protected]>

* chore: revert false changes to eth.ts

Signed-off-by: Victor Yanev <[email protected]>

* chore: optimize code

Signed-off-by: Victor Yanev <[email protected]>

* Merge branch 'main' into 2260-Implement-a-Memory-Leak-detection-Test

Signed-off-by: Victor Yanev <[email protected]>

# Conflicts:
#	package-lock.json
#	package.json
#	packages/server/tsconfig.json

* fix: Do not write heap snapshots for acceptance tests

Signed-off-by: Victor Yanev <[email protected]>

* fix: add TODO for removing --trace_gc flag

Signed-off-by: Victor Yanev <[email protected]>

* test: add github comment in cases a test is having memory leaks

Signed-off-by: Victor Yanev <[email protected]>

* test: add github context env variables

Signed-off-by: Victor Yanev <[email protected]>

* test: extract common logic for github api calls

Signed-off-by: Victor Yanev <[email protected]>

* test: console.debug -> console.log for successful PR comments

Signed-off-by: Victor Yanev <[email protected]>

* test: fix request to github API

Signed-off-by: Victor Yanev <[email protected]>

* Merge branch 'main' into 2260-Implement-a-Memory-Leak-detection-Test

Signed-off-by: Victor Yanev <[email protected]>

# Conflicts:
#	packages/server/tests/acceptance/index.spec.ts

* Merge branch 'main' into 2260-Implement-a-Memory-Leak-detection-Test

Signed-off-by: Victor Yanev <[email protected]>

# Conflicts:
#	packages/server/tests/acceptance/index.spec.ts

* fix: request to github API

Signed-off-by: Victor Yanev <[email protected]>

* chore: add upload heap snapshots step in github workflow for acceptance and integration tests

Signed-off-by: Victor Yanev <[email protected]>

* fix: add `subject_type: file` to github request for adding comment on PR

Signed-off-by: Victor Yanev <[email protected]>

* fix: fix path in request to github API

Signed-off-by: Victor Yanev <[email protected]>

* chore: extract github request logic in new file - githubClient.ts

Signed-off-by: Victor Yanev <[email protected]>

* fix: path of upload-artifact action for uploading heap snapshots

Signed-off-by: Victor Yanev <[email protected]>

* fix: requests in githubClient.ts

Signed-off-by: Victor Yanev <[email protected]>

* fix: requests in githubClient.ts

Signed-off-by: Victor Yanev <[email protected]>

* fix: format message of github-actions[bot]

Signed-off-by: Victor Yanev <[email protected]>

* fix: format message of github-actions[bot]

Signed-off-by: Victor Yanev <[email protected]>

* chore: remove unused github context env variable

Signed-off-by: Victor Yanev <[email protected]>

* chore: formatting

Signed-off-by: Victor Yanev <[email protected]>

* chore: formatting

Signed-off-by: Victor Yanev <[email protected]>

* chore: formatting

Signed-off-by: Victor Yanev <[email protected]>

* fix: `formatBytes` returns `NaN undefined` when `0` is passed to it

Signed-off-by: Victor Yanev <[email protected]>

* fix: `formatBytes` returns `NaN undefined` when negative number is passed to it

Signed-off-by: Victor Yanev <[email protected]>

* fix: predicate for updating existing comment

Signed-off-by: Victor Yanev <[email protected]>

* fix: remove unused constant + temporary console logs

Signed-off-by: Victor Yanev <[email protected]>

* fix: make memory leak report more descriptive

Signed-off-by: Victor Yanev <[email protected]>

* chore: remove unnecessary console logs

Signed-off-by: Victor Yanev <[email protected]>

* chore: reduce MEMORY_LEAK_SNAPSHOT_THRESHOLD to 500 KB

Signed-off-by: Victor Yanev <[email protected]>

* fix: update logic for detecting memory leak based on heap size threshold

Signed-off-by: Victor Yanev <[email protected]>

* fix: add separate threshold for taking heap snapshots

Signed-off-by: Victor Yanev <[email protected]>

* fix: set `WRITE_SNAPSHOT_ON_MEMORY_LEAK` to be `false` by default

Signed-off-by: Victor Yanev <[email protected]>

* test: add warm-up phase to memory leak detection

Signed-off-by: Victor Yanev <[email protected]>

* chore: revert changes to rpc_batch1.spec.ts

Signed-off-by: Victor Yanev <[email protected]>

---------

Signed-off-by: Victor Yanev <[email protected]>
Signed-off-by: Eric Badiere <[email protected]>
Co-authored-by: Eric Badiere <[email protected]>
Signed-off-by: ebadiere <[email protected]>
* chore: remove env

Signed-off-by: nikolay <[email protected]>

* chore: modify test

Signed-off-by: nikolay <[email protected]>

---------

Signed-off-by: nikolay <[email protected]>
Signed-off-by: ebadiere <[email protected]>
Signed-off-by: Swirlds Automation <[email protected]>
Signed-off-by: ebadiere <[email protected]>
#2776)

feat: reused executetransaction for methods in sdkclient and improved logging (#2749)

* fix: reused executeTransaction() in deleteFile() method

* fix: reworked executeTransaction() to accept executeAll

* feat: fix: reused executeTransaction() in fileCreate() method

* fix: removed check rate limit in executeGetTransactionRecord

* fix: fixed SDK HBAR limiter tests

* fix: reverted rework executeTransaction()

* fix: reworked formatRequestIdMessage

* feat: added executeAllTransaction() method

* fix: made shouldLimit optional in executeTransaction()

* Update packages/relay/src/lib/clients/sdkClient.ts

* fix: addressed comments

* fix: extracted handleExecuteAllError()

* fix: renamed handleExecuteAllError to getTransactionMetrics and reuse it in executeTransaction

---------

Signed-off-by: Logan Nguyen <[email protected]>
Signed-off-by: Logan Nguyen <[email protected]>
Co-authored-by: Logan Nguyen <[email protected]>
Co-authored-by: Victor Yanev <[email protected]>
Signed-off-by: ebadiere <[email protected]>
Signed-off-by: Swirlds Automation <[email protected]>
Signed-off-by: ebadiere <[email protected]>
* fix: reduce hbar limit only by operator fees

Signed-off-by: Ivo Yankov <[email protected]>

* chore: update expected values

Signed-off-by: Ivo Yankov <[email protected]>

* chore: fix code smells

Signed-off-by: Ivo Yankov <[email protected]>

* nit: re-trigger ci

Signed-off-by: Ivo Yankov <[email protected]>

* chore: addressing comments

Signed-off-by: Ivo Yankov <[email protected]>

* fix: hbar limit error handle

Signed-off-by: Ivo Yankov <[email protected]>

* fix: reduce test flakiness

Signed-off-by: Ivo Yankov <[email protected]>

* fix: reduce test flakiness

Signed-off-by: Ivo Yankov <[email protected]>

* nit: update comment

Signed-off-by: Ivo Yankov <[email protected]>

* fix: unit test mocks

Signed-off-by: Ivo Yankov <[email protected]>

* fix: update assertions and mocks

Signed-off-by: Ivo Yankov <[email protected]>

---------

Signed-off-by: Ivo Yankov <[email protected]>
Signed-off-by: Eric Badiere <[email protected]>
Co-authored-by: Eric Badiere <[email protected]>
Signed-off-by: ebadiere <[email protected]>
Copy link

github-actions bot commented Aug 1, 2024

🚨 Memory Leak Detected 🚨

A potential memory leak has been detected in the test titled should execute "eth_getTransactionByHash with missing transaction". This may impact the application's performance and stability.

Details

📊 Memory Leak Detection Report 📊

GC Type: MarkSweepCompact
Cost: 30,547.8 ms

Heap Statistics (before vs after executing the test):

  • Total Heap Size: increased with 524.29 KB
  • Total Heap Size Executable: no changes
  • Total Physical Size: increased with 524.29 KB
  • Total Available Size: decreased with 8.63 MB
  • Total Global Handles Size: no changes
  • Used Global Handles Size: decreased with 64.00 bytes
  • Used Heap Size: decreased with 2.52 MB
  • Heap Size Limit: no changes
  • Malloced Memory: no changes
  • External Memory: no changes
  • Peak Malloced Memory: no changes

Heap Space Statistics (before vs after executing the test):

  • Old Space:
    • Space Size: increased with 524.29 KB
    • Space Used Size: increased with 563.52 KB
    • Space Available Size: decreased with 10.33 MB
    • Physical Space Size: increased with 524.29 KB

Recommendations

Please investigate the memory allocations in this test, focusing on objects that are not being properly deallocated.

Copy link

github-actions bot commented Aug 1, 2024

Tests

    2 files  158 suites   13s ⏱️
870 tests 869 ✔️ 1 💤 0
883 runs  882 ✔️ 1 💤 0

Results for commit a8fb65b.

♻️ This comment has been updated with latest results.

Copy link

sonarcloud bot commented Aug 1, 2024

This was referenced Aug 1, 2024
Copy link

github-actions bot commented Aug 1, 2024

Acceptance Tests

  18 files  219 suites   30m 28s ⏱️
611 tests 606 ✔️ 4 💤 1
655 runs  650 ✔️ 4 💤 1

Results for commit a8fb65b.

♻️ This comment has been updated with latest results.

Copy link
Contributor

@acuarica acuarica left a comment

Choose a reason for hiding this comment

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

lg

@ebadiere ebadiere self-assigned this Aug 1, 2024
@ebadiere ebadiere added the bug Something isn't working label Aug 1, 2024
@ebadiere ebadiere added this to the 0.53.0 milestone Aug 1, 2024
@ebadiere ebadiere merged commit 2180bd0 into release/0.53 Aug 1, 2024
30 of 35 checks passed
@ebadiere ebadiere deleted the 2755-operator-vs-txn-fees branch August 1, 2024 18:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

7 participants