I upgraded packages, then ran sudo 66 -v3 status followed by 66 -v3 status. After rebooting I noticed my user trees had not started. My audio tree with pipewire would not start on 66 tree start audio (hanging) but 66 tree start sync would correctly start my syncthing service. 66 -t audio start pipewire hanged. After mucking about for a bit I recreated my user trees and got everything to come up correctly on a reboot, but now after a second reboot I'm back to no user trees starting.

66 -v3 -t audio start pipewire hangs with this output:

start: tracing: add service: pipewire to the graph selection
start: tracing: add service: pipewire-log to the graph selection
start: tracing: pipewire already initialized -- ignore it
start: tracing: copy: /home/myuser/.66/system/service/svc/pipewire-log to: /run/66/state/1000/pipewire-log
start: tracing: remove directory: /run/66/state/1000/pipewire-log/.resolve
start: tracing: symlink: /run/66/state/1000/pipewire-log/.resolve to: /home/myuser/.66/system/service/svc/pipewire-log/.resolve
start: tracing: symlink: /run/66/scandir/1000/pipewire-log to: /run/66/state/1000/pipewire-log
start: tracing: create file: /run/66/scandir/1000/pipewire-log/down
start: tracing: create fifo: /run/66/state/1000/pipewire-log/event
start: tracing: write status file at: /run/66/state/1000/pipewire-log/state/status
start: tracing: sending -twR signal to: /run/66/scandir/1000/fdholder
start: tracing: subcribe to fifo: /run/66/state/1000/pipewire-log/event
start: tracing: send signal: a to scandir: /run/66/scandir/1000
start: tracing: waiting for events on fifo...
start: tracing: clean event directory: /run/66/state/1000/pipewire/event
start: tracing: write status file at: /run/66/state/1000/pipewire/state/status
start: tracing: clean event directory: /run/66/state/1000/pipewire-log/event
start: tracing: write status file at: /run/66/state/1000/pipewire-log/state/status
start: info: Initialized successfully: pipewire-log
signal: tracing: requested flags to build the graph:  issupervised topropagate wantup
signal: tracing: add service: pipewire to the graph selection
signal: tracing: add service: pipewire-log to the graph selection
signal: tracing: Initiating process of: pipewire
signal: tracing: waiting dependencies for: pipewire
signal: tracing: Initiating process of: pipewire-log
signal: tracing: sending -wU -u to: /run/66/scandir/1000/pipewire-log

These are my trees:

66 tree status
Name        : global
Current     : yes
Enabled     : yes
Allowed     : myuser
Groups      : user
Depends     : None
Required by : noise-gate sync audio
Contents    : dbus@myuser dbus@myuser-log xdg-user-dirs

Name        : sync
Current     : no
Enabled     : yes
Allowed     : myuser
Groups      : user
Depends     : global
Required by : None
Contents    : syncthing syncthing-log

Name        : audio
Current     : no
Enabled     : yes
Allowed     : myuser
Groups      : user
Depends     : global
Required by : noise-gate
Contents    : pipewire pipewire-log pipewire-pulse pipewire-pulse-log wireplumber wireplumber-log

Name        : noise-gate
Current     : no
Enabled     : yes
Allowed     : myuser
Groups      : user
Depends     : global audio
Required by : None
Contents    : pipewire-input-filter-chain pipewire-input-filter-chain-log
66 status     
In tree: global
\
├─dbus@myuser-log (pid=1389, state=Enabled, type=classic, tree=global)
├─xdg-user-dirs (pid=up, state=Enabled, type=oneshot, tree=global)
└─dbus@myuser (pid=1393, state=Enabled, type=classic, tree=global)

In tree: sync
\
├─syncthing-log (pid=0, state=Enabled, type=classic, tree=sync)
└─syncthing (pid=0, state=Enabled, type=classic, tree=sync)

In tree: audio
\
├─pipewire-log (pid=0, state=Enabled, type=classic, tree=audio)
├─pipewire-pulse-log (pid=0, state=Enabled, type=classic, tree=audio)
├─wireplumber-log (pid=0, state=Enabled, type=classic, tree=audio)
├─pipewire (pid=0, state=Enabled, type=classic, tree=audio)
├─pipewire-pulse (pid=0, state=Enabled, type=classic, tree=audio)
└─wireplumber (pid=0, state=Enabled, type=classic, tree=audio)

In tree: noise-gate
\
├─pipewire-input-filter-chain-log (pid=0, state=Enabled, type=classic, tree=noise-gate)
└─pipewire-input-filter-chain (pid=0, state=Enabled, type=classic, tree=noise-gate)

Any tips on how I can fix this problem?
Running 66 -t audio remove pipewire and then 66 -t audio start wireplumber && 66 -t audio start pipewire-pulse brings up audio again, but I'd rather my trees work as intended.

can you share log of the different services?

I removed ~/.66/log/{pipewire,pipewire-pulse,wireplumber}/current and rebooted, neither file was created or written to after login.

I also removed ~/.66/log/dbus@myuser/current, this is the content after login:

66-execute: info: Stopping service: dbus@myuser
66-execute: info: Starting service: dbus@myuser
dbus-daemon[1395]: [session uid=1000 pid=1395] Activating service name='org.freedesktop.portal.Desktop' requested by ':1.1' (uid=1000 pid=1425 comm="konsole")
dbus-daemon[1395]: [session uid=1000 pid=1395] Activating service name='org.freedesktop.portal.Documents' requested by ':1.2' (uid=1000 pid=1428 comm="/usr/lib/xdg-desktop-portal")
dbus-daemon[1395]: [session uid=1000 pid=1395] Activating service name='org.freedesktop.impl.portal.PermissionStore' requested by ':1.3' (uid=1000 pid=1435 comm="/usr/lib/xdg-document-portal")
dbus-daemon[1395]: [session uid=1000 pid=1395] Successfully activated service 'org.freedesktop.impl.portal.PermissionStore'
dbus-daemon[1395]: [session uid=1000 pid=1395] Successfully activated service 'org.freedesktop.portal.Documents'

(/usr/lib/xdg-desktop-portal:1428): xdg-desktop-portal-WARNING **: 09:04:52.010: No skeleton to export
dbus-daemon[1395]: [session uid=1000 pid=1395] Successfully activated service 'org.freedesktop.portal.Desktop'

If I boot with the audio tree disabled, then the sync tree will properly start automatically; it also makes it possible to successfully 66 tree start audio.

I'll be happy to provide any other log file or command output you require.

  • eric replied to this.

    please give us the output of the following command:

    for log in $(66 tree status -no contents);do 66 status -o name,logfile,start $log;done

    advesperascit I removed ~/.66/log/{pipewire,pipewire-pulse,wireplumber}/current and rebooted, neither file was created or written to after login.

    I also removed ~/.66/log/dbus@myuser/current, this is the content after login:

    You should never remove any 66's components manually. You can get the same behavior with two ways:

    • 66 remove will also remove the log directory.
    • Using 66 signal -a -P <service>-log. This trigger a log rotation and so the result is an empty file.

      eric You should never remove any 66's components manually. You can get the same behavior with two ways:
      66 remove will also remove the log directory.
      Using 66 signal -a -P <service>-log. This trigger a log rotation and so the result is an empty file.

      I'll keep that in mind, thanks.

      Here is the output after 66 signal -a -P <service>-log the services (except xdg-user-dirs) and rebooting with audio tree enabled:

      Name                  : dbus@myuser
      Logger file           : 
      66-execute: info: Stopping service: dbus@myuser
      66-execute: info: Starting service: dbus@myuser
      dbus-daemon[1390]: [session uid=1000 pid=1390] Activating service name='org.freedesktop.portal.Desktop' requested by ':1.1' (uid=1000 pid=1420 comm="konsole")
      dbus-daemon[1390]: [session uid=1000 pid=1390] Activating service name='org.freedesktop.portal.Documents' requested by ':1.2' (uid=1000 pid=1423 comm="/usr/lib/xdg-desktop-portal")
      dbus-daemon[1390]: [session uid=1000 pid=1390] Activating service name='org.freedesktop.impl.portal.PermissionStore' requested by ':1.3' (uid=1000 pid=1430 comm="/usr/lib/xdg-document-portal")
      dbus-daemon[1390]: [session uid=1000 pid=1390] Successfully activated service 'org.freedesktop.impl.portal.PermissionStore'
      dbus-daemon[1390]: [session uid=1000 pid=1390] Successfully activated service 'org.freedesktop.portal.Documents'
      
      (/usr/lib/xdg-desktop-portal:1423): xdg-desktop-portal-WARNING **: 11:55:13.702: No skeleton to export
      dbus-daemon[1390]: [session uid=1000 pid=1390] Successfully activated service 'org.freedesktop.portal.Desktop'
      
      Start script          : 
                              #!/usr/bin/execlineb -P
                                  /usr/bin/execl-toc -S ${Socket}
                                  /usr/bin/execl-cmdline -s { /usr/bin/dbus-daemon ${Args} }
      
      Name                  : dbus@myuser-log
      Logger file           : None
      Start script          : 
                              #!/usr/bin/execlineb -P
                              s6-log -d3 n3 s1000000 /home/myuser/.66/log/dbus@myuser
      
      Name                  : xdg-user-dirs
      Logger file           : 
      66-execute: info: Starting service: xdg-user-dirs
      66-execute: info: Starting service: xdg-user-dirs
      66-execute: info: Starting service: xdg-user-dirs
      66-execute: info: Starting service: xdg-user-dirs
      66-execute: info: Starting service: xdg-user-dirs
      66-execute: info: Starting service: xdg-user-dirs
      66-execute: info: Starting service: xdg-user-dirs
      66-execute: info: Starting service: xdg-user-dirs
      66-execute: info: Starting service: xdg-user-dirs
      66-execute: info: Starting service: xdg-user-dirs
      
      Start script          : 
                              #!/usr/bin/execlineb -P
                               /usr/bin/xdg-user-dirs-update 
      
      Name                  : pipewire
      Logger file           : None
      Start script          : 
                              #!/usr/bin/execlineb -P
                               /usr/bin/pipewire 
      
      Name                  : pipewire-log
      Logger file           : None
      Start script          : 
                              #!/usr/bin/execlineb -P
                              s6-log -d3 n3 s1000000 /home/myuser/.66/log/pipewire
      
      Name                  : pipewire-pulse
      Logger file           : None
      Start script          : 
                              #!/usr/bin/execlineb -P
                               /usr/bin/pipewire -c pipewire-pulse.conf 
      
      Name                  : pipewire-pulse-log
      Logger file           : None
      Start script          : 
                              #!/usr/bin/execlineb -P
                              s6-log -d3 n3 s1000000 /home/myuser/.66/log/pipewire-pulse
      
      Name                  : wireplumber
      Logger file           : 
      N 11:48:37.071134        wireplumber ../wireplumber/src/main.c:79:signal_handler: stopped by signal: Terminated
      N 11:48:37.075489        wireplumber ../wireplumber/src/main.c:71:on_disconnected: disconnected from pipewire
      W 11:48:37.075712            pw.core ../pipewire/src/pipewire/core.c:183:destroy_proxy: 0x616229ec6e80: leaked proxy 0x616229e9e320 id:3
      W 11:48:37.075719            pw.core ../pipewire/src/pipewire/core.c:183:destroy_proxy: 0x616229ec6e80: leaked proxy 0x616229f137b0 id:4
      W 11:48:37.075722            pw.core ../pipewire/src/pipewire/core.c:183:destroy_proxy: 0x616229ec6e80: leaked proxy 0x616229eca790 id:5
      W 11:48:37.075725            pw.core ../pipewire/src/pipewire/core.c:183:destroy_proxy: 0x616229ec6e80: leaked proxy 0x616229fa6e40 id:12
      
      Start script          : 
                              #!/usr/bin/execlineb -P
                               /usr/bin/wireplumber 
      
      Name                  : wireplumber-log
      Logger file           : None
      Start script          : 
                              #!/usr/bin/execlineb -P
                              s6-log -d3 n3 s1000000 /home/myuser/.66/log/wireplumber
      
      Name                  : syncthing
      Logger file           : 
      [monitor] 2024/11/18 11:48:37 INFO: Signal 15 received; exiting
      [X5QIL] 2024/11/18 11:48:37 INFO: QUIC listener ([::]:22000) shutting down
      [X5QIL] 2024/11/18 11:48:37 INFO: Lost primary connection to ZCLASYO at 192.168.164.51:22000-192.168.254.3:22000/tcp-client/TLS1.3-TLS_CHACHA20_POLY1305_SHA256/LAN-P10-609089ELRADT45THMSJD16P9FQ: Syncthing is being stopped (0 remain)
      [X5QIL] 2024/11/18 11:48:37 INFO: Connection to ZCLASYO at 192.168.164.51:22000-192.168.254.3:22000/tcp-client/TLS1.3-TLS_CHACHA20_POLY1305_SHA256/LAN-P10-609089ELRADT45THMSJD16P9FQ closed: Syncthing is being stopped
      [X5QIL] 2024/11/18 11:48:37 INFO: TCP listener ([::]:22000) shutting down
      [X5QIL] 2024/11/18 11:48:37 INFO: Exiting
      
      Start script          : 
                              #!/usr/bin/execlineb -P
                               /usr/bin/syncthing 
      
      Name                  : syncthing-log
      Logger file           : None
      Start script          : 
                              #!/usr/bin/execlineb -P
                              s6-log -d3 n3 s1000000 /home/myuser/.66/log/syncthing

      EDIT: before doing the following, please synchronize and install the new pipewire-66serv (0.8.1-1) service. I found a bug.
      You have something wrong on your system. It's not normal to not get log of pipewire, pipewire-pulse.
      I propose you the following:

      % 66 remove -P pipewire
      % 66 remove -P wireplumber
      % 66 tree remove audio
      % 66 -t audio enable pipewire  wireplumber
      % 66 tree admin -o depends=global,requiredby=noise-gate audio
      % 66 tree enable audio

      You will start from scratch. Then try to reboot and send us the log please.

        eric

        I upgraded the pipewire-66serv package and followed your instructions with some amendments.
        I had to 66 remove -P pipewire-pulse as well otherwise 66 status crashed with fatal error (I lost the -v3 output but it stated it couldn't find pipewire).
        66 tree admin -o depends=global,requiredby=noise-gate audio properly set global dependency on audio, but also dependency on new tree requiredby=noise-gate; I removed that tree and set requiredby separately.

        Unfortunately the situation is similar, but now "Logger file" is "unable to find the log file" instead of "None":

        Name                  : pipewire
        Logger file           : unable to find the log file
        Start script          : 
                                #!/usr/bin/execlineb -P
                                 /usr/bin/pipewire 
        
        Name                  : pipewire-log
        Logger file           : None
        Start script          : 
                                #!/usr/bin/execlineb -P
                                s6-log -d3 n3 s1000000 /home/myuser/.66/log/pipewire
        
        Name                  : pipewire-pulse
        Logger file           : unable to find the log file
        Start script          : 
                                #!/usr/bin/execlineb -P
                                 /usr/bin/pipewire-pulse 
        
        Name                  : pipewire-pulse-log
        Logger file           : None
        Start script          : 
                                #!/usr/bin/execlineb -P
                                s6-log -d3 n3 s1000000 /home/myuser/.66/log/pipewire-pulse
        
        Name                  : wireplumber
        Logger file           : unable to find the log file
        Start script          : 
                                #!/usr/bin/execlineb -P
                                 /usr/bin/wireplumber 
        
        Name                  : wireplumber-log
        Logger file           : None
        Start script          : 
                                #!/usr/bin/execlineb -P
                                s6-log -d3 n3 s1000000 /home/myuser/.66/log/wireplumber

        Before first upgrade to 0.8.0 I had my own ~/.66/service/{pipewire-pulse,wireplumber} which I removed after upgrading and getting this trouble, but before asking for help. Maybe some remnant somewhere is also causing issue?

        • eric replied to this.

          advesperascit Maybe some remnant somewhere is also causing issue?

          yeah, it should create the corresponding /var/log/66 or $HOME/.66/log for the service. Something go wrong here.

          advesperascit I had to 66 remove -P pipewire-pulse

          yes, sorry for that

          advesperascit s well otherwise 66 status crashed with fatal error (I lost the -v3 output but it stated it couldn't find pipewire).

          interesting, it should not crash, i will try to reproduce the behavior

          advesperascit 66 tree admin -o depends=global,requiredby=noise-gate audio properly set global dependency on audio, but also dependency on new tree requiredby=noise-gate; I removed that tree and set requiredby separately.

          i just followed your previous configuration. i don't get the point here.

          So, i guess the s6log account exist on your system, right?
          what do you get with ls -la /var/log/66 and ls -la ~/.66/log as permissions? for regular it should be <user>:<user>, for root s6log:log

          advesperascit Before first upgrade to 0.8.0 I had my own ~/.66/service/{pipewire-pulse,wireplumber} which I removed

          You are not forced to remove it. To force 66 to use a specific frontend you can do:

          % 66 parse -f /usr/share/66/service/user/pipewire

            eric i just followed your previous configuration. i don't get the point here.

            Sorry, I meant that it created a new tree that was called requiredby=noise-gate and added that as a dependency to the audio tree, instead of creating a tree named noise-gate with a requiredby relationship to audio.

            eric So, i guess the s6log account exist on your system, right?
            what do you get with ls -la /var/log/66 and ls -la ~/.66/log as permissions? for regular it should be <user>:<user>, for root s6log:log

            Yes, s6log:x:19:19:S6 log user:/:/usr/bin/nologin exists in passwd. These are the permissions I get:

            --- ~ »  ls -la /var/log/66
            total 0
            drwxr-xr-x 1 root  root 482 Jun 29 23:33 .
            drwxr-xr-x 1 root  root 270 Nov 19 07:35 ..
            drwxr-xr-x 1 root  root  14 Nov 16 11:01 boot-user@myuser:mount-run@myuser
            drwxr-xr-x 1 s6log log  194 Sep 16 07:27 consolekit
            drwxr-xr-x 1 s6log log  194 Sep 16 07:27 dbus
            drwxr-xr-x 1 s6log log  194 Mar 21  2024 libvirtd
            drwxr-xr-x 1 s6log log   14 May  5  2024 libvirtd-socket
            drwxr-xr-x 1 root  root  14 Jul 15  2021 mount-run@myuser
            drwxr-xr-x 1 s6log log  194 Sep 16 07:27 mullvad-daemon
            drwxr-xr-x 1 s6log log  194 Sep 16 07:27 networkmanager
            drwxr-xr-x 1 s6log log  194 Sep 16 07:27 openntpd
            drwxr-xr-x 1 root  root  14 Nov 16 11:01 scandir@myuser:setenv@myuser
            drwxr-xr-x 1 s6log log  194 Nov 14 21:49 scandir@myuser:svscan@myuser
            drwxr-xr-x 1 s6log log  194 Sep 16 07:27 sddm
            drwxr-xr-x 1 root  root  14 Jul 15  2021 setenv@myuser
            drwxr-xr-x 1 s6log log  194 Sep 16 07:27 sshd
            drwxr-xr-x 1 s6log log  194 Mar 21  2024 svscan@myuser
            drwxr-xr-x 1 s6log log  194 Mar 21  2024 virtlockd
            drwxr-xr-x 1 s6log log   14 Mar  8  2022 virtlockd-socket
            drwxr-xr-x 1 s6log log  194 Mar 21  2024 virtlogd
            drwxr-xr-x 1 root  root  14 Jun 29 23:33 wg-kv
            --- ~ »  ls -la ~/.66/log
            total 0
            drwxr-xr-x 1 myuser myuser 184 Nov 19 07:36 .
            drwxr-xr-x 1 myuser myuser 100 Nov 16 10:50 ..
            drwxr-xr-x 1 myuser myuser 194 Nov 18 11:53 dbus@myuser
            drwx------ 1 myuser myuser  32 Nov 19 07:36 pipewire
            drwx------ 1 myuser myuser  32 Nov 18 13:17 pipewire-input-filter-chain
            drwx------ 1 myuser myuser  32 Nov 19 07:36 pipewire-pulse
            drwxr-xr-x 1 myuser myuser 194 Nov 18 11:47 syncthing
            drwx------ 1 myuser myuser  32 Nov 19 07:36 wireplumber
            drwxr-xr-x 1 myuser myuser  14 May  5  2024 xdg-user-dirs

            I tried to recreate the fatal error after removing pipewire but not the pipewire-pulse (and wireplumber this time):

            --- ~ »  66 -v3 status
            status: tracing: add tree: global to the graph selection
            status: tracing: add tree: sync to the graph selection
            status: tracing: add tree: noise-gate to the graph selection
            status: tracing: add tree: audio to the graph selection
            status: tracing: requested flags to build the graph:  topropagate wantup wantdown
            status: tracing: add service: dbus@myuser to the graph selection
            status: tracing: add service: dbus@myuser-log to the graph selection
            status: tracing: add service: xdg-user-dirs to the graph selection
            In tree: global
            \
            ├─dbus@myuser-log (pid=1385, state=Enabled, type=classic, tree=global)
            ├─xdg-user-dirs (pid=up, state=Enabled, type=oneshot, tree=global)
            └─dbus@myuser (pid=1389, state=Enabled, type=classic, tree=global)
            status: tracing: requested flags to build the graph:  topropagate wantup wantdown
            status: tracing: add service: syncthing to the graph selection
            status: tracing: add service: syncthing-log to the graph selection
            
            In tree: sync
            \
            ├─syncthing-log (pid=1409, state=Enabled, type=classic, tree=sync)
            └─syncthing (pid=1413, state=Enabled, type=classic, tree=sync)
            status: tracing: requested flags to build the graph:  topropagate wantup wantdown
            status: tracing: add service: pipewire-input-filter-chain to the graph selection
            status: tracing: add service: pipewire-input-filter-chain-log to the graph selection
            
            In tree: noise-gate
            \
            ├─pipewire-input-filter-chain-log (pid=2766, state=Enabled, type=classic, tree=noise-gate)
            └─pipewire-input-filter-chain (pid=2771, state=Enabled, type=classic, tree=noise-gate)
            status: tracing: requested flags to build the graph:  topropagate wantup wantdown
            status: tracing: add service: pipewire-pulse to the graph selection
            status: tracing: add service: pipewire-pulse-log to the graph selection
            status: tracing: add service: wireplumber to the graph selection
            status: tracing: add service: wireplumber-log to the graph selection
            status: warning: unable to find: pipewire
            status: fatal: unable to build the graph
            --- ~ »  66 -v3 tree status audio                                                                            111 ↵
            Name        : audio
            Current     : no
            Enabled     : no
            tree: tracing: add tree: global to the graph selection
            tree: tracing: add tree: sync to the graph selection
            tree: tracing: add tree: noise-gate to the graph selection
            tree: tracing: add tree: audio to the graph selection
            tree: tracing: add tree: global to the graph selection
            tree: tracing: add tree: sync to the graph selection
            tree: tracing: add tree: noise-gate to the graph selection
            tree: tracing: add tree: audio to the graph selection
            tree: tracing: requested flags to build the graph:  topropagate wantup
            tree: tracing: add service: pipewire-pulse to the graph selection
            tree: tracing: add service: pipewire-pulse-log to the graph selection
            tree: tracing: add service: wireplumber to the graph selection
            tree: tracing: add service: wireplumber-log to the graph selection
            tree: warning: unable to find: pipewire
            tree: fatal: unable to build the graph

            After this trying to start pipewire service also fatals, maybe this is of interest to you?:

            --- ~ »  66 -v3 -t audio start pipewire                                                                      111 ↵
            parse: tracing: parse service: /usr/share/66/service/user/pipewire
            parse: tracing: read frontend service at: /usr/share/66/service/user/pipewire
            parse: tracing: replacing identifier: @I by: pipewire
            parse: tracing: replacing identifier: @U by: myuser
            parse: tracing: replacing identifier: @u by: 1000
            parse: tracing: replacing identifier: @G by: myuser
            parse: tracing: replacing identifier: @g by: 1000
            parse: tracing: replacing identifier: @H by: /home/myuser
            parse: tracing: replacing identifier: @S by: /usr/bin/zsh
            parse: tracing: replacing identifier: @R by: /run/user/1000
            parse: warning: unknown key: Main] -- ignoring it
            parse: tracing: parsing value of key: Type
            parse: tracing: search for section of service: pipewire
            parse: tracing: found section: Main
            parse: tracing: found section: Start
            parse: tracing: parsing section: Main
            parse: tracing: parsing value of key: Type
            parse: tracing: storing key: Type
            parse: tracing: parsing value of key: Version
            parse: tracing: storing key: Version
            parse: tracing: parsing value of key: Description
            parse: tracing: storing key: Description
            parse: tracing: parsing value of key: User
            parse: tracing: storing key: User
            parse: tracing: parsing section: Start
            parse: tracing: parsing value of key: Execute
            parse: tracing: storing key: Execute
            parse: tracing: no interdependences found for service: pipewire
            parse: tracing: add service: pipewire-log to the service selection
            parse: tracing: add service: pipewire to the service selection
            parse: tracing: write service: pipewire-log
            parse: tracing: write file: /tmp/pipewire-log:8PwlV9/notification-fd
            parse: tracing: write file: /tmp/pipewire-log:8PwlV9/run
            parse: tracing: create directory: /tmp/pipewire-log:8PwlV9/state
            parse: tracing: write status file: /tmp/pipewire-log:8PwlV9/state/status
            parse: tracing: create directory: /tmp/pipewire-log:8PwlV9/.resolve
            parse: tracing: write resolve file: /tmp/pipewire-log:8PwlV9/.resolve/pipewire-log
            parse: tracing: resolve file version for: pipewire-log set to: 0.8.0.0
            parse: tracing: create directory: /home/myuser/.66/system/service/svc/pipewire-log
            parse: tracing: copy:/tmp/pipewire-log:8PwlV9 to: /home/myuser/.66/system/service/svc/pipewire-log
            parse: tracing: remove temporary directory: /tmp/pipewire-log:8PwlV9
            parse: tracing: store field contents of tree audio with value: pipewire-pulse pipewire-pulse-log wireplumber wireplumber-log pipewire-log
            parse: tracing: resolve file version for: audio set to: 0.8.0.0
            parse: tracing: symlink: /home/myuser/.66/system/.resolve/service/pipewire-log to: /home/myuser/.66/system/service/svc/pipewire-log
            parse: tracing: switch symlink: /home/myuser/.66/system/.resolve/service/pipewire-log to: /home/myuser/.66/system/service/svc/pipewire-log
            parse: info: Parsed successfully: pipewire-log at tree: audio
            parse: tracing: write service: pipewire
            parse: tracing: write file: /tmp/pipewire:3aVWPr/max-death-tally
            parse: tracing: write file: /tmp/pipewire:3aVWPr/run
            parse: tracing: create directory: /tmp/pipewire:3aVWPr/state
            parse: tracing: write status file: /tmp/pipewire:3aVWPr/state/status
            parse: tracing: create directory: /tmp/pipewire:3aVWPr/.resolve
            parse: tracing: write resolve file: /tmp/pipewire:3aVWPr/.resolve/pipewire
            parse: tracing: resolve file version for: pipewire set to: 0.8.0.0
            parse: tracing: create directory: /home/myuser/.66/system/service/svc/pipewire
            parse: tracing: copy:/tmp/pipewire:3aVWPr to: /home/myuser/.66/system/service/svc/pipewire
            parse: tracing: remove temporary directory: /tmp/pipewire:3aVWPr
            parse: tracing: store field contents of tree audio with value: pipewire-pulse pipewire-pulse-log wireplumber wireplumber-log pipewire-log pipewire
            parse: tracing: resolve file version for: audio set to: 0.8.0.0
            parse: tracing: symlink: /home/myuser/.66/system/.resolve/service/pipewire to: /home/myuser/.66/system/service/svc/pipewire
            parse: tracing: switch symlink: /home/myuser/.66/system/.resolve/service/pipewire to: /home/myuser/.66/system/service/svc/pipewire
            parse: info: Parsed successfully: pipewire at tree: audio
            parse: tracing: sanitize system graph
            parse: tracing: requested flags to build the graph:  toparse topropagate wantup wantdown
            parse: tracing: add service: dbus@myuser-log to the graph selection
            parse: tracing: add service: dbus@myuser to the graph selection
            parse: tracing: add service: xdg-user-dirs to the graph selection
            parse: tracing: add service: syncthing to the graph selection
            parse: tracing: add service: syncthing-log to the graph selection
            parse: tracing: add service: pipewire-input-filter-chain-log to the graph selection
            parse: tracing: add service: pipewire-input-filter-chain to the graph selection
            parse: tracing: add service: pipewire-pulse-log to the graph selection
            parse: tracing: add service: pipewire-pulse to the graph selection
            parse: tracing: add service: pipewire to the graph selection
            parse: tracing: add service: pipewire-log to the graph selection
            parse: tracing: add service: wireplumber-log to the graph selection
            parse: tracing: add service: wireplumber to the graph selection
            parse: tracing: resolve file version for: dbus@myuser-log set to: 0.8.0.0
            parse: tracing: resolve file version for: dbus@myuser set to: 0.8.0.0
            parse: tracing: resolve file version for: xdg-user-dirs set to: 0.8.0.0
            parse: tracing: resolve file version for: syncthing set to: 0.8.0.0
            parse: tracing: resolve file version for: syncthing-log set to: 0.8.0.0
            parse: tracing: resolve file version for: pipewire-input-filter-chain-log set to: 0.8.0.0
            parse: tracing: resolve file version for: pipewire-input-filter-chain set to: 0.8.0.0
            parse: tracing: resolve file version for: pipewire-pulse-log set to: 0.8.0.0
            parse: tracing: resolve file version for: pipewire-pulse set to: 0.8.0.0
            parse: tracing: resolve file version for: pipewire set to: 0.8.0.0
            parse: tracing: resolve file version for: pipewire-log set to: 0.8.0.0
            parse: tracing: resolve file version for: wireplumber-log set to: 0.8.0.0
            parse: tracing: resolve file version for: wireplumber set to: 0.8.0.0
            start: tracing: add service: pipewire to the graph selection
            start: tracing: add service: pipewire-log to the graph selection
            start: tracing: copy: /home/myuser/.66/system/service/svc/pipewire to: /run/66/state/1000/pipewire
            start: tracing: remove directory: /run/66/state/1000/pipewire/.resolve
            start: tracing: symlink: /run/66/state/1000/pipewire/.resolve to: /home/myuser/.66/system/service/svc/pipewire/.resolve
            start: tracing: symlink: /run/66/scandir/1000/pipewire to: /run/66/state/1000/pipewire
            start: tracing: create file: /run/66/scandir/1000/pipewire/down
            start: tracing: store fdholder entry: pipewire-log
            start: tracing: store identifier: pipe:66-r-pipewire-log
            start: tracing: store identifier: pipe:66-w-pipewire-log
            start: tracing: create fdholder autofilled file
            start: tracing: create fifo: /run/66/state/1000/pipewire/event
            start: tracing: write status file at: /run/66/state/1000/pipewire/state/status
            start: tracing: create file: /run/66/scandir/1000/pipewire-log/down
            start: tracing: delete fdholder entry: pipewire-log
            start: tracing: delete identifier: pipe:66-r-pipewire-log
            start: tracing: delete identifier: pipe:66-w-pipewire-log
            start: tracing: create fdholder autofilled file
            start: tracing: remove directory: /run/66/state/1000/pipewire
            start: tracing: remove symlink: /run/66/scandir/1000/pipewire
            start: tracing: sending -twR signal to: /run/66/scandir/1000/fdholder
            start: fatal: unable to create file: /run/66/scandir/1000/pipewire-log/down: No such file or directory

            After 66 remove pipewire-pulse and 66 remove wireplumber the error remains. It seems pipewire was not properly removed:

            66 -v3 tree remove audio                                                                            100 ↵
            tree: tracing: add tree: global to the graph selection
            tree: tracing: add tree: sync to the graph selection
            tree: tracing: add tree: noise-gate to the graph selection
            tree: tracing: add tree: audio to the graph selection
            tree: tracing: delete: audio...
            tree: info: Already disabled tree: audio
            tree: tracing: manage required by for tree: global...
            tree: tracing: store field requiredby of tree global with value: noise-gate sync
            tree: tracing: store field nrequiredby of tree global with value: 2
            tree: tracing: resolve file version for: global set to: 0.8.0.0
            tree: info: Required by successfully managed for tree: global
            tree: tracing: manage dependencies for tree: noise-gate...
            tree: tracing: store field depends of tree noise-gate with value: global
            tree: tracing: store field ndepends of tree noise-gate with value: 1
            tree: tracing: resolve file version for: noise-gate set to: 0.8.0.0
            tree: info: Dependencies successfully managed for tree: noise-gate
            tree: tracing: switch service: pipewire-log to tree: global
            tree: tracing: store field contents of tree global with value: dbus@myuser dbus@myuser-log xdg-user-dirs pipewire-log
            tree: tracing: resolve file version for: global set to: 0.8.0.0
            tree: tracing: store field treename of service pipewire-log with value: global
            tree: tracing: resolve file version for: pipewire-log set to: 0.8.0.0
            tree: tracing: switch service: pipewire to tree: global
            tree: tracing: store field contents of tree global with value: dbus@myuser dbus@myuser-log xdg-user-dirs pipewire-log pipewire
            tree: tracing: resolve file version for: global set to: 0.8.0.0
            tree: tracing: store field treename of service pipewire with value: global
            tree: tracing: resolve file version for: pipewire set to: 0.8.0.0
            tree: tracing: remove resolve file of tree: audio
            tree: tracing: modify field contents of resolve Master file
            tree: tracing: Master resolve file version set to: 0.8.0.0
            tree: info: Deleted successfully: audio

            After once more 66 remove pipewire and recreating the audio tree there is still this: start: fatal: unable to create file: /run/66/scandir/1000/pipewire-log/down: No such file or directory. Removing the audio services and tree and recreating it after a reboot makes the tree able to start again.

            • eric replied to this.

              advesperascit I tried to recreate the fatal error after removing pipewire but not the pipewire-pulse (and wireplumber this time):

              advesperascit After this trying to start pipewire service also fatals, maybe this is of interest to you?:

              So i can reproduce the issue, clearly a bug here.

              advesperascit After 66 remove pipewire-pulse and 66 remove wireplumber the error remains. It seems pipewire was not properly removed:

              Yeah, this results of the bug. So "it's normal".

              Well, i need to clarify some things:

              • 66 -v3 -t audio start pipewire: you don't need to specified the tree to use, 66 is sufficiently smart to know the associated tree of the service. You only need to specified it when you associate the service to a specific tree with the enable. As long as the service is associated, the -t option can be omitted.
              • 66 -v3 tree remove audio: here you only remove the tree not the services INSIDE the tree. The services will go on the current tree or to the global tree if the current one is not define.

              advesperascit Removing the audio services and tree and recreating it after a reboot makes the tree able to start again.

              that's mean that your pipewire service start correctly or not?

                So, found the source of the bug. When we do 66 remove -P <whatever>, the -P option tell to 66 to not handle dependencies and so the log counterpart of the service is not handled which it's not a good idea :/. Well, even with -P the log must be handled.

                eric that's mean that your pipewire service start correctly or not?

                Yes, to recover from the bug you discovered, but not automatically start at boot, that issue remains; I still must leave the audio tree disabled and 66 tree start audio after I login.

                I notice in /var/log/66 that a few directories are owned by root:root not s6log:log:

                drwxr-xr-x 1 root  root  14 Nov 16 11:01 boot-user@myuser:mount-run@myuser
                drwxr-xr-x 1 root  root  14 Jul 15  2021 mount-run@myuser
                drwxr-xr-x 1 root  root  14 Nov 16 11:01 scandir@myuser:setenv@myuser
                drwxr-xr-x 1 root  root  14 Jul 15  2021 setenv@myuser
                drwxr-xr-x 1 root  root  14 Jun 29 23:33 wg-kv

                Has something gone wrong there? wg-kv is a wireguard service that I've created in /etc/66/service.

                Thanks for your time and effort spent helping, I appreciate it, and the Obarun project, greatly.

                • eric replied to this.

                  Can please you share the output (again) of :

                  # 66 tree resolve Master
                  # 66 tree status -g
                  % 66 tree resolve Master
                  % 66 tree status -g

                    advesperascit Has something gone wrong there? wg-kv is a wireguard service that I've created in /etc/66/service.

                    Nothing wrong, oneshot get root:root where classic get s6log:log. This is intended.

                    Probably not related but I too started having issues with pipewire after the upgrade a few days ago.
                    In my case the service does start normally and I actually have audio but yesterday I realized multiple outputs were not working (meaning, running two audio apps at the same time, e.g. mpv and cmus) and checking out pipewire logs I saw many rtkit errors like so:

                    [E][28947.658319] pw.core | [ impl-core.c: 221 core_error()] 0x586805348b50: error -22 for resource 3: set_mix_info: Invalid argument
                    [E][28947.658330] mod.client-node | [ client-node.c: 1259 client_node_resource_error()] 0x586805d68e90: error seq:49851 -22 (set_mix_info: Invalid argument)
                    [E][28947.658437] pw.core | [ impl-core.c: 221 core_error()] 0x586805348b50: error -22 for resource 3: set_mix_info: Invalid argument
                    [E][28947.658440] mod.client-node | [ client-node.c: 1259 client_node_resource_error()] 0x586805d68e90: error seq:49856 -22 (set_mix_info: Invalid argument)
                    66-execute: info: Starting service: pipewire
                    [W][00025.905744] mod.rt | [ module-rt.c: 317 translate_error()] RTKit error: org.freedesktop.DBus.Error.ServiceUnknown
                    [W][00025.905759] mod.rt | [ module-rt.c: 982 do_rtkit_setup()] RTKit does not give us MaxRealtimePriority, using 1
                    [W][00025.905886] mod.rt | [ module-rt.c: 317 translate_error()] RTKit error: org.freedesktop.DBus.Error.ServiceUnknown
                    [W][00025.905891] mod.rt | [ module-rt.c: 987 do_rtkit_setup()] RTKit does not give us MinNiceLevel, using 0

                    I still haven't got a clue where the issue lies. I did upgrade pipewire-66serv today but it made no difference, so obviously there's something else going on.

                    eric Can please you share the output (again) of :

                    --- ~ »  sudo 66 tree resolve Master
                    name        : Master
                    allow       : root
                    current     : None
                    contents    : boot session global virt
                    nallow      : 1
                    ncontents   : 4
                    rversion    : 0.8.0.0
                    --- ~ »  sudo 66 tree status -g
                    Name        : boot
                    Current     : no
                    Enabled     : no
                    Allowed     : root
                    Groups      : boot
                    Depends     : \
                                  └─None
                    Required by : \
                                  └─None
                    Contents    : \
                                  ├─boot@system:system-hostname (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:mount-run (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:mount-tmp (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:mount-proc (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:system-sysctl (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:udevd-log (pid=398, state=Enabled, type=classic, tree=boot)
                                  ├─boot@system:tty-earlier@tty12 (pid=312, state=Enabled, type=classic, tree=boot)
                                  ├─boot@system (pid=up, state=Enabled, type=module, tree=boot)
                                  ├─boot@system:populate-run (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:populate-tmp (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:mount-sys (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:populate-sys (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:mount-dev (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:mount-pts (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:mount-shm (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:populate-dev (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:mount-cgroups (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:mount-branch (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:system-hwclock (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:modules-kernel (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:system-random (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:modules-system (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:udevd (pid=595, state=Enabled, type=classic, tree=boot)
                                  ├─boot@system:udevadm (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:devices-btrfs (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:system-fontnkey (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:devices-branch (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:system-fsck (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:mount-fstab (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:system-branch (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:mount-rw (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:local-authfiles (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:local-loop (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:local-sethostname (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:local-time (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:local-tmpfiles (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:mount-swap (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:mount-netfs (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:local-dmesg (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:local-branch (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:runtime-branch (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:canopy (pid=up, state=Enabled, type=oneshot, tree=boot)
                                  ├─boot@system:tty-rc@tty1 (pid=1299, state=Enabled, type=classic, tree=boot)
                                  └─boot@system:tty-rc@tty2 (pid=1300, state=Enabled, type=classic, tree=boot)
                    
                    Name        : global
                    Current     : no
                    Enabled     : yes
                    Allowed     : root
                    Groups      : admin
                    Depends     : \
                                  └─None
                    Required by : \
                                  ├─session (Enabled)
                                  └─virt (Disabled)
                    Contents    : \
                                  ├─libvirtd-log (pid=0, state=Disabled, type=classic, tree=global)
                                  ├─dbus-log (pid=1082, state=Enabled, type=classic, tree=global)
                                  ├─consolekit-log (pid=1087, state=Enabled, type=classic, tree=global)
                                  ├─openntpd-log (pid=1086, state=Enabled, type=classic, tree=global)
                                  ├─sddm-log (pid=1084, state=Enabled, type=classic, tree=global)
                                  ├─networkmanager-log (pid=1089, state=Enabled, type=classic, tree=global)
                                  ├─sshd-log (pid=1090, state=Enabled, type=classic, tree=global)
                                  ├─mullvad-daemon-log (pid=1092, state=Enabled, type=classic, tree=global)
                                  ├─wg-kv (pid=up, state=Enabled, type=oneshot, tree=global)
                                  ├─dbus (pid=1106, state=Enabled, type=classic, tree=global)
                                  ├─openntpd (pid=1107, state=Enabled, type=classic, tree=global)
                                  ├─sshd (pid=1109, state=Enabled, type=classic, tree=global)
                                  ├─mullvad-daemon (pid=1108, state=Enabled, type=classic, tree=global)
                                  ├─consolekit (pid=1145, state=Enabled, type=classic, tree=global)
                                  ├─networkmanager (pid=1144, state=Enabled, type=classic, tree=global)
                                  ├─sddm (pid=1149, state=Enabled, type=classic, tree=global)
                                  └─libvirtd (pid=0, state=Disabled, type=classic, tree=global)
                    
                    Name        : session
                    Current     : no
                    Enabled     : yes
                    Allowed     : root
                    Groups      : admin
                    Depends     : \
                                  └─global (Enabled)
                    Required by : \
                                  └─None
                    Contents    : \
                                  ├─scandir@myuser:setenv@myuser (pid=up, state=Enabled, type=oneshot, tree=session)
                                  ├─scandir@myuser:svscan@myuser-log (pid=1245, state=Enabled, type=classic, tree=session)
                                  ├─scandir@myuser (pid=up, state=Enabled, type=module, tree=session)
                                  ├─boot-user@myuser:mount-run@myuser (pid=up, state=Enabled, type=oneshot, tree=session)
                                  ├─scandir@myuser:svscan@myuser (pid=1273, state=Enabled, type=classic, tree=session)
                                  └─boot-user@myuser (pid=up, state=Enabled, type=module, tree=session)
                    
                    Name        : virt
                    Current     : no
                    Enabled     : no
                    Allowed     : root
                    Groups      : admin
                    Depends     : \
                                  └─global (Enabled)
                    Required by : \
                                  └─None
                    Contents    : \
                                  ├─virtlogd-log (pid=0, state=Enabled, type=classic, tree=virt)
                                  ├─virtlockd-socket (pid=unitialized, state=Enabled, type=oneshot, tree=virt)
                                  ├─virtlockd-log (pid=0, state=Enabled, type=classic, tree=virt)
                                  ├─libvirtd-socket (pid=unitialized, state=Enabled, type=oneshot, tree=virt)
                                  ├─virtlogd (pid=0, state=Enabled, type=classic, tree=virt)
                                  └─virtlockd (pid=0, state=Enabled, type=classic, tree=virt)
                    
                    --- ~ »  66 tree resolve Master
                    name        : Master
                    allow       : myuser
                    current     : global
                    contents    : global sync noise-gate audio
                    nallow      : 1
                    ncontents   : 4
                    rversion    : 0.8.0.0
                    --- ~ »  66 tree status -g
                    Name        : global
                    Current     : yes
                    Enabled     : yes
                    Allowed     : myuser
                    Groups      : user
                    Depends     : \
                                  └─None
                    Required by : \
                                  ├─noise-gate (Disabled)
                                  ├─sync (Enabled)
                                  └─audio (Disabled)
                    Contents    : \
                                  ├─dbus@myuser-log (pid=1385, state=Enabled, type=classic, tree=global)
                                  ├─xdg-user-dirs (pid=up, state=Enabled, type=oneshot, tree=global)
                                  └─dbus@myuser (pid=1389, state=Enabled, type=classic, tree=global)
                    
                    Name        : sync
                    Current     : no
                    Enabled     : yes
                    Allowed     : myuser
                    Groups      : user
                    Depends     : \
                                  └─global (Enabled)
                    Required by : \
                                  └─None
                    Contents    : \
                                  ├─syncthing-log (pid=1409, state=Enabled, type=classic, tree=sync)
                                  └─syncthing (pid=1413, state=Enabled, type=classic, tree=sync)
                    
                    Name        : audio
                    Current     : no
                    Enabled     : no
                    Allowed     : myuser
                    Groups      : user
                    Depends     : \
                                  └─global (Enabled)
                    Required by : \
                                  └─noise-gate (Disabled)
                    Contents    : \
                                  ├─pipewire-log (pid=2239, state=Enabled, type=classic, tree=audio)
                                  ├─pipewire-pulse-log (pid=2238, state=Enabled, type=classic, tree=audio)
                                  ├─wireplumber-log (pid=2291, state=Enabled, type=classic, tree=audio)
                                  ├─pipewire (pid=2244, state=Enabled, type=classic, tree=audio)
                                  ├─pipewire-pulse (pid=2251, state=Enabled, type=classic, tree=audio)
                                  └─wireplumber (pid=2303, state=Enabled, type=classic, tree=audio)
                    
                    Name        : noise-gate
                    Current     : no
                    Enabled     : no
                    Allowed     : myuser
                    Groups      : user
                    Depends     : \
                                  ├─global (Enabled)
                                  └─audio (Disabled)
                    Required by : \
                                  └─None
                    Contents    : \
                                  ├─pipewire-input-filter-chain-log (pid=2298, state=Enabled, type=classic, tree=noise-gate)
                                  └─pipewire-input-filter-chain (pid=2302, state=Enabled, type=classic, tree=noise-gate)

                    Powered by Obarun