kbfs steadily increases memory usage until system reboots 2nd attempt

未关闭
#28,740 0 条评论 1 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
25/100
Issue 类型
缺陷
描述清晰度
需要澄清
活跃度
停滞
技术栈
go, raspberry-pi

调研方向

首先,在 Raspberry Pi 5 上使用 kbfsfuse 和重复的 rsync 传输复现内存增长,并根据报告中的 top 输出和日志测量常驻内存。跟踪相关的 kbfsfuse 行为以定位内存泄漏;当持续传输不再导致内存使用量持续增长或系统不稳定时,即视为完成。

由索引模型根据 Issue 内容生成。

描述

Describe the bug
Over the course of ~3 hours, kbfs steadily increases memory usage until it reaches about ~94% usage at which point my system crashes / reboots. During this time every couple of minutes I'm using rsync to copy files onto kbfs.

raspberry pi 5

  • 64-bit ARM
  • 8 G of RAM
  • 2 G of swap memory

I've compiled from source (no standard package for the above). Branch master commit 2763ebd414e3ff95c1373d41405ed8067f82f701

To Reproduce
I am running as one specific user which I've used to authenticate my device with my account.

How I start keybase and kbfs:

export GOPATH="$HOME/gopath"
export PATH="$PATH:$GOPATH/bin"
export KEYBASE_RUN_MODE=prod

export XDG_RUNTIME_DIR=/run/user/1001

nohup keybase service >> ~/logs/keybase_server.log 2>&1 &

nohup kbfsfuse /home/dllahr/kbfs >> ~/logs/kbfsfuse.log 2>&1 &

Here's a log of the results of running top once per minute over the course of ~29 minutes. You can see the memory usage (3rd column from right) goes from 18.0% to 47.4%. In the 6th column you can see the amount of resident memory usage which is also high and steadily increasing - this is not just virtual memory.

   1337 dllahr    20   0 3937072   1.4g  35104 S   0.0  18.0   3:54.41 kbfsfuse
   1337 dllahr    20   0 4071056   1.5g  35104 S   0.0  19.5   4:11.75 kbfsfuse
   1337 dllahr    20   0 4140064   1.6g  35104 S   0.0  20.1   4:31.26 kbfsfuse
   1337 dllahr    20   0 4141536   1.6g  35104 S   0.0  20.5   4:45.19 kbfsfuse
   1337 dllahr    20   0 4275328   1.7g  35104 S   0.0  21.6   5:03.51 kbfsfuse
   1337 dllahr    20   0 4342608   1.8g  35104 S   0.0  22.7   5:21.83 kbfsfuse
   1337 dllahr    20   0 4411360   1.9g  35104 S   0.0  23.7   5:36.65 kbfsfuse
   1337 dllahr    20   0 4479024   1.9g  35104 S   0.0  24.2   5:55.12 kbfsfuse
   1337 dllahr    20   0 4614912   2.0g  35104 S   0.0  25.5   6:14.25 kbfsfuse
   1337 dllahr    20   0 4614912   2.0g  35104 S   0.0  25.8   6:29.86 kbfsfuse
   1337 dllahr    20   0 4749856   2.2g  35104 S   0.0  27.4   6:49.02 kbfsfuse
   1337 dllahr    20   0 4817712   2.2g  35104 S   0.0  28.3   7:07.42 kbfsfuse
   1337 dllahr    20   0 4886592   2.3g  35104 S   0.0  29.3   7:24.17 kbfsfuse
   1337 dllahr    20   0 4954064   2.4g  35104 S   0.0  30.0   7:41.97 kbfsfuse
   1337 dllahr    20   0 5021728   2.4g  35104 S   0.0  30.7   8:00.46 kbfsfuse
   1337 dllahr    20   0 5155200   2.6g  35104 S   0.0  32.7   8:17.36 kbfsfuse
   1337 dllahr    20   0 5223760   2.6g  35104 S   0.0  33.3   8:35.35 kbfsfuse
   1337 dllahr    20   0 5355248   2.8g  35104 S   0.0  35.1   8:59.51 kbfsfuse
   1337 dllahr    20   0 5422400   2.8g  35152 S   0.0  35.2   9:19.02 kbfsfuse
   1337 dllahr    20   0 5488016   2.9g  35152 S   0.0  36.6   9:43.14 kbfsfuse
   1337 dllahr    20   0 5557216   2.9g  35152 S   0.0  37.0  10:01.03 kbfsfuse
   1337 dllahr    20   0 5754064   3.1g  35152 S   0.0  39.8  10:26.50 kbfsfuse
   1337 dllahr    20   0 5754064   3.1g  35152 S   0.0  39.9  10:45.24 kbfsfuse
   1337 dllahr    20   0 5955984   3.3g  35152 S   0.0  42.3  11:11.46 kbfsfuse
   1337 dllahr    20   0 5960656   3.3g  35152 S   0.0  42.4  11:32.43 kbfsfuse
   1337 dllahr    20   0 6026528   3.4g  35152 S   0.0  43.3  11:58.56 kbfsfuse
   1337 dllahr    20   0 6026528   3.4g  35152 S   0.0  43.6  12:19.38 kbfsfuse
   1337 dllahr    20   0 6358192   3.7g  35152 S   0.0  47.0  12:46.01 kbfsfuse
   1337 dllahr    20   0 6364208   3.7g  35152 S   0.0  47.4  13:05.80 kbfsfuse

Can you help me track down what's going wrong here? I think keybase has the potential to be an incredibly powerful tool, but this problem makes it hard for me to deploy in a stable, production system.

Expected behavior
see above

Screenshots
see above

Additional numbers
The number 345567

主要语言
Go
星标
9.3k
派生
1.3k
平均合并
1 天 1 小时
30 天内合并 PR
102

环境准备

  • 提供 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 没有贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

keybase/client 的其他 Issue

查看 keybase/client 的全部 Issue

相似的 Issue

更多 Go Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。