Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-65686

Figure out dependencies between query_sbe and query_sbe_storage libs needed for stats collection

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 6.0.0-rc1, 6.1.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None
    • Fully Compatible
    • ALL
    • v6.0
    • QE 2022-04-18, QE 2022-05-02
    • 80

      Originated from BF-24901.

      The same linker failure can be reproduced on non-UBSAN build variants if use dynamic_cast<IndexScanStage*> in stage_visitors.h.

      The working theory is that UBSAN somehow substitutes static_cast<IndexScanStage*> with a dynamic_cast (for safety), but the latter needs vtable info of IndexScanStage, which isn't available to the linker because ix_scan.cpp is linked into query_sbe_storage lib but hash_lookup.cpp and loop_join.cpp link into query_sbe.

      The problem is that query_sbe_storage already depends on query_sbe lib so the above creates a circular dependency.

            Assignee:
            irina.yatsenko@mongodb.com Irina Yatsenko (Inactive)
            Reporter:
            irina.yatsenko@mongodb.com Irina Yatsenko (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: