panic while setting a config value

Bug #1205112 reported by Sidnei da Silva
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
juju-core
Fix Released
High
Unassigned

Bug Description

$ juju version
1.13.0-saucy-amd64

$ which juju
/home/sidnei/src/go/bin/juju

~/src/go/src/launchpad.net/juju-core$ bzr info
Lightweight checkout (format: 2a)
Location:
  light checkout root: .
   checkout of branch: .bzr/cobzr/master
    shared repository: .bzr/cobzr

Related branches:
  parent branch: bzr+ssh://bazaar.launchpad.net/+branch/juju-core/

$ bzr revno
1544

$ juju get u1-public-gallery -e local

charm: ubuntuone-servers
service: u1-public-gallery
settings:
  api_server.s3_bucket:
    default: true
    description: 'Bucket used to store file contents.

'
    type: string
    value: ubuntuone-storage
  aws_s3.host:
    default: true
    description: 'Amazon S3 endpoint.

'
    type: string
    value: s3.amazonaws.com
  aws_s3.port:
    default: true
    description: 'Amazon S3 port to use.

'
    type: int
    value: 443
  aws_s3.proxy_host:
    default: true
    description: 'Proxy host to use for talking to Amazon S3.

'
    type: string
    value: ""
  aws_s3.proxy_port:
    default: true
    description: 'Proxy port to use for talking to Amazon S3.

'
    type: int
    value: 0
  aws_s3.use_ssl:
    default: true
    description: 'Use ssl when talking to Amazon S3.

'
    type: boolean
    value: true
  config.prototype.increment_options:
    default: true
    description: 'Which options to increment when using the prototype overlay.

'
    type: string
    value: ""
  dependencies_package:
    description: 'Dependencies package that should be installed.

'
    type: string
    value: ubuntuone-appserver-dependencies
  general.environment_name:
    default: true
    description: 'Environment that we''re running.

'
    type: string
    value: ""
  general.files_store:
    default: true
    description: 'Storage backend to use for files.

'
    type: string
    value: s3
  general.port:
    default: true
    description: 'Base port to listen on.

'
    type: int
    value: 8080
  general.service_name:
    default: true
    description: 'Name of the service that will be configured.

'
    type: string
    value: appserver
  host_environment_name:
    default: true
    description: 'Host environment we''re running on. Used as the prefix to select
      which configuration will be used by the underlying service (eg ''dc_production_updown-lazr.conf'').

'
    type: string
    value: dc
  keystone.host:
    default: true
    description: 'Keystone endpoint host.

'
    type: string
    value: keystone.canonistack.canonical.com
  keystone.path:
    default: true
    description: 'Keystone path to use when building the URL.

'
    type: string
    value: /v2.0
  keystone.port:
    default: true
    description: 'Keystone endpoint port to use.

'
    type: int
    value: 443
  keystone.proxy_host:
    default: true
    description: 'Proxy host to use for talking to Keystone/Swift.

'
    type: string
    value: ""
  keystone.proxy_port:
    default: true
    description: 'Proxy port to use for talking to Keystone/Swift.

'
    type: int
    value: 0
  keystone.region:
    default: true
    description: 'Keystone region to use.

'
    type: string
    value: lcy02
  keystone.use_ssl:
    default: true
    description: 'Use ssl when talking to Keystone/Swift.

'
    type: boolean
    value: true
  log_rsync_host:
    default: true
    description: 'Rsync host for application logs

'
    type: string
    value: ""
  nagios_check_http_params:
    description: 'The parameters to pass to the nrpe plugin check_http.

'
    type: string
    value: -I 127.0.0.1 -p 8080 -u /?status=1 -s \\'I am Alive\\'
  nagios_context:
    default: true
    description: "Used by the nrpe-external-master subordinate charm. A string that
      will be prepended to instance name to set the host name in nagios. So for instance
      the hostname would be something like:\n juju-postgresql-0\nIf you're running
      multiple environments with the same services in them this allows you to differentiate
      between them.\n"
    type: string
    value: juju
  new_user_shards:
    default: true
    description: 'Comma-separated list of shards to create new users on.

'
    type: string
    value: ""
  pgpass:
    default: true
    description: 'Contents of .pgpass to be used for the service.

'
    type: string
    value: ""
  secrets:
    default: true
    description: 'Secrets file override to be used for the service.

'
    type: string
    value: ""
  session.cookie_domain:
    default: true
    description: 'Domain to be used for cookie setting.

'
    type: string
    value: .staging.one.ubuntu.com
  session.cookie_secure:
    default: true
    description: 'Only set cookie for secure connections.

'
    type: boolean
    value: true
  shards:
    default: true
    description: 'Number of storage shards to configure.

'
    type: int
    value: 1
  sitenames:
    description: 'Site names (really, domain names) that map to this service when
      reverse-proxying via squid.

'
    type: string
    value: photo-gallery-public
  sources_list:
    default: true
    description: 'Custom repository entry to fetch packages from.

'
    type: string
    value: ""
  swift.container:
    default: true
    description: 'Swift container to use for storage.

'
    type: string
    value: test
  swift.fallback_container:
    default: true
    description: 'Swift container to use as fallback if object not found in default
      container.

'
    type: string
    value: ""
  template:
    description: 'Supervisor config template to use.

'
    type: string
    value: wsgi.appserver
  threads.max_requests:
    default: true
    description: 'How many worker threads per wsgi process to run.

'
    type: int
    value: 4
  twisted_wsgi.ports:
    default: true
    description: 'How many ports to open up on the parent wsgi process.

'
    type: int
    value: 1
  twisted_wsgi.processes:
    default: true
    description: 'How many wsgi worker processes to run.

'
    type: int
    value: 4
  url.base:
    default: true
    description: 'Base application frontend URL.

'
    type: string
    value: https://staging.one.ubuntu.com
  url.click_down_private:
    default: true
    description: 'URL for click packages private download service.

'
    type: string
    value: https://private.apps.staging.ubuntu.com
  url.click_down_public:
    default: true
    description: 'URL for click packages public download service.

'
    type: string
    value: https://public.apps.staging.ubuntu.com
  url.click_up:
    default: true
    description: 'URL for click packages upload service.

'
    type: string
    value: https://upload.apps.staging.ubuntu.com
  url.media:
    default: true
    description: 'URL for media resources (css, images, etc).

'
    type: string
    value: https://media.staging.one.ubuntu.com
  url.openid_sso_server:
    default: true
    description: 'URL for OpenID/SSO service.

'
    type: string
    value: https://login.staging.ubuntu.com
  url.streaming:
    default: true
    description: 'URL for music streaming service.

'
    type: string
    value: https://streaming.staging.one.ubuntu.com
  url.u1ms_search_base:
    default: true
    description: 'URL for music search service endpoint.

'
    type: string
    value: http://musicsearch.staging.ubuntu.com/v1/search
  url.updown:
    default: true
    description: 'URL for web-based files upload/download service.

'
    type: string
    value: https://files.staging.one.ubuntu.com

$ juju set u1-public-gallery general.environment_name=staging -e local
panic: runtime error: comparing uncomparable type map[string]interface {}

goroutine 1 [running]:
launchpad.net/juju-core/state.(*Settings).Write(0xc2003d7ea0, 0xc200313780, 0x7fff30ea4270, 0x18, 0x8e1e80, ...)
 /home/sidnei/src/go/src/launchpad.net/juju-core/state/settings.go:138 +0x285
launchpad.net/juju-core/state.(*Service).UpdateConfigSettings(0xc200371280, 0xc200313340, 0xc20036cb80, 0x0)
 /home/sidnei/src/go/src/launchpad.net/juju-core/state/service.go:768 +0x1be
main.(*SetCommand).Run(0xc2001e51c0, 0xc2001e55c0, 0x0, 0x0)
 /home/sidnei/src/go/src/launchpad.net/juju-core/cmd/juju/set.go:88 +0x1dd
launchpad.net/juju-core/cmd.(*SuperCommand).Run(0xc2001df850, 0xc2001e55c0, 0xc2001e55c0, 0x0)
 /home/sidnei/src/go/src/launchpad.net/juju-core/cmd/supercommand.go:233 +0xde
launchpad.net/juju-core/cmd.Main(0xc2001e5600, 0xc2001df850, 0xc2001e55c0, 0xc20012c010, 0x5, ...)
 /home/sidnei/src/go/src/launchpad.net/juju-core/cmd/cmd.go:162 +0x279
main.Main(0xc20012c000, 0x6, 0x6)
 /home/sidnei/src/go/src/launchpad.net/juju-core/cmd/juju/main.go:96 +0x15fe
main.main()
 /home/sidnei/src/go/src/launchpad.net/juju-core/cmd/juju/main.go:100 +0x42

goroutine 2 [syscall]:

goroutine 8 [sleep]:
time.Sleep(0x1dcd6500)
 /usr/local/go/src/pkg/runtime/ztime_linux_amd64.c:19 +0x2f
labix.org/v2/mgo.(*mongoCluster).syncServersLoop(0xc20015eb60)
 /home/sidnei/src/go/src/labix.org/v2/mgo/cluster.go:326 +0x1ec
created by labix.org/v2/mgo.newCluster
 /home/sidnei/src/go/src/labix.org/v2/mgo/cluster.go:69 +0xf8

goroutine 6 [IO wait]:
net.runtime_pollWait(0x7fe61a4d7f00, 0x72, 0x0)
 /usr/local/go/src/pkg/runtime/znetpoll_linux_amd64.c:118 +0x82
net.(*pollDesc).WaitRead(0xc200200620, 0xb, 0xc20014e3f0)
 /usr/local/go/src/pkg/net/fd_poll_runtime.go:75 +0x31
net.(*netFD).Read(0xc2002005a0, 0xc200380000, 0x1000, 0x1000, 0x0, ...)
 /usr/local/go/src/pkg/net/fd_unix.go:195 +0x2b3
net.(*conn).Read(0xc200000c28, 0xc200380000, 0x1000, 0x1000, 0x0, ...)
 /usr/local/go/src/pkg/net/net.go:123 +0xc3
bufio.(*Reader).fill(0xc2001e4ba0)
 /usr/local/go/src/pkg/bufio/bufio.go:79 +0x10c
bufio.(*Reader).Peek(0xc2001e4ba0, 0x1, 0x0, 0x0, 0x0, ...)
 /usr/local/go/src/pkg/bufio/bufio.go:107 +0xc9
net/http.(*persistConn).readLoop(0xc200166180)
 /usr/local/go/src/pkg/net/http/transport.go:670 +0xc4
created by net/http.(*Transport).dialConn
 /usr/local/go/src/pkg/net/http/transport.go:511 +0x574

goroutine 7 [select]:
net/http.(*persistConn).writeLoop(0xc200166180)
 /usr/local/go/src/pkg/net/http/transport.go:774 +0x26f
created by net/http.(*Transport).dialConn
 /usr/local/go/src/pkg/net/http/transport.go:512 +0x58b

goroutine 10 [runnable]:
net.runtime_pollWait(0x7fe61a4d7e60, 0x72, 0x0)
 /usr/local/go/src/pkg/runtime/znetpoll_linux_amd64.c:118 +0x82
net.(*pollDesc).WaitRead(0xc200200e90, 0xb, 0xc20014e3f0)
 /usr/local/go/src/pkg/net/fd_poll_runtime.go:75 +0x31
net.(*netFD).Read(0xc200200e10, 0xc2003c0000, 0x8000, 0x8000, 0x0, ...)
 /usr/local/go/src/pkg/net/fd_unix.go:195 +0x2b3
net.(*conn).Read(0xc200304148, 0xc2003c0000, 0x8000, 0x8000, 0x55622d, ...)
 /usr/local/go/src/pkg/net/net.go:123 +0xc3
crypto/tls.(*block).readFromUntil(0xc200305180, 0xc2003ce240, 0xc200304148, 0x5, 0xc200304148, ...)
 /usr/local/go/src/pkg/crypto/tls/conn.go:401 +0xbd
crypto/tls.(*Conn).readRecord(0xc20016a000, 0x17, 0x0, 0x4215b3)
 /usr/local/go/src/pkg/crypto/tls/conn.go:481 +0xfa
crypto/tls.(*Conn).Read(0xc20016a000, 0xc200305810, 0x24, 0x24, 0x0, ...)
 /usr/local/go/src/pkg/crypto/tls/conn.go:796 +0x102
labix.org/v2/mgo.fill(0xc20030fc60, 0xc20016a000, 0xc200305810, 0x24, 0x24, ...)
 /home/sidnei/src/go/src/labix.org/v2/mgo/socket.go:437 +0x59
labix.org/v2/mgo.(*mongoSocket).readLoop(0xc2003070e0)
 /home/sidnei/src/go/src/labix.org/v2/mgo/socket.go:454 +0x113
created by labix.org/v2/mgo.newSocket
 /home/sidnei/src/go/src/labix.org/v2/mgo/socket.go:156 +0x266

goroutine 11 [sleep]:
time.Sleep(0x2540be400)
 /usr/local/go/src/pkg/runtime/ztime_linux_amd64.c:19 +0x2f
labix.org/v2/mgo.(*mongoServer).pinger(0xc200307000, 0xc200307001)
 /home/sidnei/src/go/src/labix.org/v2/mgo/server.go:270 +0xfd
created by labix.org/v2/mgo.newServer
 /home/sidnei/src/go/src/labix.org/v2/mgo/server.go:80 +0xd9

Related branches

William Reade (fwereade)
Changed in juju-core:
status: New → Triaged
importance: Undecided → High
Curtis Hovey (sinzui)
Changed in juju-core:
status: Triaged → 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.