在ARM上构buildmongo shell 3.2.x(armv7larm64aarch64) – 分段错误

在ARM上构buildmongo shell 3.2.x(armv7larm64aarch64) – 分段错误,第1张

概述在ARM上构buildmongo shell 3.2.x(armv7l / 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

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

总结

以上是内存溢出为你收集整理的在ARM上构buildmongo shell 3.2.x(armv7l / arm64 / aarch64) – 分段错误全部内容,希望文章能够帮你解决在ARM上构buildmongo shell 3.2.x(armv7l / arm64 / aarch64) – 分段错误所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/1264663.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-08
下一篇2022-06-08

发表评论

登录后才能评论

评论列表(0条)

    保存