Skip to content

memory leak causes data corruption that check:construction not working properly #170

@Yrp

Description

@Yrp

Describe the bug

  1. rosetta-cli may have a memory leak.
  2. rosetta-cli exits after an exception, causing data corruption and the inability to continue running check:data and check:construction.

oom log

43040703.484867] Out of memory: Kill process 30248 (rosetta-cli) score 719 or sacrifice child
[43040703.486183] Killed process 30248 (rosetta-cli) total-vm:14133908kB, anon-rss:11682132kB, file-rss:124kB, shmem-rss:0kB
[43040703.488414] AliYunDun invoked oom-killer: gfp_mask=0x201da, order=0, oom_score_adj=0
[43040703.489785] AliYunDun cpuset=/ mems_allowed=0
[43040703.490852] CPU: 0 PID: 19469 Comm: AliYunDun Tainted: G OE ------------ T 3.10.0-693.2.2.el7.x86_64 #1
[43040703.492451] Hardware name: Alibaba Cloud Alibaba Cloud ECS, BIOS ab23bb1 04/01/2014
[43040703.493831] ffff88003620dee0 00000000b6cb212d ffff8803b99c38f8 ffffffff816a3db1
[43040703.495269] ffff8803b99c3988 ffffffff8169f1a6 ffffffff810e939c ffff8804213719f0
[43040703.496701] ffff880421371a08 0000000000000206 0000000000000206 ffff8803b99c3978
[43040703.498165] Call Trace:
[43040703.499175] [] dump_stack+0x19/0x1b
[43040703.500416] [] dump_header+0x90/0x229
[43040703.501667] [] ? ktime_get_ts64+0x4c/0xf0
[43040703.502944] [] ? delayacct_end+0x8f/0xb0
[43040703.504241] [] ? virtballoon_oom_notify+0x2a/0x70 [virtio_balloon]
[43040703.505720] [] oom_kill_process+0x254/0x3d0
[43040703.507035] [] ? oom_unkillable_task+0xcd/0x120
[43040703.508391] [] ? find_lock_task_mm+0x56/0xc0
[43040703.509721] [] out_of_memory+0x4b6/0x4f0
[43040703.511026] [] __alloc_pages_slowpath+0x5d6/0x724
[43040703.512401] [] __alloc_pages_nodemask+0x405/0x420
[43040703.513764] [] alloc_pages_current+0x98/0x110
[43040703.515107] [] __page_cache_alloc+0x97/0xb0
[43040703.516415] [] filemap_fault+0x170/0x410
[43040703.517721] [] ext4_filemap_fault+0x36/0x50 [ext4]
[43040703.519113] [] __do_fault+0x52/0xe0
[43040703.520494] [] do_read_fault.isra.44+0x4b/0x130
[43040703.521860] [] handle_mm_fault+0x691/0xfa0
[43040703.523205] [] ? __schedule+0x39d/0x8b0
[43040703.524562] [] __do_page_fault+0x154/0x450
[43040703.525928] [] trace_do_page_fault+0x56/0x150
[43040703.527385] [] do_async_page_fault+0x1a/0xd0
[43040703.528765] [] async_page_fault+0x28/0x30
[43040703.530186] Mem-Info:
[43040703.531328] active_anon:3942805 inactive_anon:74 isolated_anon:0
active_file:423 inactive_file:949 isolated_file:0
unevictable:0 dirty:19 writeback:11 unstable:0
slab_reclaimable:19893 slab_unreclaimable:9571
mapped:361 shmem:178 pagetables:10731 bounce:0
free:33895 free_pcp:7 free_cma:0

check:construction error log

badger 2020/10/22 11:44:39 INFO: Storing value log head: {Fid:1889 Len:35 Offset:17139043}
Error: unable to process blocks: unable to process block: unable to broadcast pending transactions: unable to handle broadcast failure: broadcast failed for transaction 0157ffe297e480a7337685c8455440071efa560874f008ea187ba7bf9c4c46fd with intent [
{
"operation_identifier": {
"index": 0
},
"type": "TransferContract",
"status": "",
"account": {
"address": "TLy2Gi9BvDy2DL1bKqXAPBpJqzD3UfY5Xw"
},
"amount": {
"value": "-163283103798002",
"currency": {
"symbol": "TRX",
"decimals": 6
}
}
},
{
"operation_identifier": {
"index": 1
},
"type": "TransferContract",
"status": "",
"account": {
"address": "THpBsNsjyhFJc9f7SduLwzRGPLMjWoHr4k"
},
"amount": {
"value": "163283103798002",
"currency": {
"symbol": "TRX",
"decimals": 6
}
}
}
]: unable to add block to storage 0000000000035359945ac819aceebcfcf521e9049941f829708dc3626305b285:217945: >unable to sync to 217952
Usage:
rosetta-cli check:construction [flags]

Flags:
-h, --help help for check:construction

Global Flags:
--configuration-file string Configuration file that provides connection and test settings.
If you would like to generate a starter configuration file (populated
with the defaults), run rosetta-cli configuration:create.

                               Any fields not populated in the configuration file will be populated with
                               default values.
 --cpu-profile string          Save the pprof cpu profile in the specified file
 --mem-profile string          Save the pprof mem profile in the specified file

Command Failed: unable to process blocks: unable to process block: unable to broadcast pending transactions: unable to handle broadcast failure: broadcast failed for transaction 0157ffe297e480a7337685c8455440071efa560874f008ea187ba7bf9c4c46fd with intent [
{
"operation_identifier": {
"index": 0
},
"type": "TransferContract",
"status": "",
"account": {
"address": "TLy2Gi9BvDy2DL1bKqXAPBpJqzD3UfY5Xw"
},
"amount": {
"value": "-163283103798002",
"currency": {
"symbol": "TRX",
"decimals": 6
}
}
},
{
"operation_identifier": {
"index": 1
},
"type": "TransferContract",
"status": "",
"account": {
"address": "THpBsNsjyhFJc9f7SduLwzRGPLMjWoHr4k"
},
"amount": {
"value": "163283103798002",
"currency": {
"symbol": "TRX",
"decimals": 6
}
}
}
]: unable to add block to storage 0000000000035359945ac819aceebcfcf521e9049941f829708dc3626305b285:217945: unable to sync to 217952

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions