nix-community / lorri

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

Crash report from lorri #99

Open kcalvinalvin opened 7 months ago

kcalvinalvin commented 7 months ago

Describe the bug Got a thread caused non-unwinding panic. aborting. and was asked to submit a crash report.

To Reproduce Steps to reproduce the behavior:

  1. lorri watch

Expected behavior Lorri watch to complete build without fail

Metadata

name = 'lorri'
operating_system = 'unix:Unknown'
crate_version = '1.6.0'
explanation = '''
Panic occurred in file 'library/core/src/panicking.rs' at line 126
'''
cause = 'panic in a function that cannot unwind'
method = 'Panic'
backtrace = '''

   0: 0x56550b165a47 - core::panicking::panic_nounwind::h6472c08d4f546031
   1: 0x56550b165ae3 - core::panicking::panic_cannot_unwind::h75a2a12f84e4c675
   2: 0x56550b1c4930 - lorri::run_async::Async<Res>::block::h7745a80ae84dd981
   3: 0x56550b1e3b80 - lorri::ops::watch::hc9b8d16578b0448c
   4: 0x56550b167dac - lorri::main::h166a684183b706f6
   5: 0x56550b16ed03 - std::sys_common::backtrace::__rust_begin_short_backtrace::h192a5b559516115b
   6: 0x56550b16d159 - std::rt::lang_start::{{closure}}::h53ed71a0308f27a7
   7: 0x56550b38c957 - std::rt::lang_start_internal::h691452d5fd9810c0
   8: 0x56550b169165 - main
   9: 0x7f87b3fb2fce - __libc_start_call_main
  10: 0x7f87b3fb3089 - __libc_start_main_impl
  11: 0x56550b165de5 - _start
  12:        0x0 - <unresolved>'''
$ lorri info
[I] deck@steamdeck ~/b/g/utreexo> lorri info
error: The following required arguments were not provided:
    --shell-file <nix_file>

USAGE:
    lorri info --shell-file <nix_file>

For more information try --help

[I] deck@steamdeck ~/b/g/utreexo> lorri info --shell-file shell.nix
GC roots exist, shell_gc_root: /home/deck/.cache/lorri/gc_roots/7b31e7bce9165b04d3806fff9dbcc1d6/gc_root/shell_gc_root
[N] deck@steamdeck ~/b/g/utreexo> lorri info --shell-file ./shell.nix
GC roots do not exist. Has the project been built with lorri yet?
$ uname -a
Linux steamdeck 6.1.52-valve9-1-neptune-61 #1 SMP PREEMPT_DYNAMIC Wed, 22 Nov 2023 23:43:34 +0000 x86_64 GNU/Linux

Additional context Not sure if it helps but I was trying to build this shell.nix file:

let                                                                                                                                                                                                    
  pkgs = import <nixpkgs> {};                                                                                                                                                                          
  PROJECT_ROOT = builtins.getEnv "PWD";                                                                                                                                                                
in                                                                                                                                                                                                     
with pkgs;                                                                                                                                                                                             

stdenv.mkDerivation rec {                                                                                                                                                                              
  name = "utreexo";                                                                                                                                                                                    
  env = buildEnv { name = name; paths = buildInputs; };                                                                                                                                                
  nativeBuildInputs = [                                                                                                                                                                                
    pkg-config                                                                                                                                                                                         
    autoreconfHook                                                                                                                                                                                     
    glibc                                                                                                                                                                                              
    binutils                                                                                                                                                                                           
  ];                                                                                                                                                                                                   
  buildInputs = [                                                                                                                                                                                      
    #go                                                                                                                                                                                                
    go                                                                                                                                                                                                 
    gopls                                                                                                                                                                                              
    graphviz # needed for pprof                                                                                                               
    #golangci-lint                                                                                                                            

    # cpp bitcoin deps                                                                                                                        
    openssl                                                                                                                 
    db48                                                                                                                    
    boost                                                                                                                   
    zlib                                                                                                                    
    zeromq                                                                                                                  
    miniupnpc                                                                                                               
    libevent                                                                                                                
    utillinux                                                                                                               
    python38Packages.pyzmq                                                                                                  
    ccache                                                                                                                  

    ctags      

    gmp.dev 
    gmp.out
    ncurses.dev 
    ncurses.out                                               

    valgrind                                                  
  ];                                             
  shellHook = ''                                 
    export GOPATH=${PROJECT_ROOT}/go                                                               
    export PATH=${PROJECT_ROOT}/go/bin:$PATH                                                       
    export GOENV=${PROJECT_ROOT}/go/env                                                            

    export NIX_SHELL_ENV=${name}                                                                   
    export USE_BOOST_LIBDIR="${boost.out}/lib"                                                     
    export LD_LIBRARY_PATH=${PROJECT_ROOT}/lib                                                     
  '';                                            
}                                                

EDIT: Might be a steam-deck specific permissions issue. Used sudo and it works?

[I] deck@steamdeck ~/b/g/utreexo [SIGABRT]> sudo lorri watch
Dec 02 03:26:15.252 INFO build message, message: BuildEvent(Started { nix_file: NixFile(AbsPathBuf("/home/deck/bitcoin-projects/go/utreexo/shell.nix")), reason: PingReceived }), nix_file: /home/deck/bitcoin-projects/go/utreexo/shell.nix
Dec 02 03:26:17.481 INFO build message, message: BuildEvent(Completed { nix_file: NixFile(AbsPathBuf("/home/deck/bitcoin-projects/go/utreexo/shell.nix")), rooted_output_paths: OutputPath { shell_gc_root: RootPath(AbsPathBuf("/root/.cache/lorri/gc_roots/7b31e7bce9165b04d3806fff9dbcc1d6/gc_root/shell_gc_root")) } }), nix_file: /home/deck/bitcoin-projects/go/utreexo/shell.nix
^C⏎                                                                                                                                                                                                    [I] deck@steamdeck ~/b/g/utreexo [SIGINT]> 

Though the steamos-readonly option is already disabled.

[I] deck@steamdeck ~/b/g/utreexo [1]> sudo steamos-readonly disable
Warning: The rootfs is already read-write!
         Nothing is performed.
nyarly commented 4 months ago

I've run across a couple of issues with read-only filesystems and Lorri - I've always gotten useful panics out of them. I'm not super familiar with the Steam deck though so it's hard to speculate as to the cause

nyarly commented 1 week ago

Is it possible this is related to https://github.com/nix-community/lorri/issues/119#issuecomment-2195297067 ?