nix-community / lorri

Your project’s nix-env [maintainer=@Profpatsch,@nyarly]
Apache License 2.0
677 stars 24 forks source link

Lorri Crash Report #94

Closed sternenseemann closed 2 months ago

sternenseemann commented 1 year ago

I think this happened because I ran git checkout in a local nixpkgs checkout eval depended on which caused git to delete some files.

name = 'lorri'
operating_system = 'unix:Unknown'
crate_version = '1.6.0'
explanation = '''
Panic occurred in file 'src/build_loop.rs' at line 238
'''
cause = '''
Unrecoverable error:
Io {
    msg: "Error { kind: Io(Os { code: 2, kind: NotFound, message: \"No such file or directory\" }), paths: [] }",
}'''
method = 'Panic'
backtrace = '''

   0: 0x55b40a585f59 - lorri::build_loop::BuildLoop::forever::h90b55c6f6d2ef7d5
   1: 0x55b40a549ff4 - std::sys_common::backtrace::__rust_begin_short_backtrace::h4f4bdb6de68914b0
   2: 0x55b40a59ad27 - core::ops::function::FnOnce::call_once{{vtable.shim}}::hdca413b472e1bf16
   3: 0x55b40a73ded3 - std::sys::unix::thread::Thread::new::thread_start::h1f2eb64c3e9233cd
   4: 0x7fb48fe16e86 - start_thread
   5: 0x7fb48fe9dc60 - __clone3
   6:        0x0 - <unresolved>'''
ckiee commented 1 year ago
name = 'lorri'
operating_system = 'unix:Unknown'
crate_version = '1.6.0'
explanation = '''
Panic occurred in file 'src/build_loop.rs' at line 238
'''
cause = '''
Unrecoverable error:
Io {
    msg: "Error { kind: Io(Os { code: 2, kind: NotFound, message: \"No such file or directory\" }), paths: [] }",
}'''
method = 'Panic'
backtrace = '''

   0: 0x56217cf797ae - lorri::build_loop::BuildLoop::forever::h807d9bf535db9689
   1: 0x56217cf55682 - std::sys_common::backtrace::__rust_begin_short_backtrace::h33c9a6f0e5c494d0
   2: 0x56217cfb8d1f - core::ops::function::FnOnce::call_once{{vtable.shim}}::h86ceb4fdff267d4a
   3: 0x56217d0f9ea3 - std::sys::unix::thread::Thread::new::thread_start::he07b48d75c5d0290
   4: 0x7f12c6532e86 - start_thread
   5: 0x7f12c65b9d30 - clone3
   6:        0x0 - <unresolved>'''

Same, but I switched back from flakes to just a normal shell.nix and deleted *.nix for a moment.

jarkad commented 5 months ago

I have the same problem on NixOS unstable, commit 31cd1b4afbaf0b1e81272ee9c31d1ab606503aed. I installed lorri with services.lorri.enable = true;.

After some debugging, function lorri::watch::Watch::add_path looks suspicious: self.notify.watch(parent) is only called if self.watches does not contain the parent, but the parent is not added to self.watches afterwards. https://github.com/nix-community/lorri/blob/046675de620a91e5d985c1430a49145a81f4e060/src/watch.rs#L162-L171

Also, running cd /home/u/proj/intro && strace -s 1000 -fZe %file lorri watch --once |& grep ENOENT got me this curious line:

[pid 720164] readlink("/home/u/proj/intro/<nix", 0x7ffdd9105f30, 1023) = -1 ENOENT (No such file or directory)

Maybe the path gets truncated somewhere?

zero2null commented 4 months ago

I think I have the same issue on my system (Ubuntu 22.04 with nixpkgs and Lorri version 1.6.0)

After I build lorri locally from latest git version it worked. So the issue seemed to be solved since release 1.6.0.

nyarly commented 2 months ago

This bug is fixed in 1.7.0, which is in nixpkgs as of NixOS 24.05. Thank you for your patience!