Mix edeliver start production cookie mismatch help

The actual question is in bold/italics the below is just additional information that may help. Still new to elixir so trying to wrap my head around a full app lifecycle.

mix edeliver start production causes an error that says:

Received ‘pang’ from myapp@127.0.0.1!
▸ Possible reasons for this include:
▸ - The cookie is mismatched between us and the target node
▸ - We cannot establish a remote connection to the node
▸ Received ‘pang’ from myapp@127.0.0.1!
▸ Possible reasons for this include:
▸ - The cookie is mismatched between us and the target node
▸ - We cannot establish a remote connection to the node

I’m using:
elixir 1.7
{:edeliver, “~> 1.6”},
{:distillery, “~> 2.0”}

I’m using server: true in /config/prod.esx
thanks to: Phoenix deployed with edelivery not starting - #2 by idi527

Postgres, erlang and elixir are installed on the server. The build, production releases all seem to work (there are files in the folders). I can ssh into the server using my username@ipaddress and I have the ipaddress and username .deliver/config and config/prod.exs (url: [host: “ip”, port:80]

In --debug mode it goes through a lot of killing/checking and sleeping :

  • kill -0 13815

  • kill -0 13813

  • sleep 0.5

I’ve also tried on the server. bin/myapp start
It gives no response back

**So I’m guessing the remote connection is a response to not having the right erlang cookies? **

I haven’t been able to find much details on how to lay out the cookies so they match up. I saw a comment stating that they are autogenerated and you shouldn’t hardcode cookies into the system? Any suggestions, reading or ways to navigate this?

Other sources I’ve found that have helped some:
https://medium.com/@zek/deploy-early-and-often-deploying-phoenix-with-edeliver-and-distillery-part-one-5e91cac8d4bd

4 Likes

Have the same error.
elixir 1.7
{:edeliver, “~> 1.4.3”},
{:distillery, “~> 2.0”}

Hey @qtheninja and @Merff.

Is is your first deploy? Have you deployed before and now this is happening?

The cookie is saved on rel/config.exs after you run release.init.

If you didn’t change it after you built your release, they should match up.

Please make sure your distillery version is 2.0.3, I had this same issue and all sorts of weird behaviors because distillery 2.0.2 didn’t include some needed files on the release package.

@shamanime hey! Yes, this is first deploy via distillery + edeliver. I did not change cookie. distillery version is 2.0.3, yes.

Ok then, if you didn’t change the cookie you’re probably receiving pang as a response because your application is failing to start.

Have you followed the instructions on the distillery phoenix walkthrough?

Same here.

1st deploy. No cookie changing. and I created a fresh no change phoenix app and used 2.0.3. Same problem.

I used this article for some guidance: https://medium.com/@zek/deploy-early-and-often-deploying-phoenix-with-edeliver-and-distillery-part-two-f361ef36aa10

As it wasn’t a 100% clear where with the distillery walkthrough to do some of these things (production server, local) but overall it looks pretty close to the walkthrough.

It looks on the server it is failing to start on the server. @shamanime not sure if you have any further suggestions at all.

I can do “PORT=4000 …builds/prod/so_on_and_so_on/bin/myapp foreground”

and it works. If I use “start” instead of foreground it just quietly fails as I cannot view the myIP:4000 site unless I hit foreground again.

I attempted to use foreground again out of curiosity and got this error.
Protocol ‘inet_tcp’: the name myApp@127.0.0.1 seems to be in use by another Erlang node

SO. It must have been running but not being up fully?

@Merff this may help you. I had to go into the “BUILD_AT” link and then keep diving until you get to bin. So I set it up as something like: PORT=4001 /tmp/edeliver/myapp/builds/_build/prod/rel/myapp/bin/myapp foreground

I’m not sure if this will help you at all.

I updated several projects to distillery > 2 and edeliver 1.6. Only one project has the issues as described above. The process of starting or stopping the application do work eventually, but only after outputting several times the Received ‘pang’ from myapp@127.0.0.1! line.

You can try hardcoding your PORT and any other environment variable that you need to set.

If the app starts, then you know this was the issue. If it doesn’t, it’s one less thing for you to worry about while you keep testing. You can come back and configure them dynamically later. I just noticed Distillery 2 added a few other ways to configure those (link).

1 Like

Set the PORT environment variable helped me.

1 Like

Are you still seeing this issue or did you find a solution for your case?
I’ve been experiencing it for several weeks with 2.0.10 not using any system environment variables.
2x Received ‘pang’…, when starting the application after having stopped it. Complete fresh deploy/starts work fine.

1 Like

I am experiencing this problem with 2.0.10, Elixir 1.7 on Ubuntu 18.04

After mix edeliver deploy to, mix edeliver start [target] gives me a “pang”, but then when I try to start again, it tells me my server is already up and running…

2 Likes

I still experience this on all our projects. It works, but prints the pang message …

1 Like

I have the same issue, we are using elixir 1.5, distillery 2.0.10 and edeliver 1.5.0 on Ubuntu 16.04.

I just get:

  response: ▸  Received 'pang' from cordage_rigging@127.0.0.1!
▸  Possible reasons for this include:
▸    - The cookie is mismatched between us and the target node
▸    - We cannot establish a remote connection to the node
▸  Received 'pang' from cordage_rigging@127.0.0.1!
▸  Possible reasons for this include:
▸    - The cookie is mismatched between us and the target node
▸    - We cannot establish a remote connection to the node
1 Like

Same issue here, everything else works correctly but on mix edeliver start production (or start staging) I get the dreaded pang message. The application starts correctly, migrations work fine. Even stop production returns an ok as expected. Just the pang on start. Also restart production returns a blank response, but again everything functions correctly.

Starting my app manually with ~/app_name/bin/app_name start also works, but doesn’t return an ok as I’d expect. Hardcoding PORT into the application start command (e.g. PORT=4000 bin/app_name start) doesn’t have an impact, and still returns no ok response on application start. But the application was starting correctly on the configured port regardless.

The Erlang magic cookie also looks correct on the vm.args of the deployed application instance.

Using Elxir 1.7.4-1, Phoenix 1.4, Distillery 2.0.12, and Edeliver 1.6.0 on Ubuntu 18.04.

This was all working fine for me before upgrading my app from Phoenix 1.3.2, Elixir 1.6.1, Distillery 1.5.2, Edeliver 1.4.5 on Ubuntu 16.04. It’s possible that I botched the upgrade somehow but again everything else in the application seems to be working correctly.

I followed the docs and got the same :pang response after having my mix.exs like this:

def application, do: [
   applications: [:edeliver],
   mod: {Ankikorean.Application, []},
   extra_applications: [:logger, :runtime_tools]
]

After changing it to the following code it worked.

  def application do
    [
      mod: {Ankikorean.Application, []},
      extra_applications: [:logger, :runtime_tools, :edeliver]
    ]
  end
2 Likes

Thanks @JorisKok for the reply here! I’ll have to give this a shot, I’ll let you know how it goes. Thanks again!