
在过去的几天里,我花了很多时间在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
解决这个问题的一个好方法就是把它指向一个现有的数据库,而不是一个示例数据库。
总结以上是内存溢出为你收集整理的在ARM上构buildmongo shell 3.2.x(armv7l / arm64 / aarch64) – 分段错误全部内容,希望文章能够帮你解决在ARM上构buildmongo shell 3.2.x(armv7l / arm64 / aarch64) – 分段错误所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)