On_load_function_failed : cberl_nif (二郎)
On_load_function_failed : cberl_nif (Erlang)
我正在使用 https://github.com/chitika/cberl。
我目前的应用程序版本是1.2.1。 运行 很好。我创建了一个新版本 1.2.2,它升级得很好。但是当我启动一个新实例时,它在 1.2.2 上失败了。它继续抛出 cberl 错误。
如果我启动我的上一个版本 1.2.1,然后再次将它升级到 1.2.2,那么它工作正常。但从头开始不会。
我的应用程序(比如测试)无法启动。
我使用的命令:bin/test console
.
使用的 OTP 版本:18.2.
在 OTP 18.2 上编译。
Linux 版本:3.2.0-4-amd64 #1 SMP Debian 3.2.63-2 x86_64 GNU/Linux。
完整的错误信息:
erl_crash.dump
Slogan: Kernel pid terminated (application_controller) ({application_start_failure,kernel,{{shutdown,{failed_to_start_child,kernel_safe_sup,{on_load_function_failed,cberl_nif}}},{kernel,start,[normal,[]]}}}
System version: Erlang/OTP 18 [erts-7.2] [source] [64-bit] [smp:16:16] [async-threads:10] [kernel-poll:true]
到目前为止我尝试过的事情:
1) 我检查了我的 libcouchbase。已安装。
看起来 cberl_nif 是用两个不同版本的 Erlang 编译的。
你运行的Erlang版本好像是18.2,编译用的cberl_nif是18。因此 NIF 接口将有不同的版本,从而导致您看到的错误消息。
因此,如果您从头开始重建,请确保清理所有缓存并再次重建。特别是所有 .so 和 .o 文件。
所以,我能够解决这个问题。我是一个 erlang 库不匹配。感谢@fredrikvensson,我能够解决它。我打算使用 OTP 15 但有 17.
我正在使用 https://github.com/chitika/cberl。
我目前的应用程序版本是1.2.1。 运行 很好。我创建了一个新版本 1.2.2,它升级得很好。但是当我启动一个新实例时,它在 1.2.2 上失败了。它继续抛出 cberl 错误。
如果我启动我的上一个版本 1.2.1,然后再次将它升级到 1.2.2,那么它工作正常。但从头开始不会。
我的应用程序(比如测试)无法启动。
我使用的命令:bin/test console
.
使用的 OTP 版本:18.2.
在 OTP 18.2 上编译。
Linux 版本:3.2.0-4-amd64 #1 SMP Debian 3.2.63-2 x86_64 GNU/Linux。
完整的错误信息:
erl_crash.dump Slogan: Kernel pid terminated (application_controller) ({application_start_failure,kernel,{{shutdown,{failed_to_start_child,kernel_safe_sup,{on_load_function_failed,cberl_nif}}},{kernel,start,[normal,[]]}}} System version: Erlang/OTP 18 [erts-7.2] [source] [64-bit] [smp:16:16] [async-threads:10] [kernel-poll:true]
到目前为止我尝试过的事情:
1) 我检查了我的 libcouchbase。已安装。
看起来 cberl_nif 是用两个不同版本的 Erlang 编译的。
你运行的Erlang版本好像是18.2,编译用的cberl_nif是18。因此 NIF 接口将有不同的版本,从而导致您看到的错误消息。
因此,如果您从头开始重建,请确保清理所有缓存并再次重建。特别是所有 .so 和 .o 文件。
所以,我能够解决这个问题。我是一个 erlang 库不匹配。感谢@fredrikvensson,我能够解决它。我打算使用 OTP 15 但有 17.