Настройка Sentry в приложении Elixir, получение неопределенной функции String.trim/2

Я следую этим инструкциям (https://github.com/getsentry/sentry-elixir ), чтобы настроить уведомления об ошибках Sentry в приложении Elixir/Phoenix. Он отлично работает в моей среде разработки, но когда я запускаю производство (используя Heroku), я получаю следующую ошибку, которая, кажется, возникает в самом модуле Sentry: (UndefinedFunctionError) undefined function String.trim/2.

Вот полный вывод журнала:

** (exit) an exception was raised:
2016-12-01T23:14:00.741733+00:00 app[web.1]:     ** (UndefinedFunctionError) undefined function String.trim/2
2016-12-01T23:14:00.741736+00:00 app[web.1]:         (elixir) String.trim("** (Phoenix.ActionClauseError) bad request to MyApp.UserController.create, no matching action clause to process request", "*")
2016-12-01T23:14:00.741737+00:00 app[web.1]:         (sentry) lib/sentry/event.ex:65: Sentry.Event.transform_exception/2
2016-12-01T23:14:00.741738+00:00 app[web.1]:         (sentry) lib/sentry.ex:86: Sentry.capture_exception/2
2016-12-01T23:14:00.741739+00:00 app[web.1]:         (plug) lib/plug/error_handler.ex:96: Plug.ErrorHandler.__catch__/5
2016-12-01T23:14:00.741740+00:00 app[web.1]:         (my_app) lib/my_app/endpoint.ex:1: MyApp.Endpoint.phoenix_pipeline/1
2016-12-01T23:14:00.741741+00:00 app[web.1]:         (my_app) lib/my_app/endpoint.ex:1: MyApp.Endpoint.call/2
2016-12-01T23:14:00.741742+00:00 app[web.1]:         (plug) lib/plug/adapters/cowboy/handler.ex:15: Plug.Adapters.Cowboy.Handler.upgrade/4
2016-12-01T23:14:00.741742+00:00 app[web.1]:         (cowboy) src/cowboy_protocol.erl:442: :cowboy_protocol.execute/4

и когда я пытаюсь получить доступ к alias String, войдя в iex через heroku run, я получаю nil.

Любая идея, почему модуль String не определен только в производстве?


person shawnbro    schedule 02.12.2016    source источник
comment
установка erlang_version=19.0 и elixir_version=1.3.4 в elixir_buildpack.config решила проблему.   -  person shawnbro    schedule 02.12.2016


Ответы (1)


я думаю, вам нужно заставить heroku использовать версию эликсира 1.3.x. Если вы используете heroku-buildpack-elixir, установите минимальную версию эликсира 1.3.0.

https://github.com/HashNuke/heroku-buildpack-elixir

Есть соответствующая проблема:

https://github.com/getsentry/sentry-elixir/issues/95

person bulleric    schedule 02.12.2016