Branch: refs/heads/master
  Home:   https://github.com/jenkinsci/build-failure-analyzer-plugin
  Commit: 6207c9e95b74035cd31c8ed6f145c0ba9f4a7526
      
https://github.com/jenkinsci/build-failure-analyzer-plugin/commit/6207c9e95b74035cd31c8ed6f145c0ba9f4a7526
  Author: Gustaf Lundh <gusta...@axis.com>
  Date:   2016-10-12 (Wed, 12 Oct 2016)

  Changed paths:
    M 
src/main/java/com/sonyericsson/jenkins/plugins/bfa/model/indication/BuildLogIndication.java
    M 
src/main/java/com/sonyericsson/jenkins/plugins/bfa/model/indication/Indication.java
    M 
src/main/java/com/sonyericsson/jenkins/plugins/bfa/model/indication/MultilineBuildLogIndication.java

  Log Message:
  -----------
  Fix: Broken JSON serialization

Since inherited classes from Indication does not declare
@JsonProperty("pattern") in their constructors, the JSON
writer will use the default constructor and populate fields
using a matching (by name) getter.

This leads to one particular bad bug, where
MultiLineBuildLogIndication returns a modified pattern
using the @Overidden getPattern() during JSON serialization.

Everytime a user modify a FailureCause containing a
MultiLineBuildLogIndication it will be rewritten when stored
in mongodb:

1. User enters a MultiLineBuildLogIndication:
email.com

2. This is stored:
(?m)(?s)^[\r\n]*?email.com[^\r\n]*?$

3. This is searched for in Logs:
(?m)(?s)^[\r\n]*?(?m)(?s)^[\r\n]*?email.com[^\r\n]*?$[^\r\n]*?$

4. Next time the Cause is saved:
(?m)(?s)^[\r\n]*?(?m)(?s)^[\r\n]*?(?m)(?s)^[\r\n]*?email.com
[^\r\n]*?$[^\r\n]*?$[^\r\n]*?$

Rinse and repeat.

Change-Id: Id1233b66d29aa948813a29bcc01f353c4d245304


  Commit: 963482c8b193043707c84b73cec8a965007da48c
      
https://github.com/jenkinsci/build-failure-analyzer-plugin/commit/963482c8b193043707c84b73cec8a965007da48c
  Author: Gustaf Lundh <gusta...@axis.com>
  Date:   2016-10-13 (Thu, 13 Oct 2016)

  Changed paths:
    M 
src/main/java/com/sonyericsson/jenkins/plugins/bfa/model/FailureReader.java
    M 
src/main/java/com/sonyericsson/jenkins/plugins/bfa/model/indication/MultilineBuildLogIndication.java

  Log Message:
  -----------
  Performance fixes for MultilineBuildLogIndication

Test data
---------
Log: 49MB log @ 280.000 lines
Multiline pattern: Simple pattern, matching +20 lines at end of log
Pre-fix: 32 seconds (Note that the hardcoded timeout is 10 seconds)
Post-fix: 1.7 seconds

The fix
-------
Current implementation relies on Scanner.findWithinHorizon() with
a horizon of 10k.

Every time this large window does not turn up a match, the sliding
window increases just one line (or several if consecutive empty
lines are found).

This essentially means that every line in a huge log is scanned 100s
of times.

To avoid grabbing extremely large captures, we now scan the log in
10kb chunks with 5kb overlaps (~50 lines for regular logs).

This patch also fixes an issue where the multiline pattern always
needed to match the beginning of a line.

Change-Id: I5eeddb3555f965dde463015766f1800c5bcb772b


  Commit: 468e988cb9fbb177309027f3fc690c12eaf9ddea
      
https://github.com/jenkinsci/build-failure-analyzer-plugin/commit/468e988cb9fbb177309027f3fc690c12eaf9ddea
  Author: Gustaf Lundh <gusta...@axis.com>
  Date:   2016-10-18 (Tue, 18 Oct 2016)

  Changed paths:
    M 
src/main/java/com/sonyericsson/jenkins/plugins/bfa/model/FailureReader.java
    M 
src/main/java/com/sonyericsson/jenkins/plugins/bfa/model/indication/MultilineBuildLogIndication.java
    M 
src/test/java/com/sonyericsson/jenkins/plugins/bfa/model/FailureReaderTest.java
    M 
src/test/java/com/sonyericsson/jenkins/plugins/bfa/model/indication/MultilineBuildLogIndicationTest.java

  Log Message:
  -----------
  Fix failed tests

One testcase was a bit broken (it only worked due to a somewhat
faulty compiled pattern in previous versions of
MultilineBuildLogIndication). This test case was replaced with a
more stable one that utilizes the block timeout.

QuadrupleDupleLineReader() is not used for Multiline scanning
since it does not use Reader.readline().

Another testcase utilized a deprecated schedule method and did
not receive Causes due to this.

Change-Id: I6cf0dfc81869aad965c3d2731cfb8f9121da584f


  Commit: da7944fa6844c91961ba7e3d75f5a4e8d6cb87c7
      
https://github.com/jenkinsci/build-failure-analyzer-plugin/commit/da7944fa6844c91961ba7e3d75f5a4e8d6cb87c7
  Author: Gustaf Lundh <gusta...@axis.com>
  Date:   2016-10-18 (Tue, 18 Oct 2016)

  Changed paths:
    M 
src/main/java/com/sonyericsson/jenkins/plugins/bfa/model/FailureReader.java

  Log Message:
  -----------
  Fix checkstyle

Change-Id: I8f633d61f0abc0b2ef98adb33c9799c87e9b3436


  Commit: 97baff43f9006a7475d09eca151f23a3c5ac14ba
      
https://github.com/jenkinsci/build-failure-analyzer-plugin/commit/97baff43f9006a7475d09eca151f23a3c5ac14ba
  Author: Robert Sandell <rsand...@cloudbees.com>
  Date:   2016-10-19 (Wed, 19 Oct 2016)

  Changed paths:
    M 
src/main/java/com/sonyericsson/jenkins/plugins/bfa/model/FailureReader.java
    M 
src/main/java/com/sonyericsson/jenkins/plugins/bfa/model/indication/BuildLogIndication.java
    M 
src/main/java/com/sonyericsson/jenkins/plugins/bfa/model/indication/Indication.java
    M 
src/main/java/com/sonyericsson/jenkins/plugins/bfa/model/indication/MultilineBuildLogIndication.java
    M 
src/test/java/com/sonyericsson/jenkins/plugins/bfa/model/FailureReaderTest.java
    M 
src/test/java/com/sonyericsson/jenkins/plugins/bfa/model/indication/MultilineBuildLogIndicationTest.java

  Log Message:
  -----------
  Merge pull request #59 from GLundh/json_fix

MultiLineBuildLogIndication performance and bug fixes


Compare: 
https://github.com/jenkinsci/build-failure-analyzer-plugin/compare/7b2f450141aa...97baff43f900

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Commits" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-commits+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to