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

Crash due to unaligned loads when building with clang 6.0

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.7.0, 1.8.0, 1.7.1
    • 1.9.0
    • None
    • None

    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

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

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

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment