mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Fix flaky TestApiStatsNetworkStats test
It appears that on some systems apparmor gets in the way of libc.so.6 shared library being loaded - which means the ping fails. To get around this if we run ping under `/lib64/ld-linux-x86-64.so.2` then it works. So we only do this for linux and only if the first attempt fails. If this 2nd attempt fails then we'll show the original error to the user for debugging. Also s/Output/CombinedOutput/ to help debugging in the future. It didn't show the real error msg. Signed-off-by: Doug Davis <dug@us.ibm.com>
This commit is contained in:
parent
f18224de14
commit
94d0571304
1 changed files with 15 additions and 2 deletions
|
@ -107,9 +107,22 @@ func (s *DockerSuite) TestApiStatsNetworkStats(c *check.C) {
|
|||
if runtime.GOOS == "windows" {
|
||||
countParam = "-n" // Ping count parameter is -n on Windows
|
||||
}
|
||||
pingout, err := exec.Command("ping", contIP, countParam, strconv.Itoa(numPings)).Output()
|
||||
pingouts := string(pingout[:])
|
||||
pingout, err := exec.Command("ping", contIP, countParam, strconv.Itoa(numPings)).CombinedOutput()
|
||||
if err != nil && runtime.GOOS == "linux" {
|
||||
// If it fails then try a work-around, but just for linux.
|
||||
// If this fails too then go back to the old error for reporting.
|
||||
//
|
||||
// The ping will sometimes fail due to an apparmor issue where it
|
||||
// denies access to the libc.so.6 shared library - running it
|
||||
// via /lib64/ld-linux-x86-64.so.2 seems to work around it.
|
||||
pingout2, err2 := exec.Command("/lib64/ld-linux-x86-64.so.2", "/bin/ping", contIP, "-c", strconv.Itoa(numPings)).CombinedOutput()
|
||||
if err2 == nil {
|
||||
pingout = pingout2
|
||||
err = err2
|
||||
}
|
||||
}
|
||||
c.Assert(err, checker.IsNil)
|
||||
pingouts := string(pingout[:])
|
||||
nwStatsPost := getNetworkStats(c, id)
|
||||
for _, v := range nwStatsPost {
|
||||
postRxPackets += v.RxPackets
|
||||
|
|
Loading…
Add table
Reference in a new issue