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

IPFS Client OOMKill #7954

Closed
grostirolla1 opened this issue Mar 1, 2021 · 5 comments
Closed

IPFS Client OOMKill #7954

grostirolla1 opened this issue Mar 1, 2021 · 5 comments
Labels
kind/bug A bug in existing code (including security flaws) need/analysis Needs further analysis before proceeding P2 Medium: Good to have, but can wait until someone steps up

Comments

@grostirolla1
Copy link

Version information:

go-ipfs version: 0.7.0-ea77213
Repo version: 10
System version: amd64/linux
Golang version: go1.14.4

Description:

When trying to add multiple files in parallel (or even adding lots of single files in sequence for a long period of time) the IPFS clients is being oomkilled. The memory keeps growing until it reaches the limit (in my case 5GiB), and the client is killed.
I've tried a couple of suggestions from this issue #3532 without much luck.

  • ipfs config --bool Swarm.DisableBandwidthMetrics true
  • --enable-gc
  • --routing=dhtclient

How to Reproduce:

Generate files

  • for i in {1..100}; do dd if=/dev/random of=file_$i count=1 bs=102400000; done
    Add files through API
  • for i in {1..100}; do curl -XPOST -F file=@file_$i "http://localhost:5001/api/v0/add"& done
    Or directly on the CLI (faster)
  • for i in {1..100}; do ipfs add file_$i & done

Depending on your machine configurations (disk, memory etc) the oomkill might happen even when sending 100 x 10MB files.
This seems like a problem on how the memory is managed by IPFS.

@grostirolla1 grostirolla1 added kind/bug A bug in existing code (including security flaws) need/triage Needs initial labeling and prioritization labels Mar 1, 2021
@welcome
Copy link

welcome bot commented Mar 1, 2021

Thank you for submitting your first issue to this repository! A maintainer will be here shortly to triage and review.
In the meantime, please double-check that you have provided all the necessary information to make this process easy! Any information that can help save additional round trips is useful! We currently aim to give initial feedback within two business days. If this does not happen, feel free to leave a comment.
Please keep an eye on how this issue will be labeled, as labels give an overview of priorities, assignments and additional actions requested by the maintainers:

  • "Priority" labels will show how urgent this is for the team.
  • "Status" labels will show if this is ready to be worked on, blocked, or in progress.
  • "Need" labels will indicate if additional input or analysis is required.

Finally, remember to use https://discuss.ipfs.io if you just need general support.

@aschmahmann aschmahmann self-assigned this Mar 15, 2021
@aschmahmann aschmahmann added the need/analysis Needs further analysis before proceeding label Mar 15, 2021
@aschmahmann aschmahmann added P2 Medium: Good to have, but can wait until someone steps up and removed need/triage Needs initial labeling and prioritization labels May 24, 2021
@BigLep
Copy link
Contributor

BigLep commented May 24, 2021

2021-05-24 next step: see is can reproduce this locally.

@aschmahmann aschmahmann removed their assignment Jun 14, 2021
@tsoeiroecore
Copy link

Hey guys, any updates on this? I'm facing similar issues in a highly concurrent environment.

@BigLep
Copy link
Contributor

BigLep commented Jan 24, 2022

@tsoeiroecore : are you able to provide a reproducible case?

@BigLep
Copy link
Contributor

BigLep commented Mar 10, 2022

Closing due to no response with a reproducible case.

@BigLep BigLep closed this as completed Mar 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug A bug in existing code (including security flaws) need/analysis Needs further analysis before proceeding P2 Medium: Good to have, but can wait until someone steps up
Projects
None yet
Development

No branches or pull requests

4 participants