Closed gary-reyes closed 3 years ago
I've tried to reproduce it locally with no luck.
Have you restarted your HA instance?
It seems old file descriptor "google/internal/home/foyer/v1.proto"
is still registered in protobuf. But in new glocaltokens it was changes to "glocaltokens/google/internal/home/foyer/v1.proto"
.
Yes of course I restated instance. I've even downgrade, removed the integration, then upgraded, restarted, and tried to setup. Same thing. For now the only thing that works is staying in 1.7.0
On which platform are you running HA? It appears you're using python implementation of protobuf while I'm using C++ implementation:
>>> from google.protobuf.internal import api_implementation
>>> api_implementation.Type()
'cpp'
This codepath is unreachable with my implementation.
I'm using with home assistant OS (the default install, no container, not core only)
version | core-2021.9.3 |
---|---|
installation_type | Home Assistant OS |
dev | false |
hassio | true |
docker | true |
user | root |
virtualenv | false |
python_version | 3.9.6 |
os_name | Linux |
os_version | 5.10.61 |
arch | x86_64 |
timezone | America/Chicago |
Maybe you can help to figure out where these old descriptors are coming from?
For that you need to modify /usr/local/lib/python3.9/site-packages/google/protobuf/symbol_database.py
.
In the imports section on the top add:
import logging
import traceback
logging.basicConfig(level=logging.ERROR)
LOGGER = logging.getLogger(__name__)
And in RegisterMessageDescriptor
(line ~100):
LOGGER.error("TESTTEST1 api implementation type: %s, descriptor name: %s, file: %s", api_implementation.Type(), message_descriptor.full_name, message_descriptor.file.name)
LOGGER.error("TESTTEST2 %s", ''.join(traceback.format_stack()))
if api_implementation.Type() == 'python':
Then restart HA and you should see quite many stacktraces and extra logs which will be helpful.
After that revert these changes back.
I have no idea how I would be able to do that this type of install. It was my belief that with this type of installation, users would be unable to do what you are asking
Well, it's possible, although needs some extra configuration: https://developers.home-assistant.io/docs/operating-system/debugging/
I installed Home Assistant OS on VM and installed google_home v1.8.0 from HACS. It still works fine for me. It also has Python implementation of Protobuf API.
Btw, I found this is an easier way to enable SSH on 22222: https://community.home-assistant.io/t/add-on-hassos-ssh-port-22222-configurator/264109
Or if you have display and keyboard attached to your box you can just type "login" and will be in the host shell. Then docker exec -it homeassistant /bin/bash
will get you inside the container.
It'll be interesting if you can run find / -name v1.proto
there. I suspect you may have another copy somewhere else.
Another thing you can do is just get fresh clean installation of Home Assistant OS, install only this integration there and see if this issue persists.
@gary-reyes Do you have the Google Wifi Integration installed (https://github.com/djtimca/hagooglewifi)? I was receiving a similar error with that integration. When I uninstalled the ha-google-home integration and setup the hagooglewifi integration, the issue flipped to ha-google-home not being able to start up with this error. These integrations seem to not be playing nice together.
Yes I have the google wifi integration
Should be fixed in 1.8.1. Please open new issue if this is not the case.
Describe the bug
Logs