Author: cos
Date: Mon Nov 16 22:49:16 2009
New Revision: 881021
URL: http://svn.apache.org/viewvc?rev=881021&view=rev
Log:
HDFS-706. svn merge -c 881017 from trunk to branch 0.21
Modified:
hadoop/hdfs/branches/branch-0.21/ (props changed)
hadoop/hdfs/branches/branch-0.21/.eclipse.templates/.launches/ (props
changed)
hadoop/hdfs/branches/branch-0.21/CHANGES.txt
hadoop/hdfs/branches/branch-0.21/build.xml (props changed)
hadoop/hdfs/branches/branch-0.21/src/contrib/hdfsproxy/ (props changed)
hadoop/hdfs/branches/branch-0.21/src/java/ (props changed)
hadoop/hdfs/branches/branch-0.21/src/java/org/apache/hadoop/hdfs/protocol/RecoveryInProgressException.java
(props changed)
hadoop/hdfs/branches/branch-0.21/src/java/org/apache/hadoop/hdfs/server/datanode/ReplicaInfo.java
(props changed)
hadoop/hdfs/branches/branch-0.21/src/test/aop/org/apache/hadoop/fi/FiHFlushTestUtil.java
hadoop/hdfs/branches/branch-0.21/src/test/aop/org/apache/hadoop/hdfs/HFlushAspects.aj
hadoop/hdfs/branches/branch-0.21/src/test/aop/org/apache/hadoop/hdfs/TestFiHFlush.java
hadoop/hdfs/branches/branch-0.21/src/test/aop/org/apache/hadoop/hdfs/protocol/
(props changed)
hadoop/hdfs/branches/branch-0.21/src/test/hdfs/ (props changed)
hadoop/hdfs/branches/branch-0.21/src/webapps/datanode/ (props changed)
hadoop/hdfs/branches/branch-0.21/src/webapps/hdfs/ (props changed)
hadoop/hdfs/branches/branch-0.21/src/webapps/secondary/ (props changed)
Propchange: hadoop/hdfs/branches/branch-0.21/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Nov 16 22:49:16 2009
@@ -1,3 +1,3 @@
/hadoop/core/branches/branch-0.19/hdfs:713112
/hadoop/hdfs/branches/HDFS-265:796829-820463
-/hadoop/hdfs/trunk:817853-817863,818294-818298,824552,824944,826149,828116,828926,829880,829894,830003,831436,832043,833499,835728,880971,881014
+/hadoop/hdfs/trunk:817853-817863,818294-818298,824552,824944,826149,828116,828926,829880,829894,830003,831436,832043,833499,835728,880971,881014,881017
Propchange: hadoop/hdfs/branches/branch-0.21/.eclipse.templates/.launches/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Nov 16 22:49:16 2009
@@ -1 +1 @@
-/hadoop/hdfs/trunk/.eclipse.templates/.launches:817853-817863,824552,824944,826149,828116,828926,829880,829894,830003,831436,832043,833499,835728,880971,881014
+/hadoop/hdfs/trunk/.eclipse.templates/.launches:817853-817863,824552,824944,826149,828116,828926,829880,829894,830003,831436,832043,833499,835728,880971,881014,881017
Modified: hadoop/hdfs/branches/branch-0.21/CHANGES.txt
URL:
http://svn.apache.org/viewvc/hadoop/hdfs/branches/branch-0.21/CHANGES.txt?rev=881021&r1=881020&r2=881021&view=diff
==============================================================================
--- hadoop/hdfs/branches/branch-0.21/CHANGES.txt (original)
+++ hadoop/hdfs/branches/branch-0.21/CHANGES.txt Mon Nov 16 22:49:16 2009
@@ -453,6 +453,8 @@
HDFS-741. TestHFlush test doesn't seek() past previously written part of
the file. (cos)
+ HDFS-706. Intermittent failures in TestFiHFlush. (cos)
+
Release 0.20.2 - Unreleased
IMPROVEMENTS
Propchange: hadoop/hdfs/branches/branch-0.21/build.xml
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Nov 16 22:49:16 2009
@@ -1,4 +1,4 @@
/hadoop/core/branches/branch-0.19/hdfs/build.xml:713112
/hadoop/core/trunk/build.xml:779102
/hadoop/hdfs/branches/HDFS-265/build.xml:796829-820463
-/hadoop/hdfs/trunk/build.xml:817853-817863,818294-818298,824552,824944,825229,826149,828116,828926,829258,829880,829894,830003,831436,832043,833499,835728,880971,881014
+/hadoop/hdfs/trunk/build.xml:817853-817863,818294-818298,824552,824944,825229,826149,828116,828926,829258,829880,829894,830003,831436,832043,833499,835728,880971,881014,881017
Propchange: hadoop/hdfs/branches/branch-0.21/src/contrib/hdfsproxy/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Nov 16 22:49:16 2009
@@ -1,4 +1,4 @@
/hadoop/core/branches/branch-0.19/hdfs/src/contrib/hdfsproxy:713112
/hadoop/core/trunk/src/contrib/hdfsproxy:776175-784663
/hadoop/hdfs/branches/HDFS-265/src/contrib/hdfsproxy:796829-820463
-/hadoop/hdfs/trunk/src/contrib/hdfsproxy:817853-817863,818294-818298,824552,824944,826149,828116,828926,829880,829894,830003,831436,832043,833499,835728,880971,881014
+/hadoop/hdfs/trunk/src/contrib/hdfsproxy:817853-817863,818294-818298,824552,824944,826149,828116,828926,829880,829894,830003,831436,832043,833499,835728,880971,881014,881017
Propchange: hadoop/hdfs/branches/branch-0.21/src/java/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Nov 16 22:49:16 2009
@@ -1,4 +1,4 @@
/hadoop/core/branches/branch-0.19/hdfs/src/java:713112
/hadoop/core/trunk/src/hdfs:776175-785643,785929-786278
/hadoop/hdfs/branches/HDFS-265/src/java:796829-820463
-/hadoop/hdfs/trunk/src/java:817853-817863,818294-818298,824552,824944,826149,828116,828926,829880,829894,830003,831436,832043,833499,835728,880971,881014
+/hadoop/hdfs/trunk/src/java:817853-817863,818294-818298,824552,824944,826149,828116,828926,829880,829894,830003,831436,832043,833499,835728,880971,881014,881017
Propchange:
hadoop/hdfs/branches/branch-0.21/src/java/org/apache/hadoop/hdfs/protocol/RecoveryInProgressException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Nov 16 22:49:16 2009
@@ -1,5 +1,5 @@
/hadoop/core/branches/branch-0.19/hdfs/src/java/org/apache/hadoop/hdfs/server/datanode/RecoveryInProgressException.java:713112
/hadoop/core/trunk/src/hdfs/org/apache/hadoop/hdfs/server/datanode/RecoveryInProgressException.java:776175-785643,785929-786278
/hadoop/hdfs/branches/branch-0.21/src/java/org/apache/hadoop/hdfs/server/datanode/RecoveryInProgressException.java:817353-818319,818321-818553
-/hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/protocol/RecoveryInProgressException.java:817853-817863,824552,824944,826149,828116,828926,829880,829894,830003,831436,832043,833499,835728,880971,881014
+/hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/protocol/RecoveryInProgressException.java:817853-817863,824552,824944,826149,828116,828926,829880,829894,830003,831436,832043,833499,835728,880971,881014,881017
/hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/datanode/RecoveryInProgressException.java:796829-800617,800619-803337,804756-805652,808672-809439,811495-813103,813105-813630,814223-815964,818294-818298
Propchange:
hadoop/hdfs/branches/branch-0.21/src/java/org/apache/hadoop/hdfs/server/datanode/ReplicaInfo.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Nov 16 22:49:16 2009
@@ -3,4 +3,4 @@
/hadoop/core/trunk/src/hdfs/org/apache/hadoop/hdfs/server/datanode/DatanodeBlockInfo.java:776175-785643,785929-786278
/hadoop/core/trunk/src/hdfs/org/apache/hadoop/hdfs/server/datanode/ReplicaInfo.java:776175-785643,785929-786278
/hadoop/hdfs/branches/HDFS-265/src/java/org/apache/hadoop/hdfs/server/datanode/ReplicaInfo.java:796829-820463
-/hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/datanode/ReplicaInfo.java:817853-817863,818294-818298,824552,824944,826149,828116,828926,829880,829894,830003,831436,832043,833499,835728,880971,881014
+/hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/datanode/ReplicaInfo.java:817853-817863,818294-818298,824552,824944,826149,828116,828926,829880,829894,830003,831436,832043,833499,835728,880971,881014,881017
Modified:
hadoop/hdfs/branches/branch-0.21/src/test/aop/org/apache/hadoop/fi/FiHFlushTestUtil.java
URL:
http://svn.apache.org/viewvc/hadoop/hdfs/branches/branch-0.21/src/test/aop/org/apache/hadoop/fi/FiHFlushTestUtil.java?rev=881021&r1=881020&r2=881021&view=diff
==============================================================================
---
hadoop/hdfs/branches/branch-0.21/src/test/aop/org/apache/hadoop/fi/FiHFlushTestUtil.java
(original)
+++
hadoop/hdfs/branches/branch-0.21/src/test/aop/org/apache/hadoop/fi/FiHFlushTestUtil.java
Mon Nov 16 22:49:16 2009
@@ -61,5 +61,7 @@
public static class HFlushTest extends DataTransferTest {
public final ActionContainer<DatanodeID> fiCallHFlush =
new ActionContainer<DatanodeID>();
+ public final ActionContainer<Integer> fiErrorOnCallHFlush =
+ new ActionContainer<Integer>();
}
}
\ No newline at end of file
Modified:
hadoop/hdfs/branches/branch-0.21/src/test/aop/org/apache/hadoop/hdfs/HFlushAspects.aj
URL:
http://svn.apache.org/viewvc/hadoop/hdfs/branches/branch-0.21/src/test/aop/org/apache/hadoop/hdfs/HFlushAspects.aj?rev=881021&r1=881020&r2=881021&view=diff
==============================================================================
---
hadoop/hdfs/branches/branch-0.21/src/test/aop/org/apache/hadoop/hdfs/HFlushAspects.aj
(original)
+++
hadoop/hdfs/branches/branch-0.21/src/test/aop/org/apache/hadoop/hdfs/HFlushAspects.aj
Mon Nov 16 22:49:16 2009
@@ -54,7 +54,11 @@
}
if (pt instanceof HFlushTest)
for (int i=0; i<nodes.length; i++) {
- ((HFlushTest)pt).fiCallHFlush.run(nodes[i]);
+ try {
+ ((HFlushTest)pt).fiCallHFlush.run(nodes[i]);
+ } catch (IOException ioe) {
+ ((HFlushTest)pt).fiErrorOnCallHFlush.run(i);
+ }
}
}
}
Modified:
hadoop/hdfs/branches/branch-0.21/src/test/aop/org/apache/hadoop/hdfs/TestFiHFlush.java
URL:
http://svn.apache.org/viewvc/hadoop/hdfs/branches/branch-0.21/src/test/aop/org/apache/hadoop/hdfs/TestFiHFlush.java?rev=881021&r1=881020&r2=881021&view=diff
==============================================================================
---
hadoop/hdfs/branches/branch-0.21/src/test/aop/org/apache/hadoop/hdfs/TestFiHFlush.java
(original)
+++
hadoop/hdfs/branches/branch-0.21/src/test/aop/org/apache/hadoop/hdfs/TestFiHFlush.java
Mon Nov 16 22:49:16 2009
@@ -18,15 +18,17 @@
package org.apache.hadoop.hdfs;
-import java.io.IOException;
-
import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fi.DataTransferTestUtil;
import org.apache.hadoop.fi.FiHFlushTestUtil;
-import org.apache.hadoop.fi.FiTestUtil;
import org.apache.hadoop.fi.FiHFlushTestUtil.DerrAction;
import org.apache.hadoop.fi.FiHFlushTestUtil.HFlushTest;
+import org.apache.hadoop.fi.FiTestUtil;
+import static org.junit.Assert.assertTrue;
import org.junit.Test;
+import java.io.IOException;
+
/** Class provides basic fault injection tests according to the test plan
of HDFS-265
*/
@@ -42,16 +44,22 @@
* @throws IOException in case of any errors
*/
private static void runDiskErrorTest (final Configuration conf,
- final String methodName, final int block_size, DerrAction a)
+ final String methodName, final int block_size, DerrAction a, int index,
+ boolean trueVerification)
throws IOException {
FiTestUtil.LOG.info("Running " + methodName + " ...");
final HFlushTest hft = (HFlushTest) FiHFlushTestUtil.initTest();
hft.fiCallHFlush.set(a);
+ hft.fiErrorOnCallHFlush.set(new
DataTransferTestUtil.VerificationAction(methodName, index));
TestHFlush.doTheJob(conf, methodName, block_size, (short)3);
+ if (!trueVerification)
+ assertTrue(!hft.isSuccess());
+ else
+ assertTrue(hft.isSuccess());
}
/** The tests calls
- * {...@link #runDiskErrorTest(Configuration, String, int, DerrAction)}
+ * {...@link #runDiskErrorTest(Configuration, String, int, DerrAction, int,
boolean)}
* to make a number of writes within a block boundaries.
* Although hflush() is called the test shouldn't expect an IOException
* in this case because the invocation is happening after write() call
@@ -62,16 +70,16 @@
public void hFlushFi01_a() throws IOException {
final String methodName = FiTestUtil.getMethodName();
runDiskErrorTest(new HdfsConfiguration(), methodName,
- AppendTestUtil.BLOCK_SIZE, new DerrAction(methodName, 0));
+ AppendTestUtil.BLOCK_SIZE, new DerrAction(methodName, 0), 0, false);
}
/** The tests calls
- * {...@link #runDiskErrorTest(Configuration, String, int, DerrAction)}
+ * {...@link #runDiskErrorTest(Configuration, String, int, DerrAction, int,
boolean)}
* to make a number of writes across a block boundaries.
* hflush() is called after each write() during a pipeline life time.
* Thus, injected fault ought to be triggered for 0th datanode
*/
- @Test(expected = IOException.class)
+ @Test
public void hFlushFi01_b() throws IOException {
final String methodName = FiTestUtil.getMethodName();
Configuration conf = new HdfsConfiguration();
@@ -80,14 +88,14 @@
conf.setInt(DFSConfigKeys.DFS_BYTES_PER_CHECKSUM_KEY,
customPerChecksumSize);
conf.setLong(DFSConfigKeys.DFS_BLOCK_SIZE_KEY, customBlockSize);
runDiskErrorTest(conf, methodName,
- customBlockSize, new DerrAction(methodName, 0));
+ customBlockSize, new DerrAction(methodName, 0), 0, true);
}
/** Similar to {...@link #hFlushFi01_b()} but writing happens
* across block and checksum's boundaries
*/
- @Test(expected = IOException.class)
- public void hFlushFi01_c() throws IOException {
+ @Test
+ public void hFlushFi01_c() throws Exception {
final String methodName = FiTestUtil.getMethodName();
Configuration conf = new HdfsConfiguration();
int customPerChecksumSize = 400;
@@ -95,7 +103,7 @@
conf.setInt(DFSConfigKeys.DFS_BYTES_PER_CHECKSUM_KEY,
customPerChecksumSize);
conf.setLong(DFSConfigKeys.DFS_BLOCK_SIZE_KEY, customBlockSize);
runDiskErrorTest(conf, methodName,
- customBlockSize, new DerrAction(methodName, 0));
+ customBlockSize, new DerrAction(methodName, 0), 0, true);
}
/** Similar to {...@link #hFlushFi01_a()} but for a pipeline's 1st datanode
@@ -104,12 +112,12 @@
public void hFlushFi02_a() throws IOException {
final String methodName = FiTestUtil.getMethodName();
runDiskErrorTest(new HdfsConfiguration(), methodName,
- AppendTestUtil.BLOCK_SIZE, new DerrAction(methodName, 1));
+ AppendTestUtil.BLOCK_SIZE, new DerrAction(methodName, 1), 1, false);
}
/** Similar to {...@link #hFlushFi01_b()} but for a pipeline's 1st datanode
*/
-...@test(expected = IOException.class)
+ @Test
public void hFlushFi02_b() throws IOException {
final String methodName = FiTestUtil.getMethodName();
Configuration conf = new HdfsConfiguration();
@@ -118,12 +126,12 @@
conf.setInt(DFSConfigKeys.DFS_BYTES_PER_CHECKSUM_KEY,
customPerChecksumSize);
conf.setLong(DFSConfigKeys.DFS_BLOCK_SIZE_KEY, customBlockSize);
runDiskErrorTest(conf, methodName,
- customBlockSize, new DerrAction(methodName, 1));
+ customBlockSize, new DerrAction(methodName, 1), 1, true);
}
/** Similar to {...@link #hFlushFi01_c()} but for a pipeline's 1st datanode
*/
- @Test(expected = IOException.class)
+ @Test
public void hFlushFi02_c() throws IOException {
final String methodName = FiTestUtil.getMethodName();
Configuration conf = new HdfsConfiguration();
@@ -132,7 +140,7 @@
conf.setInt(DFSConfigKeys.DFS_BYTES_PER_CHECKSUM_KEY,
customPerChecksumSize);
conf.setLong(DFSConfigKeys.DFS_BLOCK_SIZE_KEY, customBlockSize);
runDiskErrorTest(conf, methodName,
- customBlockSize, new DerrAction(methodName, 1));
+ customBlockSize, new DerrAction(methodName, 1), 1, true);
}
/** Similar to {...@link #hFlushFi01_a()} but for a pipeline's 2nd datanode
@@ -141,12 +149,12 @@
public void hFlushFi03_a() throws IOException {
final String methodName = FiTestUtil.getMethodName();
runDiskErrorTest(new HdfsConfiguration(), methodName,
- AppendTestUtil.BLOCK_SIZE, new DerrAction(methodName, 2));
+ AppendTestUtil.BLOCK_SIZE, new DerrAction(methodName, 2), 2, false);
}
/** Similar to {...@link #hFlushFi01_b()} but for a pipeline's 2nd datanode
*/
- @Test(expected = IOException.class)
+ @Test
public void hFlushFi03_b() throws IOException {
final String methodName = FiTestUtil.getMethodName();
Configuration conf = new HdfsConfiguration();
@@ -155,12 +163,12 @@
conf.setInt(DFSConfigKeys.DFS_BYTES_PER_CHECKSUM_KEY,
customPerChecksumSize);
conf.setLong(DFSConfigKeys.DFS_BLOCK_SIZE_KEY, customBlockSize);
runDiskErrorTest(conf, methodName,
- customBlockSize, new DerrAction(methodName, 2));
+ customBlockSize, new DerrAction(methodName, 2), 2, true);
}
/** Similar to {...@link #hFlushFi01_c()} but for a pipeline's 2nd datanode
*/
- @Test(expected = IOException.class)
+ @Test
public void hFlushFi03_c() throws IOException {
final String methodName = FiTestUtil.getMethodName();
Configuration conf = new HdfsConfiguration();
@@ -169,6 +177,6 @@
conf.setInt(DFSConfigKeys.DFS_BYTES_PER_CHECKSUM_KEY,
customPerChecksumSize);
conf.setLong(DFSConfigKeys.DFS_BLOCK_SIZE_KEY, customBlockSize);
runDiskErrorTest(conf, methodName,
- customBlockSize, new DerrAction(methodName, 2));
+ customBlockSize, new DerrAction(methodName, 2), 2, true);
}
}
Propchange:
hadoop/hdfs/branches/branch-0.21/src/test/aop/org/apache/hadoop/hdfs/protocol/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Nov 16 22:49:16 2009
@@ -1 +1 @@
-/hadoop/hdfs/trunk/src/test/aop/org/apache/hadoop/hdfs/protocol:817853-817863,824552,824944,826149,828116,828926,829880,829894,830003,831436,832043,833499,835728,880971,881014
+/hadoop/hdfs/trunk/src/test/aop/org/apache/hadoop/hdfs/protocol:817853-817863,824552,824944,826149,828116,828926,829880,829894,830003,831436,832043,833499,835728,880971,881014,881017
Propchange: hadoop/hdfs/branches/branch-0.21/src/test/hdfs/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Nov 16 22:49:16 2009
@@ -1,4 +1,4 @@
/hadoop/core/branches/branch-0.19/hdfs/src/test/hdfs:713112
/hadoop/core/trunk/src/test/hdfs:776175-785643
/hadoop/hdfs/branches/HDFS-265/src/test/hdfs:796829-820463
-/hadoop/hdfs/trunk/src/test/hdfs:817853-817863,818294-818298,824552,824944,826149,828116,828926,829880,829894,830003,831436,832043,833499,835728,880971,881014
+/hadoop/hdfs/trunk/src/test/hdfs:817853-817863,818294-818298,824552,824944,826149,828116,828926,829880,829894,830003,831436,832043,833499,835728,880971,881014,881017
Propchange: hadoop/hdfs/branches/branch-0.21/src/webapps/datanode/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Nov 16 22:49:16 2009
@@ -1,4 +1,4 @@
/hadoop/core/branches/branch-0.19/hdfs/src/webapps/datanode:713112
/hadoop/core/trunk/src/webapps/datanode:776175-784663
/hadoop/hdfs/branches/HDFS-265/src/webapps/datanode:796829-820463
-/hadoop/hdfs/trunk/src/webapps/datanode:817853-817863,818294-818298,824552,824944,826149,828116,828926,829880,829894,830003,831436,832043,833499,835728,880971,881014
+/hadoop/hdfs/trunk/src/webapps/datanode:817853-817863,818294-818298,824552,824944,826149,828116,828926,829880,829894,830003,831436,832043,833499,835728,880971,881014,881017
Propchange: hadoop/hdfs/branches/branch-0.21/src/webapps/hdfs/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Nov 16 22:49:16 2009
@@ -1,4 +1,4 @@
/hadoop/core/branches/branch-0.19/hdfs/src/webapps/hdfs:713112
/hadoop/core/trunk/src/webapps/hdfs:776175-784663
/hadoop/hdfs/branches/HDFS-265/src/webapps/hdfs:796829-820463
-/hadoop/hdfs/trunk/src/webapps/hdfs:817853-817863,818294-818298,824552,824944,826149,828116,828926,829880,829894,830003,831436,832043,833499,835728,880971,881014
+/hadoop/hdfs/trunk/src/webapps/hdfs:817853-817863,818294-818298,824552,824944,826149,828116,828926,829880,829894,830003,831436,832043,833499,835728,880971,881014,881017
Propchange: hadoop/hdfs/branches/branch-0.21/src/webapps/secondary/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Nov 16 22:49:16 2009
@@ -1,4 +1,4 @@
/hadoop/core/branches/branch-0.19/hdfs/src/webapps/secondary:713112
/hadoop/core/trunk/src/webapps/secondary:776175-784663
/hadoop/hdfs/branches/HDFS-265/src/webapps/secondary:796829-820463
-/hadoop/hdfs/trunk/src/webapps/secondary:817853-817863,818294-818298,824552,824944,826149,828116,828926,829880,829894,830003,831436,832043,833499,835728,880971,881014
+/hadoop/hdfs/trunk/src/webapps/secondary:817853-817863,818294-818298,824552,824944,826149,828116,828926,829880,829894,830003,831436,832043,833499,835728,880971,881014,881017