burrito icon indicating copy to clipboard operation
burrito copied to clipboard

Phoenix with burrito: Error when calling MFA defined by measurement

Open relax2code opened this issue 1 year ago • 4 comments

Hi , first I want to thank you for making this, it's very helpful for deploying elixir app. I have some issue with burrito releasing phoenix , the app successfully build and running , but it has error printed out :

 [error] Error when calling MFA defined by measurement: :telemetry_poller_builtin :memory []
Class=:error
Reason=:notsup
Stacktrace=[
  {:erlang, :memory, 0, []},
  {:telemetry_poller_builtin, :memory, 0,
   [
     file: ~c".../deps/telemetry_poller/src/telemetry_poller_builtin.erl",
     line: 24
   ]},
  {:telemetry_poller, :make_measurement, 1,
   [
     file: ~c".../deps/telemetry_poller/src/telemetry_poller.erl",
     line: 322
   ]},
  {:telemetry_poller, :"-make_measurements_and_filter_misbehaving/1-lc$^0/1-0-",
   1,
   [
     file: ~c".../deps/telemetry_poller/src/telemetry_poller.erl",
     line: 318
   ]},
  {:telemetry_poller, :handle_info, 2,
   [
     file: ~c".../deps/telemetry_poller/src/telemetry_poller.erl",
     line: 340
   ]},
  {:gen_server, :try_handle_info, 3, [file: ~c"gen_server.erl", line: 1077]},
  {:gen_server, :handle_msg, 6, [file: ~c"gen_server.erl", line: 1165]},
  {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 241]}
]

Elixir: 1.15.5 Erlang: 26.0.2 Phoenix: ~> 1.7.9

mix.exs


  def application do
    [
      mod: {MyApp.Application, []},
      extra_applications: [:logger, :runtime_tools]
    ]
  end
...

  defp releases() do
    [
      my_app: [
        steps: [:assemble, &Burrito.wrap/1],
        burrito: [
          targets: [
            linux: [os: :linux, cpu: :x86_64]
          ]
        ]
      ]
    ]

Is there any settings that I missed ? Thank you

relax2code avatar Oct 23 '23 08:10 relax2code

Hm, I'm going to have to build an example app that matches your setup to debug this, that error isn't directing me to anything specific at the moment.

I'll try to build a test app in a little bit and see if I can get it to behave in a similar manner.

doawoo avatar Oct 27 '23 17:10 doawoo

Thank you very much

relax2code avatar Oct 30 '23 13:10 relax2code

Are you building this app with your MIX_ENV set to prod? or is it set to dev?

doawoo avatar Nov 01 '23 15:11 doawoo

Sorry, I set it to prod, btw I'm using linux mint 21 (ubuntu 22 based) , here is my steps to release:

 MIX_ENV=prod  mix assets.deploy
 mix phx.digest
 MIX_ENV=prod mix release

prod.exs :

 import Config
config :pg_panel, PgPanelWeb.Endpoint, cache_static_manifest: "priv/static/cache_manifest.json"
config :swoosh, api_client: Swoosh.ApiClient.Finch, finch_name: PgPanel.Finch
config :swoosh, local: false
config :logger, level: :info

runtime.exs :

import Config
if System.get_env("PHX_SERVER") do
  config :pg_panel, PgPanelWeb.Endpoint, server: true
end

if config_env() == :prod do
  database_path =
    System.get_env("DATABASE_PATH") ||
      raise """
      environment variable DATABASE_PATH is missing.
      For example: /etc/pg_panel/pg_panel.db
      """

  config :pg_panel, PgPanel.Repo,
    database: database_path,
    pool_size: String.to_integer(System.get_env("POOL_SIZE") || "5")

  secret_key_base =
    System.get_env("SECRET_KEY_BASE") ||
      raise """
      environment variable SECRET_KEY_BASE is missing.
      You can generate one by calling: mix phx.gen.secret
      """

  host = System.get_env("PHX_HOST") || "example.com"
  port = String.to_integer(System.get_env("PORT") || "4000")

  config :pg_panel, :dns_cluster_query, System.get_env("DNS_CLUSTER_QUERY")

  config :pg_panel, PgPanelWeb.Endpoint,
    url: [host: host, port: 443, scheme: "https"],
    http: [
  
      ip: {0, 0, 0, 0, 0, 0, 0, 0},
      port: port
    ],
    secret_key_base: secret_key_base
end

relax2code avatar Nov 03 '23 05:11 relax2code