The existing implementation has a bug such that the block, which creates a new metric, is called for each and every update. That new metric will be ignored if there is an existing metric found. There is no functional bug here, but we are creating alot of uneeded short lived objects. The fix here is to ensure that the block is only called when needed. Also note that this can not be done atomically since put_if_absent will execute the value parameter statement (e.g. the block) regardless if absent or not.
Fixes#7563Fixes#7564
Using a recursive algorithm was causing issue with SSL connection to
rubygems when we were manually settings variable to NIL.
This commit uses a simple loop and will try to install the plugins in
sequence and it will give a bit more information at the STDOUT level.
Fixes#7562
When running the `ci_acceptance` test we need to make sure we don't have
any Gemfile or *.lock laying around. Deleting a non existant file would
make the test fails.
Fixes#7515
* Update default license
The current value issues a warning when building:
WARNING: license value 'Apache License (2.0)' is invalid. Use a license identifier from
http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
Did you mean 'Apache-2.0'?
* Update license
* Update license
* Update license
New boolean setting `config.support_escapes` which defaults to false
(the historical behavior). When set to true, the following escapes are
handled:
* backslash doublequote -> doublequote
* backslash quote -> quote
* backslash n -> newline (ascii 10)
* backslash r -> carriage return (ascii 13)
* backslash backslash -> backslash
* backslash t -> tab (ascii 9)
This will solve #1645.
We were falling back to the graph hash (slow) algorithm anytime spaces
were present in source code due to a mixed-up regexp. This clears up
that issue.
The test, sadly, had a non-realistic string which didn't catch this
error!
Fixes#7484
The acceptance test in our CI infrastructure doesn't clear the workspace between run
this mean the lock of the Gemfile can be sticky from a previous run, before generating any package
we will clear them out to make sure we use the latest version of theses files from the template.
If we don't do this we will run into gem Conflict error.
Fixes#7435
* Update runner, source/local, source/modules, source/multi_local
improve startup config problem detection across all sources.
* fix multi_local spec to use not `empty` values.
When an exact match is found during the binary search for the
next event, use the matching block instead of seeking from the
'low' block.
Add toString method to DLQEntry
Fixes#7464
This corrects a mistake where the digest of the string source should be
used when present, and the hash of the graph should be used when not.
Fixes#7467
This changes the Java-wide from the default of /dev/random. The reason
for this chnage is that /dev/random can block if there is insufficient
entropy available, and this blocking can cause Logstash to stall on
startup for many many minutes.
Fixes#6117.
This scenario (no entropy) seems especially prone to occur on virtual
machines.
Related: https://github.com/jruby/jruby/wiki/Improving-startup-time#ensure-your-system-has-adequate-entropy
On Windows, I was not sure if this would work, but the JDK source tree
says this:
On Windows systems, specifying the URLs "file:/dev/random" or
"file:/dev/urandom" will enable the native Microsoft CryptoAPI seeding
mechanism for SHA1PRNG.
So defaulting to /dev/urandom should still do the right thing on
Windows.
I also checked to see if other unix-likes had /dev/urandom, and
according to Wikipedia[1], Linux, FreeBSD, OpenBSD, OSX, Solaris,
NetBSD, and others all have urandom.
[1] https://en.wikipedia.org/wiki//dev/randomFixes#7469
Theses id wont be persisted between restart of logstash or between
creation of pipeline. When we reload pipelines the ephemeral_id will be
generated again.
Fixes#7423