Skip to content

"no entry found for key" panic in helix-view #3459

@bcspragu

Description

@bcspragu

Summary

Helix panics (about 1-2 times a day with ~8 hour usage) with the following error:

Error
$ RUST_BACKTRACE=full GOPACKAGESDRIVER=$PWD/scripts/gopackagesdriver.sh hx
thread 'main' panicked at 'no entry found for key', helix-view/src/document.rs:1006:10
stack backtrace:
   0:     0x55bd8c72b384 - <unknown>
   1:     0x55bd8bf6965c - <unknown>
   2:     0x55bd8c724d65 - <unknown>
   3:     0x55bd8c72d22e - <unknown>
   4:     0x55bd8c72cf5d - <unknown>
   5:     0x55bd8c5b6b5c - <unknown>
   6:     0x55bd8c72d8bb - <unknown>
   7:     0x55bd8c72d6e4 - <unknown>
   8:     0x55bd8c72b8b4 - <unknown>
   9:     0x55bd8c72d44d - <unknown>
  10:     0x55bd8bee8c33 - <unknown>
  11:     0x55bd8bf67d31 - <unknown>
  12:     0x55bd8bf67cdb - <unknown>
  13:     0x55bd8bee8aa6 - <unknown>
  14:     0x55bd8c51965c - <unknown>
  15:     0x55bd8c217c29 - <unknown>
  16:     0x55bd8c3e7c3f - <unknown>
  17:     0x55bd8c5b3845 - <unknown>
  18:     0x55bd8c5d0fab - <unknown>
  19:     0x55bd8c5a9392 - <unknown>
  20:     0x55bd8c591578 - <unknown>
  21:     0x55bd8c5f27a8 - <unknown>
  22:     0x55bd8c5cdc73 - <unknown>
  23:     0x55bd8c589826 - <unknown>
  24:     0x55bd8c589953 - <unknown>
  25:     0x55bd8c5a908d - <unknown>
  26:     0x55bd8c71f5fb - <unknown>
  27:     0x55bd8c589932 - <unknown>
  28:     0x7f056d9d12d0 - <unknown>
  29:     0x7f056d9d138a - __libc_start_main
  30:     0x55bd8bf1edd5 - <unknown>
  31:                0x0 - <unknown>

I think it happens on save, but not every time I save (I'm saving with :wa very frequently because of this issue), but it always catches me off guard, so I can never remember exactly what I was doing when it happened.

I don't think GOPACKAGESDRIVER has anything to do with it, it's just what I use to get Go's LSP working with Bazel. I'm pretty confident I've seen this failure even when not running with GOPACKAGESDRIVER.

Reproduction Steps

Unfortunately, I don't know exactly what triggers it. I usually have lots of splits open, and it seems to be either a :w or :wa command that triggers the failure.

Helix log

~/.cache/helix/helix.log
2022-08-16T09:11:48.686 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T09:12:15.077 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T09:13:57.611 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T09:46:32.853 helix_view::editor [ERROR] Failed to initialize the LSP for `source.md` { LSP not defined }
2022-08-16T09:46:41.629 helix_view::editor [ERROR] Failed to initialize the LSP for `source.md` { LSP not defined }
2022-08-16T09:48:56.085 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T09:48:59.795 helix_lsp::transport [ERROR] err: <- StreamClosed
2022-08-16T09:49:58.990 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T09:58:05.710 helix_lsp::transport [ERROR] err: <- StreamClosed
2022-08-16T09:58:08.114 helix_lsp::transport [ERROR] err: <- StreamClosed
2022-08-16T09:59:01.288 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T09:59:31.375 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T10:00:07.235 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T10:01:48.057 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T10:03:10.204 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T10:10:03.673 helix_lsp::transport [ERROR] err: <- StreamClosed
2022-08-16T10:10:15.765 helix_view::editor [ERROR] Failed to initialize the LSP for `git.commitmsg` { LSP not defined }
2022-08-16T10:25:57.120 helix_lsp::transport [ERROR] err: <- StreamClosed
2022-08-16T10:46:11.049 helix_lsp::transport [ERROR] <- ServerError(0): 14:21: string literal not terminated (and 2 more errors)
2022-08-16T10:46:11.050 helix_view::document [WARN] LSP formatting failed: protocol error: ServerError(0): 14:21: string literal not terminated (and 2 more errors)
2022-08-16T10:54:14.696 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T10:54:22.729 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T10:55:39.396 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T10:56:59.820 helix_view::editor [ERROR] Failed to initialize the LSP for `source.sql` { LSP not defined }
2022-08-16T10:57:07.583 helix_view::editor [ERROR] Failed to initialize the LSP for `source.sql` { LSP not defined }
2022-08-16T10:59:05.821 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T10:59:40.993 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T10:59:57.991 helix_view::editor [ERROR] Failed to initialize the LSP for `source.sql` { LSP not defined }
2022-08-16T11:04:37.385 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T11:05:12.052 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T11:05:46.337 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T11:08:33.941 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T11:09:06.968 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T11:11:42.715 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T11:12:32.145 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T11:19:10.376 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T11:22:27.091 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T11:23:53.661 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T11:24:57.772 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T11:25:54.567 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T11:26:27.158 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T11:27:15.928 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T11:28:08.760 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T11:29:00.692 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T11:29:32.137 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T11:30:34.538 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T11:31:39.642 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T11:32:53.320 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T11:35:36.503 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T11:41:17.265 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T11:47:09.087 helix_term::application [WARN] lsp position out of bounds - Diagnostic { range: Range { start: Position { line: 142, character: 0 }, end: Position { line: 142, character: 0 } }, severity: Some(Error), code: None, code_description: None, source: Some("syntax"), message: "expected ';', found 'EOF'", related_information: None, tags: None, data: None }
2022-08-16T11:47:09.270 helix_term::application [WARN] lsp position out of bounds - Diagnostic { range: Range { start: Position { line: 143, character: 0 }, end: Position { line: 143, character: 0 } }, severity: Some(Error), code: None, code_description: None, source: Some("syntax"), message: "expected ';', found 'EOF'", related_information: None, tags: None, data: None }
2022-08-16T11:47:09.423 helix_term::application [WARN] lsp position out of bounds - Diagnostic { range: Range { start: Position { line: 144, character: 0 }, end: Position { line: 144, character: 0 } }, severity: Some(Error), code: None, code_description: None, source: Some("syntax"), message: "expected ';', found 'EOF'", related_information: None, tags: None, data: None }
2022-08-16T11:47:15.815 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T11:48:13.727 helix_term::application [WARN] lsp position out of bounds - Diagnostic { range: Range { start: Position { line: 148, character: 0 }, end: Position { line: 148, character: 0 } }, severity: Some(Error), code: None, code_description: None, source: Some("syntax"), message: "expected ';', found 'EOF'", related_information: None, tags: None, data: None }
2022-08-16T11:48:13.898 helix_term::application [WARN] lsp position out of bounds - Diagnostic { range: Range { start: Position { line: 149, character: 0 }, end: Position { line: 149, character: 0 } }, severity: Some(Error), code: None, code_description: None, source: Some("syntax"), message: "expected ';', found 'EOF'", related_information: None, tags: None, data: None }
2022-08-16T11:48:37.571 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T11:49:26.443 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T11:50:01.018 helix_term::application [WARN] lsp position out of bounds - Diagnostic { range: Range { start: Position { line: 154, character: 0 }, end: Position { line: 154, character: 0 } }, severity: Some(Error), code: None, code_description: None, source: Some("syntax"), message: "expected ';', found 'EOF'", related_information: None, tags: None, data: None }
2022-08-16T11:50:01.220 helix_term::application [WARN] lsp position out of bounds - Diagnostic { range: Range { start: Position { line: 155, character: 0 }, end: Position { line: 155, character: 0 } }, severity: Some(Error), code: None, code_description: None, source: Some("syntax"), message: "expected ';', found 'EOF'", related_information: None, tags: None, data: None }
2022-08-16T11:50:01.359 helix_term::application [WARN] lsp position out of bounds - Diagnostic { range: Range { start: Position { line: 156, character: 0 }, end: Position { line: 156, character: 0 } }, severity: Some(Error), code: None, code_description: None, source: Some("syntax"), message: "expected ';', found 'EOF'", related_information: None, tags: None, data: None }
2022-08-16T11:50:39.381 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T11:50:51.460 helix_term::application [WARN] lsp position out of bounds - Diagnostic { range: Range { start: Position { line: 159, character: 0 }, end: Position { line: 159, character: 0 } }, severity: Some(Error), code: None, code_description: None, source: Some("syntax"), message: "expected ';', found 'EOF'", related_information: None, tags: None, data: None }
2022-08-16T11:50:51.629 helix_term::application [WARN] lsp position out of bounds - Diagnostic { range: Range { start: Position { line: 160, character: 0 }, end: Position { line: 160, character: 0 } }, severity: Some(Error), code: None, code_description: None, source: Some("syntax"), message: "expected ';', found 'EOF'", related_information: None, tags: None, data: None }
2022-08-16T11:51:09.160 helix_term::application [WARN] lsp position out of bounds - Diagnostic { range: Range { start: Position { line: 162, character: 0 }, end: Position { line: 162, character: 0 } }, severity: Some(Error), code: None, code_description: None, source: Some("syntax"), message: "expected ';', found 'EOF'", related_information: None, tags: None, data: None }
2022-08-16T11:51:09.309 helix_term::application [WARN] lsp position out of bounds - Diagnostic { range: Range { start: Position { line: 163, character: 0 }, end: Position { line: 163, character: 0 } }, severity: Some(Error), code: None, code_description: None, source: Some("syntax"), message: "expected ';', found 'EOF'", related_information: None, tags: None, data: None }
2022-08-16T11:51:09.460 helix_term::application [WARN] lsp position out of bounds - Diagnostic { range: Range { start: Position { line: 164, character: 0 }, end: Position { line: 164, character: 0 } }, severity: Some(Error), code: None, code_description: None, source: Some("syntax"), message: "expected ';', found 'EOF'", related_information: None, tags: None, data: None }
2022-08-16T11:51:56.141 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T11:52:33.431 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T11:54:42.422 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T11:55:27.757 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T11:56:01.825 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T11:57:10.284 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T11:58:05.591 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"
2022-08-16T11:58:38.891 helix_lsp::transport [ERROR] err <- "walk.go:91: gopathwalk: scanning directory <project directory>: open <project directory>/bazel-<project name>/.postgres-data/data: permission denied\n"

Most of these errors are related to $PROJECT/.postgres-data/data, which is owned by some other user (it's running in a Docker container). I believe I've seen this failure in other projects that wouldn't have this .postgres-data directory, and also when editing non-Go projects (e.g. TypeScript)

Platform

Linux

Terminal Emulator

st (4ef0cbd8)

Helix Version

helix 22.05 (8deaebd) (built from HEAD ~4 days ago)

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-helix-termArea: Helix term improvementsC-bugCategory: This is a bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions