微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在ARM上构buildmongo shell 3.2.xarmv7l / arm64 / aarch64 – 分段错误

在过去的几天里,我花了很多时间在Linaro集群上运行Ubuntu 16.04 for ARM64(aarch64)上运行的mongo shell。 我目前正在ARM架构上为meteorjs开发下一个发行版本。

TL; DR

虽然mongod(DB)在编译完成后仍然运行良好,但没有看到任何问题,但在构build之后,无法获得正在运行的mongo shell [即使不支持javascript(mozjs))。

最简单的构build:

mkdir -p / tmp / mongo-build

cd / tmp / mongo-build

git clone --branch“r3.2.6”--depth 1 https://github.com/mongodb/mongo.git

cd mongo

scons --disable-warnings-as-errors --prefix = / tmp / mongo-build / mongo --js-engine = mozjs mongo mongod

即使这个版本将在所有经过testing的平台和体系结构(armv7l,aarch64,amd64上的Linux)上运行,在编译期间没有问题,但运行程序的结果不同。

专用的交叉编译开源软件的方式

如何调用MyChecksum而不是KernelChecksum(KernelChecksum汇编编码)

为Linux 2.6.30 DMA API映射设备内存

如何交叉编译工具链到ARMv5平台?

ARM上未alignment内存访问的函数

在amd64上运行后运行mongo命令:

只要运行mongo shell并尝试连接到一个不存在的实例

./mongo mongodb:// localhost:5002 / sample

这会给出这个输出

MongoDBshell版本:3.2.6

连接到:mongodb:// localhost:5002 / sample

2016-07-05T14:10:23.772 + 0200 W NETWORK [thread1]无法连接到127.0.0.1:5002,原因是:errno:111连接被拒绝

2016-07-05T14:10:23.772 + 0200 E QUERY [thread1]错误:无法连接到服务器localhost:5002,连接尝试失败:

connect@src/mongo/shell/mongo.js:223:14

@(连接):1:6

exception:连接失败

在aarch64 / armv7l上构build后运行mongo命令:

相反,ARM的输出只是:

MongoDBshell版本:3.2.6

分割故障(核心转储)

在我看来,TCP连接部分可能会提出“分段错误”,但我不能debugging。

我会很高兴能得到这个运行的任何帮助。

谢谢汤姆

ARM交叉编译,多重inheritance分段错误

什么是更好的方式来宣布在基于arm的拱门上的标志?

电平触发中断处理和嵌套中断

有没有Android PCI卡?

未定义的参考-finstrument函数

运行了更多的尝试和编译后,我已经改变了mongodb版本的分支,并使用r3.3.9。

虽然使用相同的scons参数,似乎运行没有任何问题。 我还没有深入细节和版本的变化,但有一个运行版本对我来说很好

mkdir -p / tmp / mongo-build

cd / tmp / mongo-build

git clone --branch“r3.3.9”--depth 1 https://github.com/mongodb/mongo.git

cd mongo

scons --disable-warnings-as-errors --prefix = / tmp / mongo-build / mongo --js-engine = mozjs mongo mongod

如果你发出./mongo –help,二进制文件仍然可以工作,但是连接有问题处理一个不存在的数据库。 Seg Faulting,而不是在不存在的数据库上优雅地失败。 由于空指针解引用。

有问题的代码位于/src/mongo/client/mongo_uri_connect.cpp

if (!_user.empty()) { ret->auth(_makeAuthObjFromOptions(ret->getMaxWireversion())); } return ret; }

声称从3.2.8到3.3.9受到影响。

https://jira.mongodb.org/browse/SERVER-23126

在另一个说明中,如果你需要分片,在scons行中加入“core”。 对于mongod,mongos和mongo,将它们全部包含在构建中。

scons --disable-warnings-as-errors --prefix=/tmp/mongo-build/mongo --js-engine=mozjs core

解决这个问题的一个方法就是把它指向一个现有的数据库,而不是一个示例数据库

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐