You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@carbondata.apache.org by ra...@apache.org on 2019/04/02 02:41:24 UTC

[carbondata] 04/41: [CARBONDATA-3107] Optimize error/exception coding for better debugging

This is an automated email from the ASF dual-hosted git repository.

ravipesala pushed a commit to branch branch-1.5
in repository https://gitbox.apache.org/repos/asf/carbondata.git

commit 459ad23576eb33010c801e6461b7dfec3f3434d2
Author: Manhua <ke...@qq.com>
AuthorDate: Tue Oct 30 09:44:59 2018 +0800

    [CARBONDATA-3107] Optimize error/exception coding for better debugging
    
    Some error log in carbon is only a single line of conclusion message
    (like "Dataload failed"), and when we look into codes may found that
    is newly created exception without original exception, so more jobs
    need to be done to find the root cause.
    
    To better locate the root cause when carbon fails, this PR propose to
    keep the original throwable for logging when wrapping it to another
    exception, and also log stack trace alone with error message.
    
       Changes in this PR follows these rules: (`e` is an exception)
    
       | Code Sample | Problem | Suggest Modification |
       | --- | --- | --- |
       | `LOGGER.error(e);` | no stack trace(e is taken as message instead of throwable) | `LOGGER.error(e.getMessage(), e);` |
       | `LOGGER.error(e.getMessage());` | no stack trace | `LOGGER.error(e.getMessage(), e);` |
       | `catch ... throw new Exception("Error occur")` | useless message, no stack trace | `throw new Exception(e)` |
       | `catch ... throw new Exception(e.getMessage())` | no stack trace | `throw new Exception(e)` |
       | `catch ... throw new Exception(e.getMessage(), e)` | no need to call `getMessage()` | `throw new Exception(e)` |
       | `catch ... throw new Exception("Error occur: " + e.getMessage(), e)` | useless message | `throw new Exception(e)` |
       | `catch ... throw new Exception("DataLoad fail: " + e.getMessage())` | no stack trace | `throw new Exception("DataLoad fail: " + e.getMessage(), e)` |
    
       Some exceptions, such as MalformedCarbonCommandException,
       InterruptException, NumberFormatException, InvalidLoadOptionException
       and NoRetryException, do not have Constructor using `Throwable`,
       so this PR does not change it.
    
    This closes #2878
---
 .../cache/dictionary/ForwardDictionaryCache.java   |  2 +-
 .../cache/dictionary/ReverseDictionaryCache.java   |  2 +-
 .../core/datamap/DataMapStoreManager.java          |  2 +-
 .../carbondata/core/datamap/DataMapUtil.java       |  2 +-
 .../filesystem/AbstractDFSCarbonFile.java          | 14 ++++++-------
 .../datastore/filesystem/AlluxioCarbonFile.java    |  2 +-
 .../core/datastore/filesystem/HDFSCarbonFile.java  |  2 +-
 .../core/datastore/filesystem/LocalCarbonFile.java |  2 +-
 .../core/datastore/filesystem/S3CarbonFile.java    |  2 +-
 .../datastore/filesystem/ViewFSCarbonFile.java     |  2 +-
 .../core/datastore/impl/FileFactory.java           |  4 ++--
 .../client/NonSecureDictionaryClient.java          |  2 +-
 .../client/NonSecureDictionaryClientHandler.java   |  4 ++--
 .../generator/TableDictionaryGenerator.java        |  2 +-
 .../server/NonSecureDictionaryServerHandler.java   |  2 +-
 .../service/AbstractDictionaryServer.java          |  8 ++++----
 .../core/indexstore/BlockletDataMapIndexStore.java |  4 ++--
 .../core/indexstore/BlockletDetailInfo.java        |  2 +-
 .../timestamp/DateDirectDictionaryGenerator.java   |  4 ++--
 .../carbondata/core/locks/ZookeeperInit.java       |  2 +-
 .../core/metadata/schema/table/CarbonTable.java    |  2 +-
 .../carbondata/core/mutate/CarbonUpdateUtil.java   |  4 ++--
 .../core/reader/CarbonDeleteFilesDataReader.java   | 14 ++++++-------
 .../carbondata/core/scan/filter/FilterUtil.java    | 16 +++++++--------
 .../core/scan/result/BlockletScannedResult.java    |  6 +++---
 .../AbstractDetailQueryResultIterator.java         |  2 +-
 .../core/statusmanager/LoadMetadataDetails.java    |  6 +++---
 .../core/statusmanager/SegmentStatusManager.java   |  6 +++---
 .../carbondata/core/util/CarbonProperties.java     |  2 +-
 .../apache/carbondata/core/util/CarbonUtil.java    |  8 ++++----
 .../apache/carbondata/core/util/DataTypeUtil.java  |  8 ++++----
 .../core/util/ObjectSerializationUtil.java         |  4 ++--
 .../carbondata/core/util/path/HDFSLeaseUtils.java  |  2 +-
 .../datastore/filesystem/HDFSCarbonFileTest.java   |  2 +-
 .../core/load/LoadMetadataDetailsUnitTest.java     |  2 +-
 .../bloom/BloomCoarseGrainDataMapFactory.java      |  2 +-
 .../datamap/lucene/LuceneFineGrainDataMap.java     |  6 +++---
 .../lucene/LuceneFineGrainDataMapFactory.java      |  2 +-
 .../hive/CarbonDictionaryDecodeReadSupport.java    |  2 +-
 .../carbondata/hive/MapredCarbonInputFormat.java   |  2 +-
 .../carbondata/presto/impl/CarbonTableReader.java  | 12 +++++------
 .../client/SecureDictionaryClientHandler.java      |  4 ++--
 .../server/SecureDictionaryServerHandler.java      |  2 +-
 .../vectorreader/VectorizedCarbonRecordReader.java |  4 ++--
 .../processing/datamap/DataMapWriterListener.java  |  2 +-
 .../loading/AbstractDataLoadProcessorStep.java     |  2 +-
 .../loading/converter/impl/RowConverterImpl.java   |  2 +-
 .../loading/model/CarbonLoadModelBuilder.java      |  2 +-
 .../loading/parser/impl/JsonRowParser.java         |  2 +-
 .../sort/impl/ParallelReadMergeSorterImpl.java     |  2 +-
 ...ParallelReadMergeSorterWithColumnRangeImpl.java |  2 +-
 .../UnsafeBatchParallelReadMergeSorterImpl.java    |  4 ++--
 .../impl/UnsafeParallelReadMergeSorterImpl.java    |  2 +-
 ...ParallelReadMergeSorterWithColumnRangeImpl.java |  2 +-
 .../loading/sort/unsafe/UnsafeSortDataRows.java    | 14 ++++++-------
 .../holder/UnsafeSortTempFileChunkHolder.java      | 10 ++++-----
 .../unsafe/merger/UnsafeIntermediateMerger.java    |  2 +-
 .../UnsafeSingleThreadFinalSortFilesMerger.java    |  4 ++--
 .../CarbonRowDataWriterProcessorStepImpl.java      |  8 ++++----
 .../steps/DataWriterBatchProcessorStepImpl.java    |  4 ++--
 .../processing/merger/CarbonCompactionUtil.java    |  8 ++++----
 .../processing/merger/CarbonDataMergerUtil.java    |  4 ++--
 .../merger/CompactionResultSortProcessor.java      | 24 ++++++++++++----------
 .../merger/RowResultMergerProcessor.java           |  2 +-
 .../partition/spliter/RowResultProcessor.java      |  6 +++---
 .../sortdata/SingleThreadFinalSortFilesMerger.java |  4 ++--
 .../processing/sort/sortdata/SortDataRows.java     |  2 +-
 .../sort/sortdata/SortTempFileChunkHolder.java     | 10 ++++-----
 .../store/CarbonFactDataHandlerColumnar.java       | 12 +++++------
 .../processing/util/CarbonLoaderUtil.java          |  6 +++---
 .../apache/carbondata/store/LocalCarbonStore.java  |  4 ++--
 .../java/org/apache/carbondata/tool/CarbonCli.java |  4 ++--
 72 files changed, 169 insertions(+), 167 deletions(-)

diff --git a/core/src/main/java/org/apache/carbondata/core/cache/dictionary/ForwardDictionaryCache.java b/core/src/main/java/org/apache/carbondata/core/cache/dictionary/ForwardDictionaryCache.java
index dad6c8f..8b3d649 100644
--- a/core/src/main/java/org/apache/carbondata/core/cache/dictionary/ForwardDictionaryCache.java
+++ b/core/src/main/java/org/apache/carbondata/core/cache/dictionary/ForwardDictionaryCache.java
@@ -138,7 +138,7 @@ public class ForwardDictionaryCache<K extends
       executorService.shutdown();
       executorService.awaitTermination(2, TimeUnit.HOURS);
     } catch (InterruptedException e) {
-      LOGGER.error("Error loading the dictionary: " + e.getMessage());
+      LOGGER.error("Error loading the dictionary: " + e.getMessage(), e);
     }
     for (int i = 0; i < taskSubmitList.size(); i++) {
       try {
diff --git a/core/src/main/java/org/apache/carbondata/core/cache/dictionary/ReverseDictionaryCache.java b/core/src/main/java/org/apache/carbondata/core/cache/dictionary/ReverseDictionaryCache.java
index f40b611..fc4bbe5 100644
--- a/core/src/main/java/org/apache/carbondata/core/cache/dictionary/ReverseDictionaryCache.java
+++ b/core/src/main/java/org/apache/carbondata/core/cache/dictionary/ReverseDictionaryCache.java
@@ -115,7 +115,7 @@ public class ReverseDictionaryCache<K extends DictionaryColumnUniqueIdentifier,
       executorService.shutdown();
       executorService.awaitTermination(2, TimeUnit.HOURS);
     } catch (InterruptedException e) {
-      LOGGER.error("Error loading the dictionary: " + e.getMessage());
+      LOGGER.error("Error loading the dictionary: " + e.getMessage(), e);
     }
     for (int i = 0; i < taskSubmitList.size(); i++) {
       try {
diff --git a/core/src/main/java/org/apache/carbondata/core/datamap/DataMapStoreManager.java b/core/src/main/java/org/apache/carbondata/core/datamap/DataMapStoreManager.java
index c5cf55d..085d98a 100644
--- a/core/src/main/java/org/apache/carbondata/core/datamap/DataMapStoreManager.java
+++ b/core/src/main/java/org/apache/carbondata/core/datamap/DataMapStoreManager.java
@@ -512,7 +512,7 @@ public final class DataMapStoreManager {
             .buildFromTablePath(identifier.getTableName(), identifier.getDatabaseName(),
                 identifier.getTablePath(), identifier.getCarbonTableIdentifier().getTableId());
       } catch (IOException e) {
-        LOGGER.warn("failed to get carbon table from table Path" + e.getMessage());
+        LOGGER.warn("failed to get carbon table from table Path" + e.getMessage(), e);
         // ignoring exception
       }
     }
diff --git a/core/src/main/java/org/apache/carbondata/core/datamap/DataMapUtil.java b/core/src/main/java/org/apache/carbondata/core/datamap/DataMapUtil.java
index 138bd62..bea1cca 100644
--- a/core/src/main/java/org/apache/carbondata/core/datamap/DataMapUtil.java
+++ b/core/src/main/java/org/apache/carbondata/core/datamap/DataMapUtil.java
@@ -51,7 +51,7 @@ public class DataMapUtil {
     try {
       return Class.forName(className).getDeclaredConstructors()[0].newInstance();
     } catch (Exception e) {
-      LOGGER.error(e);
+      LOGGER.error(e.getMessage(), e);
       return null;
     }
   }
diff --git a/core/src/main/java/org/apache/carbondata/core/datastore/filesystem/AbstractDFSCarbonFile.java b/core/src/main/java/org/apache/carbondata/core/datastore/filesystem/AbstractDFSCarbonFile.java
index d56caac..a90648e 100644
--- a/core/src/main/java/org/apache/carbondata/core/datastore/filesystem/AbstractDFSCarbonFile.java
+++ b/core/src/main/java/org/apache/carbondata/core/datastore/filesystem/AbstractDFSCarbonFile.java
@@ -74,7 +74,7 @@ public abstract class AbstractDFSCarbonFile implements CarbonFile {
       fs = path.getFileSystem(this.hadoopConf);
       fileStatus = fs.getFileStatus(path);
     } catch (IOException e) {
-      LOGGER.debug("Exception occurred:" + e.getMessage());
+      LOGGER.debug("Exception occurred:" + e.getMessage(), e);
     }
   }
 
@@ -89,7 +89,7 @@ public abstract class AbstractDFSCarbonFile implements CarbonFile {
       fs = path.getFileSystem(this.hadoopConf);
       fileStatus = fs.getFileStatus(path);
     } catch (IOException e) {
-      LOGGER.debug("Exception occurred:" + e.getMessage());
+      LOGGER.debug("Exception occurred:" + e.getMessage(), e);
     }
   }
 
@@ -129,7 +129,7 @@ public abstract class AbstractDFSCarbonFile implements CarbonFile {
         return fs.exists(fileStatus.getPath());
       }
     } catch (IOException e) {
-      LOGGER.error("Exception occurred:" + e.getMessage());
+      LOGGER.error("Exception occurred:" + e.getMessage(), e);
     }
     return false;
   }
@@ -154,7 +154,7 @@ public abstract class AbstractDFSCarbonFile implements CarbonFile {
         return fs.rename(fileStatus.getPath(), new Path(changeToName));
       }
     } catch (IOException e) {
-      LOGGER.error("Exception occurred:" + e.getMessage());
+      LOGGER.error("Exception occurred:" + e.getMessage(), e);
       return false;
     }
     return false;
@@ -168,7 +168,7 @@ public abstract class AbstractDFSCarbonFile implements CarbonFile {
         return fs.delete(fileStatus.getPath(), true);
       }
     } catch (IOException e) {
-      LOGGER.error("Exception occurred:" + e.getMessage());
+      LOGGER.error("Exception occurred:" + e.getMessage(), e);
       return false;
     }
     return false;
@@ -238,7 +238,7 @@ public abstract class AbstractDFSCarbonFile implements CarbonFile {
       tempFile.renameForce(fileName);
       fileTruncatedSuccessfully = true;
     } catch (IOException e) {
-      LOGGER.error("Exception occurred while truncating the file " + e.getMessage());
+      LOGGER.error("Exception occurred while truncating the file " + e.getMessage(), e);
     } finally {
       CarbonUtil.closeStreams(dataOutputStream, dataInputStream);
     }
@@ -506,7 +506,7 @@ public abstract class AbstractDFSCarbonFile implements CarbonFile {
         return new CarbonFile[0];
       }
     } catch (IOException e) {
-      LOGGER.error("Exception occured: " + e.getMessage());
+      LOGGER.error("Exception occured: " + e.getMessage(), e);
       return new CarbonFile[0];
     }
     return getFiles(listStatus);
diff --git a/core/src/main/java/org/apache/carbondata/core/datastore/filesystem/AlluxioCarbonFile.java b/core/src/main/java/org/apache/carbondata/core/datastore/filesystem/AlluxioCarbonFile.java
index 216af53..affb469 100644
--- a/core/src/main/java/org/apache/carbondata/core/datastore/filesystem/AlluxioCarbonFile.java
+++ b/core/src/main/java/org/apache/carbondata/core/datastore/filesystem/AlluxioCarbonFile.java
@@ -136,7 +136,7 @@ public class AlluxioCarbonFile extends HDFSCarbonFile {
       }
       return false;
     } catch (IOException e) {
-      LOGGER.error("Exception occured: " + e.getMessage());
+      LOGGER.error("Exception occured: " + e.getMessage(), e);
       return false;
     }
   }
diff --git a/core/src/main/java/org/apache/carbondata/core/datastore/filesystem/HDFSCarbonFile.java b/core/src/main/java/org/apache/carbondata/core/datastore/filesystem/HDFSCarbonFile.java
index 35b0f0f..306d8f6 100644
--- a/core/src/main/java/org/apache/carbondata/core/datastore/filesystem/HDFSCarbonFile.java
+++ b/core/src/main/java/org/apache/carbondata/core/datastore/filesystem/HDFSCarbonFile.java
@@ -111,7 +111,7 @@ public class HDFSCarbonFile extends AbstractDFSCarbonFile {
         return fs.rename(fileStatus.getPath(), new Path(changeToName));
       }
     } catch (IOException e) {
-      LOGGER.error("Exception occured: " + e.getMessage());
+      LOGGER.error("Exception occured: " + e.getMessage(), e);
       return false;
     }
   }
diff --git a/core/src/main/java/org/apache/carbondata/core/datastore/filesystem/LocalCarbonFile.java b/core/src/main/java/org/apache/carbondata/core/datastore/filesystem/LocalCarbonFile.java
index 2cace55..6f55586 100644
--- a/core/src/main/java/org/apache/carbondata/core/datastore/filesystem/LocalCarbonFile.java
+++ b/core/src/main/java/org/apache/carbondata/core/datastore/filesystem/LocalCarbonFile.java
@@ -254,7 +254,7 @@ public class LocalCarbonFile implements CarbonFile {
       tempFile.renameForce(fileName);
       fileTruncatedSuccessfully = true;
     } catch (IOException e) {
-      LOGGER.error("Exception occured while truncating the file " + e.getMessage());
+      LOGGER.error("Exception occured while truncating the file " + e.getMessage(), e);
     } finally {
       CarbonUtil.closeStreams(source, destination);
     }
diff --git a/core/src/main/java/org/apache/carbondata/core/datastore/filesystem/S3CarbonFile.java b/core/src/main/java/org/apache/carbondata/core/datastore/filesystem/S3CarbonFile.java
index ee67097..ffbe2d8 100644
--- a/core/src/main/java/org/apache/carbondata/core/datastore/filesystem/S3CarbonFile.java
+++ b/core/src/main/java/org/apache/carbondata/core/datastore/filesystem/S3CarbonFile.java
@@ -66,7 +66,7 @@ public class S3CarbonFile extends HDFSCarbonFile {
       fs = fileStatus.getPath().getFileSystem(hadoopConf);
       return fs.rename(fileStatus.getPath(), new Path(changeToName));
     } catch (IOException e) {
-      LOGGER.error("Exception occured: " + e.getMessage());
+      LOGGER.error("Exception occured: " + e.getMessage(), e);
       return false;
     }
   }
diff --git a/core/src/main/java/org/apache/carbondata/core/datastore/filesystem/ViewFSCarbonFile.java b/core/src/main/java/org/apache/carbondata/core/datastore/filesystem/ViewFSCarbonFile.java
index 84a5abd..c55f85c 100644
--- a/core/src/main/java/org/apache/carbondata/core/datastore/filesystem/ViewFSCarbonFile.java
+++ b/core/src/main/java/org/apache/carbondata/core/datastore/filesystem/ViewFSCarbonFile.java
@@ -101,7 +101,7 @@ public class ViewFSCarbonFile extends AbstractDFSCarbonFile {
         return false;
       }
     } catch (IOException e) {
-      LOGGER.error("Exception occured" + e.getMessage());
+      LOGGER.error("Exception occured" + e.getMessage(), e);
       return false;
     }
   }
diff --git a/core/src/main/java/org/apache/carbondata/core/datastore/impl/FileFactory.java b/core/src/main/java/org/apache/carbondata/core/datastore/impl/FileFactory.java
index e951f58..7dbbe2a 100644
--- a/core/src/main/java/org/apache/carbondata/core/datastore/impl/FileFactory.java
+++ b/core/src/main/java/org/apache/carbondata/core/datastore/impl/FileFactory.java
@@ -335,7 +335,7 @@ public final class FileFactory {
           CarbonFile carbonFile = FileFactory.getCarbonFile(path, fileType);
           carbonFile.truncate(path, newSize);
         } catch (Exception e) {
-          LOGGER.error("Other exception occurred while truncating the file " + e.getMessage());
+          LOGGER.error("Other exception occurred while truncating the file " + e.getMessage(), e);
         }
         return;
       default:
@@ -505,7 +505,7 @@ public final class FileFactory {
             fs.setPermission(path, permission);
           }
         } catch (IOException e) {
-          LOGGER.error("Exception occurred : " + e.getMessage());
+          LOGGER.error("Exception occurred : " + e.getMessage(), e);
           throw e;
         }
         return;
diff --git a/core/src/main/java/org/apache/carbondata/core/dictionary/client/NonSecureDictionaryClient.java b/core/src/main/java/org/apache/carbondata/core/dictionary/client/NonSecureDictionaryClient.java
index d5c2072..60872c1 100644
--- a/core/src/main/java/org/apache/carbondata/core/dictionary/client/NonSecureDictionaryClient.java
+++ b/core/src/main/java/org/apache/carbondata/core/dictionary/client/NonSecureDictionaryClient.java
@@ -91,7 +91,7 @@ public class NonSecureDictionaryClient implements DictionaryClient {
     try {
       workerGroup.terminationFuture().sync();
     } catch (InterruptedException e) {
-      LOGGER.error(e);
+      LOGGER.error(e.getMessage(), e);
     }
   }
 }
diff --git a/core/src/main/java/org/apache/carbondata/core/dictionary/client/NonSecureDictionaryClientHandler.java b/core/src/main/java/org/apache/carbondata/core/dictionary/client/NonSecureDictionaryClientHandler.java
index 17e9c7c..8f44da6 100644
--- a/core/src/main/java/org/apache/carbondata/core/dictionary/client/NonSecureDictionaryClientHandler.java
+++ b/core/src/main/java/org/apache/carbondata/core/dictionary/client/NonSecureDictionaryClientHandler.java
@@ -61,7 +61,7 @@ public class NonSecureDictionaryClientHandler extends ChannelInboundHandlerAdapt
       data.release();
       responseMsgQueue.add(key);
     } catch (Exception e) {
-      LOGGER.error(e);
+      LOGGER.error(e.getMessage(), e);
       throw e;
     }
   }
@@ -102,7 +102,7 @@ public class NonSecureDictionaryClientHandler extends ChannelInboundHandlerAdapt
       }
       return dictionaryMessage;
     } catch (Exception e) {
-      LOGGER.error(e);
+      LOGGER.error(e.getMessage(), e);
       throw new RuntimeException(e);
     }
   }
diff --git a/core/src/main/java/org/apache/carbondata/core/dictionary/generator/TableDictionaryGenerator.java b/core/src/main/java/org/apache/carbondata/core/dictionary/generator/TableDictionaryGenerator.java
index 003ab5a..461d34a 100644
--- a/core/src/main/java/org/apache/carbondata/core/dictionary/generator/TableDictionaryGenerator.java
+++ b/core/src/main/java/org/apache/carbondata/core/dictionary/generator/TableDictionaryGenerator.java
@@ -89,7 +89,7 @@ public class TableDictionaryGenerator
       executorService.shutdown();
       executorService.awaitTermination(1, TimeUnit.HOURS);
     } catch (InterruptedException e) {
-      LOGGER.error("Error loading the dictionary: " + e.getMessage());
+      LOGGER.error("Error loading the dictionary: " + e.getMessage(), e);
     }
     LOGGER.info("Total time taken to write dictionary file is: " +
             (System.currentTimeMillis() - start));
diff --git a/core/src/main/java/org/apache/carbondata/core/dictionary/server/NonSecureDictionaryServerHandler.java b/core/src/main/java/org/apache/carbondata/core/dictionary/server/NonSecureDictionaryServerHandler.java
index 0f076a4..e261910 100644
--- a/core/src/main/java/org/apache/carbondata/core/dictionary/server/NonSecureDictionaryServerHandler.java
+++ b/core/src/main/java/org/apache/carbondata/core/dictionary/server/NonSecureDictionaryServerHandler.java
@@ -65,7 +65,7 @@ import org.apache.log4j.Logger;
       key.writeData(buffer);
       ctx.writeAndFlush(buffer);
     } catch (Exception e) {
-      LOGGER.error(e);
+      LOGGER.error(e.getMessage(), e);
       throw e;
     }
   }
diff --git a/core/src/main/java/org/apache/carbondata/core/dictionary/service/AbstractDictionaryServer.java b/core/src/main/java/org/apache/carbondata/core/dictionary/service/AbstractDictionaryServer.java
index 5703051..f548646 100644
--- a/core/src/main/java/org/apache/carbondata/core/dictionary/service/AbstractDictionaryServer.java
+++ b/core/src/main/java/org/apache/carbondata/core/dictionary/service/AbstractDictionaryServer.java
@@ -78,11 +78,11 @@ public abstract class AbstractDictionaryServer {
         return address.getHostAddress();
       }
     } catch (UnknownHostException e) {
-      LOGGER.error("do not get local host address:" + e.getMessage());
-      throw new RuntimeException(e.getMessage());
+      LOGGER.error("do not get local host address:" + e.getMessage(), e);
+      throw new RuntimeException(e);
     } catch (SocketException e) {
-      LOGGER.error("do not get net work interface:" + e.getMessage());
-      throw new RuntimeException(e.getMessage());
+      LOGGER.error("do not get net work interface:" + e.getMessage(), e);
+      throw new RuntimeException(e);
     }
   }
 }
diff --git a/core/src/main/java/org/apache/carbondata/core/indexstore/BlockletDataMapIndexStore.java b/core/src/main/java/org/apache/carbondata/core/indexstore/BlockletDataMapIndexStore.java
index 0f64086..a9667a8 100644
--- a/core/src/main/java/org/apache/carbondata/core/indexstore/BlockletDataMapIndexStore.java
+++ b/core/src/main/java/org/apache/carbondata/core/indexstore/BlockletDataMapIndexStore.java
@@ -148,8 +148,8 @@ public class BlockletDataMapIndexStore
         for (DataMap dataMap : dataMaps) {
           dataMap.clear();
         }
-        LOGGER.error("memory exception when loading datamap: " + e.getMessage());
-        throw new RuntimeException(e.getMessage(), e);
+        LOGGER.error("memory exception when loading datamap: " + e.getMessage(), e);
+        throw new RuntimeException(e);
       }
     }
     return blockletDataMapIndexWrapper;
diff --git a/core/src/main/java/org/apache/carbondata/core/indexstore/BlockletDetailInfo.java b/core/src/main/java/org/apache/carbondata/core/indexstore/BlockletDetailInfo.java
index 9ce932c..a5aa899 100644
--- a/core/src/main/java/org/apache/carbondata/core/indexstore/BlockletDetailInfo.java
+++ b/core/src/main/java/org/apache/carbondata/core/indexstore/BlockletDetailInfo.java
@@ -129,7 +129,7 @@ public class BlockletDetailInfo implements Serializable, Writable {
         blockletInfo.readFields(inputStream);
       } catch (IOException e) {
         LOGGER.error("Problem in reading blocklet info", e);
-        throw new IOException("Problem in reading blocklet info." + e.getMessage());
+        throw new IOException("Problem in reading blocklet info." + e.getMessage(), e);
       } finally {
         try {
           inputStream.close();
diff --git a/core/src/main/java/org/apache/carbondata/core/keygenerator/directdictionary/timestamp/DateDirectDictionaryGenerator.java b/core/src/main/java/org/apache/carbondata/core/keygenerator/directdictionary/timestamp/DateDirectDictionaryGenerator.java
index 67d70e3..3a134c3 100644
--- a/core/src/main/java/org/apache/carbondata/core/keygenerator/directdictionary/timestamp/DateDirectDictionaryGenerator.java
+++ b/core/src/main/java/org/apache/carbondata/core/keygenerator/directdictionary/timestamp/DateDirectDictionaryGenerator.java
@@ -153,8 +153,8 @@ public class DateDirectDictionaryGenerator implements DirectDictionaryGenerator
       timeValue = Long.parseLong(memberStr) / 1000;
     } catch (NumberFormatException e) {
       if (LOGGER.isDebugEnabled()) {
-        LOGGER.debug(
-            "Cannot convert value to Long type value. Value considered as null." + e.getMessage());
+        LOGGER.debug("Cannot convert value to Long type value. Value considered as null."
+            + e.getMessage(), e);
       }
     }
     if (timeValue == -1) {
diff --git a/core/src/main/java/org/apache/carbondata/core/locks/ZookeeperInit.java b/core/src/main/java/org/apache/carbondata/core/locks/ZookeeperInit.java
index 5e59593..f227cf9 100644
--- a/core/src/main/java/org/apache/carbondata/core/locks/ZookeeperInit.java
+++ b/core/src/main/java/org/apache/carbondata/core/locks/ZookeeperInit.java
@@ -47,7 +47,7 @@ public class ZookeeperInit {
       zk = new ZooKeeper(zooKeeperUrl, sessionTimeOut, new DummyWatcher());
 
     } catch (IOException e) {
-      LOGGER.error(e.getMessage());
+      LOGGER.error(e.getMessage(), e);
     }
 
   }
diff --git a/core/src/main/java/org/apache/carbondata/core/metadata/schema/table/CarbonTable.java b/core/src/main/java/org/apache/carbondata/core/metadata/schema/table/CarbonTable.java
index 8ed781a..3623147 100644
--- a/core/src/main/java/org/apache/carbondata/core/metadata/schema/table/CarbonTable.java
+++ b/core/src/main/java/org/apache/carbondata/core/metadata/schema/table/CarbonTable.java
@@ -1133,7 +1133,7 @@ public class CarbonTable implements Serializable {
     } catch (Exception e) {
       // since method returns true or false and based on that calling function throws exception, no
       // need to throw the catched exception
-      LOGGER.error(e.getMessage());
+      LOGGER.error(e.getMessage(), e);
       return true;
     }
     return true;
diff --git a/core/src/main/java/org/apache/carbondata/core/mutate/CarbonUpdateUtil.java b/core/src/main/java/org/apache/carbondata/core/mutate/CarbonUpdateUtil.java
index 3924c0d..bd8c465 100644
--- a/core/src/main/java/org/apache/carbondata/core/mutate/CarbonUpdateUtil.java
+++ b/core/src/main/java/org/apache/carbondata/core/mutate/CarbonUpdateUtil.java
@@ -691,9 +691,9 @@ public class CarbonUpdateUtil {
         CarbonUtil.deleteFoldersAndFiles(invalidFile);
         return true;
       } catch (IOException e) {
-        LOGGER.error("error in clean up of compacted files." + e.getMessage());
+        LOGGER.error("error in clean up of compacted files." + e.getMessage(), e);
       } catch (InterruptedException e) {
-        LOGGER.error("error in clean up of compacted files." + e.getMessage());
+        LOGGER.error("error in clean up of compacted files." + e.getMessage(), e);
       }
     }
     return false;
diff --git a/core/src/main/java/org/apache/carbondata/core/reader/CarbonDeleteFilesDataReader.java b/core/src/main/java/org/apache/carbondata/core/reader/CarbonDeleteFilesDataReader.java
index ee87a75..f16433c 100644
--- a/core/src/main/java/org/apache/carbondata/core/reader/CarbonDeleteFilesDataReader.java
+++ b/core/src/main/java/org/apache/carbondata/core/reader/CarbonDeleteFilesDataReader.java
@@ -91,7 +91,7 @@ public class CarbonDeleteFilesDataReader {
       executorService.shutdown();
       executorService.awaitTermination(30, TimeUnit.MINUTES);
     } catch (InterruptedException e) {
-      LOGGER.error("Error while reading the delete delta files : " + e.getMessage());
+      LOGGER.error("Error while reading the delete delta files : " + e.getMessage(), e);
     }
 
     Map<Integer, Integer[]> pageIdDeleteRowsMap =
@@ -109,8 +109,8 @@ public class CarbonDeleteFilesDataReader {
         }
 
       } catch (Throwable e) {
-        LOGGER.error(e.getMessage());
-        throw new Exception(e.getMessage());
+        LOGGER.error(e.getMessage(), e);
+        throw new Exception(e);
       }
     }
     return pageIdDeleteRowsMap;
@@ -134,7 +134,7 @@ public class CarbonDeleteFilesDataReader {
       executorService.shutdown();
       executorService.awaitTermination(30, TimeUnit.MINUTES);
     } catch (InterruptedException e) {
-      LOGGER.error("Error while reading the delete delta files : " + e.getMessage());
+      LOGGER.error("Error while reading the delete delta files : " + e.getMessage(), e);
     }
     Map<String, DeleteDeltaVo> pageIdToBlockLetVo = new HashMap<>();
     List<DeleteDeltaBlockletDetails> blockletDetails = null;
@@ -175,7 +175,7 @@ public class CarbonDeleteFilesDataReader {
       executorService.shutdown();
       executorService.awaitTermination(30, TimeUnit.MINUTES);
     } catch (InterruptedException e) {
-      LOGGER.error("Error while reading the delete delta files : " + e.getMessage());
+      LOGGER.error("Error while reading the delete delta files : " + e.getMessage(), e);
     }
 
     // Get a new DeleteDeltaBlockDetails as result set where all the data will me merged
@@ -190,8 +190,8 @@ public class CarbonDeleteFilesDataReader {
           deleteDeltaResultSet.addBlockletDetails(blocklet);
         }
       } catch (Throwable e) {
-        LOGGER.error(e.getMessage());
-        throw new Exception(e.getMessage());
+        LOGGER.error(e.getMessage(), e);
+        throw new Exception(e);
       }
     }
     return deleteDeltaResultSet;
diff --git a/core/src/main/java/org/apache/carbondata/core/scan/filter/FilterUtil.java b/core/src/main/java/org/apache/carbondata/core/scan/filter/FilterUtil.java
index 15b8cba..6cc13e2 100644
--- a/core/src/main/java/org/apache/carbondata/core/scan/filter/FilterUtil.java
+++ b/core/src/main/java/org/apache/carbondata/core/scan/filter/FilterUtil.java
@@ -940,7 +940,7 @@ public final class FilterUtil {
         columnFilterInfo.setFilterList(filterValuesList);
       }
     } catch (FilterIllegalMemberException e) {
-      LOGGER.error(e.getMessage());
+      LOGGER.error(e.getMessage(), e);
     }
     return columnFilterInfo;
   }
@@ -980,7 +980,7 @@ public final class FilterUtil {
         }
       }
     } catch (FilterIllegalMemberException e) {
-      LOGGER.error(e.getMessage());
+      LOGGER.error(e.getMessage(), e);
     }
 
     if (null == defaultValues) {
@@ -1020,7 +1020,7 @@ public final class FilterUtil {
               break;
             }
           } catch (KeyGenException e) {
-            LOGGER.error(e.getMessage());
+            LOGGER.error(e.getMessage(), e);
           }
         }
       }
@@ -1095,7 +1095,7 @@ public final class FilterUtil {
       keys[carbonDimension.getKeyOrdinal()] = surrogate;
       maskedKey = getMaskedKey(rangesForMaskedByte, blockLevelKeyGenerator.generateKey(keys));
     } catch (KeyGenException e) {
-      LOGGER.error(e.getMessage());
+      LOGGER.error(e.getMessage(), e);
     }
     return maskedKey;
   }
@@ -1438,7 +1438,7 @@ public final class FilterUtil {
       indexKey =
           new IndexKey(keyGenerator.generateKey(startOrEndKey), startOrEndKeyForNoDictDimension);
     } catch (KeyGenException e) {
-      LOGGER.error(e.getMessage());
+      LOGGER.error(e.getMessage(), e);
     }
     return indexKey;
   }
@@ -2124,7 +2124,7 @@ public final class FilterUtil {
             dummy[0] = i;
             encodedFilters.add(keyGenerator.generateKey(dummy));
           } catch (KeyGenException e) {
-            LOGGER.error(e);
+            LOGGER.error(e.getMessage(), e);
           }
           break;
         }
@@ -2215,7 +2215,7 @@ public final class FilterUtil {
           encodedFilterValues.add(keyGenerator.generateKey(dummy));
         }
       } catch (KeyGenException e) {
-        LOGGER.error(e);
+        LOGGER.error(e.getMessage(), e);
       }
       return encodedFilterValues.toArray(new byte[encodedFilterValues.size()][]);
     } else {
@@ -2227,7 +2227,7 @@ public final class FilterUtil {
           }
         }
       } catch (KeyGenException e) {
-        LOGGER.error(e);
+        LOGGER.error(e.getMessage(), e);
       }
     }
     return getSortedEncodedFilters(encodedFilterValues);
diff --git a/core/src/main/java/org/apache/carbondata/core/scan/result/BlockletScannedResult.java b/core/src/main/java/org/apache/carbondata/core/scan/result/BlockletScannedResult.java
index 4ec7b38..ad4d2b3 100644
--- a/core/src/main/java/org/apache/carbondata/core/scan/result/BlockletScannedResult.java
+++ b/core/src/main/java/org/apache/carbondata/core/scan/result/BlockletScannedResult.java
@@ -303,7 +303,7 @@ public abstract class BlockletScannedResult {
           reuseableDataOutput.reset();
         } catch (IOException e) {
           isExceptionThrown = true;
-          LOGGER.error(e);
+          LOGGER.error(e.getMessage(), e);
         } finally {
           if (isExceptionThrown) {
             CarbonUtil.closeStreams(reuseableDataOutput);
@@ -574,7 +574,7 @@ public abstract class BlockletScannedResult {
           reUseableDataOutput.reset();
         } catch (IOException e) {
           isExceptionThrown = true;
-          LOGGER.error(e);
+          LOGGER.error(e.getMessage(), e);
         } finally {
           if (isExceptionThrown) {
             CarbonUtil.closeStreams(reUseableDataOutput);
@@ -639,7 +639,7 @@ public abstract class BlockletScannedResult {
         reUsableDataOutput.reset();
       } catch (IOException e) {
         isExceptionThrown = true;
-        LOGGER.error(e);
+        LOGGER.error(e.getMessage(), e);
       } finally {
         if (isExceptionThrown) {
           CarbonUtil.closeStreams(reUsableDataOutput);
diff --git a/core/src/main/java/org/apache/carbondata/core/scan/result/iterator/AbstractDetailQueryResultIterator.java b/core/src/main/java/org/apache/carbondata/core/scan/result/iterator/AbstractDetailQueryResultIterator.java
index 9282d44..f39e549 100644
--- a/core/src/main/java/org/apache/carbondata/core/scan/result/iterator/AbstractDetailQueryResultIterator.java
+++ b/core/src/main/java/org/apache/carbondata/core/scan/result/iterator/AbstractDetailQueryResultIterator.java
@@ -314,7 +314,7 @@ public abstract class AbstractDetailQueryResultIterator<E> extends CarbonIterato
     try {
       fileReader.finish();
     } catch (IOException e) {
-      LOGGER.error(e);
+      LOGGER.error(e.getMessage(), e);
     }
   }
 
diff --git a/core/src/main/java/org/apache/carbondata/core/statusmanager/LoadMetadataDetails.java b/core/src/main/java/org/apache/carbondata/core/statusmanager/LoadMetadataDetails.java
index 7a16379..99dddba 100644
--- a/core/src/main/java/org/apache/carbondata/core/statusmanager/LoadMetadataDetails.java
+++ b/core/src/main/java/org/apache/carbondata/core/statusmanager/LoadMetadataDetails.java
@@ -257,8 +257,8 @@ public class LoadMetadataDetails implements Serializable {
         dateToStr = parser.parse(factTimeStamp);
         return dateToStr.getTime();
       } catch (ParseException e) {
-        LOGGER
-            .error("Cannot convert" + factTimeStamp + " to Time/Long type value" + e.getMessage());
+        LOGGER.error("Cannot convert" + factTimeStamp + " to Time/Long type value"
+            + e.getMessage(), e);
         parser = new SimpleDateFormat(CarbonCommonConstants.CARBON_TIMESTAMP);
         try {
           // if the load is in progress, factTimeStamp will be null, so use current time
@@ -293,7 +293,7 @@ public class LoadMetadataDetails implements Serializable {
         return dateToStr.getTime() * 1000;
       } catch (ParseException e) {
         LOGGER.error("Cannot convert" + loadStartTime +
-            " to Time/Long type value" + e.getMessage());
+            " to Time/Long type value" + e.getMessage(), e);
         return null;
       }
     }
diff --git a/core/src/main/java/org/apache/carbondata/core/statusmanager/SegmentStatusManager.java b/core/src/main/java/org/apache/carbondata/core/statusmanager/SegmentStatusManager.java
index 4a5063f..fddce90 100755
--- a/core/src/main/java/org/apache/carbondata/core/statusmanager/SegmentStatusManager.java
+++ b/core/src/main/java/org/apache/carbondata/core/statusmanager/SegmentStatusManager.java
@@ -176,7 +176,7 @@ public class SegmentStatusManager {
         }
       }
     } catch (IOException e) {
-      LOG.error(e);
+      LOG.error(e.getMessage(), e);
       throw e;
     }
     return new ValidAndInvalidSegmentsInfo(listOfValidSegments, listOfValidUpdatedSegments,
@@ -391,7 +391,7 @@ public class SegmentStatusManager {
         throw new Exception(errorMsg + " Please try after some time.");
       }
     } catch (IOException e) {
-      LOG.error("IOException" + e.getMessage());
+      LOG.error("IOException" + e.getMessage(), e);
       throw e;
     } finally {
       CarbonLockUtil.fileUnlock(carbonTableStatusLock, LockUsage.TABLE_STATUS_LOCK);
@@ -472,7 +472,7 @@ public class SegmentStatusManager {
         throw new Exception(errorMsg + " Please try after some time.");
       }
     } catch (IOException e) {
-      LOG.error("Error message: " + "IOException" + e.getMessage());
+      LOG.error("Error message: " + "IOException" + e.getMessage(), e);
       throw e;
     } finally {
       CarbonLockUtil.fileUnlock(carbonTableStatusLock, LockUsage.TABLE_STATUS_LOCK);
diff --git a/core/src/main/java/org/apache/carbondata/core/util/CarbonProperties.java b/core/src/main/java/org/apache/carbondata/core/util/CarbonProperties.java
index b337e40..ad27045 100644
--- a/core/src/main/java/org/apache/carbondata/core/util/CarbonProperties.java
+++ b/core/src/main/java/org/apache/carbondata/core/util/CarbonProperties.java
@@ -747,7 +747,7 @@ public final class CarbonProperties {
     try {
       initPropertySet();
     } catch (IllegalAccessException e) {
-      LOGGER.error("Illegal access to declared field" + e.getMessage());
+      LOGGER.error("Illegal access to declared field" + e.getMessage(), e);
     }
   }
 
diff --git a/core/src/main/java/org/apache/carbondata/core/util/CarbonUtil.java b/core/src/main/java/org/apache/carbondata/core/util/CarbonUtil.java
index 7147bd6..ffab9c8 100644
--- a/core/src/main/java/org/apache/carbondata/core/util/CarbonUtil.java
+++ b/core/src/main/java/org/apache/carbondata/core/util/CarbonUtil.java
@@ -744,7 +744,7 @@ public final class CarbonUtil {
         created = FileFactory.mkdirs(path, fileType);
       }
     } catch (IOException e) {
-      LOGGER.error(e.getMessage());
+      LOGGER.error(e.getMessage(), e);
     }
     return created;
   }
@@ -765,7 +765,7 @@ public final class CarbonUtil {
         created = true;
       }
     } catch (IOException e) {
-      LOGGER.error(e);
+      LOGGER.error(e.getMessage(), e);
     }
     return created;
   }
@@ -1446,7 +1446,7 @@ public final class CarbonUtil {
       stream.flush();
       thriftByteArray = stream.toByteArray();
     } catch (TException | IOException e) {
-      LOGGER.error("Error while converting to byte array from thrift object: " + e.getMessage());
+      LOGGER.error("Error while converting to byte array from thrift object: " + e.getMessage(), e);
       closeStreams(stream);
     } finally {
       closeStreams(stream);
@@ -1539,7 +1539,7 @@ public final class CarbonUtil {
       objStream = new ObjectInputStream(aos);
       meta = (ValueEncoderMeta) objStream.readObject();
     } catch (ClassNotFoundException e) {
-      LOGGER.error(e);
+      LOGGER.error(e.getMessage(), e);
     } catch (IOException e) {
       CarbonUtil.closeStreams(objStream);
     }
diff --git a/core/src/main/java/org/apache/carbondata/core/util/DataTypeUtil.java b/core/src/main/java/org/apache/carbondata/core/util/DataTypeUtil.java
index 995f80d..303cc80 100644
--- a/core/src/main/java/org/apache/carbondata/core/util/DataTypeUtil.java
+++ b/core/src/main/java/org/apache/carbondata/core/util/DataTypeUtil.java
@@ -356,7 +356,7 @@ public final class DataTypeUtil {
           Date dateToStr = dateformatter.get().parse(data);
           return dateToStr.getTime() * 1000;
         } catch (ParseException e) {
-          LOGGER.error("Cannot convert value to Time/Long type value" + e.getMessage());
+          LOGGER.error("Cannot convert value to Time/Long type value" + e.getMessage(), e);
           return null;
         }
       } else if (actualDataType == DataTypes.TIMESTAMP) {
@@ -367,7 +367,7 @@ public final class DataTypeUtil {
           Date dateToStr = timeStampformatter.get().parse(data);
           return dateToStr.getTime() * 1000;
         } catch (ParseException e) {
-          LOGGER.error("Cannot convert value to Time/Long type value" + e.getMessage());
+          LOGGER.error("Cannot convert value to Time/Long type value" + e.getMessage(), e);
           return null;
         }
       } else if (DataTypes.isDecimal(actualDataType)) {
@@ -675,7 +675,7 @@ public final class DataTypeUtil {
           Date dateToStr = dateformatter.get().parse(data5);
           return dateToStr.getTime() * 1000;
         } catch (ParseException e) {
-          LOGGER.error("Cannot convert value to Time/Long type value" + e.getMessage());
+          LOGGER.error("Cannot convert value to Time/Long type value" + e.getMessage(), e);
           return null;
         }
       } else if (dataType == DataTypes.TIMESTAMP) {
@@ -687,7 +687,7 @@ public final class DataTypeUtil {
           Date dateToStr = timeStampformatter.get().parse(data6);
           return dateToStr.getTime() * 1000;
         } catch (ParseException e) {
-          LOGGER.error("Cannot convert value to Time/Long type value" + e.getMessage());
+          LOGGER.error("Cannot convert value to Time/Long type value" + e.getMessage(), e);
           return null;
         }
       } else if (DataTypes.isDecimal(dataType)) {
diff --git a/core/src/main/java/org/apache/carbondata/core/util/ObjectSerializationUtil.java b/core/src/main/java/org/apache/carbondata/core/util/ObjectSerializationUtil.java
index 9a4c02d..48c6e65 100644
--- a/core/src/main/java/org/apache/carbondata/core/util/ObjectSerializationUtil.java
+++ b/core/src/main/java/org/apache/carbondata/core/util/ObjectSerializationUtil.java
@@ -65,7 +65,7 @@ public class ObjectSerializationUtil {
           baos.close();
         }
       } catch (IOException e) {
-        LOG.error(e);
+        LOG.error(e.getMessage(), e);
       }
     }
 
@@ -110,7 +110,7 @@ public class ObjectSerializationUtil {
           bais.close();
         }
       } catch (IOException e) {
-        LOG.error(e);
+        LOG.error(e.getMessage(), e);
       }
     }
   }
diff --git a/core/src/main/java/org/apache/carbondata/core/util/path/HDFSLeaseUtils.java b/core/src/main/java/org/apache/carbondata/core/util/path/HDFSLeaseUtils.java
index 1a10f46..3058685 100644
--- a/core/src/main/java/org/apache/carbondata/core/util/path/HDFSLeaseUtils.java
+++ b/core/src/main/java/org/apache/carbondata/core/util/path/HDFSLeaseUtils.java
@@ -133,7 +133,7 @@ public class HDFSLeaseUtils {
           LOGGER.error("The given file does not exist at path " + filePath);
           throw e;
         } else {
-          LOGGER.error("Recover lease threw exception : " + e.getMessage());
+          LOGGER.error("Recover lease threw exception : " + e.getMessage(), e);
           ioException = e;
         }
       }
diff --git a/core/src/test/java/org/apache/carbondata/core/datastore/filesystem/HDFSCarbonFileTest.java b/core/src/test/java/org/apache/carbondata/core/datastore/filesystem/HDFSCarbonFileTest.java
index daebd9f..8adefb3 100644
--- a/core/src/test/java/org/apache/carbondata/core/datastore/filesystem/HDFSCarbonFileTest.java
+++ b/core/src/test/java/org/apache/carbondata/core/datastore/filesystem/HDFSCarbonFileTest.java
@@ -90,7 +90,7 @@ public class HDFSCarbonFileTest {
         try {
             fs.delete(pt, true);
         } catch (IOException e) {
-            LOGGER.error("Exception Occured" + e.getMessage());
+            LOGGER.error("Exception Occured" + e.getMessage(), e);
         }
     }
 
diff --git a/core/src/test/java/org/apache/carbondata/core/load/LoadMetadataDetailsUnitTest.java b/core/src/test/java/org/apache/carbondata/core/load/LoadMetadataDetailsUnitTest.java
index 3032016..e1e92f8 100644
--- a/core/src/test/java/org/apache/carbondata/core/load/LoadMetadataDetailsUnitTest.java
+++ b/core/src/test/java/org/apache/carbondata/core/load/LoadMetadataDetailsUnitTest.java
@@ -113,7 +113,7 @@ public class LoadMetadataDetailsUnitTest {
     try {
       return simpleDateFormat.parse(date).getTime() * 1000;
     } catch (ParseException e) {
-      LOGGER.error("Error while parsing " + date + " " + e.getMessage());
+      LOGGER.error("Error while parsing " + date + " " + e.getMessage(), e);
       return null;
     }
   }
diff --git a/datamap/bloom/src/main/java/org/apache/carbondata/datamap/bloom/BloomCoarseGrainDataMapFactory.java b/datamap/bloom/src/main/java/org/apache/carbondata/datamap/bloom/BloomCoarseGrainDataMapFactory.java
index e730635..9785549 100644
--- a/datamap/bloom/src/main/java/org/apache/carbondata/datamap/bloom/BloomCoarseGrainDataMapFactory.java
+++ b/datamap/bloom/src/main/java/org/apache/carbondata/datamap/bloom/BloomCoarseGrainDataMapFactory.java
@@ -123,7 +123,7 @@ public class BloomCoarseGrainDataMapFactory extends DataMapFactory<CoarseGrainDa
       this.cache = CacheProvider.getInstance()
           .createCache(new CacheType("bloom_cache"), BloomDataMapCache.class.getName());
     } catch (Exception e) {
-      LOGGER.error(e);
+      LOGGER.error(e.getMessage(), e);
       throw new MalformedDataMapCommandException(e.getMessage());
     }
   }
diff --git a/datamap/lucene/src/main/java/org/apache/carbondata/datamap/lucene/LuceneFineGrainDataMap.java b/datamap/lucene/src/main/java/org/apache/carbondata/datamap/lucene/LuceneFineGrainDataMap.java
index 048d41a..da1fe5c 100644
--- a/datamap/lucene/src/main/java/org/apache/carbondata/datamap/lucene/LuceneFineGrainDataMap.java
+++ b/datamap/lucene/src/main/java/org/apache/carbondata/datamap/lucene/LuceneFineGrainDataMap.java
@@ -236,7 +236,7 @@ public class LuceneFineGrainDataMap extends FineGrainDataMap {
     } catch (ParseException e) {
       String errorMessage = String.format(
           "failed to filter block with query %s, detail is %s", strQuery, e.getMessage());
-      LOGGER.error(errorMessage);
+      LOGGER.error(errorMessage, e);
       return null;
     }
     // temporary data, delete duplicated data
@@ -262,8 +262,8 @@ public class LuceneFineGrainDataMap extends FineGrainDataMap {
       } catch (IOException e) {
         String errorMessage =
             String.format("failed to search lucene data, detail is %s", e.getMessage());
-        LOGGER.error(errorMessage);
-        throw new IOException(errorMessage);
+        LOGGER.error(errorMessage, e);
+        throw new IOException(errorMessage, e);
       }
 
       ByteBuffer intBuffer = ByteBuffer.allocate(4);
diff --git a/datamap/lucene/src/main/java/org/apache/carbondata/datamap/lucene/LuceneFineGrainDataMapFactory.java b/datamap/lucene/src/main/java/org/apache/carbondata/datamap/lucene/LuceneFineGrainDataMapFactory.java
index 116370d..a3c4063 100644
--- a/datamap/lucene/src/main/java/org/apache/carbondata/datamap/lucene/LuceneFineGrainDataMapFactory.java
+++ b/datamap/lucene/src/main/java/org/apache/carbondata/datamap/lucene/LuceneFineGrainDataMapFactory.java
@@ -57,7 +57,7 @@ public class LuceneFineGrainDataMapFactory extends LuceneDataMapFactoryBase<Fine
           DataMapWriter.getDefaultDataMapPath(tableIdentifier.getTablePath(),
               segment.getSegmentNo(), dataMapName), segment.getConfiguration()));
     } catch (MemoryException e) {
-      LOGGER.error(String.format("failed to get lucene datamap, detail is %s", e.getMessage()));
+      LOGGER.error(String.format("failed to get lucene datamap, detail is %s", e.getMessage()), e);
       return lstDataMap;
     }
     lstDataMap.add(dataMap);
diff --git a/integration/hive/src/main/java/org/apache/carbondata/hive/CarbonDictionaryDecodeReadSupport.java b/integration/hive/src/main/java/org/apache/carbondata/hive/CarbonDictionaryDecodeReadSupport.java
index e95382c..fdccd09 100644
--- a/integration/hive/src/main/java/org/apache/carbondata/hive/CarbonDictionaryDecodeReadSupport.java
+++ b/integration/hive/src/main/java/org/apache/carbondata/hive/CarbonDictionaryDecodeReadSupport.java
@@ -107,7 +107,7 @@ public class CarbonDictionaryDecodeReadSupport<T> implements CarbonReadSupport<T
       try {
         writableArr[i] = createWritableObject(data[i], carbonColumns[i]);
       } catch (IOException e) {
-        throw new RuntimeException(e.getMessage(), e);
+        throw new RuntimeException(e);
       }
     }
 
diff --git a/integration/hive/src/main/java/org/apache/carbondata/hive/MapredCarbonInputFormat.java b/integration/hive/src/main/java/org/apache/carbondata/hive/MapredCarbonInputFormat.java
index 634c116..1022576 100644
--- a/integration/hive/src/main/java/org/apache/carbondata/hive/MapredCarbonInputFormat.java
+++ b/integration/hive/src/main/java/org/apache/carbondata/hive/MapredCarbonInputFormat.java
@@ -133,7 +133,7 @@ public class MapredCarbonInputFormat extends CarbonTableInputFormat<ArrayWritabl
     try {
       queryModel = getQueryModel(jobConf, path);
     } catch (InvalidConfigurationException e) {
-      LOGGER.error("Failed to create record reader: " + e.getMessage());
+      LOGGER.error("Failed to create record reader: " + e.getMessage(), e);
       return null;
     }
     CarbonReadSupport<ArrayWritable> readSupport = new CarbonDictionaryDecodeReadSupport<>();
diff --git a/integration/presto/src/main/java/org/apache/carbondata/presto/impl/CarbonTableReader.java b/integration/presto/src/main/java/org/apache/carbondata/presto/impl/CarbonTableReader.java
index 916e44c..57d8d5e 100755
--- a/integration/presto/src/main/java/org/apache/carbondata/presto/impl/CarbonTableReader.java
+++ b/integration/presto/src/main/java/org/apache/carbondata/presto/impl/CarbonTableReader.java
@@ -262,9 +262,9 @@ public class CarbonTableReader {
       try {
         loadMetadataDetails = SegmentStatusManager.readTableStatusFile(
             CarbonTablePath.getTableStatusFilePath(carbonTable.getTablePath()));
-      } catch (IOException exception) {
-        LOGGER.error(exception.getMessage());
-        throw exception;
+      } catch (IOException e) {
+        LOGGER.error(e.getMessage(), e);
+        throw e;
       }
       filteredPartitions = findRequiredPartitions(constraints, carbonTable, loadMetadataDetails);
     }
@@ -329,9 +329,9 @@ public class CarbonTableReader {
             new SegmentFileStore(carbonTable.getTablePath(), loadMetadataDetail.getSegmentFile());
         partitionSpecs.addAll(segmentFileStore.getPartitionSpecs());
 
-      } catch (IOException exception) {
-        LOGGER.error(exception.getMessage());
-        throw exception;
+      } catch (IOException e) {
+        LOGGER.error(e.getMessage(), e);
+        throw e;
       }
     }
     List<String> partitionValuesFromExpression =
diff --git a/integration/spark-common/src/main/java/org/apache/carbondata/spark/dictionary/client/SecureDictionaryClientHandler.java b/integration/spark-common/src/main/java/org/apache/carbondata/spark/dictionary/client/SecureDictionaryClientHandler.java
index d3f27ed..cee88fa 100644
--- a/integration/spark-common/src/main/java/org/apache/carbondata/spark/dictionary/client/SecureDictionaryClientHandler.java
+++ b/integration/spark-common/src/main/java/org/apache/carbondata/spark/dictionary/client/SecureDictionaryClientHandler.java
@@ -74,7 +74,7 @@ public class SecureDictionaryClientHandler extends RpcHandler {
       data.release();
       return newKey;
     } catch (Exception e) {
-      LOGGER.error(e);
+      LOGGER.error(e.getMessage(), e);
       throw new RuntimeException(e);
     }
   }
@@ -92,7 +92,7 @@ public class SecureDictionaryClientHandler extends RpcHandler {
         LOGGER.error("Failed to add key: " + key + " to queue");
       }
     } catch (Exception e) {
-      LOGGER.error(e);
+      LOGGER.error(e.getMessage(), e);
       throw e;
     }
   }
diff --git a/integration/spark-common/src/main/java/org/apache/carbondata/spark/dictionary/server/SecureDictionaryServerHandler.java b/integration/spark-common/src/main/java/org/apache/carbondata/spark/dictionary/server/SecureDictionaryServerHandler.java
index 9e291a4..89b8f95 100644
--- a/integration/spark-common/src/main/java/org/apache/carbondata/spark/dictionary/server/SecureDictionaryServerHandler.java
+++ b/integration/spark-common/src/main/java/org/apache/carbondata/spark/dictionary/server/SecureDictionaryServerHandler.java
@@ -84,7 +84,7 @@ import org.apache.spark.network.server.StreamManager;
       key.writeData(buff);
       rpcResponseCallback.onSuccess(buff.nioBuffer());
     } catch (Exception e) {
-      LOGGER.error(e);
+      LOGGER.error(e.getMessage(), e);
     }
   }
 
diff --git a/integration/spark-datasource/src/main/scala/org/apache/carbondata/spark/vectorreader/VectorizedCarbonRecordReader.java b/integration/spark-datasource/src/main/scala/org/apache/carbondata/spark/vectorreader/VectorizedCarbonRecordReader.java
index c9a4ba4..34e7c23 100644
--- a/integration/spark-datasource/src/main/scala/org/apache/carbondata/spark/vectorreader/VectorizedCarbonRecordReader.java
+++ b/integration/spark-datasource/src/main/scala/org/apache/carbondata/spark/vectorreader/VectorizedCarbonRecordReader.java
@@ -146,14 +146,14 @@ public class VectorizedCarbonRecordReader extends AbstractRecordReader<Object> {
       iterator = (AbstractDetailQueryResultIterator) queryExecutor.execute(queryModel);
     } catch (QueryExecutionException e) {
       if (ExceptionUtils.indexOfThrowable(e, FileNotFoundException.class) > 0) {
-        LOGGER.error(e);
+        LOGGER.error(e.getMessage(), e);
         throw new InterruptedException(
             "Insert overwrite may be in progress.Please check " + e.getMessage());
       }
       throw new InterruptedException(e.getMessage());
     } catch (Exception e) {
       if (ExceptionUtils.indexOfThrowable(e, FileNotFoundException.class) > 0) {
-        LOGGER.error(e);
+        LOGGER.error(e.getMessage(), e);
         throw new InterruptedException(
             "Insert overwrite may be in progress.Please check " + e.getMessage());
       }
diff --git a/processing/src/main/java/org/apache/carbondata/processing/datamap/DataMapWriterListener.java b/processing/src/main/java/org/apache/carbondata/processing/datamap/DataMapWriterListener.java
index e88c422..be00480 100644
--- a/processing/src/main/java/org/apache/carbondata/processing/datamap/DataMapWriterListener.java
+++ b/processing/src/main/java/org/apache/carbondata/processing/datamap/DataMapWriterListener.java
@@ -103,7 +103,7 @@ public class DataMapWriterListener {
     try {
       writer = factory.createWriter(new Segment(segmentId), taskNo, segmentProperties);
     } catch (IOException e) {
-      LOG.error("Failed to create DataMapWriter: " + e.getMessage());
+      LOG.error("Failed to create DataMapWriter: " + e.getMessage(), e);
       throw new DataMapWriterException(e);
     }
     if (writers != null) {
diff --git a/processing/src/main/java/org/apache/carbondata/processing/loading/AbstractDataLoadProcessorStep.java b/processing/src/main/java/org/apache/carbondata/processing/loading/AbstractDataLoadProcessorStep.java
index c3b587c..5fd507b 100644
--- a/processing/src/main/java/org/apache/carbondata/processing/loading/AbstractDataLoadProcessorStep.java
+++ b/processing/src/main/java/org/apache/carbondata/processing/loading/AbstractDataLoadProcessorStep.java
@@ -82,7 +82,7 @@ public abstract class AbstractDataLoadProcessorStep {
               Thread.sleep(10000);
             } catch (InterruptedException e) {
               //ignore
-              LOGGER.error(e.getMessage());
+              LOGGER.error(e.getMessage(), e);
             }
           }
         }
diff --git a/processing/src/main/java/org/apache/carbondata/processing/loading/converter/impl/RowConverterImpl.java b/processing/src/main/java/org/apache/carbondata/processing/loading/converter/impl/RowConverterImpl.java
index 458b3ab..df50e25 100644
--- a/processing/src/main/java/org/apache/carbondata/processing/loading/converter/impl/RowConverterImpl.java
+++ b/processing/src/main/java/org/apache/carbondata/processing/loading/converter/impl/RowConverterImpl.java
@@ -144,7 +144,7 @@ public class RowConverterImpl implements RowConverter {
         // wait for client initialization finished, or will raise null pointer exception
         Thread.sleep(1000);
       } catch (InterruptedException e) {
-        LOGGER.error(e);
+        LOGGER.error(e.getMessage(), e);
         throw new RuntimeException(e);
       }
 
diff --git a/processing/src/main/java/org/apache/carbondata/processing/loading/model/CarbonLoadModelBuilder.java b/processing/src/main/java/org/apache/carbondata/processing/loading/model/CarbonLoadModelBuilder.java
index eb3c253..7abd573 100644
--- a/processing/src/main/java/org/apache/carbondata/processing/loading/model/CarbonLoadModelBuilder.java
+++ b/processing/src/main/java/org/apache/carbondata/processing/loading/model/CarbonLoadModelBuilder.java
@@ -421,7 +421,7 @@ public class CarbonLoadModelBuilder {
       CompressorFactory.getInstance().getCompressor(columnCompressor);
       carbonLoadModel.setColumnCompressor(columnCompressor);
     } catch (Exception e) {
-      LOGGER.error(e);
+      LOGGER.error(e.getMessage(), e);
       throw new InvalidLoadOptionException("Failed to load the compressor");
     }
   }
diff --git a/processing/src/main/java/org/apache/carbondata/processing/loading/parser/impl/JsonRowParser.java b/processing/src/main/java/org/apache/carbondata/processing/loading/parser/impl/JsonRowParser.java
index 119ae67..bc494e6 100644
--- a/processing/src/main/java/org/apache/carbondata/processing/loading/parser/impl/JsonRowParser.java
+++ b/processing/src/main/java/org/apache/carbondata/processing/loading/parser/impl/JsonRowParser.java
@@ -64,7 +64,7 @@ public class JsonRowParser implements RowParser {
       jsonNodeMapCaseInsensitive.putAll(jsonNodeMap);
       return jsonToCarbonRecord(jsonNodeMapCaseInsensitive, dataFields);
     } catch (IOException e) {
-      throw new IOException("Failed to parse Json String: " + e.getMessage());
+      throw new IOException("Failed to parse Json String: " + e.getMessage(), e);
     }
   }
 
diff --git a/processing/src/main/java/org/apache/carbondata/processing/loading/sort/impl/ParallelReadMergeSorterImpl.java b/processing/src/main/java/org/apache/carbondata/processing/loading/sort/impl/ParallelReadMergeSorterImpl.java
index 55b336e..02d6309 100644
--- a/processing/src/main/java/org/apache/carbondata/processing/loading/sort/impl/ParallelReadMergeSorterImpl.java
+++ b/processing/src/main/java/org/apache/carbondata/processing/loading/sort/impl/ParallelReadMergeSorterImpl.java
@@ -217,7 +217,7 @@ public class ParallelReadMergeSorterImpl extends AbstractMergeSorter {
           }
         }
       } catch (Exception e) {
-        LOGGER.error(e);
+        LOGGER.error(e.getMessage(), e);
         observer.notifyFailed(e);
       }
     }
diff --git a/processing/src/main/java/org/apache/carbondata/processing/loading/sort/impl/ParallelReadMergeSorterWithColumnRangeImpl.java b/processing/src/main/java/org/apache/carbondata/processing/loading/sort/impl/ParallelReadMergeSorterWithColumnRangeImpl.java
index 8b86c0c..e1dddee 100644
--- a/processing/src/main/java/org/apache/carbondata/processing/loading/sort/impl/ParallelReadMergeSorterWithColumnRangeImpl.java
+++ b/processing/src/main/java/org/apache/carbondata/processing/loading/sort/impl/ParallelReadMergeSorterWithColumnRangeImpl.java
@@ -238,7 +238,7 @@ public class ParallelReadMergeSorterWithColumnRangeImpl extends AbstractMergeSor
         }
         LOGGER.info("Rows processed by each range: " + insideCounterList);
       } catch (Exception e) {
-        LOGGER.error(e);
+        LOGGER.error(e.getMessage(), e);
         this.threadStatusObserver.notifyFailed(e);
       }
     }
diff --git a/processing/src/main/java/org/apache/carbondata/processing/loading/sort/impl/UnsafeBatchParallelReadMergeSorterImpl.java b/processing/src/main/java/org/apache/carbondata/processing/loading/sort/impl/UnsafeBatchParallelReadMergeSorterImpl.java
index aa960b6..2d2455b 100644
--- a/processing/src/main/java/org/apache/carbondata/processing/loading/sort/impl/UnsafeBatchParallelReadMergeSorterImpl.java
+++ b/processing/src/main/java/org/apache/carbondata/processing/loading/sort/impl/UnsafeBatchParallelReadMergeSorterImpl.java
@@ -115,7 +115,7 @@ public class UnsafeBatchParallelReadMergeSorterImpl extends AbstractMergeSorter
     try {
       executorService.awaitTermination(2, TimeUnit.DAYS);
     } catch (InterruptedException e) {
-      LOGGER.error(e);
+      LOGGER.error(e.getMessage(), e);
     }
   }
 
@@ -167,7 +167,7 @@ public class UnsafeBatchParallelReadMergeSorterImpl extends AbstractMergeSorter
           }
         }
       } catch (Exception e) {
-        LOGGER.error(e);
+        LOGGER.error(e.getMessage(), e);
         this.threadStatusObserver.notifyFailed(e);
       } finally {
         synchronized (sortDataRows) {
diff --git a/processing/src/main/java/org/apache/carbondata/processing/loading/sort/impl/UnsafeParallelReadMergeSorterImpl.java b/processing/src/main/java/org/apache/carbondata/processing/loading/sort/impl/UnsafeParallelReadMergeSorterImpl.java
index 6e11ca6..8af3ae2 100644
--- a/processing/src/main/java/org/apache/carbondata/processing/loading/sort/impl/UnsafeParallelReadMergeSorterImpl.java
+++ b/processing/src/main/java/org/apache/carbondata/processing/loading/sort/impl/UnsafeParallelReadMergeSorterImpl.java
@@ -208,7 +208,7 @@ public class UnsafeParallelReadMergeSorterImpl extends AbstractMergeSorter {
           }
         }
       } catch (Exception e) {
-        LOGGER.error(e);
+        LOGGER.error(e.getMessage(), e);
         this.threadStatusObserver.notifyFailed(e);
       }
     }
diff --git a/processing/src/main/java/org/apache/carbondata/processing/loading/sort/impl/UnsafeParallelReadMergeSorterWithColumnRangeImpl.java b/processing/src/main/java/org/apache/carbondata/processing/loading/sort/impl/UnsafeParallelReadMergeSorterWithColumnRangeImpl.java
index f9631a5..693cc96 100644
--- a/processing/src/main/java/org/apache/carbondata/processing/loading/sort/impl/UnsafeParallelReadMergeSorterWithColumnRangeImpl.java
+++ b/processing/src/main/java/org/apache/carbondata/processing/loading/sort/impl/UnsafeParallelReadMergeSorterWithColumnRangeImpl.java
@@ -232,7 +232,7 @@ public class UnsafeParallelReadMergeSorterWithColumnRangeImpl extends AbstractMe
         }
         LOGGER.info("Rows processed by each range: " + insideRowCounterList);
       } catch (Exception e) {
-        LOGGER.error(e);
+        LOGGER.error(e.getMessage(), e);
         this.threadStatusObserver.notifyFailed(e);
       }
     }
diff --git a/processing/src/main/java/org/apache/carbondata/processing/loading/sort/unsafe/UnsafeSortDataRows.java b/processing/src/main/java/org/apache/carbondata/processing/loading/sort/unsafe/UnsafeSortDataRows.java
index e8e1c08..87f97be 100644
--- a/processing/src/main/java/org/apache/carbondata/processing/loading/sort/unsafe/UnsafeSortDataRows.java
+++ b/processing/src/main/java/org/apache/carbondata/processing/loading/sort/unsafe/UnsafeSortDataRows.java
@@ -199,8 +199,8 @@ public class UnsafeSortDataRows {
           } catch (Exception ex) {
             // row page has freed in handlePreviousPage(), so other iterator may try to access it.
             rowPage = null;
-            LOGGER.error(
-                "exception occurred while trying to acquire a semaphore lock: " + ex.getMessage());
+            LOGGER.error("exception occurred while trying to acquire a semaphore lock: "
+                + ex.getMessage(), ex);
             throw new CarbonSortKeyAndGroupByException(ex);
           }
         }
@@ -213,7 +213,7 @@ public class UnsafeSortDataRows {
           i--;
         } else {
           LOGGER.error(
-              "exception occurred while trying to acquire a semaphore lock: " + e.getMessage());
+              "exception occurred while trying to acquire a semaphore lock: " + e.getMessage(), e);
           throw new CarbonSortKeyAndGroupByException(e);
         }
       }
@@ -236,8 +236,8 @@ public class UnsafeSortDataRows {
           rowPage = createUnsafeRowPage();
         } catch (Exception ex) {
           rowPage = null;
-          LOGGER.error(
-              "exception occurred while trying to acquire a semaphore lock: " + ex.getMessage());
+          LOGGER.error("exception occurred while trying to acquire a semaphore lock: "
+              + ex.getMessage(), ex);
           throw new CarbonSortKeyAndGroupByException(ex);
         }
       }
@@ -249,7 +249,7 @@ public class UnsafeSortDataRows {
         addRow(row);
       } else {
         LOGGER.error(
-            "exception occurred while trying to acquire a semaphore lock: " + e.getMessage());
+            "exception occurred while trying to acquire a semaphore lock: " + e.getMessage(), e);
         throw new CarbonSortKeyAndGroupByException(e);
       }
     }
@@ -422,7 +422,7 @@ public class UnsafeSortDataRows {
         try {
           threadStatusObserver.notifyFailed(e);
         } catch (CarbonSortKeyAndGroupByException ex) {
-          LOGGER.error(e);
+          LOGGER.error(e.getMessage(), e);
         }
       } finally {
         semaphore.release();
diff --git a/processing/src/main/java/org/apache/carbondata/processing/loading/sort/unsafe/holder/UnsafeSortTempFileChunkHolder.java b/processing/src/main/java/org/apache/carbondata/processing/loading/sort/unsafe/holder/UnsafeSortTempFileChunkHolder.java
index 4a97b20..04cab70 100644
--- a/processing/src/main/java/org/apache/carbondata/processing/loading/sort/unsafe/holder/UnsafeSortTempFileChunkHolder.java
+++ b/processing/src/main/java/org/apache/carbondata/processing/loading/sort/unsafe/holder/UnsafeSortTempFileChunkHolder.java
@@ -145,13 +145,13 @@ public class UnsafeSortTempFileChunkHolder implements SortTempChunkHolder {
         }
       }
     } catch (FileNotFoundException e) {
-      LOGGER.error(e);
+      LOGGER.error(e.getMessage(), e);
       throw new RuntimeException(tempFile + " No Found", e);
     } catch (IOException e) {
-      LOGGER.error(e);
+      LOGGER.error(e.getMessage(), e);
       throw new RuntimeException(tempFile + " No Found", e);
     } catch (Exception e) {
-      LOGGER.error(e);
+      LOGGER.error(e.getMessage(), e);
       throw new RuntimeException(tempFile + " Problem while reading", e);
     }
   }
@@ -193,7 +193,7 @@ public class UnsafeSortTempFileChunkHolder implements SortTempChunkHolder {
         try {
           submit.get();
         } catch (Exception e) {
-          LOGGER.error(e);
+          LOGGER.error(e.getMessage(), e);
         }
         bufferRowCounter = 0;
         currentBuffer = backupBuffer;
@@ -319,7 +319,7 @@ public class UnsafeSortTempFileChunkHolder implements SortTempChunkHolder {
           currentBuffer = prefetchRecordsFromFile(numberOfRecords);
         }
       } catch (Exception e) {
-        LOGGER.error(e);
+        LOGGER.error(e.getMessage(), e);
       }
       return null;
     }
diff --git a/processing/src/main/java/org/apache/carbondata/processing/loading/sort/unsafe/merger/UnsafeIntermediateMerger.java b/processing/src/main/java/org/apache/carbondata/processing/loading/sort/unsafe/merger/UnsafeIntermediateMerger.java
index 1389ff7..ea12263 100644
--- a/processing/src/main/java/org/apache/carbondata/processing/loading/sort/unsafe/merger/UnsafeIntermediateMerger.java
+++ b/processing/src/main/java/org/apache/carbondata/processing/loading/sort/unsafe/merger/UnsafeIntermediateMerger.java
@@ -213,7 +213,7 @@ public class UnsafeIntermediateMerger {
         mergerTask.get(i).get();
       } catch (InterruptedException | ExecutionException e) {
         LOGGER.error(e.getMessage(), e);
-        throw new CarbonSortKeyAndGroupByException(e.getMessage(), e);
+        throw new CarbonSortKeyAndGroupByException(e);
       }
     }
   }
diff --git a/processing/src/main/java/org/apache/carbondata/processing/loading/sort/unsafe/merger/UnsafeSingleThreadFinalSortFilesMerger.java b/processing/src/main/java/org/apache/carbondata/processing/loading/sort/unsafe/merger/UnsafeSingleThreadFinalSortFilesMerger.java
index 7e36389..e7cadec 100644
--- a/processing/src/main/java/org/apache/carbondata/processing/loading/sort/unsafe/merger/UnsafeSingleThreadFinalSortFilesMerger.java
+++ b/processing/src/main/java/org/apache/carbondata/processing/loading/sort/unsafe/merger/UnsafeSingleThreadFinalSortFilesMerger.java
@@ -154,7 +154,7 @@ public class UnsafeSingleThreadFinalSortFilesMerger extends CarbonIterator<Objec
 
       LOGGER.info("Heap Size: " + this.recordHolderHeapLocal.size());
     } catch (Exception e) {
-      LOGGER.error(e);
+      LOGGER.error(e.getMessage(), e);
       throw new CarbonDataWriterException(e);
     }
   }
@@ -238,7 +238,7 @@ public class UnsafeSingleThreadFinalSortFilesMerger extends CarbonIterator<Objec
     try {
       poll.readRow();
     } catch (Exception e) {
-      throw new CarbonDataWriterException(e.getMessage(), e);
+      throw new CarbonDataWriterException(e);
     }
 
     // add to heap
diff --git a/processing/src/main/java/org/apache/carbondata/processing/loading/steps/CarbonRowDataWriterProcessorStepImpl.java b/processing/src/main/java/org/apache/carbondata/processing/loading/steps/CarbonRowDataWriterProcessorStepImpl.java
index 68e8e22..f976abe 100644
--- a/processing/src/main/java/org/apache/carbondata/processing/loading/steps/CarbonRowDataWriterProcessorStepImpl.java
+++ b/processing/src/main/java/org/apache/carbondata/processing/loading/steps/CarbonRowDataWriterProcessorStepImpl.java
@@ -146,7 +146,7 @@ public class CarbonRowDataWriterProcessorStepImpl extends AbstractDataLoadProces
     } catch (CarbonDataWriterException e) {
       LOGGER.error("Failed for table: " + tableName + " in DataWriterProcessorStepImpl", e);
       throw new CarbonDataLoadingException(
-          "Error while initializing data handler : " + e.getMessage());
+          "Error while initializing data handler : " + e.getMessage(), e);
     } catch (Exception e) {
       LOGGER.error("Failed for table: " + tableName + " in DataWriterProcessorStepImpl", e);
       if (e instanceof BadRecordFoundException) {
@@ -234,10 +234,10 @@ public class CarbonRowDataWriterProcessorStepImpl extends AbstractDataLoadProces
         dataHandler.closeHandler();
       } catch (CarbonDataWriterException e) {
         LOGGER.error(e.getMessage(), e);
-        throw new CarbonDataLoadingException(e.getMessage());
+        throw new CarbonDataLoadingException(e);
       } catch (Exception e) {
         LOGGER.error(e.getMessage(), e);
-        throw new CarbonDataLoadingException("There is an unexpected error: " + e.getMessage());
+        throw new CarbonDataLoadingException("There is an unexpected error: " + e.getMessage(), e);
       }
     }
   }
@@ -330,7 +330,7 @@ public class CarbonRowDataWriterProcessorStepImpl extends AbstractDataLoadProces
       try {
         doExecute(this.iterator, iteratorIndex);
       } catch (IOException e) {
-        LOGGER.error(e);
+        LOGGER.error(e.getMessage(), e);
         throw new RuntimeException(e);
       }
     }
diff --git a/processing/src/main/java/org/apache/carbondata/processing/loading/steps/DataWriterBatchProcessorStepImpl.java b/processing/src/main/java/org/apache/carbondata/processing/loading/steps/DataWriterBatchProcessorStepImpl.java
index 05b2424..33948de 100644
--- a/processing/src/main/java/org/apache/carbondata/processing/loading/steps/DataWriterBatchProcessorStepImpl.java
+++ b/processing/src/main/java/org/apache/carbondata/processing/loading/steps/DataWriterBatchProcessorStepImpl.java
@@ -116,7 +116,7 @@ public class DataWriterBatchProcessorStepImpl extends AbstractDataLoadProcessorS
       if (e.getCause() instanceof BadRecordFoundException) {
         throw new BadRecordFoundException(e.getCause().getMessage());
       }
-      throw new CarbonDataLoadingException("There is an unexpected error: " + e.getMessage());
+      throw new CarbonDataLoadingException("There is an unexpected error: " + e.getMessage(), e);
     }
     return null;
   }
@@ -160,7 +160,7 @@ public class DataWriterBatchProcessorStepImpl extends AbstractDataLoadProcessorS
       try {
         dataHandler.closeHandler();
       } catch (Exception e) {
-        LOGGER.error(e);
+        LOGGER.error(e.getMessage(), e);
         throw new CarbonDataLoadingException(
             "There is an unexpected error while closing data handler", e);
       }
diff --git a/processing/src/main/java/org/apache/carbondata/processing/merger/CarbonCompactionUtil.java b/processing/src/main/java/org/apache/carbondata/processing/merger/CarbonCompactionUtil.java
index ffcfe0c..efd2559 100644
--- a/processing/src/main/java/org/apache/carbondata/processing/merger/CarbonCompactionUtil.java
+++ b/processing/src/main/java/org/apache/carbondata/processing/merger/CarbonCompactionUtil.java
@@ -180,7 +180,7 @@ public class CarbonCompactionUtil {
         return true;
       }
     } catch (IOException e) {
-      LOGGER.error("Exception in isFileExist compaction request file " + e.getMessage());
+      LOGGER.error("Exception in isFileExist compaction request file " + e.getMessage(), e);
     }
     return false;
   }
@@ -207,7 +207,7 @@ public class CarbonCompactionUtil {
       }
 
     } catch (IOException e) {
-      LOGGER.error("Exception in determining the compaction request file " + e.getMessage());
+      LOGGER.error("Exception in determining the compaction request file " + e.getMessage(), e);
     }
     return CompactionType.MINOR;
   }
@@ -243,7 +243,7 @@ public class CarbonCompactionUtil {
         LOGGER.info("Compaction request file is not present. file is : " + compactionRequiredFile);
       }
     } catch (IOException e) {
-      LOGGER.error("Exception in deleting the compaction request file " + e.getMessage());
+      LOGGER.error("Exception in deleting the compaction request file " + e.getMessage(), e);
     }
     return false;
   }
@@ -277,7 +277,7 @@ public class CarbonCompactionUtil {
         LOGGER.info("Compaction request file : " + statusFile + " already exist.");
       }
     } catch (IOException e) {
-      LOGGER.error("Exception in creating the compaction request file " + e.getMessage());
+      LOGGER.error("Exception in creating the compaction request file " + e.getMessage(), e);
     }
     return false;
   }
diff --git a/processing/src/main/java/org/apache/carbondata/processing/merger/CarbonDataMergerUtil.java b/processing/src/main/java/org/apache/carbondata/processing/merger/CarbonDataMergerUtil.java
index b380888..01e47be 100644
--- a/processing/src/main/java/org/apache/carbondata/processing/merger/CarbonDataMergerUtil.java
+++ b/processing/src/main/java/org/apache/carbondata/processing/merger/CarbonDataMergerUtil.java
@@ -554,7 +554,7 @@ public final class CarbonDataMergerUtil {
         try {
           segDate2 = sdf.parse(sdf.format(segmentDate));
         } catch (ParseException e) {
-          LOGGER.error("Error while parsing segment start time" + e.getMessage());
+          LOGGER.error("Error while parsing segment start time" + e.getMessage(), e);
         }
 
         if (isTwoDatesPresentInRequiredRange(segDate1, segDate2, numberOfDaysAllowedToMerge)) {
@@ -596,7 +596,7 @@ public final class CarbonDataMergerUtil {
     try {
       segDate1 = sdf.parse(sdf.format(baselineLoadStartTime));
     } catch (ParseException e) {
-      LOGGER.error("Error while parsing segment start time" + e.getMessage());
+      LOGGER.error("Error while parsing segment start time" + e.getMessage(), e);
     }
     loadsOfSameDate.add(segment);
     return segDate1;
diff --git a/processing/src/main/java/org/apache/carbondata/processing/merger/CompactionResultSortProcessor.java b/processing/src/main/java/org/apache/carbondata/processing/merger/CompactionResultSortProcessor.java
index a1d5b43..7b3381c 100644
--- a/processing/src/main/java/org/apache/carbondata/processing/merger/CompactionResultSortProcessor.java
+++ b/processing/src/main/java/org/apache/carbondata/processing/merger/CompactionResultSortProcessor.java
@@ -226,7 +226,7 @@ public class CompactionResultSortProcessor extends AbstractResultProcessor {
         try {
           CarbonUtil.deleteFoldersAndFiles(new File(tempLoc));
         } catch (IOException | InterruptedException e) {
-          LOGGER.error("Problem deleting local folders during compaction: " + e.getMessage());
+          LOGGER.error("Problem deleting local folders during compaction: " + e.getMessage(), e);
         }
       }
     }
@@ -256,8 +256,8 @@ public class CompactionResultSortProcessor extends AbstractResultProcessor {
     try {
       sortDataRows.startSorting();
     } catch (CarbonSortKeyAndGroupByException e) {
-      LOGGER.error(e);
-      throw new Exception("Problem loading data during compaction: " + e.getMessage());
+      LOGGER.error(e.getMessage(), e);
+      throw new Exception("Problem loading data during compaction: " + e.getMessage(), e);
     }
   }
 
@@ -394,10 +394,10 @@ public class CompactionResultSortProcessor extends AbstractResultProcessor {
       }
       dataHandler.finish();
     } catch (CarbonDataWriterException e) {
-      LOGGER.error(e);
+      LOGGER.error(e.getMessage(), e);
       throw new Exception("Problem loading data during compaction.", e);
     } catch (Exception e) {
-      LOGGER.error(e);
+      LOGGER.error(e.getMessage(), e);
       throw new Exception("Problem loading data during compaction.", e);
     } finally {
       if (null != dataHandler) {
@@ -420,8 +420,9 @@ public class CompactionResultSortProcessor extends AbstractResultProcessor {
     try {
       sortDataRows.addRow(row);
     } catch (CarbonSortKeyAndGroupByException e) {
-      LOGGER.error(e);
-      throw new Exception("Row addition for sorting failed during compaction: " + e.getMessage());
+      LOGGER.error(e.getMessage(), e);
+      throw new Exception("Row addition for sorting failed during compaction: "
+          + e.getMessage(), e);
     }
   }
 
@@ -459,9 +460,9 @@ public class CompactionResultSortProcessor extends AbstractResultProcessor {
     try {
       this.sortDataRows.initialize();
     } catch (CarbonSortKeyAndGroupByException e) {
-      LOGGER.error(e);
+      LOGGER.error(e.getMessage(), e);
       throw new Exception(
-          "Error initializing sort data rows object during compaction: " + e.getMessage());
+          "Error initializing sort data rows object during compaction: " + e.getMessage(), e);
     }
   }
 
@@ -517,8 +518,9 @@ public class CompactionResultSortProcessor extends AbstractResultProcessor {
     try {
       dataHandler.initialise();
     } catch (CarbonDataWriterException e) {
-      LOGGER.error(e);
-      throw new Exception("Problem initialising data handler during compaction: " + e.getMessage());
+      LOGGER.error(e.getMessage(), e);
+      throw new Exception("Problem initialising data handler during compaction: "
+          + e.getMessage(), e);
     }
   }
 
diff --git a/processing/src/main/java/org/apache/carbondata/processing/merger/RowResultMergerProcessor.java b/processing/src/main/java/org/apache/carbondata/processing/merger/RowResultMergerProcessor.java
index 5566422..7234c33 100644
--- a/processing/src/main/java/org/apache/carbondata/processing/merger/RowResultMergerProcessor.java
+++ b/processing/src/main/java/org/apache/carbondata/processing/merger/RowResultMergerProcessor.java
@@ -244,7 +244,7 @@ public class RowResultMergerProcessor extends AbstractResultProcessor {
         row1 = o1.fetchConverted();
         row2 = o2.fetchConverted();
       } catch (KeyGenException e) {
-        LOGGER.error(e.getMessage());
+        LOGGER.error(e.getMessage(), e);
       }
       if (null == row1 || null == row2) {
         return 0;
diff --git a/processing/src/main/java/org/apache/carbondata/processing/partition/spliter/RowResultProcessor.java b/processing/src/main/java/org/apache/carbondata/processing/partition/spliter/RowResultProcessor.java
index 977b9d3..d7f23fb 100644
--- a/processing/src/main/java/org/apache/carbondata/processing/partition/spliter/RowResultProcessor.java
+++ b/processing/src/main/java/org/apache/carbondata/processing/partition/spliter/RowResultProcessor.java
@@ -86,8 +86,7 @@ public class RowResultProcessor {
       }
       processStatus = true;
     } catch (CarbonDataWriterException e) {
-      LOGGER.error(e.getMessage(), e);
-      LOGGER.error("Exception in executing RowResultProcessor" + e.getMessage());
+      LOGGER.error("Exception in executing RowResultProcessor" + e.getMessage(), e);
       processStatus = false;
     } finally {
       try {
@@ -95,7 +94,8 @@ public class RowResultProcessor {
           this.dataHandler.closeHandler();
         }
       } catch (Exception e) {
-        LOGGER.error("Exception while closing the handler in RowResultProcessor" + e.getMessage());
+        LOGGER.error("Exception while closing the handler in RowResultProcessor"
+            + e.getMessage(), e);
         processStatus = false;
       }
     }
diff --git a/processing/src/main/java/org/apache/carbondata/processing/sort/sortdata/SingleThreadFinalSortFilesMerger.java b/processing/src/main/java/org/apache/carbondata/processing/sort/sortdata/SingleThreadFinalSortFilesMerger.java
index bd9526f..6f36e96 100644
--- a/processing/src/main/java/org/apache/carbondata/processing/sort/sortdata/SingleThreadFinalSortFilesMerger.java
+++ b/processing/src/main/java/org/apache/carbondata/processing/sort/sortdata/SingleThreadFinalSortFilesMerger.java
@@ -212,7 +212,7 @@ public class SingleThreadFinalSortFilesMerger extends CarbonIterator<Object[]> {
     try {
       executorService.awaitTermination(2, TimeUnit.HOURS);
     } catch (Exception e) {
-      throw new CarbonDataWriterException(e.getMessage(), e);
+      throw new CarbonDataWriterException(e);
     }
     checkFailure();
     LOGGER.info("final merger Heap Size" + this.recordHolderHeapLocal.size());
@@ -290,7 +290,7 @@ public class SingleThreadFinalSortFilesMerger extends CarbonIterator<Object[]> {
       poll.readRow();
     } catch (CarbonSortKeyAndGroupByException e) {
       close();
-      throw new CarbonDataWriterException(e.getMessage(), e);
+      throw new CarbonDataWriterException(e);
     }
 
     // add to heap
diff --git a/processing/src/main/java/org/apache/carbondata/processing/sort/sortdata/SortDataRows.java b/processing/src/main/java/org/apache/carbondata/processing/sort/sortdata/SortDataRows.java
index 996b844..128547d 100644
--- a/processing/src/main/java/org/apache/carbondata/processing/sort/sortdata/SortDataRows.java
+++ b/processing/src/main/java/org/apache/carbondata/processing/sort/sortdata/SortDataRows.java
@@ -174,7 +174,7 @@ public class SortDataRows {
               .execute(new DataSorterAndWriter(recordHolderListLocal));
         } catch (Exception e) {
           LOGGER.error(
-              "exception occurred while trying to acquire a semaphore lock: " + e.getMessage());
+              "exception occurred while trying to acquire a semaphore lock: " + e.getMessage(), e);
           throw new CarbonSortKeyAndGroupByException(e);
         }
         // create the new holder Array
diff --git a/processing/src/main/java/org/apache/carbondata/processing/sort/sortdata/SortTempFileChunkHolder.java b/processing/src/main/java/org/apache/carbondata/processing/sort/sortdata/SortTempFileChunkHolder.java
index 82e6b37..eeea2ec 100644
--- a/processing/src/main/java/org/apache/carbondata/processing/sort/sortdata/SortTempFileChunkHolder.java
+++ b/processing/src/main/java/org/apache/carbondata/processing/sort/sortdata/SortTempFileChunkHolder.java
@@ -157,13 +157,13 @@ public class SortTempFileChunkHolder implements Comparable<SortTempFileChunkHold
         }
       }
     } catch (FileNotFoundException e) {
-      LOGGER.error(e);
+      LOGGER.error(e.getMessage(), e);
       throw new CarbonSortKeyAndGroupByException(tempFile + " No Found", e);
     } catch (IOException e) {
-      LOGGER.error(e);
+      LOGGER.error(e.getMessage(), e);
       throw new CarbonSortKeyAndGroupByException(tempFile + " No Found", e);
     } catch (Exception e) {
-      LOGGER.error(e);
+      LOGGER.error(e.getMessage(), e);
       throw new CarbonSortKeyAndGroupByException(tempFile + " Problem while reading", e);
     }
   }
@@ -204,7 +204,7 @@ public class SortTempFileChunkHolder implements Comparable<SortTempFileChunkHold
         try {
           submit.get();
         } catch (Exception e) {
-          LOGGER.error(e);
+          LOGGER.error(e.getMessage(), e);
         }
         bufferRowCounter = 0;
         currentBuffer = backupBuffer;
@@ -330,7 +330,7 @@ public class SortTempFileChunkHolder implements Comparable<SortTempFileChunkHold
           currentBuffer = prefetchRecordsFromFile(numberOfRecords);
         }
       } catch (Exception e) {
-        LOGGER.error(e);
+        LOGGER.error(e.getMessage(), e);
       }
       return null;
     }
diff --git a/processing/src/main/java/org/apache/carbondata/processing/store/CarbonFactDataHandlerColumnar.java b/processing/src/main/java/org/apache/carbondata/processing/store/CarbonFactDataHandlerColumnar.java
index 96fd544..1270b1f 100644
--- a/processing/src/main/java/org/apache/carbondata/processing/store/CarbonFactDataHandlerColumnar.java
+++ b/processing/src/main/java/org/apache/carbondata/processing/store/CarbonFactDataHandlerColumnar.java
@@ -220,7 +220,7 @@ public class CarbonFactDataHandlerColumnar implements CarbonFactHandler {
         this.entryCount = 0;
       } catch (InterruptedException e) {
         LOGGER.error(e.getMessage(), e);
-        throw new CarbonDataWriterException(e.getMessage(), e);
+        throw new CarbonDataWriterException(e);
       }
     }
   }
@@ -326,7 +326,7 @@ public class CarbonFactDataHandlerColumnar implements CarbonFactHandler {
       processingComplete = true;
     } catch (InterruptedException e) {
       LOGGER.error(e.getMessage(), e);
-      throw new CarbonDataWriterException(e.getMessage(), e);
+      throw new CarbonDataWriterException(e);
     }
   }
 
@@ -344,7 +344,7 @@ public class CarbonFactDataHandlerColumnar implements CarbonFactHandler {
       service.awaitTermination(1, TimeUnit.DAYS);
     } catch (InterruptedException e) {
       LOGGER.error(e.getMessage(), e);
-      throw new CarbonDataWriterException(e.getMessage());
+      throw new CarbonDataWriterException(e);
     }
   }
 
@@ -362,7 +362,7 @@ public class CarbonFactDataHandlerColumnar implements CarbonFactHandler {
         taskList.get(i).get();
       } catch (InterruptedException | ExecutionException e) {
         LOGGER.error(e.getMessage(), e);
-        throw new CarbonDataWriterException(e.getMessage(), e);
+        throw new CarbonDataWriterException(e);
       }
     }
   }
@@ -382,7 +382,7 @@ public class CarbonFactDataHandlerColumnar implements CarbonFactHandler {
         try {
           Thread.sleep(50);
         } catch (InterruptedException e) {
-          throw new CarbonDataWriterException(e.getMessage());
+          throw new CarbonDataWriterException(e);
         }
       }
       consumerExecutorService.shutdownNow();
@@ -641,7 +641,7 @@ public class CarbonFactDataHandlerColumnar implements CarbonFactHandler {
             producerExecutorService.shutdownNow();
             resetBlockletProcessingCount();
             LOGGER.error("Problem while writing the carbon data file", throwable);
-            throw new CarbonDataWriterException(throwable.getMessage());
+            throw new CarbonDataWriterException(throwable);
           }
         } finally {
           semaphore.release();
diff --git a/processing/src/main/java/org/apache/carbondata/processing/util/CarbonLoaderUtil.java b/processing/src/main/java/org/apache/carbondata/processing/util/CarbonLoaderUtil.java
index 0ff3eb6..a396978 100644
--- a/processing/src/main/java/org/apache/carbondata/processing/util/CarbonLoaderUtil.java
+++ b/processing/src/main/java/org/apache/carbondata/processing/util/CarbonLoaderUtil.java
@@ -143,7 +143,7 @@ public final class CarbonLoaderUtil {
         CarbonUtil.deleteFoldersAndFiles(carbonFile);
       }
     } catch (IOException | InterruptedException e) {
-      LOGGER.error("Unable to delete the given path :: " + e.getMessage());
+      LOGGER.error("Unable to delete the given path :: " + e.getMessage(), e);
     }
   }
 
@@ -354,7 +354,7 @@ public final class CarbonLoaderUtil {
           try {
             CarbonUtil.deleteFoldersAndFiles(staleFolder);
           } catch (IOException | InterruptedException e) {
-            LOGGER.error("Failed to delete stale folder: " + e.getMessage());
+            LOGGER.error("Failed to delete stale folder: " + e.getMessage(), e);
           }
         }
         status = true;
@@ -967,7 +967,7 @@ public final class CarbonLoaderUtil {
                     + StringUtils.join(block.getLocations(), ", ")
                     + ")-->" + activeExecutor);
               } catch (IOException e) {
-                LOGGER.error(e);
+                LOGGER.error(e.getMessage(), e);
               }
             }
             remainingBlocks.remove(block);
diff --git a/store/sdk/src/main/java/org/apache/carbondata/store/LocalCarbonStore.java b/store/sdk/src/main/java/org/apache/carbondata/store/LocalCarbonStore.java
index 7bfc1cb..307f64f 100644
--- a/store/sdk/src/main/java/org/apache/carbondata/store/LocalCarbonStore.java
+++ b/store/sdk/src/main/java/org/apache/carbondata/store/LocalCarbonStore.java
@@ -109,7 +109,7 @@ class LocalCarbonStore extends MetaCachedCarbonStore {
         try {
           reader.close();
         } catch (IOException e) {
-          LOGGER.error(e);
+          LOGGER.error(e.getMessage(), e);
         }
       }
     } catch (InterruptedException e) {
@@ -119,7 +119,7 @@ class LocalCarbonStore extends MetaCachedCarbonStore {
         try {
           reader.close();
         } catch (IOException e) {
-          LOGGER.error(e);
+          LOGGER.error(e.getMessage(), e);
         }
       }
     }
diff --git a/tools/cli/src/main/java/org/apache/carbondata/tool/CarbonCli.java b/tools/cli/src/main/java/org/apache/carbondata/tool/CarbonCli.java
index 6fc3128..a122394 100644
--- a/tools/cli/src/main/java/org/apache/carbondata/tool/CarbonCli.java
+++ b/tools/cli/src/main/java/org/apache/carbondata/tool/CarbonCli.java
@@ -123,8 +123,8 @@ public class CarbonCli {
     CommandLine line;
     try {
       line = parser.parse(options, args);
-    } catch (ParseException exp) {
-      throw new RuntimeException("Parsing failed. Reason: " + exp.getMessage());
+    } catch (ParseException ex) {
+      throw new RuntimeException("Parsing failed. Reason: " + ex.getMessage(), ex);
     }
 
     runCli(System.out, options, line);