drbdmanagedrv limited to 2047 GB

Bug #1749251 reported by DHE
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Cinder
New
Undecided
Unassigned

Bug Description

This is from an RDO installation on CentOS 7.

When attempting to create a volume >= 2 TiB the following error will occur:

2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server Traceback (most recent call last):
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/server.py", line 133, in _process_incoming
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server res = self.dispatcher.dispatch(message)
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 150, in dispatch
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server return self._do_dispatch(endpoint, method, ctxt, args)
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 121, in _do_dispatch
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server result = func(ctxt, **new_args)
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/cinder/volume/manager.py", line 4367, in create_volume
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server allow_reschedule=allow_reschedule, volume=volume)
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/cinder/volume/manager.py", line 635, in create_volume
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server _run_flow()
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/cinder/volume/manager.py", line 627, in _run_flow
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server flow_engine.run()
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/taskflow/engines/action_engine/engine.py", line 247, in run
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server for _state in self.run_iter(timeout=timeout):
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/taskflow/engines/action_engine/engine.py", line 340, in run_iter
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server failure.Failure.reraise_if_any(er_failures)
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/taskflow/types/failure.py", line 336, in reraise_if_any
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server failures[0].reraise()
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/taskflow/types/failure.py", line 343, in reraise
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server six.reraise(*self._exc_info)
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/taskflow/engines/action_engine/executor.py", line 53, in _execute_task
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server result = task.execute(**arguments)
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/cinder/volume/flows/manager/create_volume.py", line 840, in execute
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server model_update = self._create_raw_volume(volume, **volume_spec)
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/cinder/volume/flows/manager/create_volume.py", line 819, in _create_raw_volume
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server return self.driver.create_volume(volume)
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/cinder/volume/drivers/drbdmanagedrv.py", line 532, in create_volume
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server props)
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/cinder/volume/drivers/drbdmanagedrv.py", line 195, in call_or_reconnect
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server return fn(*args)
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server File "/usr/lib64/python2.7/site-packages/dbus/proxies.py", line 145, in __call__
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server **keywords)
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server File "/usr/lib64/python2.7/site-packages/dbus/connection.py", line 641, in call_blocking
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server message.append(signature=signature, *args)
2018-02-13 10:09:22.527 28407 ERROR oslo_messaging.rpc.server OverflowError: Value -1048576 out of range for Int32

This specific example is for 4095 GB.

The cause seems to be the dbus-python layer clipping the volume size (drbdmanage uses kiB for units) to its own internal Int32 type by default.

Possible solution: function _vol_size_to_dm should return a long type instead to force Int64 conversion.

Tags: drbd drivers
tags: added: drdb drivers
Eric Harney (eharney)
tags: added: drbd
removed: drdb
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.