Bug 1868623

Summary: OverflowError: -4194304 not in range 0 to 18446744073709551615
Product: [Fedora] Fedora Reporter: Vendula Poncova <vponcova>
Component: python-blivetAssignee: Blivet Maintenance Team <blivet-maint-list>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: awilliam, blivet-maint-list, dlehman, japokorn, lnie, mkolman, robatino, rvykydal, vponcova, vtrefny
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: python-blivet-3.3.0-1.fc33 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-08-21 12:18:30 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1766777    
Attachments:
Description Flags
anaconda-tb
none
syslog
none
storage.log
none
program.log
none
anaconda.log none

Description Vendula Poncova 2020-08-13 10:18:38 UTC
Description of problem:

Blivet's free_space property returns negative size, but Anaconda expects unsigned int.

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

How reproducible:
always

Steps to Reproduce:

1. Start the graphical installation with one empty 20 GiB disk.
2. Proceed to the custom partitioning spoke.
4. Switch to "LVM Thin Provisioning".
5. Add a new mount point: /boot, size: 1g
6. Add a new mount point: swap, size: 1g
7. Add a new mount point: /home, size: 1g
8. Add a new mount point: /, size: 20g

Actual results:

Anaconda fails with a traceback.

From syslog:

10:04:06,051 WARNING org.fedoraproject.Anaconda.Modules.Storage:DEBUG:blivet:fedora_fedora size is 19 GiB
10:04:06,052 WARNING org.fedoraproject.Anaconda.Modules.Storage:DEBUG:blivet:vg fedora_fedora has -4 MiB free
10:04:06,053 WARNING org.fedoraproject.Anaconda.Modules.Storage:WARNING:dasbus.server.handler:The call org.fedoraproject.Anaconda.Modules.Storage.DeviceTree.Scheduler.GetContai
nerFreeSpace has failed with an exception:
10:04:06,053 WARNING org.fedoraproject.Anaconda.Modules.Storage:Traceback (most recent call last):
10:04:06,053 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib/python3.9/site-packages/dasbus/server/handler.py", line 423, in _method_callback
10:04:06,053 WARNING org.fedoraproject.Anaconda.Modules.Storage:    self._handle_method_result(
10:04:06,053 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib/python3.9/site-packages/dasbus/server/handler.py", line 465, in _handle_method_result
10:04:06,053 WARNING org.fedoraproject.Anaconda.Modules.Storage:    self._server.set_call_reply(
10:04:06,053 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib/python3.9/site-packages/dasbus/server/handler.py", line 136, in set_call_reply
10:04:06,053 WARNING org.fedoraproject.Anaconda.Modules.Storage:    reply_value = get_variant(out_type, (out_value, ))
10:04:06,053 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib/python3.9/site-packages/dasbus/typing.py", line 124, in get_variant
10:04:06,053 WARNING org.fedoraproject.Anaconda.Modules.Storage:    return Variant(type_string, value)
10:04:06,053 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib64/python3.9/site-packages/gi/overrides/GLib.py", line 189, in __new__
10:04:06,053 WARNING org.fedoraproject.Anaconda.Modules.Storage:    v = creator._create(format_string, value)
10:04:06,053 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib64/python3.9/site-packages/gi/overrides/GLib.py", line 150, in _create
10:04:06,053 WARNING org.fedoraproject.Anaconda.Modules.Storage:    builder.add_value(self._create(dup, i))
10:04:06,053 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib64/python3.9/site-packages/gi/overrides/GLib.py", line 118, in _create
10:04:06,053 WARNING org.fedoraproject.Anaconda.Modules.Storage:    return self._LEAF_CONSTRUCTORS[format](value)
10:04:06,053 WARNING org.fedoraproject.Anaconda.Modules.Storage:OverflowError: -4194304 not in range 0 to 18446744073709551615

Expected results:

Anaconda doesn't fail with a traceback.

Comment 1 Vendula Poncova 2020-08-13 10:19:37 UTC
Created attachment 1711307 [details]
anaconda-tb

Comment 2 Vendula Poncova 2020-08-13 10:20:04 UTC
Created attachment 1711308 [details]
syslog

Comment 3 Vendula Poncova 2020-08-13 10:20:33 UTC
Created attachment 1711309 [details]
storage.log

Comment 4 Vendula Poncova 2020-08-13 10:21:00 UTC
Created attachment 1711310 [details]
program.log

Comment 5 Vendula Poncova 2020-08-13 10:21:38 UTC
Created attachment 1711311 [details]
anaconda.log

Comment 7 Vojtech Trefny 2020-08-18 05:59:31 UTC
*** Bug 1869458 has been marked as a duplicate of this bug. ***

Comment 8 Adam Williamson 2020-08-18 16:55:09 UTC
Note, this is proposed as a Final blocker because https://bugzilla.redhat.com/show_bug.cgi?id=1869458 , which was proposed as one, was closed as a dupe of this.

Comment 9 Vojtech Trefny 2020-08-19 11:39:35 UTC
upstream PR: https://github.com/storaged-project/blivet/pull/890

updates image: https://vtrefny.fedorapeople.org/img/rhbz1868623.img

I've fixed this particular issue where blivet reports negative free space, but I can't promise this is the only place where something similar happens. Anaconda really shouldn't expect that all sizes in blivet are positive. Negative size is a valid value. This isn't a new issue and it was never a problem until now.

Comment 10 Vladimír Slávik 2020-09-04 13:41:22 UTC
*** Bug 1860644 has been marked as a duplicate of this bug. ***