rpc: TestChangeAPI hits an assertion error with gccgo

Bug #1251076 reported by Michael Hudson-Doyle
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
juju-core
Fix Released
High
Dave Cheney

Bug Description

Like this:

../../../src/libgo/runtime/go-reflect-call.c:325: libgo assertion failure
Aborted

It's the call to NewlyAvailable after the call to ChangeAPIMethods that explodes.

Related branches

Revision history for this message
Dave Cheney (dave-cheney) wrote :

Bug reported upstream, we should probably attempt a workaround.

Revision history for this message
Dave Cheney (dave-cheney) wrote :
Revision history for this message
Michael Hudson-Doyle (mwhudson) wrote :

This seems to be down to the fact that gccgo does not support calling a function that returns a struct via reflect.Call. This fails in the same way:

package main

import (
 "reflect"
)

type aStruct struct{}

func StructReturn () aStruct {
 return aStruct{}
}

func main () {
 f := reflect.ValueOf(StructReturn)
 f.Call([]reflect.Value{})
}

Curtis Hovey (sinzui)
tags: added: gccgo test-failure
Changed in juju-core:
status: New → Triaged
importance: Undecided → High
Curtis Hovey (sinzui)
Changed in juju-core:
milestone: none → 1.18.0
Revision history for this message
Dave Cheney (dave-cheney) wrote :

Fails on linux/ppc64el

ubuntu@winton-02:~/src/launchpad.net/juju-core$ go test ./rpc
# launchpad.net/juju-core/rpc_test
/tmp/ccRpWkRW.s: Assembler messages:
/tmp/ccRpWkRW.s:16660: Warning: setting incorrect section attributes for .rodata.__go_tdn_launchpad.net_juju_core_rpc_test.ErrorMethods
/tmp/ccRpWkRW.s:18589: Warning: setting incorrect section attributes for .rodata.__go_tdn_launchpad.net_juju_core_rpc_test.SimpleMethods
/tmp/ccRpWkRW.s:19044: Warning: setting incorrect section attributes for .rodata.__go_tdn_launchpad.net_juju_core_rpc_test..launchpad.net_juju_core_rpc_test.callInfo
panic: interface conversion: interface is nil, not error

goroutine 53 [running]:
rpcreflect.$nested0
        /home/ubuntu/src/launchpad.net/juju-core/rpc/rpcreflect/type.go:147
launchpad.net_juju_core_rpc_rpcreflect.Call.N51_launchpad.net_juju_core_rpc_rpcreflect.MethodCaller
        /home/ubuntu/src/launchpad.net/juju-core/rpc/rpcreflect/value.go:99
launchpad.net_juju_core_rpc.Call.N40_launchpad.net_juju_core_rpc.boundRequest
        /home/ubuntu/src/launchpad.net/juju-core/rpc/server.go:447
launchpad.net_juju_core_rpc.runRequest.pN32_launchpad.net_juju_core_rpc.Conn
        /home/ubuntu/src/launchpad.net/juju-core/rpc/server.go:485
created by launchpad.net_juju_core_rpc.handleRequest.pN32_launchpad.net_juju_core_rpc.Conn
        /home/ubuntu/src/launchpad.net/juju-core/rpc/server.go:417

tags: added: ppc64el
summary: - TestChangeAPI hits an assertion error with gccgo
+ rpc: TestChangeAPI hits an assertion error with gccgo
Changed in juju-core:
assignee: nobody → Dave Cheney (dave-cheney)
milestone: 1.20.0 → 2.0
status: Triaged → In Progress
milestone: 2.0 → 1.17.8
Curtis Hovey (sinzui)
Changed in juju-core:
milestone: 1.17.8 → 1.19.0
Changed in juju-core:
status: In Progress → Fix Committed
Curtis Hovey (sinzui)
Changed in juju-core:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.