You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@kudu.apache.org by "shuna (Jira)" <ji...@apache.org> on 2020/04/01 10:28:00 UTC

[jira] [Commented] (KUDU-3072) minidump-test failed on aarch64 server

    [ 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)