Giter VIP home page Giter VIP logo

Comments (15)

89luca89 avatar 89luca89 commented on June 12, 2024

@vitedevs thanks for reporting, can you try with last git version? there are lots of fixes on root+init containers

I cannot reproduce on Aeon, Ubuntu and Fedora hosts

from distrobox.

bubuntux avatar bubuntux commented on June 12, 2024

i am seeing something similar, root+init freeze my whole system,

Are you using podman, docker or lilipod? podman
Which version or podman, docker or lilipod? 4.9.3
Which version of distrobox? 1.7.1.0 
Which host distribution?  Fedora 39.20240331.0 (Sericea)
How did you install distrobox? 
rpm package 

When i try to

distrobox create --root --image quay.io/toolbx/ubuntu-toolbox:latest  --additional-packages "systemd docker"   --init  --unshare-all --hostname test  --home /home/test -n test
distrobox enter --root test 

my whole system freezes, nothing respond after "Firing up init system... "


UPDATE:
after further research seems like it only crashed the graphical interface (sway [wayland]), after restarting the graphical interface the container seems to work just fine, i'm unaware why it crashes or how to troubleshoot it

from distrobox.

bubuntux avatar bubuntux commented on June 12, 2024

I was able to replicate the issue on a nixos env using sway, same results

from distrobox.

DamienGombaultRecia avatar DamienGombaultRecia commented on June 12, 2024

Hi. I have noticed a similar problem on a recent Fedora Kinoite version 39.
The host desktop environment freezed immediatly after "firing up the init system".
I get this log with the verbose option :
image

from distrobox.

bubuntux avatar bubuntux commented on June 12, 2024

yeah i also see that, i think is odd but unrelated, i think the problematic line is on distrobox-init
[ -e /usr/lib/systemd/systemd ] && exec /usr/lib/systemd/systemd --system --log-target=console --unit=multi-user.target
but not sure how to fix the problem

from distrobox.

13steinj avatar 13steinj commented on June 12, 2024

I suspect this is caused by some newly enabled systemd service. I get this under a specific sub-condition/case/variation:

distrobox create  --name "boxxy" --init --image ubuntu:22.04 --additional-packages "systemd libpam-systemd"
exit
distrobox enter "boxxy"  # fine
exit
distrobox stop "boxxy"
distrobox enter "boxxy"  # STILL fine
sudo systemctl list-unit-files | grep enabled | sort > ./before-desktop  # I'm suspicous
sudo apt -y update && sudo apt -y install ubuntu-desktop  # use apt-fast or nala if it's too slow for you, I usually just say "screw it" and mount /etc/apt from the host
sudo systemctl list-unit-files | grep enabled | sort > ./after-desktop
exit
distrobox stop "boxxy"
distrobox enter "boxxy"  # BOOM, even after I log back in, I can't re-enter the distrobox

I suspect something is attempting to grab the display (or account service, for that matter), kicking the user out.

I haven't used arch in a while but I assume something in the default image is giving you an Xorg server and/or DM and/or WM and/or L(ogin)M(anager).

Diffing the files... I may be inept, but I can't make heads or tails of the diff. But I can pipe them into python and know how to use sets!

>>> from collections import namedtuple
>>> from pprint import pprint

>>> SystemctlUnit = namedtuple("SystemctlUnit", field_names="name,state,preset")

>>> before = set([SystemctlUnit(*x.strip().split()) for x in open("./before-desktop").readlines()])
>>> after = set([SystemctlUnit(*x.strip().split()) for x in open("./after-desktop").readlines()])
>>> pprint(after - before)
{SystemctlUnit(name='ModemManager.service', state='enabled', preset='enabled'),
 SystemctlUnit(name='NetworkManager-dispatcher.service', state='enabled', preset='enabled'),
 SystemctlUnit(name='NetworkManager-wait-online.service', state='enabled', preset='enabled'),
 SystemctlUnit(name='NetworkManager.service', state='enabled', preset='enabled'),
 SystemctlUnit(name='accounts-daemon.service', state='enabled', preset='enabled'),
 SystemctlUnit(name='acpid.path', state='enabled', preset='enabled'),
 SystemctlUnit(name='acpid.service', state='disabled', preset='enabled'),
 SystemctlUnit(name='acpid.socket', state='enabled', preset='enabled'),
 SystemctlUnit(name='alsa-utils.service', state='masked', preset='enabled'),
 SystemctlUnit(name='anacron.service', state='enabled', preset='enabled'),
 SystemctlUnit(name='anacron.timer', state='enabled', preset='enabled'),
 SystemctlUnit(name='apparmor.service', state='enabled', preset='enabled'),
 SystemctlUnit(name='apport-autoreport.path', state='enabled', preset='enabled'),
 SystemctlUnit(name='apport-autoreport.timer', state='enabled', preset='enabled'),
 SystemctlUnit(name='apport-forward.socket', state='enabled', preset='enabled'),
 SystemctlUnit(name='bluetooth.service', state='enabled', preset='enabled'),
 SystemctlUnit(name='brltty.service', state='disabled', preset='enabled'),
 SystemctlUnit(name='cron.service', state='enabled', preset='enabled'),
 SystemctlUnit(name='cups-browsed.service', state='enabled', preset='enabled'),
 SystemctlUnit(name='cups.path', state='enabled', preset='enabled'),
 SystemctlUnit(name='cups.service', state='enabled', preset='enabled'),
 SystemctlUnit(name='cups.socket', state='enabled', preset='enabled'),
 SystemctlUnit(name='fwupd-refresh.timer', state='enabled', preset='enabled'),
 SystemctlUnit(name='gpu-manager.service', state='enabled', preset='enabled'),
 SystemctlUnit(name='kerneloops.service', state='enabled', preset='enabled'),
 SystemctlUnit(name='[email protected]', state='disabled', preset='enabled'),
 SystemctlUnit(name='[email protected]', state='disabled', preset='enabled'),
 SystemctlUnit(name='openvpn.service', state='enabled', preset='enabled'),
 SystemctlUnit(name='[email protected]', state='disabled', preset='enabled'),
 SystemctlUnit(name='power-profiles-daemon.service', state='enabled', preset='enabled'),
 SystemctlUnit(name='pulseaudio-enable-autospawn.service', state='masked', preset='enabled'),
 SystemctlUnit(name='rtkit-daemon.service', state='disabled', preset='enabled'),
 SystemctlUnit(name='saned.service', state='masked', preset='enabled'),
 SystemctlUnit(name='saned.socket', state='disabled', preset='enabled'),
 SystemctlUnit(name='[email protected]', state='indirect', preset='enabled'),
 SystemctlUnit(name='secureboot-db.service', state='enabled', preset='enabled'),
 SystemctlUnit(name='snapd.apparmor.service', state='enabled', preset='enabled'),
 SystemctlUnit(name='snapd.autoimport.service', state='enabled', preset='enabled'),
 SystemctlUnit(name='snapd.core-fixup.service', state='enabled', preset='enabled'),
 SystemctlUnit(name='snapd.recovery-chooser-trigger.service', state='enabled', preset='enabled'),
 SystemctlUnit(name='snapd.seeded.service', state='enabled', preset='enabled'),
 SystemctlUnit(name='snapd.service', state='enabled', preset='enabled'),
 SystemctlUnit(name='snapd.snap-repair.timer', state='enabled', preset='enabled'),
 SystemctlUnit(name='snapd.socket', state='enabled', preset='enabled'),
 SystemctlUnit(name='snapd.system-shutdown.service', state='enabled', preset='enabled'),
 SystemctlUnit(name='speech-dispatcherd.service', state='disabled', preset='enabled'),
 SystemctlUnit(name='spice-vdagentd.service', state='indirect', preset='enabled'),
 SystemctlUnit(name='sssd-autofs.service', state='indirect', preset='enabled'),
 SystemctlUnit(name='sssd-autofs.socket', state='enabled', preset='enabled'),
 SystemctlUnit(name='sssd-nss.service', state='indirect', preset='enabled'),
 SystemctlUnit(name='sssd-nss.socket', state='enabled', preset='enabled'),
 SystemctlUnit(name='sssd-pac.service', state='indirect', preset='enabled'),
 SystemctlUnit(name='sssd-pac.socket', state='enabled', preset='enabled'),
 SystemctlUnit(name='sssd-pam-priv.socket', state='enabled', preset='enabled'),
 SystemctlUnit(name='sssd-pam.service', state='indirect', preset='enabled'),
 SystemctlUnit(name='sssd-pam.socket', state='enabled', preset='enabled'),
 SystemctlUnit(name='sssd-ssh.service', state='indirect', preset='enabled'),
 SystemctlUnit(name='sssd-ssh.socket', state='enabled', preset='enabled'),
 SystemctlUnit(name='sssd-sudo.service', state='indirect', preset='enabled'),
 SystemctlUnit(name='sssd-sudo.socket', state='enabled', preset='enabled'),
 SystemctlUnit(name='sssd.service', state='enabled', preset='enabled'),
 SystemctlUnit(name='switcheroo-control.service', state='enabled', preset='enabled'),
 SystemctlUnit(name='systemd-oomd.service', state='enabled', preset='enabled'),
 SystemctlUnit(name='ua-reboot-cmds.service', state='enabled', preset='enabled'),
 SystemctlUnit(name='ua-timer.timer', state='enabled', preset='enabled'),
 SystemctlUnit(name='ubuntu-advantage.service', state='enabled', preset='enabled'),
 SystemctlUnit(name='udisks2.service', state='enabled', preset='enabled'),
 SystemctlUnit(name='unattended-upgrades.service', state='enabled', preset='enabled'),
 SystemctlUnit(name='update-notifier-download.timer', state='enabled', preset='enabled'),
 SystemctlUnit(name='update-notifier-motd.timer', state='enabled', preset='enabled'),
 SystemctlUnit(name='upower.service', state='disabled', preset='enabled'),
 SystemctlUnit(name='whoopsie.path', state='enabled', preset='enabled'),
 SystemctlUnit(name='[email protected]', state='disabled', preset='enabled'),
 SystemctlUnit(name='[email protected]', state='disabled', preset='enabled'),
 SystemctlUnit(name='wpa_supplicant.service', state='enabled', preset='enabled'),
 SystemctlUnit(name='[email protected]', state='disabled', preset='enabled')}
>>> pprint(before-after)
set()

with open("./disabler.sh", "a") as f:
	for x in after - before:
	    print(f"systemctl disable {x.name}", file=f)

For the sake of argument I said fuck it-- disable them all!

sudo ./disabler.sh
exit

Then stop and start-- it still logs me out, but, I can re-enter the distrobox sans-issue, which is progress.

E: My issue appears to be resolved via --unshare-ipc (though I don't know what else that affects).

from distrobox.

89luca89 avatar 89luca89 commented on June 12, 2024

Is this still happening with 1.7+?

I still can't reproduce the issue with podman, rootful podman and docker sadly

from distrobox.

bubuntux avatar bubuntux commented on June 12, 2024

yes, i still can reproduce on
distrobox version: 1.7.1.0
podman version 5.0.2
using sway + sddm (fedora sericea 40) <- i think the problem with this setup
and using these 2 commands

distrobox create --root --image quay.io/toolbx/ubuntu-toolbox:latest  --additional-packages "systemd docker"   --init  --unshare-all --hostname test  --home /home/test -n test
distrobox enter --root test 

from distrobox.

89luca89 avatar 89luca89 commented on June 12, 2024

I'll need to check on Sericea then

Quite busy with other stuff now, maybe a thing to check would be to send both podman and journalctl logs to a file while launching this, so we can try to pinpoint what unit triggers this

from distrobox.

bubuntux avatar bubuntux commented on June 12, 2024

i temporarily rebased to kinoite to test this out and i saw a quick disconnect on my internet but everything worked fine after it, so the issue seems related to how sway systemd services are setup IMO

from distrobox.

89luca89 avatar 89luca89 commented on June 12, 2024

More than a sway problem, it probably still is a service that distrobox should mask, maybe you can do a diff between systemctl --no-pager between sericea and kinoite, and see what sericea has that kinoite doesn't

from distrobox.

evrpg avatar evrpg commented on June 12, 2024

Hello,
I have the same issue using Pop_OS.

I created the container with this command:
distrobox create -i ubuntu:22.04 --name ubuntu_22.04 --additional-packages "systemd libpam-systemd" --init

I see this line in the dixtrobox enter -v ubuntu_22.04 output :
+ sh -c sleep 1 && while true; do systemctl is-system-running | grep -E 'running|degraded' && break; echo 'waiting for systemd to come up...\n' && sleep 1; done && systemctl start [email protected] && systemctl start [email protected] && loginctl enable-linger rpg || : && echo container_setup_done

I have another ArchLinux container that was created with the command:
distrobox create -i archlinux:latest --name ArchLinux

And neither the issue nor the line posted above is present.

Please find here out_ubuntu.log the output of distrobox enter ubuntu_22.04 -v, it may help the investigation.

from distrobox.

13steinj avatar 13steinj commented on June 12, 2024

Just a thought-- it would be great to dump a log of what services are being started to a known location, so issues like this could be debugged more easily.

from distrobox.

EpixMan avatar EpixMan commented on June 12, 2024

Just a thought-- it would be great to dump a log of what services are being started to a known location, so issues like this could be debugged more easily.

I tried to do my best, Those are my specs:
bazzite, hyprland, nvidia.

here is systemctlstatus log before running distrobox enter systemctllog1.log

After crashing I entered another tty and logged journalctl.log after crashing (started distrobox enter on 23:32:00 but wasn't sure on what to exclude, so I just kept the raw result of The journalctl). And another systemctl status here (for after crashing period, but on tty) systemctllog2.log

from distrobox.

EpixMan avatar EpixMan commented on June 12, 2024

@89luca89 @13steinj Please tell me if you need more info

from distrobox.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.