Glance v1 registry returns 500 when passing --checksum over 32 characters long on image-create

Bug #1454730 reported by Inessa Vasilevskaya
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Glance
Fix Released
Medium
Inessa Vasilevskaya

Bug Description

glance --os-image-api-version 1 image-create --name created_by_demo --container-format bare --disk-format raw --file MANIFEST.in --checksum 22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222

Raises 500 InternalServerError due to DbError on save in db.

  File "/home/ina/projects/glance/.venv/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1063, in _execute_context
    context)
  File "/home/ina/projects/glance/.venv/local/lib/python2.7/site-packages/sqlalchemy/engine/default.py", line 442, in do_execute
    cursor.execute(statement, parameters)
  File "/home/ina/projects/glance/.venv/local/lib/python2.7/site-packages/MySQLdb/cursors.py", line 205, in execute
    self.errorhandler(self, exc, value)
  File "/home/ina/projects/glance/.venv/local/lib/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
    raise errorclass, errorvalue
DBError: (DataError) (1406, "Data too long for column 'checksum' at row 1") 'INSERT INTO images (created_at, updated_at, deleted_at, deleted, id, name, disk_format, container_format, size, virtual_size, status, is_public, checksum, min_disk, min_ram, owner, protected) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)' (datetime.datetime(2015, 5, 13, 14, 24, 22, 621502), datetime.datetime(2015, 5, 13, 14, 24, 22, 621515), None, 0, '6ea28b08-0131-431c-add3-9278cfb424c7', 'created_by_demo', 'raw', 'bare', 529, None, 'queued', 0, '22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222', 0, 0, '0e12fbc7a63c44f1b078d96e0979be8e', 0)
2015-05-13 17:24:22.630 17212 INFO eventlet.wsgi.server [req-163e1c08-3ea1-47a1-ae5b-e27f522c0453 8773a0d6190d4190808c7669d0d7adc6 0e12fbc7a63c44f1b078d96e0979be8e - - -] 127.0.0.1 - - [13/May/2015 17:24:22] "POST /images HTTP/1.1" 500 139 0.076708

v2 api is not affected, the 32-characters maxLength constraint is validated by jsonschema.

Changed in glance:
assignee: nobody → Inessa Vasilevskaya (ivasilevskaya)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to glance (master)

Fix proposed to branch: master
Review: https://review.openstack.org/182703

Changed in glance:
status: New → In Progress
Revision history for this message
Inessa Vasilevskaya (ivasilevskaya) wrote :

As Abhishek Kekane noticed, DBError is also raised when out of range values are passed as min_disk/min_ram params.

Changed in glance:
importance: Undecided → Medium
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to glance (master)

Reviewed: https://review.openstack.org/182703
Committed: https://git.openstack.org/cgit/openstack/glance/commit/?id=1badf69b01ed6d6f15898f33d20e4e1ed92d1deb
Submitter: Jenkins
Branch: master

commit 1badf69b01ed6d6f15898f33d20e4e1ed92d1deb
Author: Inessa Vasilevskaya <email address hidden>
Date: Wed May 13 17:44:47 2015 +0300

    Fix DbError when image params are out of range

    Image params such as checksum, min_ram and min_disk are validated.
    Checksum is expected to be not longer than 32 characters,
    min_ram/min_disk can't exceed pow(2, 31) - 1.
    A method for mysql_int validation has been moved to glance.common.utils.

    Change-Id: I78554ef1ba65fc11da3de56467d6d70bb7991787
    Closes-Bug: #1454730
    Closes-Bug: #1460060

Changed in glance:
status: In Progress → Fix Committed
Changed in glance:
milestone: none → liberty-1
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in glance:
milestone: liberty-1 → 11.0.0
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.