Subject: bug#38435: closed (Re: bug#38435: BTRFS open_ctree failed)

From: [email-masked] (GNU bug Tracking System)
Date: Mon, 01 Feb 2021 19:17:02 +0000

Your bug report

#38435: BTRFS open_ctree failed

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
38435: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=38435
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#38435: BTRFS open_ctree failed
From: Maxim Cournoyer <[email-masked]>
To: Guillaume Le Vaillant <[email-masked]>
Cc: [email-masked], raingloom <[email-masked]>
Date: Mon, 01 Feb 2021 14:16:10 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello,

Guillaume Le Vaillant <[email-masked]> writes:

[...]

>>> >   (file-systems (cons* (file-system
>>> >                          (device (file-system-label "GUIX"))
>>> >                          (mount-point "/")
>>> > 			 (options "lazytime,compress")
>>> >                          (type "btrfs"))
>>> >                        ;(file-system
>>> >                        ;  (device (uuid "1234-ABCD" 'fat))
>>> >                        ;  (mount-point "/boot/efi")
>>> >                        ;  (type "vfat"))
>>> >                        %base-file-systems))
>>> >  
>>> 
>>> I just tried adding the 'lazytime' option to my root file system, and
>>> I got the same error as you when booting. Could you try removing it
>>> and see if it works?
>>> 
>>> Until recently, the options declared in 'file-system' records were
>>> always ignored when mounting the root file system. Now they are taken
>>> into consideration, and I think it reveals a bug in the way file
>>> systems are mounted. If some options like 'lazytime' or 'defaults'
>>> are declared in a 'file-system' record (root file system or not),
>>> mounting it fails. However some other options like 'compress' or
>>> 'autodefrag' work fine.
>>> 
>>> I suspect Guix adds some options by default when trying to mount file
>>> systems, and maybe we end up with conflicting options or doubled
>>> options that cause problems.
>>> 
>>> 
>>> 
>>
>> I removed it and ran reconfigure and now it works.
>
> Applying patches #38462 and #38468 and changing the file system
> definition to the following should allow you to mount the root file
> system with the 'lazytime' option:
>
> (file-system
>   (device (file-system-label "GUIX"))
>   (mount-point "/")
>   (flags '(lazy-time))
>   (options "compress")
>   (type "btrfs"))

I see these earlier patches of yours got merged already and the original
issue addressed.

Thank you!

Closing.

Maxim

Subject: BTRFS open_ctree failed
From: raingloom <[email-masked]>
To: [email-masked]
Date: Sat, 30 Nov 2019 14:45:39 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

This is what I get after a recent `guix system reconfigure` :
Scanning for Btrfs filesystems
[    2.342790] BTRFS error (device sda1): open_ctree failed

Previous profiles work, I haven't modified anything about my config.scm
between them.

Full output from kernel (taken by booting it from QEMU and redirecting
ttyS0 to stdio):
```
qemu-system-x86_64 -enable-kvm -cpu host -smp 2 -hda /dev/sda -m 1G
-serial stdio WARNING: Image format was not specified for '/dev/sda'
and probing guessed raw. Automatically detecting the format is
dangerous for raw images, write operations on block 0 will be
restricted. Specify the 'raw' format explicitly to remove the
restrictions. GC Warning: pthread_getattr_np or pthread_attr_getstack
failed for main thread GC Warning: Couldn't read /proc/stat Welcome,
this is GNU's early boot Guile. Use '--repl' for an initrd REPL.

loading kernel modules...
Scanning for Btrfs filesystems
[    2.342790] BTRFS error (device sda1): open_ctree failed
ERROR: In procedure mount:
In procedure mount: Invalid argument

Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.
GNU Guile 2.2.6
Copyright (C) 1995-2019 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guile-user)> ,bt
In gnu/build/linux-boot.scm:
   533:14  2 (_)
    387:8  1 (mount-root-file-system _ _ #:volatile-root? _ #:options …)
In unknown file:
           0 (mount "/dev/sda1" "/root" "btrfs" 0 "lazytime,compress")
scheme@(guile-user)> ,q  
[   42.345826] Kernel panic - not syncing: Attempted to kill init!
```
(rest of stack trace snipped for brevity's sake)

output of `guix describe` as root:
```
Generation 26	Nov 29 2019 21:22:41	(current)
  nonguix 2df6923
    repository URL: https://gitlab.com/nonguix/nonguix.git
    branch: master
    commit: 2df692312100ac5bea9ed8e8bf0032e6db100e91
  guix dac7928
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: dac7928d502d9ba4fc6a9621e5b2b15019d92d5b
```

Contents of /etc/profile.scm:

```
(define use-proprietary-crap? #f)

(use-modules (gnu)
	     (gnu system nss)
	     (gnu packages shells)
	     (gnu packages package-management)
	     (gnu packages gnome))

(if use-proprietary-crap?
    (use-modules (nongnu packages linux))
    (use-modules (gnu packages linux)))

(use-service-modules desktop ssh nix)
(use-package-modules
 bootloaders
 certs
 ratpoison
 suckless
 wm)

(operating-system
  (host-name "bingobongo")
  (timezone "Europe/Budapest")
  (locale "en_US.utf8")
  (kernel
   (if use-proprietary-crap?
       linux
       linux-libre))
  (firmware (append
	     (if use-proprietary-crap?
		 (list iwlwifi-firmware)
		 '())
	     %base-firmware))

  ;; Use the UEFI variant of GRUB with the EFI System
  ;; Partition mounted on /boot/efi.
  (bootloader (bootloader-configuration
                (bootloader grub-bootloader)
                (target "/dev/sda")))

  ;; Assume the target root file system is labelled "my-root",
  ;; and the EFI System Partition has UUID 1234-ABCD.
  (file-systems (cons* (file-system
                         (device (file-system-label "GUIX"))
                         (mount-point "/")
			 (options "lazytime,compress")
                         (type "btrfs"))
                       ;(file-system
                       ;  (device (uuid "1234-ABCD" 'fat))
                       ;  (mount-point "/boot/efi")
                       ;  (type "vfat"))
                       %base-file-systems))

  (users (append (list
		  (user-account
		   (name "raingloom")
		   (comment "your friendly localhost admin")
		   (group "users")
		   (shell "/run/current-system/profile/bin/zsh")
		   (supplementary-groups '("wheel" "netdev" "audio"
  "video" "kvm")) (home-directory "/home/raingloom")))
               %base-user-accounts))

  ;; Add a bunch of window managers; we can choose one at
  ;; the log-in screen with F1.
  (packages (cons* i3-wm i3status dmenu ;window managers
                   nss-certs            ;for HTTPS access
                   zsh                  ;nicer login shell
                   gvfs
                   nix
                   gnome
                   orca
                   %base-packages))

  ;; Use the "desktop" services, which include the X11
  ;; log-in service, networking with NetworkManager, and more.
  (services
   (append (list (service nix-service-type) (service
  openssh-service-type (openssh-configuration (x11-forwarding? #t))))
  (modify-services %desktop-services
	    (elogind-service-type config =>
				  (elogind-configuration
				   (inherit config)
				   (handle-lid-switch 'ignore))))))

  ;; Allow resolution of '.local' host names with mDNS.
  (name-service-switch %mdns-host-lookup-nss))
```