cinder can't mount a path including symbolic link in backup nor recovery

Bug #1656749 reported by mylq
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Cinder
Incomplete
Undecided
Unassigned

Bug Description

If we set the back up ends to NFS,then we could use a path which have symbolic link path as NFS server path.cinder can't mount a path including symbolic link in backup nor recovery.
Here is my NFS config, vi /etc/exports
/slink/NfsVolumeStorage *(rw,sync,no_root_squash,subtree_check)
Here is the real path , exportfs -u
/NfsVolumeStorage

If we use backup_share = 192.168.2.207:/slink/NfsVolumeStorage,then it would be wrong.
The log is below:
2017-01-16 01:45:41.138 27648 INFO cinder.backup.manager [req-d230d05c-28c7-43fb-8850-e99c2f52db43 6f840773ce774fb7802b6b25a34f341e 0005b874180744a7b577856b6c00b34c - default default] Delete backup started, backup: 2adec860-bc06-4da4-9989-048496114fae.
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server [req-d230d05c-28c7-43fb-8850-e99c2f52db43 6f840773ce774fb7802b6b25a34f341e 0005b874180744a7b577856b6c00b34c - default default] Exception during message handling
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server Traceback (most recent call last):
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/server.py", line 133, in _process_incoming
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server res = self.dispatcher.dispatch(message)
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 150, in dispatch
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server return self._do_dispatch(endpoint, method, ctxt, args)
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 121, in _do_dispatch
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server result = func(ctxt, **new_args)
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/cinder/backup/manager.py", line 594, in delete_backup
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server self._update_backup_error(backup, six.text_type(err))
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in __exit__
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server self.force_reraise()
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in force_reraise
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server six.reraise(self.type_, self.value, self.tb)
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/cinder/backup/manager.py", line 590, in delete_backup
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server backup_service = self.service.get_backup_driver(context)
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/cinder/backup/drivers/nfs.py", line 82, in get_backup_driver
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server return NFSBackupDriver(context)
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/cinder/backup/drivers/nfs.py", line 57, in __init__
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server backup_path = self._init_backup_repo_path()
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/cinder/backup/drivers/nfs.py", line 77, in _init_backup_repo_path
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server remotefsclient.mount(self.backup_share)
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/os_brick/remotefs/remotefs.py", line 107, in mount
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server self._mount_nfs(share, mount_path, flags)
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/os_brick/remotefs/remotefs.py", line 147, in _mount_nfs
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server 'error': mnt_errors})
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server BrickException: NFS mount failed for share 192.168.2.207:/slink/NfsVolumeStorage. Error - {'pnfs': u"Unexpected error while running command.\nCommand: mount -t nfs -o vers=4,minorversion=1 192.168.2.207:/slink/NfsVolumeStorage /rhome/08fb67895aa79188d7881d76293f4a0d\nExit code: 32\nStdout: u''\nStderr: u'mount.nfs: mounting 192.168.2.207:/slink/NfsVolumeStorage failed, reason given by server: No such file or directory\\n'", 'nfs': u"Unexpected error while running command.\nCommand: mount -t nfs -o {} 192.168.2.207:/slink/NfsVolumeStorage /rhome/08fb67895aa79188d7881d76293f4a0d\nExit code: 32\nStdout: u''\nStderr: u'mount.nfs: an incorrect mount option was specified\\n'"}
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server

Revision history for this message
mylq (leibnizlq) wrote :
Revision history for this message
Eric Harney (eharney) wrote :

The actual error seems to be in the parameters passed to mount.nfs, not the fact that a symlink is involved:

Unexpected error while running command.\nCommand: mount -t nfs -o {}

Can you include the cinder.conf relevant to your NFS backend?

Changed in cinder:
status: New → Incomplete
Revision history for this message
mylq (leibnizlq) wrote :

Here is part of my cinder.conf.
[DEFAULT]
backup_driver = cinder.backup.drivers.nfs
backup_share = 192.168.2.207:/slink/NfsVolumeStorage
backup_mount_point_base = /rhome

/rhome is an empty directory in my cinder node.

description: updated
Revision history for this message
mylq (leibnizlq) wrote :

And the version of my openstack environment is newton.

Revision history for this message
mylq (leibnizlq) wrote :

If we replace 192.168.2.207:/slink/NfsVolumeStorage with 192.168.2.207:/NfsVolumeStorage in cinder.conf, then it works.
It seems that cinder couldn't recognize a path having symbolic link.

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

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.