Joe McDonnell has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/16009 )

Change subject: Reapply IMPALA-9781: Fix GCC 7 unaligned 128-bit loads / stores
......................................................................

Reapply IMPALA-9781: Fix GCC 7 unaligned 128-bit loads / stores

When running a release binary built with GCC 7.5.0, it crashes
with an unaligned memory error in multiple pieces of code.
In these locations, we are doing stores to 128-bit values, but we
cannot guarantee alignment. GCC 7 must be optimizing the code to
use instructions that require a higher level of alignment than
we can provide.

This switches the code locations to use memcpy to avoid the
unaligned stores (with local variables as necessary).

Testing:
 - Ran exhaustive tests with a release binary built by GCC 7.5.0
 - Ran UBSAN core tests
 - Add unaligned test case in decimal-test

Change-Id: I7edd8beeb15e4fbb69126a9f97a1476a4b8f12a9
Reviewed-on: http://gerrit.cloudera.org:8080/16009
Tested-by: Impala Public Jenkins <[email protected]>
Reviewed-by: Tim Armstrong <[email protected]>
---
M be/src/exprs/slot-ref.cc
M be/src/runtime/decimal-test.cc
M be/src/runtime/decimal-value.h
M be/src/util/dict-encoding.h
4 files changed, 13 insertions(+), 4 deletions(-)

Approvals:
  Impala Public Jenkins: Verified
  Tim Armstrong: Looks good to me, approved

--
To view, visit http://gerrit.cloudera.org:8080/16009
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I7edd8beeb15e4fbb69126a9f97a1476a4b8f12a9
Gerrit-Change-Number: 16009
Gerrit-PatchSet: 3
Gerrit-Owner: Joe McDonnell <[email protected]>
Gerrit-Reviewer: Impala Public Jenkins <[email protected]>
Gerrit-Reviewer: Joe McDonnell <[email protected]>
Gerrit-Reviewer: Tim Armstrong <[email protected]>

Reply via email to