Repository: tez
Updated Branches:
  refs/heads/branch-0.7 0e155e718 -> 52f8cd940


TEZ-2602. Throwing EOFException when launching MR job (rbalamohan)

(cherry picked from commit 19fb440041cf6debe7f7a1e1d1f9f0f914a5671a)


Project: http://git-wip-us.apache.org/repos/asf/tez/repo
Commit: http://git-wip-us.apache.org/repos/asf/tez/commit/52f8cd94
Tree: http://git-wip-us.apache.org/repos/asf/tez/tree/52f8cd94
Diff: http://git-wip-us.apache.org/repos/asf/tez/diff/52f8cd94

Branch: refs/heads/branch-0.7
Commit: 52f8cd94081fbb34405bdda4d7cf4919c221208e
Parents: 0e155e7
Author: Rajesh Balamohan <[email protected]>
Authored: Thu Jul 23 07:48:53 2015 +0530
Committer: Rajesh Balamohan <[email protected]>
Committed: Wed Sep 2 19:57:01 2015 +0530

----------------------------------------------------------------------
 CHANGES.txt                                     |   1 +
 .../common/sort/impl/PipelinedSorter.java       |  21 +-
 .../common/sort/impl/TestPipelinedSorter.java   |  49 ++
 .../library/testutils/RandomTextGenerator.java  | 554 +++++++++++++++++++
 4 files changed, 614 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tez/blob/52f8cd94/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 63706c9..c683819 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -6,6 +6,7 @@ Release 0.7.1: Unreleased
 INCOMPATIBLE CHANGES
 
 ALL CHANGES:
+  TEZ-2602. Throwing EOFException when launching MR job
   TEZ-2575. Handle KeyValue pairs size which do not fit in a single block in 
PipelinedSorter
   TEZ-2198. Fix sorter spill counts
   TEZ-2440. Sorter should check for indexCacheList.size() in flush()

http://git-wip-us.apache.org/repos/asf/tez/blob/52f8cd94/tez-runtime-library/src/main/java/org/apache/tez/runtime/library/common/sort/impl/PipelinedSorter.java
----------------------------------------------------------------------
diff --git 
a/tez-runtime-library/src/main/java/org/apache/tez/runtime/library/common/sort/impl/PipelinedSorter.java
 
b/tez-runtime-library/src/main/java/org/apache/tez/runtime/library/common/sort/impl/PipelinedSorter.java
index d43c3a3..fe96688 100644
--- 
a/tez-runtime-library/src/main/java/org/apache/tez/runtime/library/common/sort/impl/PipelinedSorter.java
+++ 
b/tez-runtime-library/src/main/java/org/apache/tez/runtime/library/common/sort/impl/PipelinedSorter.java
@@ -210,17 +210,15 @@ public class PipelinedSorter extends ExternalSorter {
 
     if(newSpan == null) {
       //avoid sort/spill of empty span
-      if (span.length() > 0) {
-        Stopwatch stopWatch = new Stopwatch();
-        stopWatch.start();
-        // sort in the same thread, do not wait for the thread pool
-        merger.add(span.sort(sorter));
-        spill();
-        stopWatch.stop();
-        LOG.info("Time taken for spill " + (stopWatch.elapsedMillis()) + " 
ms");
-        if (pipelinedShuffle) {
-          sendPipelinedShuffleEvents();
-        }
+      Stopwatch stopWatch = new Stopwatch();
+      stopWatch.start();
+      // sort in the same thread, do not wait for the thread pool
+      merger.add(span.sort(sorter));
+      spill();
+      stopWatch.stop();
+      LOG.info("Time taken for spill " + (stopWatch.elapsedMillis()) + " ms");
+      if (pipelinedShuffle) {
+        sendPipelinedShuffleEvents();
       }
       //safe to reset the iterator
       listIterator = bufferList.listIterator();
@@ -236,6 +234,7 @@ public class PipelinedSorter extends ExternalSorter {
         }
       }
       Preconditions.checkArgument(listIterator.hasNext(), "block iterator 
should not be empty");
+      //TODO: fix per item being passed.
       span = new SortSpan((ByteBuffer)listIterator.next().clear(), (1024*1024),
           perItem, ConfigUtils.getIntermediateOutputKeyComparator(this.conf));
     } else {

http://git-wip-us.apache.org/repos/asf/tez/blob/52f8cd94/tez-runtime-library/src/test/java/org/apache/tez/runtime/library/common/sort/impl/TestPipelinedSorter.java
----------------------------------------------------------------------
diff --git 
a/tez-runtime-library/src/test/java/org/apache/tez/runtime/library/common/sort/impl/TestPipelinedSorter.java
 
b/tez-runtime-library/src/test/java/org/apache/tez/runtime/library/common/sort/impl/TestPipelinedSorter.java
index 135dc78..4aa53eb 100644
--- 
a/tez-runtime-library/src/test/java/org/apache/tez/runtime/library/common/sort/impl/TestPipelinedSorter.java
+++ 
b/tez-runtime-library/src/test/java/org/apache/tez/runtime/library/common/sort/impl/TestPipelinedSorter.java
@@ -24,6 +24,7 @@ import 
org.apache.tez.runtime.library.api.TezRuntimeConfiguration;
 import org.apache.tez.runtime.library.common.shuffle.ShuffleUtils;
 import 
org.apache.tez.runtime.library.conf.OrderedPartitionedKVOutputConfig.SorterImpl;
 import org.apache.tez.runtime.library.partitioner.HashPartitioner;
+import org.apache.tez.runtime.library.testutils.RandomTextGenerator;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Assert;
@@ -191,6 +192,54 @@ public class TestPipelinedSorter {
   }
 
   @Test
+  public void test_TEZ_2602_50mb() throws IOException {
+    this.numOutputs = 1;
+    this.initialAvailableMem = 1 *1024 * 1024;
+    
conf.setBoolean(TezRuntimeConfiguration.TEZ_RUNTIME_ENABLE_FINAL_MERGE_IN_OUTPUT,
 true);
+    PipelinedSorter sorter = new PipelinedSorter(this.outputContext, conf, 
numOutputs,
+        initialAvailableMem, 1 << 20);
+
+    Text value = new Text("1");
+    long size = 50 * 1024 * 1024;
+    while(size > 0) {
+      Text key = RandomTextGenerator.generateSentence();
+      sorter.write(key, value);
+      size -= key.getLength();
+    }
+
+    sorter.flush();
+    sorter.close();
+  }
+
+  @Test
+  public void testLargeDataWithMixedKV() throws IOException {
+    this.numOutputs = 1;
+    this.initialAvailableMem = 48 *1024 * 1024;
+    
conf.setBoolean(TezRuntimeConfiguration.TEZ_RUNTIME_ENABLE_FINAL_MERGE_IN_OUTPUT,
 true);
+    PipelinedSorter sorter = new PipelinedSorter(this.outputContext, conf, 
numOutputs,
+        initialAvailableMem, 0);
+
+    //write 10 MB KV
+    Text key = new Text(RandomStringUtils.randomAlphanumeric(10 << 20));
+    Text value = new Text(RandomStringUtils.randomAlphanumeric(10 << 20));
+    sorter.write(key, value);
+
+    //write 24 MB KV. This should cause single record spill
+    key = new Text(RandomStringUtils.randomAlphanumeric(24 << 20));
+    value = new Text(RandomStringUtils.randomAlphanumeric(24 << 20));
+    sorter.write(key, value);
+
+    //write 10 MB KV
+    key = new Text(RandomStringUtils.randomAlphanumeric(10 << 20));
+    value = new Text(RandomStringUtils.randomAlphanumeric(10 << 20));
+    sorter.write(key, value);
+
+    sorter.flush();
+    sorter.close();
+  }
+
+
+  @Test
   // first write a KV which dosnt fit into span, this will spill to disk
   // next write smaller keys, which will update the hint
   public void testWithVariableKVLength1() throws IOException {

http://git-wip-us.apache.org/repos/asf/tez/blob/52f8cd94/tez-runtime-library/src/test/java/org/apache/tez/runtime/library/testutils/RandomTextGenerator.java
----------------------------------------------------------------------
diff --git 
a/tez-runtime-library/src/test/java/org/apache/tez/runtime/library/testutils/RandomTextGenerator.java
 
b/tez-runtime-library/src/test/java/org/apache/tez/runtime/library/testutils/RandomTextGenerator.java
new file mode 100644
index 0000000..c1a05d9
--- /dev/null
+++ 
b/tez-runtime-library/src/test/java/org/apache/tez/runtime/library/testutils/RandomTextGenerator.java
@@ -0,0 +1,554 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.tez.runtime.library.testutils;
+
+import org.apache.hadoop.io.Text;
+
+import java.util.Random;
+
+public class RandomTextGenerator {
+
+  static int minWordsInKey = 10;
+  static int wordsInKeyRange = 100;
+  static final Random random = new Random();
+
+  public static Text generateSentence() {
+    int noWordsKey = minWordsInKey +
+        (wordsInKeyRange != 0 ? random.nextInt(wordsInKeyRange) : 0);
+    return generateSentence(noWordsKey);
+  }
+
+  public static Text generateSentence(int noWords) {
+    StringBuffer sentence = new StringBuffer();
+    String space = " ";
+    for (int i = 0; i < noWords; ++i) {
+      sentence.append(words[random.nextInt(words.length)]);
+      sentence.append(space);
+    }
+    return new Text(sentence.toString());
+  }
+
+  /**
+   * Borrowed from mapreduce
+   * <p/>
+   * A random list of 100 words from /usr/share/dict/words
+   */
+  private static String[] words = {
+      "diurnalness", "Homoiousian",
+      "spiranthic", "tetragynian",
+      "silverhead", "ungreat",
+      "lithograph", "exploiter",
+      "physiologian", "by",
+      "hellbender", "Filipendula",
+      "undeterring", "antiscolic",
+      "pentagamist", "hypoid",
+      "cacuminal", "sertularian",
+      "schoolmasterism", "nonuple",
+      "gallybeggar", "phytonic",
+      "swearingly", "nebular",
+      "Confervales", "thermochemically",
+      "characinoid", "cocksuredom",
+      "fallacious", "feasibleness",
+      "debromination", "playfellowship",
+      "tramplike", "testa",
+      "participatingly", "unaccessible",
+      "bromate", "experientialist",
+      "roughcast", "docimastical",
+      "choralcelo", "blightbird",
+      "peptonate", "sombreroed",
+      "unschematized", "antiabolitionist",
+      "besagne", "mastication",
+      "bromic", "sviatonosite",
+      "cattimandoo", "metaphrastical",
+      "endotheliomyoma", "hysterolysis",
+      "unfulminated", "Hester",
+      "oblongly", "blurredness",
+      "authorling", "chasmy",
+      "Scorpaenidae", "toxihaemia",
+      "Dictograph", "Quakerishly",
+      "deaf", "timbermonger",
+      "strammel", "Thraupidae",
+      "seditious", "plerome",
+      "Arneb", "eristically",
+      "serpentinic", "glaumrie",
+      "socioromantic", "apocalypst",
+      "tartrous", "Bassaris",
+      "angiolymphoma", "horsefly",
+      "kenno", "astronomize",
+      "euphemious", "arsenide",
+      "untongued", "parabolicness",
+      "uvanite", "helpless",
+      "gemmeous", "stormy",
+      "templar", "erythrodextrin",
+      "comism", "interfraternal",
+      "preparative", "parastas",
+      "frontoorbital", "Ophiosaurus",
+      "diopside", "serosanguineous",
+      "ununiformly", "karyological",
+      "collegian", "allotropic",
+      "depravity", "amylogenesis",
+      "reformatory", "epidymides",
+      "pleurotropous", "trillium",
+      "dastardliness", "coadvice",
+      "embryotic", "benthonic",
+      "pomiferous", "figureheadship",
+      "Megaluridae", "Harpa",
+      "frenal", "commotion",
+      "abthainry", "cobeliever",
+      "manilla", "spiciferous",
+      "nativeness", "obispo",
+      "monilioid", "biopsic",
+      "valvula", "enterostomy",
+      "planosubulate", "pterostigma",
+      "lifter", "triradiated",
+      "venialness", "tum",
+      "archistome", "tautness",
+      "unswanlike", "antivenin",
+      "Lentibulariaceae", "Triphora",
+      "angiopathy", "anta",
+      "Dawsonia", "becomma",
+      "Yannigan", "winterproof",
+      "antalgol", "harr",
+      "underogating", "ineunt",
+      "cornberry", "flippantness",
+      "scyphostoma", "approbation",
+      "Ghent", "Macraucheniidae",
+      "scabbiness", "unanatomized",
+      "photoelasticity", "eurythermal",
+      "enation", "prepavement",
+      "flushgate", "subsequentially",
+      "Edo", "antihero",
+      "Isokontae", "unforkedness",
+      "porriginous", "daytime",
+      "nonexecutive", "trisilicic",
+      "morphiomania", "paranephros",
+      "botchedly", "impugnation",
+      "Dodecatheon", "obolus",
+      "unburnt", "provedore",
+      "Aktistetae", "superindifference",
+      "Alethea", "Joachimite",
+      "cyanophilous", "chorograph",
+      "brooky", "figured",
+      "periclitation", "quintette",
+      "hondo", "ornithodelphous",
+      "unefficient", "pondside",
+      "bogydom", "laurinoxylon",
+      "Shiah", "unharmed",
+      "cartful", "noncrystallized",
+      "abusiveness", "cromlech",
+      "japanned", "rizzomed",
+      "underskin", "adscendent",
+      "allectory", "gelatinousness",
+      "volcano", "uncompromisingly",
+      "cubit", "idiotize",
+      "unfurbelowed", "undinted",
+      "magnetooptics", "Savitar",
+      "diwata", "ramosopalmate",
+      "Pishquow", "tomorn",
+      "apopenptic", "Haversian",
+      "Hysterocarpus", "ten",
+      "outhue", "Bertat",
+      "mechanist", "asparaginic",
+      "velaric", "tonsure",
+      "bubble", "Pyrales",
+      "regardful", "glyphography",
+      "calabazilla", "shellworker",
+      "stradametrical", "havoc",
+      "theologicopolitical", "sawdust",
+      "diatomaceous", "jajman",
+      "temporomastoid", "Serrifera",
+      "Ochnaceae", "aspersor",
+      "trailmaking", "Bishareen",
+      "digitule", "octogynous",
+      "epididymitis", "smokefarthings",
+      "bacillite", "overcrown",
+      "mangonism", "sirrah",
+      "undecorated", "psychofugal",
+      "bismuthiferous", "rechar",
+      "Lemuridae", "frameable",
+      "thiodiazole", "Scanic",
+      "sportswomanship", "interruptedness",
+      "admissory", "osteopaedion",
+      "tingly", "tomorrowness",
+      "ethnocracy", "trabecular",
+      "vitally", "fossilism",
+      "adz", "metopon",
+      "prefatorial", "expiscate",
+      "diathermacy", "chronist",
+      "nigh", "generalizable",
+      "hysterogen", "aurothiosulphuric",
+      "whitlowwort", "downthrust",
+      "Protestantize", "monander",
+      "Itea", "chronographic",
+      "silicize", "Dunlop",
+      "eer", "componental",
+      "spot", "pamphlet",
+      "antineuritic", "paradisean",
+      "interruptor", "debellator",
+      "overcultured", "Florissant",
+      "hyocholic", "pneumatotherapy",
+      "tailoress", "rave",
+      "unpeople", "Sebastian",
+      "thermanesthesia", "Coniferae",
+      "swacking", "posterishness",
+      "ethmopalatal", "whittle",
+      "analgize", "scabbardless",
+      "naught", "symbiogenetically",
+      "trip", "parodist",
+      "columniform", "trunnel",
+      "yawler", "goodwill",
+      "pseudohalogen", "swangy",
+      "cervisial", "mediateness",
+      "genii", "imprescribable",
+      "pony", "consumptional",
+      "carposporangial", "poleax",
+      "bestill", "subfebrile",
+      "sapphiric", "arrowworm",
+      "qualminess", "ultraobscure",
+      "thorite", "Fouquieria",
+      "Bermudian", "prescriber",
+      "elemicin", "warlike",
+      "semiangle", "rotular",
+      "misthread", "returnability",
+      "seraphism", "precostal",
+      "quarried", "Babylonism",
+      "sangaree", "seelful",
+      "placatory", "pachydermous",
+      "bozal", "galbulus",
+      "spermaphyte", "cumbrousness",
+      "pope", "signifier",
+      "Endomycetaceae", "shallowish",
+      "sequacity", "periarthritis",
+      "bathysphere", "pentosuria",
+      "Dadaism", "spookdom",
+      "Consolamentum", "afterpressure",
+      "mutter", "louse",
+      "ovoviviparous", "corbel",
+      "metastoma", "biventer",
+      "Hydrangea", "hogmace",
+      "seizing", "nonsuppressed",
+      "oratorize", "uncarefully",
+      "benzothiofuran", "penult",
+      "balanocele", "macropterous",
+      "dishpan", "marten",
+      "absvolt", "jirble",
+      "parmelioid", "airfreighter",
+      "acocotl", "archesporial",
+      "hypoplastral", "preoral",
+      "quailberry", "cinque",
+      "terrestrially", "stroking",
+      "limpet", "moodishness",
+      "canicule", "archididascalian",
+      "pompiloid", "overstaid",
+      "introducer", "Italical",
+      "Christianopaganism", "prescriptible",
+      "subofficer", "danseuse",
+      "cloy", "saguran",
+      "frictionlessly", "deindividualization",
+      "Bulanda", "ventricous",
+      "subfoliar", "basto",
+      "scapuloradial", "suspend",
+      "stiffish", "Sphenodontidae",
+      "eternal", "verbid",
+      "mammonish", "upcushion",
+      "barkometer", "concretion",
+      "preagitate", "incomprehensible",
+      "tristich", "visceral",
+      "hemimelus", "patroller",
+      "stentorophonic", "pinulus",
+      "kerykeion", "brutism",
+      "monstership", "merciful",
+      "overinstruct", "defensibly",
+      "bettermost", "splenauxe",
+      "Mormyrus", "unreprimanded",
+      "taver", "ell",
+      "proacquittal", "infestation",
+      "overwoven", "Lincolnlike",
+      "chacona", "Tamil",
+      "classificational", "lebensraum",
+      "reeveland", "intuition",
+      "Whilkut", "focaloid",
+      "Eleusinian", "micromembrane",
+      "byroad", "nonrepetition",
+      "bacterioblast", "brag",
+      "ribaldrous", "phytoma",
+      "counteralliance", "pelvimetry",
+      "pelf", "relaster",
+      "thermoresistant", "aneurism",
+      "molossic", "euphonym",
+      "upswell", "ladhood",
+      "phallaceous", "inertly",
+      "gunshop", "stereotypography",
+      "laryngic", "refasten",
+      "twinling", "oflete",
+      "hepatorrhaphy", "electrotechnics",
+      "cockal", "guitarist",
+      "topsail", "Cimmerianism",
+      "larklike", "Llandovery",
+      "pyrocatechol", "immatchable",
+      "chooser", "metrocratic",
+      "craglike", "quadrennial",
+      "nonpoisonous", "undercolored",
+      "knob", "ultratense",
+      "balladmonger", "slait",
+      "sialadenitis", "bucketer",
+      "magnificently", "unstipulated",
+      "unscourged", "unsupercilious",
+      "packsack", "pansophism",
+      "soorkee", "percent",
+      "subirrigate", "champer",
+      "metapolitics", "spherulitic",
+      "involatile", "metaphonical",
+      "stachyuraceous", "speckedness",
+      "bespin", "proboscidiform",
+      "gul", "squit",
+      "yeelaman", "peristeropode",
+      "opacousness", "shibuichi",
+      "retinize", "yote",
+      "misexposition", "devilwise",
+      "pumpkinification", "vinny",
+      "bonze", "glossing",
+      "decardinalize", "transcortical",
+      "serphoid", "deepmost",
+      "guanajuatite", "wemless",
+      "arval", "lammy",
+      "Effie", "Saponaria",
+      "tetrahedral", "prolificy",
+      "excerpt", "dunkadoo",
+      "Spencerism", "insatiately",
+      "Gilaki", "oratorship",
+      "arduousness", "unbashfulness",
+      "Pithecolobium", "unisexuality",
+      "veterinarian", "detractive",
+      "liquidity", "acidophile",
+      "proauction", "sural",
+      "totaquina", "Vichyite",
+      "uninhabitedness", "allegedly",
+      "Gothish", "manny",
+      "Inger", "flutist",
+      "ticktick", "Ludgatian",
+      "homotransplant", "orthopedical",
+      "diminutively", "monogoneutic",
+      "Kenipsim", "sarcologist",
+      "drome", "stronghearted",
+      "Fameuse", "Swaziland",
+      "alen", "chilblain",
+      "beatable", "agglomeratic",
+      "constitutor", "tendomucoid",
+      "porencephalous", "arteriasis",
+      "boser", "tantivy",
+      "rede", "lineamental",
+      "uncontradictableness", "homeotypical",
+      "masa", "folious",
+      "dosseret", "neurodegenerative",
+      "subtransverse", "Chiasmodontidae",
+      "palaeotheriodont", "unstressedly",
+      "chalcites", "piquantness",
+      "lampyrine", "Aplacentalia",
+      "projecting", "elastivity",
+      "isopelletierin", "bladderwort",
+      "strander", "almud",
+      "iniquitously", "theologal",
+      "bugre", "chargeably",
+      "imperceptivity", "meriquinoidal",
+      "mesophyte", "divinator",
+      "perfunctory", "counterappellant",
+      "synovial", "charioteer",
+      "crystallographical", "comprovincial",
+      "infrastapedial", "pleasurehood",
+      "inventurous", "ultrasystematic",
+      "subangulated", "supraoesophageal",
+      "Vaishnavism", "transude",
+      "chrysochrous", "ungrave",
+      "reconciliable", "uninterpleaded",
+      "erlking", "wherefrom",
+      "aprosopia", "antiadiaphorist",
+      "metoxazine", "incalculable",
+      "umbellic", "predebit",
+      "foursquare", "unimmortal",
+      "nonmanufacture", "slangy",
+      "predisputant", "familist",
+      "preaffiliate", "friarhood",
+      "corelysis", "zoonitic",
+      "halloo", "paunchy",
+      "neuromimesis", "aconitine",
+      "hackneyed", "unfeeble",
+      "cubby", "autoschediastical",
+      "naprapath", "lyrebird",
+      "inexistency", "leucophoenicite",
+      "ferrogoslarite", "reperuse",
+      "uncombable", "tambo",
+      "propodiale", "diplomatize",
+      "Russifier", "clanned",
+      "corona", "michigan",
+      "nonutilitarian", "transcorporeal",
+      "bought", "Cercosporella",
+      "stapedius", "glandularly",
+      "pictorially", "weism",
+      "disilane", "rainproof",
+      "Caphtor", "scrubbed",
+      "oinomancy", "pseudoxanthine",
+      "nonlustrous", "redesertion",
+      "Oryzorictinae", "gala",
+      "Mycogone", "reappreciate",
+      "cyanoguanidine", "seeingness",
+      "breadwinner", "noreast",
+      "furacious", "epauliere",
+      "omniscribent", "Passiflorales",
+      "uninductive", "inductivity",
+      "Orbitolina", "Semecarpus",
+      "migrainoid", "steprelationship",
+      "phlogisticate", "mesymnion",
+      "sloped", "edificator",
+      "beneficent", "culm",
+      "paleornithology", "unurban",
+      "throbless", "amplexifoliate",
+      "sesquiquintile", "sapience",
+      "astucious", "dithery",
+      "boor", "ambitus",
+      "scotching", "uloid",
+      "uncompromisingness", "hoove",
+      "waird", "marshiness",
+      "Jerusalem", "mericarp",
+      "unevoked", "benzoperoxide",
+      "outguess", "pyxie",
+      "hymnic", "euphemize",
+      "mendacity", "erythremia",
+      "rosaniline", "unchatteled",
+      "lienteria", "Bushongo",
+      "dialoguer", "unrepealably",
+      "rivethead", "antideflation",
+      "vinegarish", "manganosiderite",
+      "doubtingness", "ovopyriform",
+      "Cephalodiscus", "Muscicapa",
+      "Animalivora", "angina",
+      "planispheric", "ipomoein",
+      "cuproiodargyrite", "sandbox",
+      "scrat", "Munnopsidae",
+      "shola", "pentafid",
+      "overstudiousness", "times",
+      "nonprofession", "appetible",
+      "valvulotomy", "goladar",
+      "uniarticular", "oxyterpene",
+      "unlapsing", "omega",
+      "trophonema", "seminonflammable",
+      "circumzenithal", "starer",
+      "depthwise", "liberatress",
+      "unleavened", "unrevolting",
+      "groundneedle", "topline",
+      "wandoo", "umangite",
+      "ordinant", "unachievable",
+      "oversand", "snare",
+      "avengeful", "unexplicit",
+      "mustafina", "sonable",
+      "rehabilitative", "eulogization",
+      "papery", "technopsychology",
+      "impressor", "cresylite",
+      "entame", "transudatory",
+      "scotale", "pachydermatoid",
+      "imaginary", "yeat",
+      "slipped", "stewardship",
+      "adatom", "cockstone",
+      "skyshine", "heavenful",
+      "comparability", "exprobratory",
+      "dermorhynchous", "parquet",
+      "cretaceous", "vesperal",
+      "raphis", "undangered",
+      "Glecoma", "engrain",
+      "counteractively", "Zuludom",
+      "orchiocatabasis", "Auriculariales",
+      "warriorwise", "extraorganismal",
+      "overbuilt", "alveolite",
+      "tetchy", "terrificness",
+      "widdle", "unpremonished",
+      "rebilling", "sequestrum",
+      "equiconvex", "heliocentricism",
+      "catabaptist", "okonite",
+      "propheticism", "helminthagogic",
+      "calycular", "giantly",
+      "wingable", "golem",
+      "unprovided", "commandingness",
+      "greave", "haply",
+      "doina", "depressingly",
+      "subdentate", "impairment",
+      "decidable", "neurotrophic",
+      "unpredict", "bicorporeal",
+      "pendulant", "flatman",
+      "intrabred", "toplike",
+      "Prosobranchiata", "farrantly",
+      "toxoplasmosis", "gorilloid",
+      "dipsomaniacal", "aquiline",
+      "atlantite", "ascitic",
+      "perculsive", "prospectiveness",
+      "saponaceous", "centrifugalization",
+      "dinical", "infravaginal",
+      "beadroll", "affaite",
+      "Helvidian", "tickleproof",
+      "abstractionism", "enhedge",
+      "outwealth", "overcontribute",
+      "coldfinch", "gymnastic",
+      "Pincian", "Munychian",
+      "codisjunct", "quad",
+      "coracomandibular", "phoenicochroite",
+      "amender", "selectivity",
+      "putative", "semantician",
+      "lophotrichic", "Spatangoidea",
+      "saccharogenic", "inferent",
+      "Triconodonta", "arrendation",
+      "sheepskin", "taurocolla",
+      "bunghole", "Machiavel",
+      "triakistetrahedral", "dehairer",
+      "prezygapophysial", "cylindric",
+      "pneumonalgia", "sleigher",
+      "emir", "Socraticism",
+      "licitness", "massedly",
+      "instructiveness", "sturdied",
+      "redecrease", "starosta",
+      "evictor", "orgiastic",
+      "squdge", "meloplasty",
+      "Tsonecan", "repealableness",
+      "swoony", "myesthesia",
+      "molecule", "autobiographist",
+      "reciprocation", "refective",
+      "unobservantness", "tricae",
+      "ungouged", "floatability",
+      "Mesua", "fetlocked",
+      "chordacentrum", "sedentariness",
+      "various", "laubanite",
+      "nectopod", "zenick",
+      "sequentially", "analgic",
+      "biodynamics", "posttraumatic",
+      "nummi", "pyroacetic",
+      "bot", "redescend",
+      "dispermy", "undiffusive",
+      "circular", "trillion",
+      "Uraniidae", "ploration",
+      "discipular", "potentness",
+      "sud", "Hu",
+      "Eryon", "plugger",
+      "subdrainage", "jharal",
+      "abscission", "supermarket",
+      "countergabion", "glacierist",
+      "lithotresis", "minniebush",
+      "zanyism", "eucalypteol",
+      "sterilely", "unrealize",
+      "unpatched", "hypochondriacism",
+      "critically", "cheesecutter",
+  };
+}

Reply via email to