I just committed https://issues.apache.org/jira/browse/HIVE-3772.
For hive-server2 Carl and others did a lot of work to clean up un thread
safe things from hive.
Hive was originally build as a fat client so it is not surprising that many
such constructs exist. Now since we have retrofitted multi-threaded-ness
onto the project we have a number of edge case bugs.
My suggestions here would be for that the next release 0.13 we make a push
to remove all possible non thread safe code and explicitly pass context
objects or serialized structures everywhere thread safety is needed.
I can see this would start with something like the Function Registry, this
would be a per session object passed around rather then a global object
with static hashmap instances in it.
I know that this probably will not be as simple as removing all static
members from our codebase, but does anyone know of specific challenges that
will be intrinsically hard to solve?