[
https://issues.apache.org/jira/browse/KUDU-3072?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17072623#comment-17072623
]
shuna commented on KUDU-3072:
-----------------------------
when i compile kudu on aarch64, I had had the same problem and decided to
close into http://gerrit.cloudera.org:8080/15420 to my project, but when
compiling kudu to such a problem:
bash-4.2# make
[ 0%] Recreating ../build/latest symlink
[ 0%] Built target latest_symlink
[ 2%] Built target gutil
[ 2%] Linking CXX executable ../../../bin/protoc-gen-insertions
+ /opt/rh/devtoolset-8/root/bin/c++-impl -fsigned-char -march=armv8-a -Wall
-Wno-sign-compare -Wno-comment -pthread -fno-strict-aliasing
-DBOOST_DATE_TIME_POSIX_TIME_STD_CONFIG -ggdb -std=c++11 -fsized-deallocation
-g -Wl,--export-dynamic -rdynamic
CMakeFiles/protoc-gen-insertions.dir/protoc-gen-insertions.cc.o -o
../../../bin/protoc-gen-insertions ../../../lib/libgutil.a
../../../../../thirdparty/installed/uninstrumented/lib/libprotobuf.a
../../../../../thirdparty/installed/uninstrumented/lib/libprotoc.a
../../../../../thirdparty/installed/uninstrumented/lib/libglog.a
../../../../../thirdparty/installed/uninstrumented/lib/libunwind.a
../../../../../thirdparty/installed/uninstrumented/lib/libgflags.a
../../../../../thirdparty/installed/uninstrumented/lib/libtcmalloc.a
../../../../../thirdparty/installed/uninstrumented/lib/libprofiler.a
/usr/lib64/librt.so
../../../../../thirdparty/installed/uninstrumented/lib/libprotobuf.a
../../../../../thirdparty/installed/uninstrumented/lib/libtcmalloc.a(stacktrace.o):
In function `GetStackTraceWithContext_libunwind(void**, int, int, void
const*)':
/root/src/apache/kudu/thirdparty/src/gperftools-2.6.90_bak/src/stacktrace_libunwind-inl.h:120:
undefined reference to `_ULaarch64_init_local'
/root/src/apache/kudu/thirdparty/src/gperftools-2.6.90_bak/src/stacktrace_libunwind-inl.h:124:
undefined reference to `_ULaarch64_step'
/root/src/apache/kudu/thirdparty/src/gperftools-2.6.90_bak/src/stacktrace_libunwind-inl.h:142:
undefined reference to `_ULaarch64_step'
/root/src/apache/kudu/thirdparty/src/gperftools-2.6.90_bak/src/stacktrace_libunwind-inl.h:135:
undefined reference to `_ULaarch64_get_reg'
../../../../../thirdparty/installed/uninstrumented/lib/libtcmalloc.a(stacktrace.o):
In function `GetStackTrace_libunwind(void**, int, int)':
/root/src/apache/kudu/thirdparty/src/gperftools-2.6.90_bak/src/stackt
I have analyzed the libunwind-aarch64.a and libunwind.a and libglog.a and
libtcmallo.a symbol problem before and after glog patch :
before:
!image-2020-04-01-18-21-57-054.png!
afther:
!image-2020-04-01-18-22-55-612.png!
The difference is that libglog.a has no _ULaarch64_step symbol, so I changed
the order of libunwind at KUDU_BASE_LIBS in cmakelst.txt, after tcmalloc, and
the problem was solved.
May I ask if you have encountered this problem and how to solve it ?
> minidump-test failed on aarch64 server
> --------------------------------------
>
> Key: KUDU-3072
> URL: https://issues.apache.org/jira/browse/KUDU-3072
> Project: Kudu
> Issue Type: Sub-task
> Reporter: huangtianhua
> Assignee: huangtianhua
> Priority: Major
> Fix For: 1.12.0
>
> Attachments: image-2020-04-01-18-21-57-054.png,
> image-2020-04-01-18-22-55-612.png
>
>
> I test kudu on aarch64 server based on https://gerrit.cloudera.org/#/c/14964/
> , the test minidump-test failed, error details info see
> http://paste.openstack.org/show/790470/ :
> [==========] Running 8 tests from 2 test cases.
> [----------] Global test environment set-up.
> [----------] 2 tests from MinidumpDeathTest
> [ RUN ] MinidumpDeathTest.TestRegisterAndDelete
> WARNING: Logging before InitGoogleLogging() is written to STDERR
> I0309 02:17:29.248252 26035 minidump.cc:241] Setting minidump size limit to
> 20M
> [WARNING]
> /home/jenkins/workspace/kudu/thirdparty/src/googletest-release-1.8.0/googletest/src/gtest-death-test.cc:836::
> Death tests use fork(), which is unsafe particularly in a threaded context.
> For this test, Google Test detected 3 threads.
> Wrote minidump to
> /tmp/kudutest-0/minidump-test.MinidumpDeathTest.TestRegisterAndDelete.1583720249245925-26035/minidumps/minidump-test/884bfadb-15be-463e-ab19968c-be52ffe0.dmp
> /home/jenkins/workspace/kudu/src/kudu/util/minidump-test.cc:71: Failure
> Death test: { abort(); }
> Result: died but not with expected error.
> Expected: kudu::MinidumpDeathTest_TestRegisterAndDelete_Test::TestBody()
> Actual msg:
> [ DEATH ] Wrote minidump to
> /tmp/kudutest-0/minidump-test.MinidumpDeathTest.TestRegisterAndDelete.1583720249245925-26035/minidumps/minidump-test/884bfadb-15be-463e-ab19968c-be52ffe0.dmp
> [ DEATH ] *** Aborted at 1583720249 (unix time) try "date -d @1583720249"
> if you are using GNU date ***
> [ DEATH ] PC: @ 0x0 (unknown)
> [ DEATH ] *** SIGABRT (@0x65b6) received by PID 26038 (TID 0xffff845d9010)
> from PID 26038; stack trace: ***
> [ DEATH ] @ 0xffff85875688 ([vdso]+0x687)
> [ DEATH ] @ 0xffff84cba4d8 raise
> [ DEATH ] @ 0xffff84cba464 raise
> [ DEATH ]
> I0309 02:17:29.562698 26035 test_util.cc:147]
> -----------------------------------------------
> I0309 02:17:29.562726 26035 test_util.cc:148] Had fatal failures, leaving
> test files at
> /tmp/kudutest-0/minidump-test.MinidumpDeathTest.TestRegisterAndDelete.1583720249245925-26035
> [ FAILED ] MinidumpDeathTest.TestRegisterAndDelete (316 ms)
> [ RUN ] MinidumpDeathTest.TestCheckStackTraceAndMinidump
> I0309 02:17:29.563597 26035 minidump.cc:241] Setting minidump size limit to
> 20M
> [WARNING]
> /home/jenkins/workspace/kudu/thirdparty/src/googletest-release-1.8.0/googletest/src/gtest-death-test.cc:836::
> Death tests use fork(), which is unsafe particularly in a threaded context.
> For this test, Google Test detected 3 threads.
> Wrote minidump to
> /tmp/kudutest-0/minidump-test.MinidumpDeathTest.TestCheckStackTraceAndMinidump.1583720249245925-26035/minidumps/minidump-test/578fe2af-ffae-47a9-54c969bb-d909b4b5.dmp
> /home/jenkins/workspace/kudu/src/kudu/util/minidump-test.cc:97: Failure
> Death test: { while (google::_Check_string* _result = google::Check_EQImpl(
> google::GetReferenceableValue(1), google::GetReferenceableValue(0), "1" " "
> "==" " " "0"))
> google::LogMessageFatal("/home/jenkins/workspace/kudu/src/kudu/util/minidump-test.cc",
> 97, google::CheckOpString(_result)).stream(); }
> Result: died but not with expected error.
> Expected:
> kudu::MinidumpDeathTest_TestCheckStackTraceAndMinidump_Test::TestBody()
> Actual msg:
> [ DEATH ] F0309 02:17:29.564812 26042 minidump-test.cc:97] Check failed: 1
> == 0 (1 vs. 0)
> [ DEATH ] *** Check failure stack trace: ***
> [ DEATH ] Wrote minidump to
> /tmp/kudutest-0/minidump-test.MinidumpDeathTest.TestCheckStackTraceAndMinidump.1583720249245925-26035/minidumps/minidump-test/578fe2af-ffae-47a9-54c969bb-d909b4b5.dmp
> [ DEATH ] *** Aborted at 1583720249 (unix time) try "date -d @1583720249"
> if you are using GNU date ***
> [ DEATH ] PC: @ 0x0 (unknown)
> [ DEATH ] *** SIGABRT (@0x65ba) received by PID 26042 (TID 0xffff845d9010)
> from PID 26042; stack trace: ***
> [ DEATH ] @ 0xffff85875688 ([vdso]+0x687)
> [ DEATH ] @ 0xffff84cba4d8 raise
> [ DEATH ] @ 0xffff84cba464 raise
> [ DEATH ]
> I0309 02:17:29.752290 26035 test_util.cc:147]
> -----------------------------------------------
> I0309 02:17:29.752316 26035 test_util.cc:148] Had fatal failures, leaving
> test files at
> /tmp/kudutest-0/minidump-test.MinidumpDeathTest.TestCheckStackTraceAndMinidump.1583720249245925-26035
> [ FAILED ] MinidumpDeathTest.TestCheckStackTraceAndMinidump (190 ms)
> [----------] 2 tests from MinidumpDeathTest (506 ms total)
> ......
> I found stack stracing of glog doesn't support on aarch64, so the death
> assertion is failed, I have proposed a pr to google/glog
> https://github.com/google/glog/pull/529
--
This message was sent by Atlassian Jira
(v8.3.4#803005)