You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by jb...@apache.org on 2020/01/10 13:48:06 UTC

[lucene-solr] branch branch_8x updated: SOLR-14130: Improve robustness of the logs parser

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

jbernste pushed a commit to branch branch_8x
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git


The following commit(s) were added to refs/heads/branch_8x by this push:
     new 1cb085a  SOLR-14130: Improve robustness of the logs parser
1cb085a is described below

commit 1cb085afcbc04e861b76955bfd4944141c47d1ad
Author: Joel Bernstein <jb...@apache.org>
AuthorDate: Fri Jan 10 08:37:45 2020 -0500

    SOLR-14130: Improve robustness of the logs parser
---
 .../java/org/apache/solr/util/SolrLogPostTool.java  | 21 +++++++++++----------
 .../org/apache/solr/util/SolrLogPostToolTest.java   |  2 +-
 2 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/util/SolrLogPostTool.java b/solr/core/src/java/org/apache/solr/util/SolrLogPostTool.java
index fcb6463..89de4c1 100644
--- a/solr/core/src/java/org/apache/solr/util/SolrLogPostTool.java
+++ b/solr/core/src/java/org/apache/solr/util/SolrLogPostTool.java
@@ -140,7 +140,7 @@ public class SolrLogPostTool {
     private String pushedBack = null;
     private boolean finished = false;
     private String cause;
-    private Pattern p = Pattern.compile("^(\\d\\d\\d\\d\\-\\d\\d\\-\\d\\d \\d\\d:\\d\\d\\:\\d\\d.\\d\\d\\d)");
+    private Pattern p = Pattern.compile("^(\\d\\d\\d\\d\\-\\d\\d\\-\\d\\d[\\s|T]\\d\\d:\\d\\d\\:\\d\\d.\\d\\d\\d)");
 
     public LogRecordReader(BufferedReader bufferedReader) throws IOException {
       this.bufferedReader = bufferedReader;
@@ -314,7 +314,7 @@ public class SolrLogPostTool {
     }
 
     private String parseCollection(String line) {
-      char[] ca = {' ', ']'};
+      char[] ca = {' ', ']', ','};
       String parts[] = line.split("c:");
       if(parts.length >= 2) {
         return readUntil(parts[1], ca);
@@ -355,7 +355,7 @@ public class SolrLogPostTool {
     }
 
     private String parseCore(String line) {
-      char[] ca = {' ', ']'};
+      char[] ca = {' ', ']', '}', ','};
       String parts[] = line.split("x:");
       if(parts.length >= 2) {
         return readUntil(parts[1], ca);
@@ -365,7 +365,7 @@ public class SolrLogPostTool {
     }
 
     private String parseShard(String line) {
-      char[] ca = {' ', ']'};
+      char[] ca = {' ', ']', '}', ','};
       String parts[] = line.split("s:");
       if(parts.length >= 2) {
         return readUntil(parts[1], ca);
@@ -375,7 +375,7 @@ public class SolrLogPostTool {
     }
 
     private String parseReplica(String line) {
-      char[] ca = {' ', ']'};
+      char[] ca = {' ', ']', '}',','};
       String parts[] = line.split("r:");
       if(parts.length >= 2) {
         return readUntil(parts[1], ca);
@@ -406,9 +406,9 @@ public class SolrLogPostTool {
     }
 
     private String parseNode(String line) {
-      char[] ca = {' ', ']'};
-      String parts[] = line.split("n:");
-      if(parts.length == 2) {
+      char[] ca = {' ', ']', '}', ','};
+      String parts[] = line.split("node_name=n:");
+      if(parts.length >= 2) {
         return readUntil(parts[1], ca);
       } else {
         return null;
@@ -436,10 +436,11 @@ public class SolrLogPostTool {
     }
 
     private String parseParams(String line) {
-      char[] ca = {'}'};
+      char[] ca = {' '};
       String parts[] = line.split(" params=");
       if(parts.length == 2) {
-        return readUntil(parts[1].substring(1), ca);
+        String p = readUntil(parts[1].substring(1), ca);
+        return p.substring(0, p.length()-1);
       } else {
         return null;
       }
diff --git a/solr/core/src/test/org/apache/solr/util/SolrLogPostToolTest.java b/solr/core/src/test/org/apache/solr/util/SolrLogPostToolTest.java
index 5e296aa..3ab8fc7 100644
--- a/solr/core/src/test/org/apache/solr/util/SolrLogPostToolTest.java
+++ b/solr/core/src/test/org/apache/solr/util/SolrLogPostToolTest.java
@@ -201,7 +201,7 @@ public class SolrLogPostToolTest extends SolrTestCaseJ4 {
 
   @Test
   public void testCommit() throws Exception{
-    String record = "2019-12-16 14:20:19.708 INFO  (qtp812143047-22671) [c:production_201912 s:shard128 r:core_node7 x:production_201912_shard128_replica] o.a.s.u.DirectUpdateHandler2 start commit{_version_=1653086376121335808,optimize=false,openSearcher=true,waitSearcher=true,expungeDeletes=false,softCommit=false,prepareCommit=false}\n";
+    String record = "2019-12-16T14:20:19.708 INFO  (qtp812143047-22671) [c:production_201912 s:shard128 r:core_node7 x:production_201912_shard128_replica] o.a.s.u.DirectUpdateHandler2 start commit{_version_=1653086376121335808,optimize=false,openSearcher=true,waitSearcher=true,expungeDeletes=false,softCommit=false,prepareCommit=false}\n";
     List<SolrInputDocument> docs = readDocs(record);
     assertEquals(docs.size(), 1);
     SolrInputDocument doc = docs.get(0);