Alan Burlison created HADOOP-12629:
--------------------------------------

             Summary: Misaligned memory accesses in CRC32 native code causes 
coredumps
                 Key: HADOOP-12629
                 URL: https://issues.apache.org/jira/browse/HADOOP-12629
             Project: Hadoop Common
          Issue Type: Sub-task
          Components: native
    Affects Versions: 3.0.0
         Environment: Solaris SPARC
            Reporter: Alan Burlison
            Assignee: Alan Burlison


Testing on Solaris SPARC produces multiple SIGBUS core dumps, which are usually 
due to misaligned memory access. Some representative stack traces are below:

{code}
hadoop-hdfs-project/hadoop-hdfs/core
 --- called from signal handler with signal 10 (SIGBUS) ---
 ffffffff5d3245ec crc32c_sb8 (ffffffff, 7ada5f02f, 0, 40, ff0000, ff00) + 9c
 ffffffff5d324954 pipelined_crc32c_sb8 (ffffffff4a3fe0b4, ffffffff4a3fe0b8, 
ffffffff4a3fe0bc, 7ada5f02f, 200, 2) + 24
 ffffffff5d324c58 bulk_crc (7ada5f02f, 400, 7ada5f027, 2, 200, 
ffffffff4a3fe1b0) + 1f8
 ffffffff5d3242d0 
Java_org_apache_hadoop_util_NativeCrc32_nativeComputeChunkedSumsByteArray 
(1029b99e8, ffffffff4a3fe4e8, 200, 100000, ffffffff4a3fe4f8, 1f) + 1c0
 ffffffff70810dcc * 
org/apache/hadoop/util/NativeCrc32.nativeComputeChunkedSumsByteArray(II[BI[BIILjava/lang/String;JZ)V+14336
 ffffffff70810d70 * 
org/apache/hadoop/util/NativeCrc32.nativeComputeChunkedSumsByteArray(II[BI[BIILjava/lang/String;JZ)V+0
 ffffffff70806f44 * 
org/apache/hadoop/util/NativeCrc32.verifyChunkedSumsByteArray(II[BI[BIILjava/lang/String;J)V+15
 (line 138)
 ffffffff70806f44 * 
org/apache/hadoop/util/DataChecksum.verifyChunkedSums([BII[BILjava/lang/String;J)V+39
 (line 691)
 ffffffff70806f44 * 
org/apache/hadoop/util/DataChecksum.verifyChunkedSums(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;Ljava/lang/String;J)V+59
 (line 585)
 ffffffff70806f44 * 
org/apache/hadoop/hdfs/server/datanode/BlockReceiver.verifyChunks(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)V+11
 (line 914)
 ffffffff70806f44 * 
org/apache/hadoop/hdfs/server/datanode/BlockReceiver.receivePacket()I+658 (line 
1092)
 ffffffff70806cb4 * 
org/apache/hadoop/hdfs/server/datanode/BlockReceiver.receiveBlock(Ljava/io/DataOutputStream;Ljava/io/DataInputStream;Ljava/io/DataOutputStream;Ljava/lang/String;Lorg/apache/hadoop/hdfs/util/DataTransferThrottler;[Lorg/apache/hadoop/hdfs/protocol/DatanodeInf+97
 (line 1786)
 ffffffff70806f44 * 
org/apache/hadoop/hdfs/server/datanode/DataXceiver.writeBlock(Lorg/apache/hadoop/hdfs/protocol/ExtendedBlock;Lorg/apache/hadoop/fs/StorageType;Lorg/apache/hadoop/security/token/Token;Ljava/lang/String;[Lorg/apache/hadoop/hdfs/protocol/DatanodeInfo;[Lorg/apa+1428
 (line 1403)
 ffffffff70806f44 * 
org/apache/hadoop/hdfs/protocol/datatransfer/Receiver.opWriteBlock(Ljava/io/DataInputStream;)V+178
 (line 327)
 ffffffff70806f44 * 
org/apache/hadoop/hdfs/protocol/datatransfer/Receiver.processOp(Lorg/apache/hadoop/hdfs/protocol/datatransfer/Op;)V+72
 (line 196)
 ffffffff70806f44 * 
org/apache/hadoop/hdfs/server/datanode/DataXceiver.run()V+539 (line 778)

hadoop-hdfs-project/hadoop-hdfs/src/contrib/bkjournal/core
 --- called from signal handler with signal 10 (SIGBUS) ---
 ffffffff5a324c8c bulk_crc (7b3ef0e53, 1, 7b3ef0e4f, 0, 0, ffffffff2d5fe230) + 
22c
 ffffffff5a3242d0 
Java_org_apache_hadoop_util_NativeCrc32_nativeComputeChunkedSumsByteArray 
(1048ec1e8, ffffffff2d5fe568, 200, 100000, ffffffff2d5fe578, 1f) + 1c0
 ffffffff70810dcc * 
org/apache/hadoop/util/NativeCrc32.nativeComputeChunkedSumsByteArray(II[BI[BIILjava/lang/String;JZ)V+14336
 ffffffff70810d70 * 
org/apache/hadoop/util/NativeCrc32.nativeComputeChunkedSumsByteArray(II[BI[BIILjava/lang/String;JZ)V+0
 ffffffff70806f44 * 
org/apache/hadoop/util/NativeCrc32.verifyChunkedSumsByteArray(II[BI[BIILjava/lang/String;J)V+15
 (line 138)
 ffffffff70806f44 * 
org/apache/hadoop/util/DataChecksum.verifyChunkedSums([BII[BILjava/lang/String;J)V+39
 (line 691)
 ffffffff70806f44 * 
org/apache/hadoop/util/DataChecksum.verifyChunkedSums(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;Ljava/lang/String;J)V+59
 (line 585)
 ffffffff70806f44 * 
org/apache/hadoop/hdfs/server/datanode/BlockReceiver.verifyChunks(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)V+11
 (line 914)
 ffffffff70806f44 * 
org/apache/hadoop/hdfs/server/datanode/BlockReceiver.receivePacket()I+658 (line 
1092)
 ffffffff70806cb4 * 
org/apache/hadoop/hdfs/server/datanode/BlockReceiver.receiveBlock(Ljava/io/DataOutputStream;Ljava/io/DataInputStream;Ljava/io/DataOutputStream;Ljava/lang/String;Lorg/apache/hadoop/hdfs/util/DataTransferThrottler;[Lorg/apache/hadoop/hdfs/protocol/DatanodeInf+97
 (line 1786)
 ffffffff70806f44 * 
org/apache/hadoop/hdfs/server/datanode/DataXceiver.writeBlock(Lorg/apache/hadoop/hdfs/protocol/ExtendedBlock;Lorg/apache/hadoop/fs/StorageType;Lorg/apache/hadoop/security/token/Token;Ljava/lang/String;[Lorg/apache/hadoop/hdfs/protocol/DatanodeInfo;[Lorg/apa+1428
 (line 1403)
 ffffffff70806f44 * 
org/apache/hadoop/hdfs/protocol/datatransfer/Receiver.opWriteBlock(Ljava/io/DataInputStream;)V+178
 (line 327)
 ffffffff70806f44 * 
org/apache/hadoop/hdfs/protocol/datatransfer/Receiver.processOp(Lorg/apache/hadoop/hdfs/protocol/datatransfer/Op;)V+72
 (line 196)
 ffffffff70806f44 * 
org/apache/hadoop/hdfs/server/datanode/DataXceiver.run()V+539 (line 778)

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/core
 --- called from signal handler with signal 10 (SIGBUS) ---
 ffffffff5ea247dc crc32_zlib_sb8 (ffffffff, 7ac9d9c39, 0, 40, ff0000, ff00) + 9c
 ffffffff5ea249ec pipelined_crc32_zlib_sb8 (ffffffff7e1fbcb4, ffffffff7e1fbcb8, 
ffffffff7e1fbcbc, 7ac9d9c39, 200, 3) + 24
 ffffffff5ea24b1c bulk_crc (7ac9d9c39, 1200, 7ac975448, 9, 200, 0) + bc
 ffffffff5ea24400 
Java_org_apache_hadoop_util_NativeCrc32_nativeComputeChunkedSumsByteArray 
(1001839e8, ffffffff7e1fc0e8, 200, 100000, ffffffff7e1fc0f8, 0) + 2f0
 ffffffff70810dcc * 
org/apache/hadoop/util/NativeCrc32.nativeComputeChunkedSumsByteArray(II[BI[BIILjava/lang/String;JZ)V+-20945
 ffffffff70810d70 * 
org/apache/hadoop/util/NativeCrc32.nativeComputeChunkedSumsByteArray(II[BI[BIILjava/lang/String;JZ)V+0
 ffffffff70806f44 * 
org/apache/hadoop/util/NativeCrc32.calculateChunkedSumsByteArray(II[BI[BII)V+14 
(line 172)
 ffffffff70806f44 * 
org/apache/hadoop/util/DataChecksum.calculateChunkedSums([BII[BI)V+35 (line 857)
 ffffffff70806f44 * 
org/apache/hadoop/fs/FSOutputSummer.writeChecksumChunks([BII)V+12 (line 422)
 ffffffff70806f44 * org/apache/hadoop/fs/FSOutputSummer.write1([BII)I+28 (line 
245)
 ffffffff70806cb4 * org/apache/hadoop/fs/FSOutputSummer.write([BII)V+49 (line 
216)
 ffffffff70806f44 * 
org/apache/hadoop/fs/FSDataOutputStream$PositionCache.write([BII)V+7 (line 114)
 ffffffff70806f44 * java/io/DataOutputStream.write([BII)V+7 (line 214)
 ffffffff70806f44 * 
org/apache/hadoop/io/file/tfile/SimpleBufferedOutputStream.write([BII)V+20 
(line 112)
 ffffffff70806f44 * java/io/DataOutputStream.write([BII)V+7 (line 214)
 ffffffff70806f44 * 
org/apache/hadoop/io/file/tfile/Chunk$ChunkEncoder.writeChunk([BIIZ)V+24 (line 
513)
 ffffffff70806f44 * 
org/apache/hadoop/io/file/tfile/Chunk$ChunkEncoder.close()V+18 (line 682)
 ffffffff70806f44 * java/io/FilterOutputStream.close()V+12 (line 319)
 ffffffff70806f44 * 
org/apache/hadoop/io/file/tfile/TFile$Writer$ValueRegister.close()V+23 (line 
994)
 ffffffff70806f44 * 
org/apache/hadoop/yarn/logaggregation/AggregatedLogFormat$LogWriter.append(Lorg/apache/hadoop/yarn/logaggregation/AggregatedLogFormat$LogKey;Lorg/apache/hadoop/yarn/logaggregation/AggregatedLogFormat$LogValue;)V+55
 (line 892)
 ffffffff70806f44 * 
org/apache/hadoop/yarn/logaggregation/TestAggregatedLogFormat.writeSrcFileAndALog(Lorg/apache/hadoop/fs/Path;Ljava/lang/String;JLorg/apache/hadoop/fs/Path;Lorg/apache/hadoop/fs/Path;Lorg/apache/hadoop/yarn/api/records/ContainerId;)V+209
 (line 320)
 ffffffff70806f44 * 
org/apache/hadoop/yarn/logaggregation/TestAggregatedLogFormat.testForCorruptedAggregatedLogs()V+114
 (line 209)
{code}

Full list of core files:

{code}
hadoop-hdfs-project/hadoop-hdfs/core
hadoop-hdfs-project/hadoop-hdfs/src/contrib/bkjournal/core
hadoop-hdfs-project/hadoop-hdfs-native-client/target/main/native/libhdfs/core
hadoop-hdfs-project/hadoop-hdfs-nfs/core
hadoop-tools/hadoop-archive-logs/core
hadoop-tools/hadoop-archives/core
hadoop-tools/hadoop-streaming/core
hadoop-tools/hadoop-datajoin/core
hadoop-tools/hadoop-extras/core
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/core
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/core
hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/core
hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/core
hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-nativetask/core
hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/core
hadoop-common-project/hadoop-common/core
{code}




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to