block_device_mappings column is not large enough in table build_requests

Bug #1621138 reported by Kenneth Burger on 2016-09-07
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
High
Kenneth Burger

Bug Description

When deploying with several volumes the block_device_mappings column in table build_requests can run out of space causing the below error.

2016-09-07 01:22:24.936 23522 ERROR oslo_db.sqlalchemy.exc_filters Traceback (most recent call last):
2016-09-07 01:22:24.936 23522 ERROR oslo_db.sqlalchemy.exc_filters File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1139, in _execute_context
2016-09-07 01:22:24.936 23522 ERROR oslo_db.sqlalchemy.exc_filters context)
2016-09-07 01:22:24.936 23522 ERROR oslo_db.sqlalchemy.exc_filters File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/default.py", line 450, in do_execute
2016-09-07 01:22:24.936 23522 ERROR oslo_db.sqlalchemy.exc_filters cursor.execute(statement, parameters)
2016-09-07 01:22:24.936 23522 ERROR oslo_db.sqlalchemy.exc_filters File "/usr/lib64/python2.7/site-packages/MySQLdb/cursors.py", line 174, in execute
2016-09-07 01:22:24.936 23522 ERROR oslo_db.sqlalchemy.exc_filters self.errorhandler(self, exc, value)
2016-09-07 01:22:24.936 23522 ERROR oslo_db.sqlalchemy.exc_filters File "/usr/lib64/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
2016-09-07 01:22:24.936 23522 ERROR oslo_db.sqlalchemy.exc_filters raise errorclass, errorvalue
2016-09-07 01:22:24.936 23522 ERROR oslo_db.sqlalchemy.exc_filters DataError: (1406, "Data too long for column 'block_device_mappings' at row 1")

Kenneth Burger (burgerk) on 2016-09-07
Changed in nova:
assignee: nobody → Kenneth Burger (burgerk)
Matt Riedemann (mriedem) wrote :

How many volumes are you testing with?

Matt Riedemann (mriedem) wrote :

(11:44:41 AM) burgerk: mriedem: broke at ~ 80 volumes, want to go up to 128

--

Will MEDIUMTEXT work for you?

Changed in nova:
status: New → Confirmed
importance: Undecided → High
tags: added: db
tags: added: newton-rc-potential
Matt Riedemann (mriedem) wrote :

The build_requests table has been around since mitaka so this isn't a regression in newton per-se, but we should fix this regardless.

tags: removed: newton-rc-potential
Matt Riedemann (mriedem) wrote :

Nevermind this is a regression in newton:

https://review.openstack.org/#/c/334095/

tags: added: newton-rc-potential
Andrew Laski (alaski) wrote :

Yep, this was added in Newton.

I'll first point out that 128 volumes is crazy :) but there's no reason it shouldn't work. For now I think increasing the column size to MEDIUMTEXT is the right thing to do given that we are pushing for RC1 right now. But longer term we may want to break this out into a full block_device_mapping table in the nova_api database. I just didn't expect that anyone would fill a TEXT column full of volumes to use at boot time.

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

Changed in nova:
status: Confirmed → In Progress
Matt Riedemann (mriedem) wrote :

@alaski - agree. :)

Reviewed: https://review.openstack.org/366955
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=80795f2dc58d7210fb8a1564632e4dd34fbeaae3
Submitter: Jenkins
Branch: master

commit 80795f2dc58d7210fb8a1564632e4dd34fbeaae3
Author: Ken Burger <email address hidden>
Date: Wed Sep 7 21:07:10 2016 -0500

    Increase BDM column in build_requests table

    When deploying with a very large number of volumes the
    block_device_mappings column is not sufficient. The column
    needs to be increased to MEDIUMTEXT size to support this use case.

    Change-Id: Ia34d06429c1f8f0a8259616bcba0c349c4c9aa33
    Closes-Bug: #1621138

Changed in nova:
status: In Progress → Fix Released

This issue was fixed in the openstack/nova 14.0.0.0rc1 release candidate.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers