-
Type: Bug
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Fully Compatible
-
ALL
-
-
Query 2020-07-13, Query 2020-07-27
The files that make up the query_exec library make use of types like FTSIndexAccessMethod that are defined in the library index_access_methods. However, the query_exec library doesn't link to the index_access_methods.
For static builds, this isn't a problem. And for most dynamic builds, we get away with it because the majority of functions invoked are inline. But not for all builds. In particular, when UBSAN is enabled in a dynamic build, we find that many unit tests fail to link, presumably because their link graph include query_exec but not index_access_methods.
It is not possible to add index_access_methods as a dependency of query_exec because the resulting graph is circular - index_access_methods depends directly on query_exec. Though it isn't clear if index_access_methods actually depends on query_exec - if it doesn't, then reversing the edge would probably be a good first step.
This state of the world is fragile - changes to usage in the files making up query_exec could cause binaries to stop linking at any time, as could enabling new instrumentations.
The relationship between these libraries should be clarified.
- is depended on by
-
SERVER-48892 {A,UB}SAN builder should use --link-model=dynamic
- Closed