With our major rewrite to Python 3, we introduced a bug which wasn't noticed until now. When storing the SchedulerLocation Protobuf message in the state manager repo, such as Zookeeper, we are storing job_page_link as a repeated string which produces a Python List and not a str. (Protobuf field).
When running the Heron Tracker, we experience crashes at this point in the codebase.
This is because Python 3 is now using the new type hint system. The returned TopologyInfoSchedulerLocation is expecting job_page_link to be a str.
With our major rewrite to Python 3, we introduced a bug which wasn't noticed until now. When storing the
SchedulerLocation
Protobuf message in the state manager repo, such as Zookeeper, we are storingjob_page_link
as arepeated string
which produces a PythonList
and not astr
. (Protobuf field).When running the Heron Tracker, we experience crashes at this point in the codebase.
This is because Python 3 is now using the new type hint system. The returned
TopologyInfoSchedulerLocation
is expectingjob_page_link
to be astr
.A simple fix would be to extract the first string from the Protobuf
RepeatedScalarFieldContainer
.