keybase / keybase/client

kbfsfuse keeps crashing on my Linux machine

Open
#8,937 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
9.2k
Forks
1.3k
Avg merge
12h 58m
Merged PRs (30d)
56

Description

Hi! I just started using Keybase. Today, my laptop was running real slow. I checked iotop, and noticed that kbfsfuse was performing a lot of IO. So I killed it, using the same procedure that the run_keybase script does:

fusermount -uz /keybase
killall kbfsfuse

Now I'm trying to use Keybase to transfer some information among two of my laptops, but kbfsfuse just won't start.

Hope you guys can find what's wrong from my log id: ba34c3bb1a6f6ed29acc681c

I've found some errors on keybase.kbfs.log, related to a "merge conflict" or something? It ends with:

2017-10-09T18:58:59.519607-03:00 ▶ [DEBU kbfs(CR a6b56b0e) conflict_resolver.go:3172] 2b3 Recreate ops: [] [tags:CRID=CiULk7kBqREqE71X19r-Yg]
2017-10-09T18:58:59.520826-03:00 ▶ [DEBU kbfs(CR a6b56b0e) asm_amd64.s:509] 2b4 Finished conflict resolution: <nil> [tags:CRID=CiULk7kBqREqE71X19r-Yg]
panic: runtime error: index out of range

goroutine 367 [running]:
github.com/keybase/kbfs/libkbfs.path.tailName(...)
	/root/build/gopaths/amd64/src/github.com/keybase/kbfs/libkbfs/path.go:122
github.com/keybase/kbfs/libkbfs.(*setAttrOp).checkConflict(0xc420ae2200, 0x1e6ea60, 0xc422aa2e00, 0x1e63ce0, 0xc420044590, 0x1e7b140, 0xc42466ae00, 0x0, 0x0, 0x0, ...)
	/root/build/gopaths/amd64/src/github.com/keybase/kbfs/libkbfs/ops.go:1135 +0x98d
github.com/keybase/kbfs/libkbfs.(*crChain).getActionsToMerge(0xc4204316c0, 0x1e6ea60, 0xc422aa2e00, 0x1e63ce0, 0xc420044590, 0x82ae8d540e6bb5a6, 0x160d37b5d485aeb4, 0x0, 0x0, 0xc423cdde00, ...)
	/root/build/gopaths/amd64/src/github.com/keybase/kbfs/libkbfs/cr_chains.go:203 +0x16b
github.com/keybase/kbfs/libkbfs.(*ConflictResolver).getActionsToMerge(0xc4202357a0, 0x1e6ea60, 0xc422aa2e00, 0xc422aab2c0, 0xc422aaa3c0, 0xc4220d7d10, 0x20, 0xc4220dc2d0, 0x46)
	/root/build/gopaths/amd64/src/github.com/keybase/kbfs/libkbfs/conflict_resolver.go:1938 +0x342
github.com/keybase/kbfs/libkbfs.(*ConflictResolver).computeActions(0xc4202357a0, 0x1e6ea60, 0xc422aa2e00, 0xc422aab2c0, 0xc422aaa3c0, 0xc4206c2200, 0x9, 0x9, 0xc4220d7d10, 0x0, ...)
	/root/build/gopaths/amd64/src/github.com/keybase/kbfs/libkbfs/conflict_resolver.go:2093 +0x2b2
github.com/keybase/kbfs/libkbfs.(*ConflictResolver).doResolve(0xc4202357a0, 0x1e6ea60, 0xc422aa2e00, 0x8, 0x0)
	/root/build/gopaths/amd64/src/github.com/keybase/kbfs/libkbfs/conflict_resolver.go:3189 +0x11fc
github.com/keybase/kbfs/libkbfs.(*ConflictResolver).processInput.func3(0xc4202357a0, 0xc420b14180, 0xc4220c6c00, 0x8, 0x0, 0xc420aadb60)
	/root/build/gopaths/amd64/src/github.com/keybase/kbfs/libkbfs/conflict_resolver.go:217 +0x229
created by github.com/keybase/kbfs/libkbfs.(*ConflictResolver).processInput
	/root/build/gopaths/amd64/src/github.com/keybase/kbfs/libkbfs/conflict_resolver.go:205 +0x278

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the panic at libkbfs/path.go:122 and trace the setAttrOp.checkConflict call in libkbfs/ops.go:1135 through cr_chains.go and conflict_resolver.go. Use the supplied log and stack trace to investigate the conflict-resolution path; done means kbfsfuse no longer panics while resolving this case.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, linux
Domain
operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.