【问题标题】:Chicago Boss Cannot start in production modeChicago Boss 无法在生产模式下启动
【发布时间】:2016-09-18 07:38:42
【问题描述】:

我可以在开发模式下运行它,但不能在生产模式下运行。

我在错误日志和访问日志中看不到任何错误

为什么开发工作而不是生产工作?

boss版本:0.8.15

控制台的最后一行

2016-05-28 16:00:08.538 [info] <0.7.0> Application lager started on node letsparty@localhost
2016-05-28 16:00:08.554 [info] <0.59.0> Starting Boss in production mode....

2016-05-28 16:00:08.562 [info] <0.59.0>@boss_db:start:77 Start Database Adapter boss_db_adapter_riaks2 options [{adapter,riaks2},{cache_enable,false},{cache_prefix,db},{shards,[]},{is_master_node,true},{db_host,"127.0.0.1"},{db_port,8087}]
2016-05-28 16:00:08.635 [info] <0.59.0> Starting master services on letsparty@localhost

2016-05-28 16:00:08.672 [info] <0.7.0> Application tinymq started on node letsparty@localhost
2016-05-28 16:00:08.715 [info] <0.59.0> SSL:[{cacertfile,"ssl/cacert.pem"},{certfile,"ssl/newcert.pem"},{keyfile,"ssl/privkey.pem"},{verify,verify_peer},{fail_if_no_peer_cert,false},{ciphers,[{rsa,aes_128_cbc,sha}]}]

2016-05-28 16:00:08.724 [info] <0.59.0> Starting cowboy... on letsparty@localhost

2016-05-28 16:00:08.733 [info] <0.7.0> Application cowlib started on node letsparty@localhost
2016-05-28 16:00:08.746 [info] <0.7.0> Application ranch started on node letsparty@localhost
2016-05-28 16:00:08.770 [info] <0.7.0> Application cowboy started on node letsparty@localhost
2016-05-28 16:00:08.770 [info] <0.59.0> Starting http listener... on 0.0.0.0:8444 

2016-05-28 16:00:08.777 [notice] <0.71.0>@lager_app:132 Deprecated lager_file_backend config detected, please consider updating it
2016-05-28 16:00:08.824 [info] <0.262.0>@boss_db:start:77 Start Database Adapter boss_db_adapter_riaks2 options [{adapter,riaks2},{cache_enable,false},{cache_prefix,db},{shards,[]},{is_master_node,true},{db_host,"127.0.0.1"},{db_port,8087}]
2016-05-28 16:00:08.844 [info] <0.412.0>@boss_db:start:77 Start Database Adapter boss_db_adapter_riaks2 options [{adapter,riaks2},{cache_enable,false},{cache_prefix,db},{shards,[]},{is_master_node,true},{db_host,"127.0.0.1"},{db_port,8087}]
2016-05-28 16:00:08.864 [info] <0.562.0>@boss_db:start:77 Start Database Adapter boss_db_adapter_riaks2 options [{adapter,riaks2},{cache_enable,false},{cache_prefix,db},{shards,[]},{is_master_node,true},{db_host,"127.0.0.1"},{db_port,8087}]
2016-05-28 16:00:08.880 [info] <0.712.0>@boss_db:start:77 Start Database Adapter boss_db_adapter_riaks2 options [{adapter,riaks2},{cache_enable,false},{cache_prefix,db},{shards,[]},{is_master_node,true},{db_host,"127.0.0.1"},{db_port,8087}]
2016-05-28 16:00:08.893 [info] <0.862.0>@boss_db:start:77 Start Database Adapter boss_db_adapter_riaks2 options [{adapter,riaks2},{cache_enable,false},{cache_prefix,db},{shards,[]},{is_master_node,true},{db_host,"127.0.0.1"},{db_port,8087}]
2016-05-28 16:00:08.908 [info] <0.1012.0>@boss_db:start:77 Start Database Adapter boss_db_adapter_riaks2 options [{adapter,riaks2},{cache_enable,false},{cache_prefix,db},{shards,[]},{is_master_node,true},{db_host,"127.0.0.1"},{db_port,8087}]
2016-05-28 16:00:08.927 [info] <0.1162.0>@boss_db:start:77 Start Database Adapter boss_db_adapter_riaks2 options [{adapter,riaks2},{cache_enable,false},{cache_prefix,db},{shards,[]},{is_master_node,true},{db_host,"127.0.0.1"},{db_port,8087}]
2016-05-28 16:00:08.944 [info] <0.1312.0>@boss_db:start:77 Start Database Adapter boss_db_adapter_riaks2 options [{adapter,riaks2},{cache_enable,false},{cache_prefix,db},{shards,[]},{is_master_node,true},{db_host,"127.0.0.1"},{db_port,8087}]
2016-05-28 16:00:08.961 [info] <0.1462.0>@boss_db:start:77 Start Database Adapter boss_db_adapter_riaks2 options [{adapter,riaks2},{cache_enable,false},{cache_prefix,db},{shards,[]},{is_master_node,true},{db_host,"127.0.0.1"},{db_port,8087}]
2016-05-28 16:00:08.980 [info] <0.1612.0>@boss_db:start:77 Start Database Adapter boss_db_adapter_riaks2 options [{adapter,riaks2},{cache_enable,false},{cache_prefix,db},{shards,[]},{is_master_node,true},{db_host,"127.0.0.1"},{db_port,8087}]

它正在尝试连接到 riak 数据库,但它似乎挂起。我该如何调试它,为什么它可以在开发模式下工作?

【问题讨论】:

  • 这表明生产安装配置为侦听的 IP/端口无法被 inets 打开。我可能会添加一些更大的日志记录并启用调试级别,因为它会记录哪些应用程序和主管已正确启动。
  • 是同一台机器。老板生产只用“./init.sh start”运行
  • 如果没有一些额外的信息,很难回答这个问题。你可以访问外壳吗?您能否查询正在运行的应用程序,例如application:which_applications().?你可以添加日志,看看是否有任何崩溃?您可以发布带有用于在开发/生产中启动节点的参数的命令吗?
  • 真的。我更改了代码以从本地磁盘读取文件。所以这不是 inets 的问题。与 riak 数据库的连接出现问题。有什么与权限有关的吗?我一直在搞乱权限 - 所以在开发时,我以我的身份运行,但在生产中,它可能由另一个用户运行,因为它正在生成一个新进程 ....
  • 好的,您使用的是哪个 riak 客户端?您可以在客户端或 riak 或两者中启用日志吗?权限错误很可能已经记录到/var/log(或您的操作系统上的等效文件)中的系统文件之一。

标签: erlang chicagoboss


【解决方案1】:

我终于找到了问题的答案。这是我介绍的一个错误。在老板模板文件中,我扩展了一个父模板文件,后来我在开发期间更改了它的名称,在此版本之前。

即便如此,我还是运行 init-dev.sh OK 并编译到生产环境中。我看到的唯一日志是boss无法连接数据库。

最后我开始一块一块地重新组装我所有的代码,看看在什么时候,老板拒绝我去生产。经过几个小时的尝试,我终于找到了那个模板文件。实际上,只要尝试删除 src/view/lib/tag_html/ 中的一些文件,如果您正在使用它们,就会得到相同的日志。

糟糕的体验。为什么当我使用./rebar compile 编译时,它没有检查模板文件是否真的存在。

模板的东西不是 Erlang,我猜更像是老板的东西。

【讨论】:

    猜你喜欢
    • 2023-03-20
    • 1970-01-01
    • 2020-01-24
    • 2023-03-22
    • 2014-09-30
    • 2013-05-04
    • 2018-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多