-
Bug
-
Resolution: Unresolved
-
Normal
-
rhel-10.1
-
None
-
No
-
Low
-
rhel-storage-crs
-
None
-
False
-
False
-
-
None
-
None
-
None
-
None
-
Unspecified
-
Unspecified
-
Unspecified
-
-
All
-
None
What were you trying to do that didn't work?
Creating a Stratis pool with an excessively large --journal-size value fails and results in a Python stack trace instead of a proper error message.
What is the impact of this issue to you?
The issue causes the command to fail without a proper error message. Instead, it shows a stack trace when trying to create a Stratis pool with a very large --journal-size.
Please provide the package NVR for which the bug is seen:
stratis-cli-3.8.1-1.el10
stratisd-3.8.1-1.el10
How reproducible is this bug?:
always
Steps to reproduce
- stratis pool create --journal-size 999999999999999999KiB p3 /dev/nvme0n1
Expected results
The command fails with a message similar to the one shown when an invalid file system size is provided. For example:
Execution failed:
stratisd failed to perform the operation that you requested. It returned the following information via the D-Bus: ERROR: Requested size or size limit of filesystem fs exceeds maximum specifiable filesystem size 9444732965739290426880 bytes.
Actual results
stratis pool create --journal-size 999999999999999999KiB p3 /dev/nvme0n1
stratis encountered an unexpected error during execution. Please report the error and include in your report the stack trace shown below.
Traceback (most recent call last):
File "/usr/lib/python3.12/site-packages/into_dbus_python/_xformer.py", line 238, in the_func
return klass(value, variant_level=variant)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
OverflowError: int too big to convert
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/lib/python3.12/site-packages/dbus_python_client_gen/_invokers.py", line 327, in dbus_func
xformed_args = func(args)
^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/into_dbus_python/_xformer.py", line 339, in the_func
return [f(a) for (f, a) in zip(funcs, objects)]
^^^^
File "/usr/lib/python3.12/site-packages/into_dbus_python/_xformer.py", line 57, in the_func
raise err
File "/usr/lib/python3.12/site-packages/into_dbus_python/_xformer.py", line 52, in the_func
return func(expr, variant=variant)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/into_dbus_python/_xformer.py", line 213, in the_func
elements = [f(x) for (f, x) in zip(funcs, a_list)]
^^^^
File "/usr/lib/python3.12/site-packages/into_dbus_python/_xformer.py", line 243, in the_func
raise IntoDPUnexpectedValueError(
into_dbus_python._errors.IntoDPUnexpectedValueError: inappropriate value passed to dbus-python constructor
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/lib/python3.12/site-packages/stratis_cli/_main.py", line 48, in the_func
namespace.func(namespace)
File "/usr/lib/python3.12/site-packages/stratis_cli/_parser/_parser.py", line 142, in wrapped_func
func(*args)
File "/usr/lib/python3.12/site-packages/stratis_cli/_actions/_pool.py", line 194, in create_pool
) = Manager.Methods.CreatePool(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/stratis_cli/_actions/_data.py", line 131, in new_method
return orig_method(proxy, args)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/dbus_python_client_gen/_invokers.py", line 335, in dbus_func
raise DPClientMarshallingError(
dbus_python_client_gen._errors.DPClientMarshallingError: Failed to format arguments (p3, frozenset({'/dev/nvme0n1'}), [], [], (True, 1023999999999999998976), (True, <IntegrityTagSpec.B512: '512b'>), (True, True)) according to signature "sasa((bu)s)a((bu)ss)(bt)(bs)(bb)" for method "CreatePool" belonging to interface "org.storage.stratis3.Manager.r8"
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/bin/stratis", line 35, in <module>
main()
File "/usr/bin/stratis", line 32, in main
return run()(sys.argv[1:])
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/stratis_cli/_main.py", line 69, in the_func
handle_error(err)
File "/usr/lib/python3.12/site-packages/stratis_cli/_error_reporting.py", line 364, in handle_error
raise err
File "/usr/lib/python3.12/site-packages/stratis_cli/_main.py", line 64, in the_func
raise StratisCliActionError(command_line_args, namespace) from err
stratis_cli._errors.StratisCliActionError: Action selected by command-line arguments ['pool', 'create', '--journal-size', '999999999999999999KiB', 'p3', '/dev/nvme0n1'] which were parsed to Namespace(print_all_help=None, propagate=False, unhyphenated_uuids=False, func=<function add_subcommand.<locals>.wrap_func.<locals>.wrapped_func at 0x7f2e26de0ae0>, key_desc=None, post_parser=<class 'stratis_cli._parser._pool.CreateOptions'>, pool_name='p3', blockdevs=['/dev/nvme0n1'], no_overprovision=False, journal_size_default=False, clevis=None, integrity=<stratis_cli._parser._pool.IntegrityOptions object at 0x7f2e2788b470>) failed