在 Docker 中运行 nuttcp 时出现分段错误

在 Docker 中运行 nuttcp 时出现分段错误

我正在测量通过 Docker 的原生覆盖网络连接的两个 Docker 容器之间的 UDP 吞吐量。我已经使用过,iperf但也想用 来测量吞吐量nuttcp。但是当我启动服务器实例然后启动客户端实例时,服务器实例崩溃并显示以下错误消息:Segmentation fault (core dumped)。这是我启动服务器的方式:

nuttcp -S -u --nofork

以下是我启动客户端的方式:

nuttcp -u -T 115 10.0.0.3

启动客户端后,服务器实例直接崩溃。我使用相同的命令nuttcp在 Docker 之外运行,没有任何问题。

以下是有关我正在使用的版本的一些附加信息:

# inside the container:
$ uname -a
Linux 310d92462ac0 3.19.0-58-generic #64~14.04.1-Ubuntu SMP Fri Mar 18 19:05:43 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
$ nuttcp -V
nuttcp-6.1.2

# outside the container:
$ uname -a
Linux libAMS 3.19.0-58-generic #64~14.04.1-Ubuntu SMP Fri Mar 18 19:05:43 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
$ docker -v
Docker version 1.10.3, build 20f81dd

有人知道如何解决这个问题吗?

答案1

该漏洞出现在 nuttcp 6.1.2 版本中,如需了解更多信息和修复,请阅读此链接https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=745051

我的建议是使用新版本。

mkdir nuttcp
cd nuttcp/
wget http://nuttcp.net/nuttcp/beta/nuttcp-7.3.3.c

如果你没有 gcc

sudo apt-get install build-essential manpages-dev

编译程序并运行

cc nuttcp-7.3.3.c -o nuttcp-7
./nuttcp-7 –V
nuttcp-7.3.3

相关内容