RDO tickets are now tracked in Jira https://issues.redhat.com/projects/RDO/issues/
Bug 1049535 - [RFE] permit cinder to create a volume when root_squash is set to on for gluster storage
Summary: [RFE] permit cinder to create a volume when root_squash is set to on for glus...
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: RDO
Classification: Community
Component: openstack-cinder
Version: unspecified
Hardware: x86_64
OS: Linux
unspecified
high
Target Milestone: ---
: ---
Assignee: Eric Harney
QA Contact: Dafna Ron
URL:
Whiteboard: storage
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-01-07 17:26 UTC by Dafna Ron
Modified: 2016-11-21 17:20 UTC (History)
6 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-11-21 17:20:23 UTC
Embargoed:


Attachments (Terms of Use)
volumes log (3.62 KB, application/x-xz)
2014-01-07 17:26 UTC, Dafna Ron
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Launchpad 1278986 0 None None None Never

Description Dafna Ron 2014-01-07 17:26:30 UTC
Created attachment 846803 [details]
volumes log

Description of problem:

I created a volume in gluster storage and set root squash to in
added uid and gis 165 to the volume and created a new volume. 
we get an error in creating the volume: 

2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp ProcessExecutionError: Unexpected error while running command.
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp Command: sudo cinder-rootwrap /etc/cinder/rootwrap.conf truncate -s 10G /var/lib/cinder/mnt/59ed8cb64fc8948968a29181234051a2/volume-e3e2c8e1-66fa-4dda-a7a7-9c68514d596a
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp Exit code: 1
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp Stdout: ''
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp Stderr: "/usr/bin/truncate: cannot open `/var/lib/cinder/mnt/59ed8cb64fc8948968a29181234051a2/volume-e3e2c8e1-66fa-4dda-a7a7-9c68514d596a' for writing: Permission denied\n"


Version-Release number of selected component (if applicable):

openstack-cinder-2014.1-0.2.b1.el6.noarch

How reproducible:

100%

Steps to Reproduce:
1. install openstack with gluster storage when cinder is stand alone. 
2. change /var/lib/cinder/ to cinder:cinder and add uid/gid 165 + root squash in gluster volume
3. try to create a volume

Actual results:

we fail to create a volume when root squash is on

Expected results:

we should be able to create the volume

Additional info:

2014-01-07 19:09:31.670 4939 TRACE cinder.volume.flows.create_volume 
2014-01-07 19:09:31.672 4939 ERROR cinder.openstack.common.rpc.amqp [req-e25ccc82-d984-4f9e-b498-c88f02e20813 8867ada03418479d9bb0253543b5b17b 29c2c5ef29c4408fb9d0a35da9f04e14] Exception during message handling
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp Traceback (most recent call last):
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp   File "/usr/lib/python2.6/site-packages/cinder/openstack/common/rpc/amqp.py", line 441, in _process_data
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp     **args)
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp   File "/usr/lib/python2.6/site-packages/cinder/openstack/common/rpc/dispatcher.py", line 148, in dispatch
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp     return getattr(proxyobj, method)(ctxt, **kwargs)
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp   File "/usr/lib/python2.6/site-packages/cinder/utils.py", line 823, in wrapper
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp     return func(self, *args, **kwargs)
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp   File "/usr/lib/python2.6/site-packages/cinder/volume/manager.py", line 267, in create_volume
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp     flow.run(context.elevated())
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp   File "/usr/lib/python2.6/site-packages/cinder/taskflow/decorators.py", line 105, in wrapper
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp     return f(self, *args, **kwargs)
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp   File "/usr/lib/python2.6/site-packages/cinder/taskflow/patterns/linear_flow.py", line 232, in run
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp     run_it(r)
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp   File "/usr/lib/python2.6/site-packages/cinder/taskflow/patterns/linear_flow.py", line 212, in run_it
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp     self.rollback(context, cause)
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp   File "/usr/lib64/python2.6/contextlib.py", line 23, in __exit__
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp     self.gen.next()
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp   File "/usr/lib/python2.6/site-packages/cinder/taskflow/patterns/linear_flow.py", line 172, in run_it
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp     result = runner(context, *args, **kwargs)
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp   File "/usr/lib/python2.6/site-packages/cinder/taskflow/utils.py", line 260, in __call__
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp     self.result = self.task(*args, **kwargs)
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp   File "/usr/lib/python2.6/site-packages/cinder/volume/flows/create_volume/__init__.py", line 1502, in __call__
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp     **volume_spec)
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp   File "/usr/lib/python2.6/site-packages/cinder/volume/flows/create_volume/__init__.py", line 1473, in _create_raw_volume
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp     return self.driver.create_volume(volume_ref)
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp   File "/usr/lib/python2.6/site-packages/cinder/openstack/common/lockutils.py", line 247, in inner
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp     retval = f(*args, **kwargs)
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp   File "/usr/lib/python2.6/site-packages/cinder/volume/drivers/glusterfs.py", line 209, in create_volume
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp     self._do_create_volume(volume)
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp   File "/usr/lib/python2.6/site-packages/cinder/volume/drivers/glusterfs.py", line 969, in _do_create_volume
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp     self._create_sparsed_file(volume_path, volume_size)
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp   File "/usr/lib/python2.6/site-packages/cinder/volume/drivers/nfs.py", line 206, in _create_sparsed_file
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp     path, run_as_root=True)
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp   File "/usr/lib/python2.6/site-packages/cinder/utils.py", line 143, in execute
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp     return processutils.execute(*cmd, **kwargs)
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp   File "/usr/lib/python2.6/site-packages/cinder/openstack/common/processutils.py", line 173, in execute
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp     cmd=' '.join(cmd))
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp ProcessExecutionError: Unexpected error while running command.
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp Command: sudo cinder-rootwrap /etc/cinder/rootwrap.conf truncate -s 10G /var/lib/cinder/mnt/59ed8cb64fc8948968a29181234051a2/volume-e3e2c8e1-66fa-4dda-a7a7-9c68514d596a
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp Exit code: 1
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp Stdout: ''
2014-01-07 19:09:31.672 4939 TRACE cinder.openstack.common.rpc.amqp Stderr: "/usr/bin/truncate: cannot open `/var/lib/cinder/mnt/59ed8cb64fc8948968a29181234051a2/volume-e3e2c8e1-66fa-4dda-a7a7-9c68514d596a' for writing: Permission denied\n"

Comment 1 Lars Kellogg-Stedman 2014-02-11 16:25:47 UTC
Dafna,

I agree that this ought to work, but the fix will need to happen upstream.
Can you open this in launchpad, link the bug here in the "External Bug Trackers" section, and then close this as UPSTREAM?

Comment 4 Dafna Ron 2014-02-11 17:29:00 UTC
created a bug upstream but this should not be closed if gluster related. and in any case, we should have a corresponding downstream bug.

Comment 5 Dafna Ron 2014-02-11 17:29:41 UTC
Eric, can you please take a look to see if its cinder code related or gluster driver related?

Comment 6 Eric Harney 2014-02-11 21:30:57 UTC
(In reply to Dafna Ron from comment #5)
> Eric, can you please take a look to see if its cinder code related or
> gluster driver related?

As far as I can tell, this is basically expected behavior at present.  GlusterFS root squash = only the Cinder user can write to this share.  At present, volumes are created as root using sudo, which fails here.

We want to move the direction of doing everything as the Cinder user anyway, so we should consider this an enhancement request and work on supporting it.

Comment 7 Lars Kellogg-Stedman 2015-03-20 15:53:47 UTC
Eric: I am reviewing old RDO bugs.  Do you know if there has been any changed in this behavior since comment #6?

Comment 8 Eric Harney 2015-03-20 15:57:53 UTC
(In reply to Lars Kellogg-Stedman from comment #7)
No change yet, this may be supported when the GlusterFS driver supports the nas_secure_file_operations option.  For now using root squash is not a supported configuration.

Comment 10 Eric Harney 2016-11-21 17:20:23 UTC
The GlusterFS driver has been removed from Cinder upstream.


Note You need to log in before you can comment on or make changes to this bug.