juju get give a "panic: index out of range" error

Bug #1227952 reported by Patrick Hetu
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
goyaml
Fix Released
Undecided
Dave Cheney
juju-core
Fix Released
High
Dave Cheney
1.16
Fix Released
High
Curtis Hovey
juju-core (Ubuntu)
Fix Released
Undecided
Unassigned
Saucy
Won't Fix
Undecided
Unassigned

Bug Description

With the latest juju-core trunk and a python-django charm without configuration I have this error.
I have attach the PrintF result of the json value that fail to be marshal.
Note that "juju get gunicorn" also give the panic so it might be in the config.yaml

flocon:/tmp$ juju get python-django
panic: runtime error: index out of range [recovered]
 panic: runtime error: index out of range

goroutine 1 [running]:
launchpad.net/goyaml.handleErr(0xb715b598)
 /home/avoine/repos/go/src/launchpad.net/goyaml/goyaml.go:16 +0x74
launchpad.net/goyaml.yaml_emitter_analyze_scalar(0x18c6d580, 0x18c3d3d8, 0x1, 0x1, 0x0, ...)
 /home/avoine/repos/go/src/launchpad.net/goyaml/emitterc.go:1015 +0x85d
launchpad.net/goyaml.yaml_emitter_analyze_event(0x18c6d580, 0x18d85fb8, 0x0)
 /home/avoine/repos/go/src/launchpad.net/goyaml/emitterc.go:1157 +0x153
launchpad.net/goyaml.yaml_emitter_emit(0x18c6d580, 0x18c6d670, 0x0)
 /home/avoine/repos/go/src/launchpad.net/goyaml/emitterc.go:117 +0x157
launchpad.net/goyaml.(*encoder).emit(0x18c6d580)
 /home/avoine/repos/go/src/launchpad.net/goyaml/encode.go:41 +0x35
launchpad.net/goyaml.(*encoder).emitScalar(0x18c6d580, 0x18c62078, 0x1, 0x85b9e68, 0x0, ...)
 /home/avoine/repos/go/src/launchpad.net/goyaml/encode.go:220 +0x1fb
launchpad.net/goyaml.(*encoder).stringv(0x18c6d580, 0x85b9e68, 0x0, 0x8485b20, 0x18c62088, ...)
 /home/avoine/repos/go/src/launchpad.net/goyaml/encode.go:173 +0xc8
launchpad.net/goyaml.(*encoder).marshal(0x18c6d580, 0x85b9e68, 0x0, 0x8485b20, 0x18c62088, ...)
 /home/avoine/repos/go/src/launchpad.net/goyaml/encode.go:86 +0x3be
launchpad.net/goyaml.(*encoder).marshal(0x18c6d580, 0x85b9e68, 0x0, 0x8482620, 0x18c3d3b0, ...)
 /home/avoine/repos/go/src/launchpad.net/goyaml/encode.go:71 +0x2d0
launchpad.net/goyaml.func·002()
 /home/avoine/repos/go/src/launchpad.net/goyaml/encode.go:106 +0x140
launchpad.net/goyaml.(*encoder).mappingv(0x18c6d580, 0x85b9e68, 0x0, 0xb715b17c)
 /home/avoine/repos/go/src/launchpad.net/goyaml/encode.go:143 +0x150
launchpad.net/goyaml.(*encoder).mapv(0x18c6d580, 0x85b9e68, 0x0, 0x8479f20, 0x18c73640, ...)
 /home/avoine/repos/go/src/launchpad.net/goyaml/encode.go:108 +0x60
launchpad.net/goyaml.(*encoder).marshal(0x18c6d580, 0x85b9e68, 0x0, 0x8479f20, 0x18c73640, ...)
 /home/avoine/repos/go/src/launchpad.net/goyaml/encode.go:74 +0x2ff
launchpad.net/goyaml.(*encoder).marshal(0x18c6d580, 0x85b9e68, 0x0, 0x8482620, 0x18c3d290, ...)
 /home/avoine/repos/go/src/launchpad.net/goyaml/encode.go:71 +0x2d0
launchpad.net/goyaml.func·002()
 /home/avoine/repos/go/src/launchpad.net/goyaml/encode.go:106 +0x140
launchpad.net/goyaml.(*encoder).mappingv(0x18c6d580, 0x85b9e68, 0x0, 0xb715b34c)
 /home/avoine/repos/go/src/launchpad.net/goyaml/encode.go:143 +0x150
launchpad.net/goyaml.(*encoder).mapv(0x18c6d580, 0x85b9e68, 0x0, 0x8479f20, 0x18c73000, ...)
 /home/avoine/repos/go/src/launchpad.net/goyaml/encode.go:108 +0x60
launchpad.net/goyaml.(*encoder).marshal(0x18c6d580, 0x85b9e68, 0x0, 0x8479f20, 0x18c73000, ...)
 /home/avoine/repos/go/src/launchpad.net/goyaml/encode.go:74 +0x2ff
launchpad.net/goyaml.(*encoder).marshal(0x18c6d580, 0x85b9e68, 0x0, 0x8482620, 0x18c626c0, ...)
 /home/avoine/repos/go/src/launchpad.net/goyaml/encode.go:71 +0x2d0
launchpad.net/goyaml.func·002()
 /home/avoine/repos/go/src/launchpad.net/goyaml/encode.go:106 +0x140
launchpad.net/goyaml.(*encoder).mappingv(0x18c6d580, 0x85b9e68, 0x0, 0xb715b51c)
 /home/avoine/repos/go/src/launchpad.net/goyaml/encode.go:143 +0x150
launchpad.net/goyaml.(*encoder).mapv(0x18c6d580, 0x85b9e68, 0x0, 0x8479f20, 0x18c73860, ...)
 /home/avoine/repos/go/src/launchpad.net/goyaml/encode.go:108 +0x60
launchpad.net/goyaml.(*encoder).marshal(0x18c6d580, 0x85b9e68, 0x0, 0x8479f20, 0x18c73860, ...)
 /home/avoine/repos/go/src/launchpad.net/goyaml/encode.go:74 +0x2ff
launchpad.net/goyaml.Marshal(0x8479f20, 0x18c73860, 0x0, 0x0, 0x0, ...)
 /home/avoine/repos/go/src/launchpad.net/goyaml/goyaml.go:136 +0xcc
launchpad.net/juju-core/cmd.FormatYaml(0x8479f20, 0x18c73860, 0x85c8028, 0x4, 0x18c5720c, ...)
 /home/avoine/repos/go/src/launchpad.net/juju-core/cmd/output.go:27 +0x62
launchpad.net/juju-core/cmd.(*formatterValue).format(0x18c33e50, 0x8479f20, 0x18c73860, 0x806a869, 0x798ed105, ...)
 /home/avoine/repos/go/src/launchpad.net/juju-core/cmd/output.go:127 +0x54
launchpad.net/juju-core/cmd.(*Output).Write(0x18c54d90, 0x18c54e00, 0x8479f20, 0x18c73860, 0x0, ...)
 /home/avoine/repos/go/src/launchpad.net/juju-core/cmd/output.go:157 +0x69
main.(*GetCommand).Run(0x18c54d80, 0x18c54e00, 0x0, 0x0)
 /home/avoine/repos/go/src/launchpad.net/juju-core/cmd/juju/get.go:66 +0x1d9
main.envCmdWrapper.Run(0x18c58a50, 0x18c54d80, 0x18c54e00, 0x18c60440, 0x809b024, ...)
 /home/avoine/repos/go/src/launchpad.net/juju-core/cmd/juju/main.go:137 +0x45
main.(*envCmdWrapper).Run(0x18c3ca80, 0x18c54e00, 0x0, 0x0)
 /home/avoine/repos/go/src/launchpad.net/juju-core/cmd/juju/addmachine.go:0 +0x69
launchpad.net/juju-core/cmd.(*SuperCommand).Run(0x18c3ef00, 0x18c54e00, 0x18c54e00, 0x0)
 /home/avoine/repos/go/src/launchpad.net/juju-core/cmd/supercommand.go:280 +0x203
launchpad.net/juju-core/cmd.Main(0x18c59300, 0x18c3ef00, 0x18c54e00, 0x18bcf008, 0x2, ...)
 /home/avoine/repos/go/src/launchpad.net/juju-core/cmd/cmd.go:160 +0x1b8
main.Main(0x18bcf000, 0x3, 0x3)
 /home/avoine/repos/go/src/launchpad.net/juju-core/cmd/juju/main.go:110 +0x35d4
main.main()
 /home/avoine/repos/go/src/launchpad.net/juju-core/cmd/juju/main.go:152 +0x3c

goroutine 2 [syscall]:

goroutine 9 [IO wait]:
net.runtime_pollWait(0xb7798f30, 0x72, 0x0)
 /usr/lib/go/src/pkg/runtime/znetpoll_linux_386.c:118 +0x72
net.(*pollDesc).WaitRead(0x18cfb63c, 0xb, 0x18c0e220)
 /usr/lib/go/src/pkg/net/fd_poll_runtime.go:75 +0x33
net.(*netFD).Read(0x18cfb5f0, 0x18cfd000, 0x1000, 0x1000, 0x0, ...)
 /usr/lib/go/src/pkg/net/fd_unix.go:195 +0x20e
net.(*conn).Read(0x18c79518, 0x18cfd000, 0x1000, 0x1000, 0x0, ...)
 /usr/lib/go/src/pkg/net/net.go:123 +0xa9
bufio.(*Reader).fill(0x18c594e0)
 /usr/lib/go/src/pkg/bufio/bufio.go:79 +0xe6
bufio.(*Reader).Peek(0x18c594e0, 0x1, 0x0, 0x0, 0x0, ...)
 /usr/lib/go/src/pkg/bufio/bufio.go:107 +0xb1
net/http.(*persistConn).readLoop(0x18cfb640)
 /usr/lib/go/src/pkg/net/http/transport.go:670 +0xa3
created by net/http.(*Transport).dialConn
 /usr/lib/go/src/pkg/net/http/transport.go:511 +0x463

goroutine 10 [select]:
net/http.(*persistConn).writeLoop(0x18cfb640)
 /usr/lib/go/src/pkg/net/http/transport.go:774 +0x205
created by net/http.(*Transport).dialConn
 /usr/lib/go/src/pkg/net/http/transport.go:512 +0x478

goroutine 12 [sleep]:
time.Sleep(0xf8475800, 0xd)
 /usr/lib/go/src/pkg/runtime/ztime_linux_386.c:19 +0x3a
launchpad.net/juju-core/state/api.(*State).heartbeatMonitor(0x18dd06a0)
 /home/avoine/repos/go/src/launchpad.net/juju-core/state/api/apiclient.go:146 +0x61
created by launchpad.net/juju-core/state/api.Open
 /home/avoine/repos/go/src/launchpad.net/juju-core/state/api/apiclient.go:136 +0x43b

Tags: regression

Related branches

Revision history for this message
Patrick Hetu (patrick-hetu) wrote :
Revision history for this message
Curtis Hovey (sinzui) wrote :

I reproduced this deploying to the local provider using juju 1.16.0
juju deploy python-django
juju get python-django

Changed in juju-core:
status: New → Triaged
importance: Undecided → High
tags: added: regression
Changed in juju-core:
milestone: none → 1.17.0
Revision history for this message
Dave Cheney (dave-cheney) wrote :

Confirmed, something in the yaml being returned by python-django is wrong

Changed in juju-core:
assignee: nobody → Dave Cheney (dave-cheney)
status: Triaged → Confirmed
Revision history for this message
Dave Cheney (dave-cheney) wrote :

I have a (large) repro case

http://paste.ubuntu.com/6413746/

Revision history for this message
Dave Cheney (dave-cheney) wrote :
Changed in goyaml:
assignee: nobody → Dave Cheney (dave-cheney)
status: New → Confirmed
Curtis Hovey (sinzui)
Changed in juju-core:
status: Confirmed → Triaged
Changed in juju-core:
status: Triaged → In Progress
Changed in goyaml:
status: Confirmed → In Progress
Changed in goyaml:
status: In Progress → Fix Committed
Changed in juju-core:
status: In Progress → Fix Committed
status: Fix Committed → In Progress
Curtis Hovey (sinzui)
Changed in juju-core:
status: In Progress → Fix Committed
Curtis Hovey (sinzui)
Changed in goyaml:
status: Fix Committed → Fix Released
Curtis Hovey (sinzui)
Changed in juju-core:
status: Fix Committed → Fix Released
James Page (james-page)
Changed in juju-core (Ubuntu):
status: New → Fix Released
Revision history for this message
Rolf Leggewie (r0lf) wrote :

saucy has seen the end of its life and is no longer receiving any updates. Marking the saucy task for this ticket as "Won't Fix".

Changed in juju-core (Ubuntu Saucy):
status: New → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

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