Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Default instance with a launchagent created by start-at-login isn't available after startup #2252

Open
rpkoller opened this issue Mar 17, 2024 · 5 comments

Comments

@rpkoller
Copy link

rpkoller commented Mar 17, 2024

Description

Yesterday I've tried the new start at login feature that got in with 0.21.0. Before i've shut down my computer yesterday I've used:

`$> limactl start-at-login default
INFO[0000] The autostart file "/Users/rkoller/Library/LaunchAgents/io.lima-vm.autostart.default.plist" has been created or updated

When I've started my computer today and I tried to directly start a project in DDEV a framework for local development environments in docker i got:

$> ddev config
ERRO[0000] app.FindContainerByType(web) failed 
ERRO[0000] app.FindContainerByType(web) failed 
Could not connect to a Docker provider. Please start or install a Docker provider.
For install help go to: https://ddev.readthedocs.io/en/stable/users/install/docker-installation/

When I checked if the lima instance is running:

$> limactl list
NAME       STATUS     SSH                VMTYPE    ARCH       CPUS    MEMORY    DISK      DIR
default    Running    127.0.0.1:60022    vz        aarch64    4       8GiB      100GiB    ~/.lima/default

My default instance was shown as running. I then did a limactl stop directly followed by a limactl start and now docker was available to ddev. And if go into the macos system settings the lima login item is listed:

Screenshot 2024-03-17 at 16 40 29

When clicking the ì icon that opens up a finder window:

Screenshot 2024-03-17 at 16 46 32

I've then retested, shut down my computer another time and started it up again. After that instead of trying to run a ddev command i tested with a plain docker command:

$> docker ps
Cannot connect to the Docker daemon at unix:///Users/rkoller/.lima/default/sock/docker.sock. Is the docker daemon running?

and again with limactl listthe instance was shown as running

$> limactl list          
NAME       STATUS     SSH                VMTYPE    ARCH       CPUS    MEMORY    DISK      DIR
default    Running    127.0.0.1:60022    vz        aarch64    4       8GiB      100GiB    ~/.lima/default

For the context i am on a M1pro running macOS Sonoma 14.4 and limactl version 0.21.0 (using the docker template with vz and virtiofs). if you need more informations please let me know.

@roman-kiselenko
Copy link
Contributor

The start-at-login feature generates a plist file to autostart lima vm; it doesn't propagate variables or set up any docker-related things. ddev uses colima and colima uses lima under the hood.

I guess is something going wrong with the VM itself at startup.

You can try to debug ddev docker with command:

# Output contextual details for the Docker provider
ddev debug dockercheck 

@roman-kiselenko
Copy link
Contributor

There are logs files under ~/.lima/default/launchd.stderr.log and ~/.lima/default/launchd.stdout.log could you provide those logs?

@rpkoller
Copy link
Author

it wasn't a ddev related problem, as i've shown in the second example in the issue summary i've also tried to directly run a docker command and no docker provider was available there neither:

$> docker ps
Cannot connect to the Docker daemon at unix:///Users/rkoller/.lima/default/sock/docker.sock. Is the docker daemon running?

and ddev isn't requiring colima, it is just still the recommended provider for macos. i've moved to using lima a few months ago instead of colima (since as you say colima is using lima under the hood anyway).
yesterday after the startup as well as after the shutdown and restart docker was not available (as illustrated in the issue summary). but the real odd thing is today is the first day docker was available right after i was starting my computer. nothing changed to before. taking a look at the two log files you've mentioned now, launchd.stderr.log lists

time="2024-03-17T16:05:47+01:00" level=info msg="Using the existing instance \"default\""
time="2024-03-17T16:05:47+01:00" level=info msg="Starting the instance \"default\" with VM driver \"vz\""
time="2024-03-17T16:05:47+01:00" level=info msg="Running the host agent in the foreground"
time="2024-03-17T16:50:10+01:00" level=info msg="Using the existing instance \"default\""
time="2024-03-17T16:50:10+01:00" level=info msg="Starting the instance \"default\" with VM driver \"vz\""
time="2024-03-17T16:50:10+01:00" level=info msg="Running the host agent in the foreground"
time="2024-03-18T11:10:08+01:00" level=info msg="Using the existing instance \"default\""
time="2024-03-18T11:10:08+01:00" level=info msg="Starting the instance \"default\" with VM driver \"vz\""
time="2024-03-18T11:10:08+01:00" level=info msg="Running the host agent in the foreground"

while launchd.stdout.log is empty

According to launchd.stderr.log the instance was started properly every time. which is in line with the output for limactl list where the vm was shown as running:

$> limactl list          
NAME       STATUS     SSH                VMTYPE    ARCH       CPUS    MEMORY    DISK      DIR
default    Running    127.0.0.1:60022    vz        aarch64    4       8GiB      100GiB    ~/.lima/default

but yesterday on first start after setting up the login item as well as after shutting down and restarting aside the vm running docker was not available (not available when trying to run a ddev command as well as trying to run a docker command). and without changing anything docker is available after todays autostart.

@rpkoller
Copy link
Author

i "think" i know now what the problem was/is. today i've got the following output right after i've logged in starting up the computer:

$> limactl list
NAME       STATUS     SSH            VMTYPE    ARCH       CPUS    MEMORY    DISK      DIR
default    Stopped    127.0.0.1:0    vz        aarch64    4       8GiB      100GiB    ~/.lima/default

that was odd and unexpected. so i went brushing my teeth to give it some more time, and after returning about 5 to 10 minutes later i ran the command another time:

$> limactl list
NAME       STATUS     SSH                VMTYPE    ARCH       CPUS    MEMORY    DISK      DIR
default    Running    127.0.0.1:60022    vz        aarch64    4       8GiB      100GiB    ~/.lima/default

now lima is shown as running and also docker was available. so it looks like and i "suppose" also on my previous attemps lima was actually properly started. but i "assume" like today it was just not completely ready yet finishing the startup process. might be the only problem that by creating a login item you have no feedback if lima has already completely successfully started up since the usual output on limactl start is not output as a login item. i will observe the behavior over the next few days.

@mac2net
Copy link

mac2net commented Mar 19, 2024

Yes Lima takes a little while to start up so I suggest to fuggedaboutit.
Look at the log whatever log that is, I ams sure there is one.
When you find it why not write.a script to email you the log and then wherever you are and whatever you are doing after you finish brushing your teeth you will surely receive it!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants