Sossenbinder
Sossenbinder

Reputation: 5302

Docker rabbitmq image fails with [error] Too short cookie string

it seems like I do have a problem with the rabbitmq and rabbitmq-management docker image on my Windows machine running docker-desktop.

When trying to run it, the following log comes up before it shuts down:

21:01:21.726 [error] Failed to write to cookie file '/var/lib/rabbitmq/.erlang.cookie': enospc

21:01:22.355 [error] Too short cookie string

21:01:22.356 [error] Too short cookie string

21:01:23.161 [error] Too short cookie string

21:01:23.162 [error] Too short cookie string

21:01:23.783 [error] Too short cookie string

21:01:23.784 [error] Too short cookie string

21:01:24.405 [error] Too short cookie string

21:01:24.406 [error] Too short cookie string

21:01:25.027 [error] Too short cookie string

21:01:25.028 [error] Too short cookie string

21:01:25.661 [error] Too short cookie string

21:01:25.662 [error] Too short cookie string

21:01:26.281 [error] Too short cookie string

21:01:26.282 [error] Too short cookie string

21:01:26.910 [error] Too short cookie string

21:01:26.911 [error] Too short cookie string

21:01:27.533 [error] Too short cookie string

21:01:27.534 [error] Too short cookie string

21:01:28.161 [error] Too short cookie string
Distribution failed: {{:shutdown, {:failed_to_start_child, :auth, {'Too short cookie string', [{:auth, :init_cookie, 0, [file: 'auth.erl', line: 290]}, {:auth, :init, 1, [file: 'auth.erl', line: 144]}, {:gen_server, :init_it, 2, [file: 'gen_server.erl', line: 417]}, {:gen_server, :init_it, 6, [file: 'gen_server.erl', line: 385]}, {:proc_lib, :init_p_do_apply, 3, [file: 'proc_lib.erl', line: 226]}]}}}, {:child, :undefined, :net_sup_dynamic, {:erl_distribution, :start_link, [[:"rabbitmqcli-47-rabbit@90cc77cefcb8", :shortnames, 15000], false, :net_sup_dynamic]}, :permanent, 1000, :supervisor, [:erl_distribution]}}
Configuring logger redirection

21:01:29.717 [error]
21:01:29.715 [error] Too short cookie string
21:01:29.715 [error] Supervisor net_sup had child auth started with auth:start_link() at undefined exit with reason "Too short cookie string" in auth:init_cookie/0 line 290 in context start_error
21:01:29.715 [error] CRASH REPORT Process <0.201.0> with 0 neighbours crashed with reason: "Too short cookie string" in auth:init_cookie/0 line 290
21:01:29.719 [error] BOOT FAILED
BOOT FAILED
21:01:29.719 [error] ===========
===========
21:01:29.719 [error] Exception during startup:
Exception during startup:
21:01:29.720 [error]

21:01:29.720 [error]     supervisor:children_map/4 line 1171
    supervisor:children_map/4 line 1171
    supervisor:'-start_children/2-fun-0-'/3 line 355
21:01:29.721 [error]     supervisor:'-start_children/2-fun-0-'/3 line 355
21:01:29.721 [error]     supervisor:do_start_child/2 line 371
    supervisor:do_start_child/2 line 371
21:01:29.721 [error]     supervisor:do_start_child_i/3 line 385
    supervisor:do_start_child_i/3 line 385
21:01:29.721 [error]     rabbit_prelaunch:run_prelaunch_first_phase/0 line 27
    rabbit_prelaunch:run_prelaunch_first_phase/0 line 27
21:01:29.721 [error]     rabbit_prelaunch:do_run/0 line 111
    rabbit_prelaunch:do_run/0 line 111
21:01:29.722 [error]     rabbit_prelaunch_dist:setup/1 line 15
    rabbit_prelaunch_dist:setup/1 line 15
    rabbit_prelaunch_dist:duplicate_node_check/1 line 51
21:01:29.722 [error]     rabbit_prelaunch_dist:duplicate_node_check/1 line 51
21:01:29.722 [error] error:{badmatch,
error:{badmatch,
          {error,
21:01:29.722 [error]           {error,
21:01:29.722 [error]               {{shutdown,
              {{shutdown,
21:01:29.722 [error]                    {failed_to_start_child,auth,
                   {failed_to_start_child,auth,
21:01:29.723 [error]                        {"Too short cookie string",
                       {"Too short cookie string",
21:01:29.723 [error]                         [{auth,init_cookie,0,[{file,"auth.erl"},{line,290}]},
                        [{auth,init_cookie,0,[{file,"auth.erl"},{line,290}]},
21:01:29.723 [error]                          {auth,init,1,[{file,"auth.erl"},{line,144}]},
                         {auth,init,1,[{file,"auth.erl"},{line,144}]},
21:01:29.723 [error]                          {gen_server,init_it,2,
                         {gen_server,init_it,2,
                             [{file,"gen_server.erl"},{line,417}]},
21:01:29.723 [error]                              [{file,"gen_server.erl"},{line,417}]},
21:01:29.724 [error]                          {gen_server,init_it,6,
                         {gen_server,init_it,6,
                             [{file,"gen_server.erl"},{line,385}]},
21:01:29.724 [error]                              [{file,"gen_server.erl"},{line,385}]},
21:01:29.724 [error]                          {proc_lib,init_p_do_apply,3,
                         {proc_lib,init_p_do_apply,3,
21:01:29.724 [error]                              [{file,"proc_lib.erl"},{line,226}]}]}}},
                             [{file,"proc_lib.erl"},{line,226}]}]}}},
21:01:29.724 [error]                {child,undefined,net_sup_dynamic,
               {child,undefined,net_sup_dynamic,
21:01:29.725 [error]                    {erl_distribution,start_link,
                   {erl_distribution,start_link,
21:01:29.725 [error]                        [[rabbit_prelaunch_510@localhost,shortnames],
                       [[rabbit_prelaunch_510@localhost,shortnames],
21:01:29.725 [error]                         false,net_sup_dynamic]},
                        false,net_sup_dynamic]},
21:01:29.725 [error]                    permanent,1000,supervisor,
                   permanent,1000,supervisor,
21:01:29.725 [error]                    [erl_distribution]}}}}
21:01:29.726 [error]
                   [erl_distribution]}}}}

21:01:30.726 [error] Supervisor rabbit_prelaunch_sup had child prelaunch started with rabbit_prelaunch:run_prelaunch_first_phase() at undefined exit with reason {badmatch,{error,{{shutdown,{failed_to_start_child,auth,{"Too short cookie string",[{auth,init_cookie,0,[{file,"auth.erl"},{line,290}]},{auth,init,1,[{file,"auth.erl"},{line,144}]},{gen_server,init_it,2,[{file,"gen_server.erl"},{line,417}]},{gen_server,init_it,6,[{file,"gen_server.erl"},{line,385}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,226}]}]}}},{child,undefined,net_sup_dynamic,{erl_distribution,start_link,[[rabbit_prelaunch_510@localhost,shortnames],false,net_sup_dynamic]},...}}}} in context start_error
21:01:30.726 [error] CRASH REPORT Process <0.153.0> with 0 neighbours exited with reason: {{shutdown,{failed_to_start_child,prelaunch,{badmatch,{error,{{shutdown,{failed_to_start_child,auth,{"Too short cookie string",[{auth,init_cookie,0,[{file,"auth.erl"},{line,290}]},{auth,init,1,[{file,"auth.erl"},{line,144}]},{gen_server,init_it,2,[{file,"gen_server.erl"},{line,417}]},{gen_server,init_it,6,[{file,"gen_server.erl"},{line,385}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,226}]}]}}},{child,undefined,net_sup_dynamic,{erl_distribution,start_link,[[rabbit_prelaunch_510@localhost,...],...]},...}}}}}},...} in application_master:init/4 line 138
{"Kernel pid terminated",application_controller,"{application_start_failure,rabbitmq_prelaunch,{{shutdown,{failed_to_start_child,prelaunch,{badmatch,{error,{{shutdown,{failed_to_start_child,auth,{\"Too short cookie string\",[{auth,init_cookie,0,[{file,\"auth.erl\"},{line,290}]},{auth,init,1,[{file,\"auth.erl\"},{line,144}]},{gen_server,init_it,2,[{file,\"gen_server.erl\"},{line,417}]},{gen_server,init_it,6,[{file,\"gen_server.erl\"},{line,385}]},{proc_lib,init_p_do_apply,3,[{file,\"proc_lib.erl\"},{line,226}]}]}}},{child,undefined,net_sup_dynamic,{erl_distribution,start_link,[[rabbit_prelaunch_510@localhost,shortnames],false,net_sup_dynamic]},permanent,1000,supervisor,[erl_distribution]}}}}}},{rabbit_prelaunch_app,start,[normal,[]]}}}"}
Kernel pid terminated (application_controller) ({application_start_failure,rabbitmq_prelaunch,{{shutdown,{failed_to_start_child,prelaunch,{badmatch,{error,{{shutdown,{failed_to_start_child,auth,{"Too

Crash dump is being written to: erl_crash.dump...

I've been using this image for months now without any problems, but all of sudden it doesn't work anymore.

I also tried running this on my raspberry pi. Turns out it works there, so it has to be more of a local thing for me, which is kind of weird as docker is basically meant to avoid these problems.

I also tried setting the RABBITMQ_ERLANG_COOKIE environment variable to a long name, but with no success. Any ideas?

Upvotes: 27

Views: 18696

Answers (6)

Potato
Potato

Reputation: 475

My fellow had the same problem. He says that he always do docker-compose down -v before building a solution, but it appears that volumes didn't clean up. After docker system prune volumes were still there.

docker volume prune command helped.

Upvotes: 6

Dawid Gacek
Dawid Gacek

Reputation: 557

Tried @Jose M solution without success. docker prune command helped me.

Upvotes: 0

Fabio Espinosa
Fabio Espinosa

Reputation: 1002

I tried all this https://stackoverflow.com/a/63461987

And then what did the trick was docker-compose down and then docker-compose up again.

Seems like it can also be an issue with docker desktop as pointed out here: https://github.com/docker-library/rabbitmq/issues/423

Upvotes: 2

btreitz
btreitz

Reputation: 300

I had exactly the same error and followed the advice of Owen Brown. Unfortunately, deleting the rabbitmq images could not solve my problems but deleting all other redundant images as well (especially the ones of big size) did it for me.

In case you are wondering how much all images are in size, you can check these statistics with

docker system df

Edit:

As i encountered the same issue again just a couple of hours later i researched again and found this answer which resolved my troubles.

More important than deleting images is the deletion of volumes using:

docker volume rm $(docker volume ls -f dangling=true -q) // removes all volumes

Upvotes: 30

Owen Brown
Owen Brown

Reputation: 189

Launch rabbitmq in isolation using docker run rabbitmq:management.

If you still get the "Failed to write to cookie file '/var/lib/rabbitmq/.erlang.cookie': enospc" error, then the problem is caused because a file used by RabbitMQ has been corrupted.

Since the container exits as soon as the error occurs, and the container is launching from a cached docker image, you won't be able to enter the container to fix the problem. Instead, you'll need remove the cached images.

  1. Remove the cause of the original issues, which may have been a shortage of memory assigned to Docker. You can delete images or assign more memory through Docker's utility.
  2. Delete both the rabbitmq docker image docker images | grep rabbit then run docker rmi <image_id(s)> for each image id.
  3. Delete all cached images. List all images using $ docker images --filter "dangling=true will Then, remove them with $ docker rmi $(docker images -f "dangling=true" -q)

Finally, run rabbitmq again with docker run rabbitmq:management. If it runs without erring, you're back in business.

Upvotes: 6

Jos&#233; M
Jos&#233; M

Reputation: 3509

It seems that RabbitMQ has no space left to write the cookie: 21:01:21.726 [error] Failed to write to cookie file '/var/lib/rabbitmq/.erlang.cookie': enospc

Maybe you have some space limitations in the docker, or you don't actually have space left in the host?

Upvotes: 26

Related Questions