【问题标题】:I have jiffy in my src directory but it my Cowboy server crashes when I run我的 src 目录中有 jiffy,但是当我运行时,我的 Cowboy 服务器崩溃了
【发布时间】:2017-05-16 05:46:29
【问题描述】:

我尝试克隆 Jiffy 以将其验证为 JSON 编码器。我必须将 priv 文件夹复制到 /src,然后我可以cd src && erl > jiffy:encode... 很好。

所以我将包含 priv 文件夹的 src 复制到我的牛仔应用程序中。当我尝试像访问任何其他模块一样访问它时,我收到此错误

~/erlapp:.gmake run
gmake[1]: Entering directory '/Users/quantum/erlapp/deps/cowboy'
gmake[2]: Entering directory '/Users/quantum/erlapp/deps/cowlib'
gmake[2]: Leaving directory '/Users/quantum/erlapp/deps/cowlib'
gmake[2]: Entering directory '/Users/quantum/erlapp/deps/ranch'
gmake[2]: Leaving directory '/Users/quantum/erlapp/deps/ranch'
 GEN    rebar.config
gmake[1]: Leaving directory '/Users/quantum/erlapp/deps/cowboy'
===> Starting relx build process ...
===> Resolving OTP Applications from directories:
          /Users/quantum/erlapp/ebin
          /Users/quantum/erlapp/deps
          /usr/local/Cellar/erlang/19.1/lib/erlang/lib
          /Users/quantum/erlapp/apps
          /Users/quantum/erlapp/_rel
===> Resolved erlapp_release-1
===> Including Erts from /usr/local/Cellar/erlang/19.1/lib/erlang
===> release successfully created!
===> tarball /Users/quantum/erlapp/_rel/erlapp_release/erlapp_release-1.tar.gz successfully created!
Exec: /Users/quantum/erlapp/_rel/erlapp_release/erts-8.1/bin/erlexec -boot /Users/quantum/erlapp/_rel/erlapp_release/releases/1/erlapp_release -mode embedded -boot_var ERTS_LIB_DIR /Users/quantum/erlapp/_rel/erlapp_release/erts-8.1/../lib -config /Users/quantum/erlapp/_rel/erlapp_release/releases/1/sys.config -args_file /Users/quantum/erlapp/_rel/erlapp_release/releases/1/vm.args -- console
Root: /Users/quantum/erlapp/_rel/erlapp_release
/Users/quantum/erlapp/_rel/erlapp_release
heart_beat_kill_pid = 78636
Erlang/OTP 19 [erts-8.1] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]

2017-01-01 23:36:36 crash_report
    initial_call: {supervisor,kernel,['Argument__1']}
    pid: <0.281.0>
    registered_name: []
    error_info: {exit,{on_load_function_failed,jiffy},[{gen_server,init_it,6,[{file,"gen_server.erl"},{line,352}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,247}]}]}
    ancestors: [kernel_sup,<0.256.0>]
    messages: []
    links: [<0.257.0>]
    dictionary: []
    trap_exit: true
    status: running
    heap_size: 376
    stack_size: 27
    reductions: 117
2017-01-01 23:36:36 supervisor_report
    supervisor: {local,kernel_sup}
    errorContext: start_error
    reason: {on_load_function_failed,jiffy}
    offender: [{pid,undefined},{id,kernel_safe_sup},{mfargs,{supervisor,start_link,[{local,kernel_safe_sup},kernel,safe]}},{restart_type,permanent},{shutdown,infinity},{child_type,supervisor}]
2017-01-01 23:36:37 crash_report
    initial_call: {application_master,init,['Argument__1','Argument__2','Argument__3','Argument__4']}
    pid: <0.255.0>
    registered_name: []
    error_info: {exit,{{shutdown,{failed_to_start_child,kernel_safe_sup,{on_load_function_failed,jiffy}}},{kernel,start,[normal,[]]}},[{application_master,init,4,[{file,"application_master.erl"},{line,134}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,247}]}]}
    ancestors: [<0.254.0>]
    messages: [{'EXIT',<0.256.0>,normal}]
    links: [<0.254.0>,<0.253.0>]
    dictionary: []
    trap_exit: true
    status: running
    heap_size: 376
    stack_size: 27
    reductions: 152
2017-01-01 23:36:37 std_info
    application: kernel
    exited: {{shutdown,{failed_to_start_child,kernel_safe_sup,{on_load_function_failed,jiffy}}},{kernel,start,[normal,[]]}}
    type: permanent
{"Kernel pid terminated",application_controller,"{application_start_failure,kernel,{{shutdown,{failed_to_start_child,kernel_safe_sup,{on_load_function_failed,jiffy}}},{kernel,start,[normal,[]]}}}"}
Kernel pid terminated (application_controller) ({application_start_failure,kernel,{{shutdown,{failed_to_start_child,kernel_safe_sup,{on_load_function_failed,jiffy}}},{kernel,start,[normal,[]]}}})
heart: Sun Jan  1 23:36:37 2017: Erlang is crashing .. (waiting for crash dump file)
heart: Sun Jan  1 23:36:37 2017: Would reboot. Terminating.
gmake: *** [erlang.mk:6448: run] Error 1

【问题讨论】:

    标签: json erlang cowboy


    【解决方案1】:

    发生这种情况的原因是您运行的 erlang 版本与编译时使用的版本不同。

    如果您删除 jiffy 的编译版本并重新编译,它应该可以在您编译的同一系统上运行:

    rm -rf deps/

    另外,注意你需要有gcc,这样你才能编译C代码。

    【讨论】:

      猜你喜欢
      • 2017-05-16
      • 1970-01-01
      • 2022-07-22
      • 2022-01-04
      • 1970-01-01
      • 2021-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多