-
Couldn't load subscription status.
- Fork 744
Description
Describe the issue you are experiencing
Downloading a backup over 2GB on a 32bit platform fails, both form the API and web-ui. The supervisor appears to close the network connection and the supervisor log prints the error:
OverflowError: Python int too large to convert to C ssize_t
This appears to be a regression of this previous issue, based on the symptoms. I suspect its related to the recent update to python 3.11, since the fix for it last time required patches specific to the python version being used.
I've gotten reports from several users on different platforms, the common thread between them seems to be running a 32bit version of HAOS. I'm filing this issue on their behalf and track the issue on my side here. An example of a platform that has been affected is:
Home Assistant Version: 2023.6.0
Supervisor Version: 2023.06.1
Architecture: armv7
Supervisor Channel: stable
What type of installation are you running?
Home Assistant OS
Which operating system are you running on?
Home Assistant Operating System
Steps to reproduce the issue
- Install and set up 32 bit HAOS on a device
- Copy a 2GB (random bytes) file to the /config folder
- Create a backup
- Try to download the backup from the "Backups" page.
Anything in the Supervisor logs that might be useful for us?
File "/usr/local/lib/python3.11/site-packages/aiohttp/web_protocol.py", line 458, in _handle_request
reset = await self.finish_response(request, resp, start_time)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/aiohttp/web_protocol.py", line 611, in finish_response
await prepare_meth(request)
File "/usr/local/lib/python3.11/site-packages/aiohttp/web_fileresponse.py", line 286, in prepare
return await self._sendfile(request, fobj, offset, count)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/aiohttp/web_fileresponse.py", line 99, in _sendfile
await loop.sendfile(transport, fobj, offset, count)
File "/usr/local/lib/python3.11/asyncio/base_events.py", line 1185, in sendfile
return await self._sendfile_native(transport, file,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/asyncio/selector_events.py", line 725, in _sendfile_native
return await self.sock_sendfile(transp._sock, file, offset, count,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/asyncio/base_events.py", line 881, in sock_sendfile
return await self._sock_sendfile_native(sock, file,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/asyncio/unix_events.py", line 373, in _sock_sendfile_native
return await fut
^^^^^^^^^
File "/usr/local/lib/python3.11/asyncio/unix_events.py", line 395, in _sock_sendfile_native_impl
sent = os.sendfile(fd, fileno, offset, blocksize)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
OverflowError: Python int too large to convert to C ssize_t
### System Health information
I'm reporting this issue on behalf of other users and don't have access to the system health info.
### Supervisor diagnostics
I'm reporting this issue on behalf of other users and don't have access to the supervisor diagnostics.
### Additional information
_No response_