89luca89 / distrobox

Use any linux distribution inside your terminal. Enable both backward and forward compatibility with software and freedom to use whatever distribution you’re more comfortable with. Mirror available at: https://gitlab.com/89luca89/distrobox
https://distrobox.it/
GNU General Public License v3.0
9.43k stars 385 forks source link

Distrobox enter hangs indefinitely upon restarting image #1382

Closed pgosar closed 3 weeks ago

pgosar commented 2 months ago

Please, before opening a bug:

Describe the bug When using the command distrobox enter , it hangs. I have a decently powerful laptop and let it run for 30 minutes. Upon ending the process, I am met with this message. This happens everytime I restart the container.

/usr/bin/distrobox-enter: line 680: /home/<user>/.cache/distrobox/.ubuntu-20-04.fifo: No such file or directory

Distrobox is using docker behind the scenes.

To Reproduce distrobox create -i ubuntu:20.04

distrobox enter ubuntu-20-04

Expected behavior I'd expect it to not hang. Note that it does work fine if I end the process and enter the image again. Furthermore I believe there should be a fifo file being created under $home/.cache/distrobox? However no matter what I do such as stopping the running image, remaking it, etc. this file does not show up.

Logs create.txt - first command enter.txt - second command

Attach also the output of podman logs or docker logs, possibly with --latest flag docker.txt - docker logs

Desktop (please complete the following information):

Additional context Add any other context about the problem here.

profetik-777 commented 2 months ago

Have you tried with podman to see / pinpoint if this is only happening with docker?

pgosar commented 2 months ago

Just docker - tested it with podman 5.0.2

rmeno12 commented 2 months ago

Am also experiencing the same hanging. If I interrupt with Ctrl-C, I get the same fifo error. Running distrobox enter <container_name> again works without hanging or other error messages. I am on Arch kernel 6.6.30 with distrobox 1.72.1 using docker.

elgq commented 3 weeks ago

I got this issue too when I switched from podman to docker, and checking the source code of distrobox-enter I noticed the following:

log_timestamp="$(date -u +%FT%T)"
"container_setup_done"*)
    printf >&2 "\033[32m [ OK ]\n\033[0m"
    kill "${logs_pid}" > /dev/null 2>&1
    break 2 

So or it is a bug with docker --since parameter or the docker/containers need some kind of timezone configuration to match the parameter.

EDIT: I was close enough, the --since parameter for docker needs a Z at the end .

date -u +%FT%TZ

Test :

$docker logs -ft fedora
...
2024-06-18T23:06:20.151478801Z ++ curl -s --unix-socket /run/docker.sock http://docker/containers/fedora/json
2024-06-18T23:06:20.151504502Z ++ grep -Eo '"Id":"[a-zA-Z0-9]{64}",'
2024-06-18T23:06:20.151559731Z ++ cut -d '"' -f4
2024-06-18T23:06:20.155200164Z + id=1d02e9db87eebc7d4c6dc0233857aa0279e9e0ecb33e85edf4014d955b96d817
2024-06-18T23:06:20.155209842Z + set +x

$ date -u +%FT%T # as in line 624
2024-06-18T23:07:45

$ docker logs -t --since 2024-06-18T23:06:20 fedora
# nothing

$ date -u +%FT%TZ
2024-06-18T23:10:17Z

$ docker logs -t --since 2024-06-18T23:06:20Z fedora
# returns lines
...
2024-06-18T23:06:20.151559731Z ++ cut -d '"' -f4
2024-06-18T23:06:20.155200164Z + id=1d02e9db87eebc7d4c6dc0233857aa0279e9e0ecb33e85edf4014d955b96d817
2024-06-18T23:06:20.155209842Z + set +x