Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge main into feature/health-report-api branch #16452

Closed
wants to merge 48 commits into from

Commits on Jul 16, 2024

  1. Configuration menu
    Copy the full SHA
    e065088 View commit details
    Browse the repository at this point in the history

Commits on Jul 17, 2024

  1. Configuration menu
    Copy the full SHA
    c30aa1c View commit details
    Browse the repository at this point in the history

Commits on Jul 18, 2024

  1. correctly handle stack overflow errors during pipeline compilation (#…

    …16323)
    
    This commit improves error handling when pipelines that are too big hit the Xss limit and throw a StackOverflowError. Currently the exception is printed outside of the logger, and doesn’t even show if log.format is json, leaving the user to wonder what happened.
    
    A couple of thoughts on the way this is implemented:
    
    * There should be a first barrier to handle pipelines that are too large based on the PipelineIR compilation. The barrier would use the detection of Xss to determine how big a pipeline could be. This however doesn't reduce the need to still handle a StackOverflow if it happens.
    * The catching of StackOverflowError could also be done on the WorkerLoop. However I'd suggest that this is unrelated to the Worker initialization itself, it just so happens that compiledPipeline.buildExecution is computed inside the WorkerLoop class for performance reasons. So I'd prefer logging to not come from the existing catch, but from a dedicated catch clause.
    
    Solves #16320
    jsvd authored Jul 18, 2024
    Configuration menu
    Copy the full SHA
    8f2dae6 View commit details
    Browse the repository at this point in the history

Commits on Jul 19, 2024

  1. Configuration menu
    Copy the full SHA
    eff9b54 View commit details
    Browse the repository at this point in the history

Commits on Jul 24, 2024

  1. settings: add support for observing settings after post-process hooks (

    …#16339)
    
    Because logging configuration occurs after loading the `logstash.yml`
    settings, deprecation logs from `LogStash::Settings::DeprecatedAlias#set` are
    effectively emitted to a null logger and lost.
    
    By re-emitting after the post-process hooks, we can ensure that they make
    their way to the deprecation log. This change adds support for any setting
    that responds to `Object#observe_post_process` to receive it after all
    post-processing hooks have been executed.
    
    Resolves: #16332
    yaauie authored Jul 24, 2024
    Configuration menu
    Copy the full SHA
    c633ad2 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    90f303e View commit details
    Browse the repository at this point in the history

Commits on Jul 29, 2024

  1. Configuration menu
    Copy the full SHA
    629d8fe View commit details
    Browse the repository at this point in the history

Commits on Jul 30, 2024

  1. Fix 8.13.1 release notes (#16363)

    make a note of the fix that went to 8.13.1: #16026
    
    Co-authored-by: Karen Metts <[email protected]>
    jsvd and karenzone authored Jul 30, 2024
    Configuration menu
    Copy the full SHA
    03841ca View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    09a2827 View commit details
    Browse the repository at this point in the history

Commits on Aug 6, 2024

  1. [Bugfix] Resolve the array and char (single | double quote) escaped v…

    …alues of ${ENV} (#16365)
    
    * Properly resolve the values from ENV vars if literal array string provided with ENV var.
    
    * Docker acceptance test for persisting  keys and use actual values in docker container.
    
    * Review suggestion.
    
    Simplify the code by stripping whitespace before `gsub`, no need to check comma and split.
    
    Co-authored-by: João Duarte <[email protected]>
    
    ---------
    
    Co-authored-by: João Duarte <[email protected]>
    mashhurs and jsvd authored Aug 6, 2024
    Configuration menu
    Copy the full SHA
    62ef8a0 View commit details
    Browse the repository at this point in the history

Commits on Aug 8, 2024

  1. Configuration menu
    Copy the full SHA
    2db2a22 View commit details
    Browse the repository at this point in the history

Commits on Aug 9, 2024

  1. Configuration menu
    Copy the full SHA
    3d13ebe View commit details
    Browse the repository at this point in the history
  2. Exclude substitution refinement on pipelines.yml (#16375)

    * Exclude substitution refinement on pipelines.yml (applies on ENV vars and logstash.yml where env2yaml saves vars)
    
    * Safety integration test for pipeline config.string contains ENV .
    mashhurs authored Aug 9, 2024
    Configuration menu
    Copy the full SHA
    e104704 View commit details
    Browse the repository at this point in the history

Commits on Aug 14, 2024

  1. Configuration menu
    Copy the full SHA
    d451971 View commit details
    Browse the repository at this point in the history

Commits on Aug 19, 2024

  1. Configuration menu
    Copy the full SHA
    b2796af View commit details
    Browse the repository at this point in the history

Commits on Aug 28, 2024

  1. Configuration menu
    Copy the full SHA
    6e93b30 View commit details
    Browse the repository at this point in the history

Commits on Sep 4, 2024

  1. Generate Dataset code with meaningful fields names (#16386)

    This PR is intended to help Logstash developers or users that want to better understand the code that's autogenerated to model a pipeline, assigning more meaningful names to the Datasets subclasses' fields.
    
    Updates `FieldDefinition` to receive the name of the field from construction methods, so that it can be used during the code generation phase, instead of the existing incremental `field%n`.
    Updates `ClassFields` to propagate the explicit field name down to the `FieldDefinitions`.
    Update the `DatasetCompiler` that add fields to `ClassFields` to assign a proper name to generated Dataset's fields.
    andsel authored Sep 4, 2024
    Configuration menu
    Copy the full SHA
    ac034a1 View commit details
    Browse the repository at this point in the history

Commits on Sep 5, 2024

  1. Implements safe evaluation of conditional expressions, logging the er…

    …ror without killing the pipeline (#16322)
    
    This PR protects the if statements against expression evaluation errors, cancel the event under processing and log it.
    This avoids to crash the pipeline which encounter a runtime error during event condition evaluation, permitting to debug the root cause reporting the offending event and removing from the current processing batch.
    
    Translates the `org.jruby.exceptions.TypeError`, `IllegalArgumentException`, `org.jruby.exceptions.ArgumentError` that could happen during `EventCodition` evaluation into a custom `ConditionalEvaluationError` which bubbles up on AST tree nodes. It's catched in the `SplitDataset` node.
    Updates the generation of the `SplitDataset `so that the execution of `filterEvents` method inside the compute body is try-catch guarded and defer the execution to an instance of `AbstractPipelineExt.ConditionalEvaluationListener` to handle such error. In this particular case the error management consist in just logging the offending Event.
    
    
    ---------
    
    Co-authored-by: Karen Metts <[email protected]>
    andsel and karenzone authored Sep 5, 2024
    Configuration menu
    Copy the full SHA
    b88e237 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    285d13a View commit details
    Browse the repository at this point in the history
  3. Release notes for 8.15.1 (#16405) (#16427)

    * Update release notes for 8.15.1
    
    * update release note
    
    ---------
    
    Co-authored-by: logstashmachine <[email protected]>
    Co-authored-by: Kaise Cheng <[email protected]>
    (cherry picked from commit 2fca7e3)
    
    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    github-actions[bot] authored Sep 5, 2024
    Configuration menu
    Copy the full SHA
    58b6a0a View commit details
    Browse the repository at this point in the history

Commits on Sep 6, 2024

  1. Fix ConditionalEvaluationError to do not include the event that error…

    …ed in its serialiaxed form, because it's not expected that this class is ever serialized. (#16429)
    
    Make inner field of ConditionalEvaluationError transient to be avoided during serialization.
    andsel authored Sep 6, 2024
    Configuration menu
    Copy the full SHA
    bb7ecc2 View commit details
    Browse the repository at this point in the history

Commits on Sep 9, 2024

  1. use gnu tar compatible minitar to generate tar artifact (#16432)

    Using VERSION_QUALIFIER when building the tarball distribution will fail since Ruby's TarWriter implements the older POSIX88 version of tar and paths will be longer than 100 characters.
    
    For the long paths being used in Logstash's plugins, mainly due to nested folders from jar-dependencies, we need the tarball to follow either the 2001 ustar format or gnu tar, which is implemented by the minitar gem.
    jsvd authored Sep 9, 2024
    Configuration menu
    Copy the full SHA
    69f0fa5 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f60e987 View commit details
    Browse the repository at this point in the history

Commits on Sep 10, 2024

  1. account for the 8.x in DRA publishing task (#16436)

    the current DRA publishing task computes the branch from the version
    contained in the version.yml
    
    This is done by taking the major.minor and confirming that a branch
    exists with that name.
    
    However this pattern won't be applicable for 8.x, as that branch
    currently points to 8.16.0 and there is no 8.16 branch.
    
    This commit falls back to reading the buildkite injected
    BUILDKITE_BRANCH variable.
    jsvd authored Sep 10, 2024
    Configuration menu
    Copy the full SHA
    17dba9f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    701108f View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    5195332 View commit details
    Browse the repository at this point in the history

Commits on Sep 12, 2024

  1. [CI] benchmark dashboard and pipeline for testing against multiple ve…

    …rsions (#16421)
    
    - add becnhmark dashboard and related save objects
    - add one buildkite pipeline to test against multiple versions
    - remove null field in json
    - add `FLOG_FILE_CNT`, `VAULT_PATH`, `TAGS`
    kaisecheng authored Sep 12, 2024
    Configuration menu
    Copy the full SHA
    5452ccc View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2ebf265 View commit details
    Browse the repository at this point in the history

Commits on Sep 13, 2024

  1. Drop JDK 11 support (#16443)

    If a user runs Logstash with a hosted JDK and not the one bundled with Logstash distribution, like setting a specific LS_JAVA_HOME, which is minor than JDK 17 then Logstash refuses to start. Has to provide at least a JDK 17 or unset the LS_JAVA_HOME and let Logstash uses the bundled JDK.
    
    Updates the jvm.options and JvmOptionsParser to remove support for JDK 11. If the options parser identifies that the running JVM is less than 17, it refuses to start.
    
    ---------
    
    Co-authored-by: João Duarte <[email protected]>
    andsel and jsvd authored Sep 13, 2024
    Configuration menu
    Copy the full SHA
    1ec37b7 View commit details
    Browse the repository at this point in the history

Commits on Sep 16, 2024

  1. remove ingest-converter (#16453)

    Removed the tool Ingest Converter
    kaisecheng authored Sep 16, 2024
    Configuration menu
    Copy the full SHA
    4e82655 View commit details
    Browse the repository at this point in the history

Commits on Sep 17, 2024

  1. Fixes the issue where LS wipes out all quotes from docker env variabl…

    …es. (#16456)
    
    * Fixes the issue where LS wipes out all quotes from docker env variables. This is an issue when running LS on docker with CONFIG_STRING, needs to keep quotes with env variable.
    
    * Add a docker acceptance integration test.
    mashhurs authored Sep 17, 2024
    Configuration menu
    Copy the full SHA
    7c64c73 View commit details
    Browse the repository at this point in the history
  2. [CI] fix benchmark marathon (#16447)

    - split main.sh to core.sh and main.sh
    - rename all.sh to marathon.sh
    - fix vault expiry issue for long running task
    - fix unable to call main function
    - update save object runtime field `release` to return true when `version` contains "SNAPSHOT"
    kaisecheng authored Sep 17, 2024
    Configuration menu
    Copy the full SHA
    3e98cb1 View commit details
    Browse the repository at this point in the history

Commits on Sep 19, 2024

  1. Configuration menu
    Copy the full SHA
    b54caf3 View commit details
    Browse the repository at this point in the history

Commits on Sep 20, 2024

  1. Configuration menu
    Copy the full SHA
    0ef4c7d View commit details
    Browse the repository at this point in the history

Commits on Sep 25, 2024

  1. Configuration menu
    Copy the full SHA
    51cca73 View commit details
    Browse the repository at this point in the history
  2. simplify snyk scanning (#16475)

    * remove docker image scanning as that's handled by infosec
    * run buildkite job on a docker image instead of vm (no need to test docker any more)
    jsvd authored Sep 25, 2024
    Configuration menu
    Copy the full SHA
    5c57ade View commit details
    Browse the repository at this point in the history

Commits on Sep 26, 2024

  1. Configuration menu
    Copy the full SHA
    f35e10d View commit details
    Browse the repository at this point in the history

Commits on Oct 1, 2024

  1. Release notes for 8.15.2 (#16471) (#16486)

    Co-authored-by: logstashmachine <[email protected]>
    Co-authored-by: andsel <[email protected]>
    Co-authored-by: Karen Metts <[email protected]>
    (cherry picked from commit 01dc76f)
    
    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    github-actions[bot] authored Oct 1, 2024
    Configuration menu
    Copy the full SHA
    2fe9122 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8368c00 View commit details
    Browse the repository at this point in the history

Commits on Oct 2, 2024

  1. [Spacetime] Reimplement config Setting classe in java (#15679)

    Reimplement the root Ruby Setting class in Java and use it from the Ruby one moving the original Ruby class to a shell wrapping the Java instance.
    In particular create a new symmetric hierarchy (at the time just for `Setting`, `Coercible` and `Boolean` classes) to the Ruby one, moving also the feature for setting deprecation. In this way the new `org.logstash.settings.Boolean` is syntactically and semantically equivalent to the old Ruby Boolean class, which replaces.
    andsel authored Oct 2, 2024
    Configuration menu
    Copy the full SHA
    61de60f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    fd1de39 View commit details
    Browse the repository at this point in the history
  3. DLQ-ing events that trigger an conditional evaluation error. (#16423)

    When a conditional evaluation encounter an error in the expression the event that triggered the issue is sent to pipeline's DLQ, if enabled for the executing pipeline.
    
    This PR engage with the work done in #16322, the `ConditionalEvaluationListener` that is receives notifications about if-statements evaluation failure, is improved to also send the event to DLQ (if enabled in the pipeline) and not just logging it.
    andsel authored Oct 2, 2024
    Configuration menu
    Copy the full SHA
    b69d993 View commit details
    Browse the repository at this point in the history
  4. Fix jdk21 warnings (#16496)

    Suppress some warnings compared with JDK 21
    
    - this-escape uses this before it is completely initialised.
    - avoid a non serialisable DeadLetterQueueWriter field from serialisable instance.
    andsel authored Oct 2, 2024
    Configuration menu
    Copy the full SHA
    4e49adc View commit details
    Browse the repository at this point in the history
  5. Don't use an older JRuby with oraclelinux-7 (#16499)

    A recent PR (elastic/ci-agent-images/pull/932) modernized the VM images
    and removed JRuby 9.4.5.0 and some older versions.
    
    This ended up breaking exhaustive test on Oracle Linux 7 that hard coded
    JRuby 9.4.5.0.
    
    PR #16489 worked around the
    problem by pinning to the new JRuby, but actually we don't
    need the conditional anymore since the original issue
    jruby/jruby#7579 (comment) has
    been resolved and none of our releasable branches (apart from 7.17 which
    uses `9.2.20.1`) specify `9.3.x.y` in `/.ruby-version`.
    
    Therefore, this commit removes conditional setting of JRuby for
    OracleLinux 7 agents in exhaustive tests (and relies on whatever
    `/.ruby-version` defines).
    dliappis authored Oct 2, 2024
    Configuration menu
    Copy the full SHA
    07c01f8 View commit details
    Browse the repository at this point in the history

Commits on Oct 3, 2024

  1. [ci] Skip slack for retries JDK matrix jobs (#16316)

    With this commit we shush slack alerts for JDK matrix CI jobs that
    succeed after (automatic) retries.
    dliappis authored Oct 3, 2024
    Configuration menu
    Copy the full SHA
    6067008 View commit details
    Browse the repository at this point in the history
  2. Improve pipeline bootstrap error logs (#16495)

    This PR adds the cause errors details on the pipeline converge state error logs
    edmocosta authored Oct 3, 2024
    Configuration menu
    Copy the full SHA
    e84fb45 View commit details
    Browse the repository at this point in the history

Commits on Oct 4, 2024

  1. fix snapshot branch detection for snyk (#16484)

    * handle two 8. branches
    jsvd authored Oct 4, 2024
    Configuration menu
    Copy the full SHA
    5aabeda View commit details
    Browse the repository at this point in the history
  2. Avoid to access Java DeprecatedAlias value other than Ruby's one (#16506

    )
    
    Update Settings to_hash method to also skip Java DeprecatedAlias and not just the Ruby one.
    With PR #15679 was introduced org.logstash.settings.DeprecatedAlias which mirrors the behaviour of Ruby class Setting::DeprecatedAlias. The equality check at Logstash::Settings, as descibed in #16505 (comment), is implemented comparing the maps.
    The conversion of Settings to the corresponding maps filtered out the Ruby implementation of DeprecatedAlias but not the Java one.
    This PR adds also the Java one to the list of filter.
    andsel authored Oct 4, 2024
    Configuration menu
    Copy the full SHA
    5d4825f View commit details
    Browse the repository at this point in the history