Installing Devstack on Xenserver triggers a urllib3.connectionpool warning, followed by a 409 Conflict: Cannot upload to an unqueued image.

Asked by Theora Rice

Hello. The project I am trying to execute involves installing devstack onto Xenserver 6.5. This seemed pretty straight forward,
at least as described by https://github.com/openstack-dev/devstack/blob/master/tools/xen/README.md. However I have had a number of errors. Most I have been able to fix through various forum posts, but this particular problem has eluded answers.

My configuration is XenServer 6.5 installed on a server, with the latest version of devstack downloaded on the host. As guided in the README, I trigger ./install_os_domU.sh, which creates the DevStackOSDomU vm (in this circumstance, IP: 192.168.2.230) that will run devstack. However, while stack.sh is running (as part of run.sh) on DevStackOSDomU, the following error occurs and shuts down the install:

+ [[ x86_64 == \p\p\c\6\4 ]]
+ '[' '' = bare ']'
+ local kernel_id= ramdisk_id=
+ '[' -n /opt/stack/devstack/files/images/cirros-0.3.2-x86_64-uec/cirros-0.3.2-x86_64-vmlinuz ']'
++ openstack --os-token b6269cdf2e154d0c94d130db522da200 --os-url http://192.168.2.230:9292 image create cirros-0.3.2-x86_64-uec-kernel --public --container-forma$
++ grep ' id '
++ get_field 2
++ local data field
++ read data
WARNING: urllib3.connectionpool HttpConnectionPool is full, discarding connection: 192.168.2.230
ERROR: openstack <html>
 <head>
  <title>409 Conflict</title>
 </head>
 <body>
  <h1>409 Conflict</h1>
  There was a conflict when trying to complete your request.<br /><br />
  Cannot upload to an unqueued image

 </body>
</html> (HTTP 409)
+ kernel_id=
+ '[' -n /opt/stack/devstack/files/images/cirros-0.3.2-x86_64-uec/cirros-0.3.2-x86_64-initrd ']'
++ openstack --os-token b6269cdf2e154d0c94d130db522da200 --os-url http://192.168.2.230:9292 image create cirros-0.3.2-x86_64-uec-ramdisk --public --container-form$
++ grep ' id '
++ get_field 2
++ local data field
++ read data
WARNING: urllib3.connectionpool HttpConnectionPool is full, discarding connection: 192.168.2.230
ERROR: openstack <html>
 <head>
 <title>409 Conflict</title>
 </head>
 <body>
  <h1>409 Conflict</h1>
  There was a conflict when trying to complete your request.<br /><br />
Cannot upload to an unqueued image

 </body>
</html> (HTTP 409)
+ ramdisk_id=
+ openstack --os-token b6269cdf2e154d0c94d130db522da200 --os-url http://192.168.2.230:9292 image create cirros-0.3.2-x86_64-uec --public --container-format ami --$
WARNING: urllib3.connectionpool HttpConnectionPool is full, discarding connection: 192.168.2.230
ERROR: openstack <html>
 <head>
  <title>409 Conflict</title>
 </head>
 <body>
  <h1>409 Conflict</h1>
  There was a conflict when trying to complete your request.<br /><br />
 Cannot upload to an unqueued image

 </body>
</html> (HTTP 409)
+ exit_trap
+ local r=1
++ jobs -p
+ jobs=
+ [[ -n '' ]]
+ kill_spinner
+ '[' '!' -z '' ']'
+ [[ 1 -ne 0 ]]
+ echo 'Error on exit'
Error on exit
+ [[ -z /opt/stack/logs ]]
+ /opt/stack/devstack/tools/worlddump.py -d /opt/stack/logs
+ exit 1

As you can see, the error repeats three times, then errors out. Devstack does not end up installing, and cannot be run. I can't seem to see why the
HttpConnectionPool would be full from the logs of the process, and this doesn't seem to be a common error in installing devstack on Xenserver.
I'm wondering if the warning is connected to the error. Has anyone run into this problem before, or understand a potential way to solve it?

Thank you for your time.

Question information

Language:
English Edit question
Status:
Solved
For:
devstack Edit question
Assignee:
No assignee Edit question
Solved by:
Theora Rice
Solved:
Last query:
Last reply:
Revision history for this message
Theora Rice (theora-rice) said :
#1

I believe I just fixed the problem. Apparently, the stack.sh script iterated multiple times through the last element of the IMAGE_URLS variable that I set in localrc. When I got rid of the comma in that list, and changed stack.sh to just read white space as the element separator of a list (as is the default), the script completed without further error.

To illustrate:

(In localrc) IMAGE_URLS="\ https : //github.com/downloads/citrix-openstack/warehouse/cirros-0.3.0-x86_64-disk.vhd.tgz,\ http : //download.cirros-cloud.net/0.3.2/cirros-0.3.2-x86_64-uec.tar.gz" (From the devstack/tools/xen/readme)

Became IMAGE_URLS="https : //github.com/downloads/citrix-openstack/warehouse/cirros-0.3.0-x86_64-disk.vhd.tgz http : //download.cirros-cloud.net/0.3.2/cirros-0.3.2-x86_64-uec.tar.gz"

(And in stack.sh) for image_url in ${IMAGE_URLS//,/ }; do

Became for image_url in ${IMAGE_URLS}; do

Revision history for this message
omrim (omrim) said :
#2

At the moment there is no fix in devstack code (master).
I think that this issue should be open until the fix.

Revision history for this message
Bob Ball (bob-ball) said :
#3

I'm not sure I understand the issue here, or the proposed fix. The "cirros-0.3.2-x86_64-uec.tar.gz" download contains three files that need to be uploaded to Glance.

I wonder if the issue is that somehow the IMAGE_URLS got extended to include the last element multiple times, going through a different path of the devstack code?

We're running with the original code without issue.