Uploaded image for project: 'Kudu'
  1. Kudu
  2. KUDU-2378

Crash due to unaligned loads when building with clang 6.0

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.7.0, 1.8.0, 1.7.1
    • Fix Version/s: 1.9.0
    • Component/s: None
    • Labels:
      None
    • Target Version/s:

      Description

      When I built the whole tree with clang 6.0, all_types-itest crashed due to an illegal instruction. Looking at assembly, it appeared to be that clang had generated a 'movaps' (aligned load) instruction for a *reinterpret_cast<int128_t>() call loading into an xmm register. We aren't careful with alignment about loading other integer types because unaligned loads of int64s don't have a high penalty, but unaligned load of int128 causes a crash.

      This is likely to crash on other compilers too – surprised we haven't seen it yet.

        Attachments

          Activity

            People

            • Assignee:
              adar Adar Dembo
              Reporter:
              tlipcon Todd Lipcon
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: