core: Generic camera stops working after some time, usually several hours
The problem
Generic camera component stops working, usually after several hours after system restart.
What version of Home Assistant Core has the issue?
core-2021.10.6
What was the last working version of Home Assistant Core?
core-2021.9.7
What type of installation are you running?
Home Assistant Core
Integration causing the issue
Generic Camera
Link to integration documentation on our website
https://www.home-assistant.io/integrations/generic/
Example YAML snippet
camera:
- platform: generic
still_image_url: http://10.144.1.107/image/jpeg.cgi
username: !secret camera1_username
password: !secret camera1_password
- platform: generic
name: Dashboard 2 Camera
still_image_url: http://10.144.1.51:2323/?cmd=getCamshot&password=xxxx
- platform: generic
name: Dashboard Camera
still_image_url: http://10.144.1.139:2323/?cmd=getCamshot&password=yyyy
Anything in the logs that might be useful for us?
2021-10-25 15:55:06 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
File "/usr/local/share/homeassistant/lib/python3.8/site-packages/aiohttp/web_protocol.py", line 422, in _handle_request
resp = await self._request_handler(request)
File "/usr/local/share/homeassistant/lib/python3.8/site-packages/aiohttp/web_app.py", line 499, in _handle
resp = await handler(request)
File "/usr/local/share/homeassistant/lib/python3.8/site-packages/aiohttp/web_middlewares.py", line 119, in impl
return await handler(request)
File "/usr/local/share/homeassistant/lib/python3.8/site-packages/homeassistant/components/http/security_filter.py", line 60, in security_filter_middleware
return await handler(request)
File "/usr/local/share/homeassistant/lib/python3.8/site-packages/homeassistant/components/http/forwarded.py", line 98, in forwarded_middleware
return await handler(request)
File "/usr/local/share/homeassistant/lib/python3.8/site-packages/homeassistant/components/http/request_context.py", line 24, in request_context_middleware
return await handler(request)
File "/usr/local/share/homeassistant/lib/python3.8/site-packages/homeassistant/components/http/ban.py", line 78, in ban_middleware
return await handler(request)
File "/usr/local/share/homeassistant/lib/python3.8/site-packages/homeassistant/components/http/auth.py", line 144, in auth_middleware
return await handler(request)
File "/usr/local/share/homeassistant/lib/python3.8/site-packages/homeassistant/components/http/view.py", line 136, in handle
result = await result
File "/usr/local/share/homeassistant/lib/python3.8/site-packages/homeassistant/components/camera/__init__.py", line 591, in get
return await self.handle(request, camera)
File "/usr/local/share/homeassistant/lib/python3.8/site-packages/homeassistant/components/camera/__init__.py", line 609, in handle
image = await _async_get_image(
File "/usr/local/share/homeassistant/lib/python3.8/site-packages/homeassistant/components/camera/__init__.py", line 164, in _async_get_image
image_bytes = await camera.async_camera_image(
File "/usr/local/share/homeassistant/lib/python3.8/site-packages/homeassistant/components/generic/camera.py", line 146, in async_camera_image
response = await async_client.get(
File "/usr/local/share/homeassistant/lib/python3.8/site-packages/httpx/_client.py", line 1740, in get
return await self.request(
File "/usr/local/share/homeassistant/lib/python3.8/site-packages/httpx/_client.py", line 1494, in request
response = await self.send(
File "/usr/local/share/homeassistant/lib/python3.8/site-packages/httpx/_client.py", line 1586, in send
response = await self._send_handling_auth(
File "/usr/local/share/homeassistant/lib/python3.8/site-packages/httpx/_client.py", line 1616, in _send_handling_auth
response = await self._send_handling_redirects(
File "/usr/local/share/homeassistant/lib/python3.8/site-packages/httpx/_client.py", line 1655, in _send_handling_redirects
response = await self._send_single_request(request, timeout)
File "/usr/local/share/homeassistant/lib/python3.8/site-packages/httpx/_client.py", line 1699, in _send_single_request
) = await transport.handle_async_request(
File "/usr/local/share/homeassistant/lib/python3.8/site-packages/httpx/_transports/default.py", line 281, in handle_async_request
) = await self._pool.handle_async_request(
File "/usr/local/share/homeassistant/lib/python3.8/site-packages/httpcore/_async/connection_pool.py", line 219, in handle_async_request
async with self._connection_acquiry_lock:
File "/usr/local/share/homeassistant/lib/python3.8/site-packages/httpcore/_backends/base.py", line 76, in __aenter__
await self.acquire()
File "/usr/local/share/homeassistant/lib/python3.8/site-packages/httpcore/_backends/anyio.py", line 104, in acquire
await self._lock.acquire()
File "/usr/local/share/homeassistant/lib/python3.8/site-packages/anyio/_core/_synchronization.py", line 119, in acquire
self.acquire_nowait()
File "/usr/local/share/homeassistant/lib/python3.8/site-packages/anyio/_core/_synchronization.py", line 146, in acquire_nowait
raise RuntimeError('Attempted to acquire an already held Lock')
RuntimeError: Attempted to acquire an already held Lock
Additional information
I have 3 cameras, 2 are provided by Fully Kiosk Browser android app, 1 is a D-Link IP camera. All 3 stop working at the same time and multiple of above error messages are written to the HA log. Never had similar issue on earlier versions of HA. The installation is on TrueNAS jail, in python venv. Python version is 3.8.6
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Comments: 19 (4 by maintainers)
My logs: 2021-12-20 00:17:28 ERROR (MainThread) [aiohttp.server] Error handling request Traceback (most recent call last): File “/usr/local/lib/python3.9/site-packages/aiohttp/web_protocol.py”, line 435, in _handle_request resp = await request_handler(request) File “/usr/local/lib/python3.9/site-packages/aiohttp/web_app.py”, line 504, in _handle resp = await handler(request) File “/usr/local/lib/python3.9/site-packages/aiohttp/web_middlewares.py”, line 117, in impl return await handler(request) File “/usr/src/homeassistant/homeassistant/components/http/security_filter.py”, line 60, in security_filter_middleware return await handler(request) File “/usr/src/homeassistant/homeassistant/components/http/forwarded.py”, line 98, in forwarded_middleware return await handler(request) File “/usr/src/homeassistant/homeassistant/components/http/request_context.py”, line 28, in request_context_middleware return await handler(request) File “/usr/src/homeassistant/homeassistant/components/http/ban.py”, line 78, in ban_middleware return await handler(request) File “/usr/src/homeassistant/homeassistant/components/http/auth.py”, line 181, in auth_middleware return await handler(request) File “/usr/src/homeassistant/homeassistant/components/http/view.py”, line 137, in handle result = await result File “/usr/src/homeassistant/homeassistant/components/camera/init.py”, line 629, in get return await self.handle(request, camera) File “/usr/src/homeassistant/homeassistant/components/camera/init.py”, line 668, in handle stream = await camera.handle_async_mjpeg_stream(request) File “/usr/src/homeassistant/homeassistant/components/proxy/camera.py”, line 268, in handle_async_mjpeg_stream return await async_get_still_stream( File “/usr/src/homeassistant/homeassistant/components/camera/init.py”, line 260, in async_get_still_stream await write_to_mjpeg_stream(img_bytes) File “/usr/src/homeassistant/homeassistant/components/camera/init.py”, line 241, in write_to_mjpeg_stream await response.write( File “/usr/local/lib/python3.9/site-packages/aiohttp/web_response.py”, line 514, in write await self._payload_writer.write(data) File “/usr/local/lib/python3.9/site-packages/aiohttp/http_writer.py”, line 116, in write self._write(chunk) File “/usr/local/lib/python3.9/site-packages/aiohttp/http_writer.py”, line 76, in _write raise ConnectionResetError(“Cannot write to closing transport”) ConnectionResetError: Cannot write to closing transport