Creation of ext4 formatted ephemeral fails

Bug #1009041 reported by Filip Pytloun
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Fix Released
Undecided
Yaguang Tang

Bug Description

When default_ephemeral_format option is set to ext4, called mkfs.ext4 on non-block device is interactive. Therefore creation of ephemeral volume fails.
Fix is simple - add parameter -F to mkfs.ext4 to force action on non-block device.

Patch is attached.

Full traceback:

2012-06-05 15:42:21 ERROR nova.rpc.amqp [req-d2d175eb-06fc-430b-9c21-b9a881993487 3dd66ac7dbc640ef975c53583821858b f602ad74a59947e79db3ddc4b3106279] Exception during message handling
2012-06-05 15:42:21 TRACE nova.rpc.amqp Traceback (most recent call last):
2012-06-05 15:42:21 TRACE nova.rpc.amqp File "/opt/common-python/lib/python2.6/site-packages/nova/rpc/amqp.py", line 253, in _process_data
2012-06-05 15:42:21 TRACE nova.rpc.amqp rval = node_func(context=ctxt, **node_args)
2012-06-05 15:42:21 TRACE nova.rpc.amqp File "/opt/common-python/lib/python2.6/site-packages/nova/exception.py", line 114, in wrapped
2012-06-05 15:42:21 TRACE nova.rpc.amqp return f(*args, **kw)
2012-06-05 15:42:21 TRACE nova.rpc.amqp File "/opt/common-python/lib/python2.6/site-packages/nova/compute/manager.py", line 183, in decorated_function
2012-06-05 15:42:21 TRACE nova.rpc.amqp sys.exc_info())
2012-06-05 15:42:21 TRACE nova.rpc.amqp File "/usr/lib64/python2.6/contextlib.py", line 23, in __exit__
2012-06-05 15:42:21 TRACE nova.rpc.amqp self.gen.next()
2012-06-05 15:42:21 TRACE nova.rpc.amqp File "/opt/common-python/lib/python2.6/site-packages/nova/compute/manager.py", line 177, in decorated_function
2012-06-05 15:42:21 TRACE nova.rpc.amqp return function(self, context, instance_uuid, *args, **kwargs)
2012-06-05 15:42:21 TRACE nova.rpc.amqp File "/opt/common-python/lib/python2.6/site-packages/nova/compute/manager.py", line 657, in run_instance
2012-06-05 15:42:21 TRACE nova.rpc.amqp do_run_instance()
2012-06-05 15:42:21 TRACE nova.rpc.amqp File "/opt/common-python/lib/python2.6/site-packages/nova/utils.py", line 946, in inner
2012-06-05 15:42:21 TRACE nova.rpc.amqp retval = f(*args, **kwargs)
2012-06-05 15:42:21 TRACE nova.rpc.amqp File "/opt/common-python/lib/python2.6/site-packages/nova/compute/manager.py", line 656, in do_run_instance
2012-06-05 15:42:21 TRACE nova.rpc.amqp self._run_instance(context, instance_uuid, **kwargs)
2012-06-05 15:42:21 TRACE nova.rpc.amqp File "/opt/common-python/lib/python2.6/site-packages/nova/compute/manager.py", line 457, in _run_instance
2012-06-05 15:42:21 TRACE nova.rpc.amqp self._set_instance_error_state(context, instance_uuid)
2012-06-05 15:42:21 TRACE nova.rpc.amqp File "/usr/lib64/python2.6/contextlib.py", line 23, in __exit__
2012-06-05 15:42:21 TRACE nova.rpc.amqp self.gen.next()
2012-06-05 15:42:21 TRACE nova.rpc.amqp File "/opt/common-python/lib/python2.6/site-packages/nova/compute/manager.py", line 438, in _run_instance
2012-06-05 15:42:21 TRACE nova.rpc.amqp self._deallocate_network(context, instance)
2012-06-05 15:42:21 TRACE nova.rpc.amqp File "/usr/lib64/python2.6/contextlib.py", line 23, in __exit__
2012-06-05 15:42:21 TRACE nova.rpc.amqp self.gen.next()
2012-06-05 15:42:21 TRACE nova.rpc.amqp File "/opt/common-python/lib/python2.6/site-packages/nova/compute/manager.py", line 435, in _run_instance
2012-06-05 15:42:21 TRACE nova.rpc.amqp injected_files, admin_password)
2012-06-05 15:42:21 TRACE nova.rpc.amqp File "/opt/common-python/lib/python2.6/site-packages/nova/compute/manager.py", line 598, in _spawn
2012-06-05 15:42:21 TRACE nova.rpc.amqp self._legacy_nw_info(network_info), block_device_info)
2012-06-05 15:42:21 TRACE nova.rpc.amqp File "/opt/common-python/lib/python2.6/site-packages/nova/exception.py", line 114, in wrapped
2012-06-05 15:42:21 TRACE nova.rpc.amqp return f(*args, **kw)
2012-06-05 15:42:21 TRACE nova.rpc.amqp File "/opt/common-python/lib/python2.6/site-packages/nova/virt/libvirt/connection.py", line 928, in spawn
2012-06-05 15:42:21 TRACE nova.rpc.amqp block_device_info=block_device_info)
2012-06-05 15:42:21 TRACE nova.rpc.amqp File "/opt/common-python/lib/python2.6/site-packages/nova/virt/libvirt/connection.py", line 1262, in _create_image
2012-06-05 15:42:21 TRACE nova.rpc.amqp ephemeral_size=ephemeral_gb)
2012-06-05 15:42:21 TRACE nova.rpc.amqp File "/opt/common-python/lib/python2.6/site-packages/nova/virt/libvirt/connection.py", line 1117, in _cache_image
2012-06-05 15:42:21 TRACE nova.rpc.amqp call_if_not_exists(base, fn, *args, **kwargs)
2012-06-05 15:42:21 TRACE nova.rpc.amqp File "/opt/common-python/lib/python2.6/site-packages/nova/utils.py", line 946, in inner
2012-06-05 15:42:21 TRACE nova.rpc.amqp retval = f(*args, **kwargs)
2012-06-05 15:42:21 TRACE nova.rpc.amqp File "/opt/common-python/lib/python2.6/site-packages/nova/virt/libvirt/connection.py", line 1114, in call_if_not_exists
2012-06-05 15:42:21 TRACE nova.rpc.amqp fn(target=base, *args, **kwargs)
2012-06-05 15:42:21 TRACE nova.rpc.amqp File "/opt/common-python/lib/python2.6/site-packages/nova/virt/libvirt/connection.py", line 1159, in _create_ephemeral
2012-06-05 15:42:21 TRACE nova.rpc.amqp self._create_local(target, ephemeral_size)
2012-06-05 15:42:21 TRACE nova.rpc.amqp File "/opt/common-python/lib/python2.6/site-packages/nova/virt/libvirt/connection.py", line 1156, in _create_local
2012-06-05 15:42:21 TRACE nova.rpc.amqp libvirt_utils.mkfs(fs_format, target, label)
2012-06-05 15:42:21 TRACE nova.rpc.amqp File "/opt/common-python/lib/python2.6/site-packages/nova/virt/libvirt/utils.py", line 142, in mkfs
2012-06-05 15:42:21 TRACE nova.rpc.amqp execute(*args)
2012-06-05 15:42:21 TRACE nova.rpc.amqp File "/opt/common-python/lib/python2.6/site-packages/nova/virt/libvirt/utils.py", line 35, in execute
2012-06-05 15:42:21 TRACE nova.rpc.amqp return utils.execute(*args, **kwargs)
2012-06-05 15:42:21 TRACE nova.rpc.amqp File "/opt/common-python/lib/python2.6/site-packages/nova/utils.py", line 243, in execute
2012-06-05 15:42:21 TRACE nova.rpc.amqp cmd=' '.join(cmd))
2012-06-05 15:42:21 TRACE nova.rpc.amqp ProcessExecutionError: Unexpected error while running command.
2012-06-05 15:42:21 TRACE nova.rpc.amqp Command: mkfs -t ext4 -FF /var/lib/nova/instances/_base/ephemeral_0_20_None
2012-06-05 15:42:21 TRACE nova.rpc.amqp Exit code: 1
2012-06-05 15:42:21 TRACE nova.rpc.amqp Stdout: ''
2012-06-05 15:42:21 TRACE nova.rpc.amqp Stderr: 'mke2fs 1.41.12 (17-May-2010)\nmkfs.ext4: \xc5\xa1patn\xc3\xbd po\xc4\x8det blok\xc5\xaf\xc2\xa0- /var/lib/nova/instances/_base/ephemeral_0_20_None\n'

Revision history for this message
Filip Pytloun (filip-pytloun) wrote :
Yaguang Tang (heut2008)
Changed in nova:
assignee: nobody → Yaguang Tang (heut2008)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova (master)

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

Changed in nova:
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (master)

Reviewed: https://review.openstack.org/8187
Committed: http://github.com/openstack/nova/commit/05130daeaa490070c52499c9fac26dd16c38074d
Submitter: Jenkins
Branch: master

commit 05130daeaa490070c52499c9fac26dd16c38074d
Author: yaguang tang <email address hidden>
Date: Wed Jun 6 00:26:17 2012 +0800

    fix bug lp:1009041,add option "-F" to make mkfs non-interactive.

    Change-Id: Ic8be1657dbad0cd91fdb5176f17f7b1ba034c2e0

Changed in nova:
status: In Progress → Fix Committed
Revision history for this message
Filip Pytloun (filip-pytloun) wrote :

Just one note: I have no idea why, but creating default ext3 ephemeral works also without this fix, but it shouldn't because mkfs.ext3 has the same parameters and behavior as mkfs.ext4.

Thierry Carrez (ttx)
Changed in nova:
milestone: none → folsom-2
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in nova:
milestone: folsom-2 → 2012.2
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.