new compiler breaks ppc64el unit tests in many ways
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
| juju-core |
High
|
Dave Cheney | ||
| gcc-4.9 (Ubuntu) |
Undecided
|
Dave Cheney |
Bug Description
The tests for http://
The common failures are
FAIL: local_test.go:227: TestBootstrapFa
TestCollectInst
TestInstancesBu
TestStopInstanc
After additional commits were added, we see additional failures
TearDownTest.
TestAddRemoveSe
The failing code has not changed.
We can see that the gcc-4.9 compiler was updated between runs. When the last passing tarball is run with the current compiler, it fails the same way. The bad compiler is
go version xgcc (Ubuntu 4.9.1-12ubuntu2) 4.9.1 linux/ppc64
That last know good compiler was
go version xgcc (Ubuntu 4.9.1-10ubuntu3) 4.9.1 linux/ppc64
Related branches
- Juju Engineering: Pending requested 2014-09-08
-
Diff: 36 lines (+10/-2)1 file modifiedtestservices/hook/service_gccgo.go (+10/-2)
description: | updated |
Curtis Hovey (sinzui) wrote : | #2 |
The suspected commits are:
e72e63d Merge pull request #630 from katco-/
4aa871b Merge pull request #657 from davecheney/
3ee3751 Merge pull request #670 from davecheney/
6654869 Merge pull request #660 from mjs/UpgradeInfo
ea24962 Merge pull request #664 from axw/api-
cd6fe1f Merge pull request #665 from mattyw/
3d20d69 Merge pull request #672 from wallyworld/
Changed in juju-core: | |
assignee: | nobody → Ian Booth (wallyworld) |
Ian Booth (wallyworld) wrote : | #3 |
The failing tests all utilitse the ControlHook which looks at the callstack to monkey patch in code required for the tests to pass. The build machine recent started running gccgo 4.9.1-12ubuntu2 whereas I think previously it was 4.9.1-10ubuntu2
I strongly suspect this is a gccgo compiler issue.
The snippet of test code in question is looks like the below. This code had not changed for months. New tests were added recently which use this code, and there are also existing tests from long ago. The return fmt.Error() is just not being run because the compiler doesn't hook it in and so the test breaks.
cleanup := s.srv.Service.
"addFloatingIP",
func(sc hook.ServiceCon
return fmt.Errorf("failed on purpose")
},
)
Ian Booth (wallyworld) wrote : | #4 |
Confirmed with Curtis that running the older gccgo passes the tests.
Changed in juju-core: | |
assignee: | Ian Booth (wallyworld) → nobody |
summary: |
- ppc64el unit tests fail in many ways + new compiler breaks ppc64el unit tests in many ways |
Changed in gcc-4.9 (Ubuntu): | |
status: | New → Confirmed |
Changed in juju-core: | |
importance: | Critical → High |
description: | updated |
Changed in gcc-4.9 (Ubuntu): | |
assignee: | nobody → Dave Cheney (dave-cheney) |
status: | Confirmed → In Progress |
Changed in juju-core: | |
status: | Triaged → Fix Committed |
Changed in gcc-4.9 (Ubuntu): | |
status: | In Progress → Invalid |
Changed in juju-core: | |
assignee: | nobody → Dave Cheney (dave-cheney) |
Changed in juju-core: | |
status: | Fix Committed → Fix Released |
This is the log form the latest run from commit d5e7a1d1