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

Upgrading plugins with manticore throws an error and sometimes corrupts installation #4818

Closed
jsvd opened this issue Mar 15, 2016 · 27 comments
Closed

Comments

@jsvd
Copy link
Member

jsvd commented Mar 15, 2016

Steps to reproduce:

/tmp % tar -zxf logstash-2.2.2.tar.gz
/tmp % cd logstash-2.2.2
/tmp/logstash-2.2.2 % bin/plugin update logstash-output-http  logstash-output-elasticsearch
Updating logstash-output-http, logstash-output-elasticsearch
Error Bundler::InstallError, retrying 1/10
An error occurred while installing manticore (0.5.5), and Bundler cannot continue.
Make sure that `gem install manticore -v '0.5.5'` succeeds before bundling.
WARNING: SSLSocket#session= is not supported
Updated logstash-output-elasticsearch 2.5.1 to 2.5.3
/tmp/logstash-2.2.2 %

Sometimes the installation gets corrupted, see more in #4745

@dave-kong
Copy link

I'm on logstash 2.2.2

not sure if related, I just upgraded to 2.5.3 in order to fix the OOM issues.
got the same error above, but can start logstash ok., actually it will die a few seconds later.

sudo ./plugin update logstash-output-elasticsearch
Updating logstash-output-elasticsearch
Error Bundler::InstallError, retrying 1/10
An error occurred while installing manticore (0.5.5), and Bundler cannot continue.
Make sure that `gem install manticore -v '0.5.5'` succeeds before bundling.
WARNING: SSLSocket#session= is not supported
Updated logstash-output-elasticsearch 2.5.1 to 2.5.3

however, I get the following error when running

sudo service logstash configtest
The error reported is:

    you might need to reinstall the gem which depends on the missing jar or in case there is Jars.lock then resolve the jars with `lock_jars` command

no such file to load -- org/apache/httpcomponents/httpcore/4.4.1/httpcore-4.4.1 (LoadError)

@dave-kong
Copy link

@jsvd is it possible to change the issue's title to indicate that logstash is actually broken after the plugin update, so to get more attention?

@githubcdr
Copy link

+1 ran into this issue, it's a heartbreaker

@purbon
Copy link
Contributor

purbon commented Mar 16, 2016

I'm just wondering, is it possible that we now have an issue with the new manticore jumping in?, I'm not sure where I just found they started using jar-dependencies.

@purbon
Copy link
Contributor

purbon commented Mar 16, 2016

been investigating a bit more, updating this for the record.

  • This does not happen in developer mode, might be due to the fact that we clean up the bundler internal cache 😿
  • Tested this with the artifact available in download and error happen, but still not able to corrupt the installation.

@dave-kong @githubcdr can you guys provide more details of your infra to help debug and reproduce this?

will keep digging.

@jsvd jsvd changed the title Upgrading plugins with manticore throws an error but still correctly updates Upgrading plugins with manticore throws an error and sometimes corrupts installation Mar 16, 2016
@jsvd
Copy link
Member Author

jsvd commented Mar 16, 2016

@dave-kong updated

I'm having some trouble replicating this..can you post your Gemfile.lock of a broken logstash ?

@githubcdr
Copy link

@purbon I basically use the excellent "sebp/elk" docker image that I extend with a default "/opt/logstash/bin/plugin update" and some extra stuff not related to this issue.

A docker pull of this image combined with a bash session can reproduce this error here.

@purbon
Copy link
Contributor

purbon commented Mar 16, 2016

@githubcdr the thing is we don't really test, or support docker images. Can you validate your very same error with a real machine (or virtual)? especially the part where logstash is not starting anymore.

@jsvd
Copy link
Member Author

jsvd commented Mar 16, 2016

I've tested in an ec2 instance using RHEL. I installed logstash-2.2.2 rpm and then, using root, I updated the 2 plugins with the command sudo bin/plugin update logstash-output-http logstash-output-elasticsearch

findings:

  • I'm able to replicate the corruption in the ec2 instance
  • if I copy the directory over to my local box it doesn't happen anymore

output from my experiment:

255 joaoduarte@Joaos-MBP /tmp % ssh -i ~/jsvd.pem ec2-user@ec2-52-30-19-222.eu-west-1.compute.amazonaws.com
[ec2-user@ip-10-77-28-137 ~]$ /opt/logstash/bin/logstash -f /etc/logstash/conf.d/meh.conf
The error reported is: 


    you might need to reinstall the gem which depends on the missing jar or in case there is Jars.lock then resolve the jars with `lock_jars` command

no such file to load -- org/apache/httpcomponents/httpcore/4.4.1/httpcore-4.4.1 (LoadError)
[ec2-user@ip-10-77-28-137 ~]$ logout
Connection to ec2-52-30-19-222.eu-west-1.compute.amazonaws.com closed.

1 joaoduarte@Joaos-MBP /tmp % rm -rf logstash
joaoduarte@Joaos-MBP /tmp % scp -q -i /tmp/cert.pem -r ec2-user@ec2-52-30-19-222.eu-west-1.compute.amazonaws.com:/opt/logstash .
joaoduarte@Joaos-MBP /tmp % cd logstash
joaoduarte@Joaos-MBP /tmp/logstash % scp -q -i /tmp/cert.pem -r ec2-user@ec2-52-30-19-222.eu-west-1.compute.amazonaws.com:/etc/logstash/conf.d/meh.conf .
joaoduarte@Joaos-MBP /tmp/logstash % bin/logstash -f meh.conf
Settings: Default pipeline workers: 4
Logstash startup completed
^CSIGINT received. Shutting down the pipeline. {:level=>:warn}
Logstash shutdown completed

@dave-kong
Copy link

I'm on ubuntu 14.04 (AWS image). Installed ELK according to this https://www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-logstash-and-kibana-elk-stack-on-ubuntu-14-04.
Default java is:

openjdk version "1.8.0_72-internal"
OpenJDK Runtime Environment (build 1.8.0_72-internal-b15)
OpenJDK 64-Bit Server VM (build 25.72-b15, mixed mode)

After I ran into this the first time, I apt-get removed logstash (cleaned entire opt/logstash folder), reinstalled logstash via apt-get. configtest works.

Then:

$sudo ./plugin update logstash-output-elasticsearch
Updating logstash-output-elasticsearch
Error Bundler::InstallError, retrying 1/10
An error occurred while installing manticore (0.5.5), and Bundler cannot continue.
Make sure that `gem install manticore -v '0.5.5'` succeeds before bundling.
WARNING: SSLSocket#session= is not supported
Updated logstash-output-elasticsearch 2.5.1 to 2.5.3

$sudo service logstash configtest
The error reported is:

    you might need to reinstall the gem which depends on the missing jar or in case there is Jars.lock then resolve the jars with `lock_jars` command

no such file to load -- org/apache/httpcomponents/httpcore/4.4.1/httpcore-4.4.1 (LoadError)

$cat /etc/logstash/conf.d/logstash.conf
input {
  beats {
    port => 5044
  }
}

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    sniffing => true
    manage_template => false
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
    document_type => "%{[@metadata][type]}"
  }
}

@dave-kong
Copy link

cat /opt/logstash/Gemfile.jruby-1.9.lock

GEM
remote: https://rubygems.org/
specs:
addressable (2.3.8)
arr-pm (0.0.10)
cabin (> 0)
atomic (1.1.99-java)
avl_tree (1.2.1)
atomic (> 1.1)
awesome_print (1.6.1)
aws-sdk (2.1.36)
aws-sdk-resources (= 2.1.36)
aws-sdk-core (2.1.36)
jmespath (
> 1.0)
aws-sdk-resources (2.1.36)
aws-sdk-core (= 2.1.36)
aws-sdk-v1 (1.66.0)
json (> 1.4)
nokogiri (>= 1.4.4)
backports (3.6.8)
benchmark-ips (2.5.0)
bindata (2.2.0)
buftok (0.2.0)
builder (3.2.2)
cabin (0.7.2)
childprocess (0.5.9)
ffi (
> 1.0, >= 1.0.11)
ci_reporter (2.0.0)
builder (>= 2.1.2)
ci_reporter_rspec (1.0.0)
ci_reporter (> 2.0)
rspec (>= 2.14, < 4)
cinch (2.3.1)
clamp (0.6.5)
coderay (1.1.1)
concurrent-ruby (0.9.2-java)
coveralls (0.8.10)
json (
> 1.8)
rest-client (>= 1.6.8, < 2)
simplecov (> 0.11.0)
term-ansicolor (
> 1.3)
thor (> 0.19.1)
tins (
> 1.6.0)
diff-lcs (1.2.5)
docile (1.1.5)
domain_name (0.5.20160128)
unf (>= 0.0.5, < 1.0.0)
edn (1.1.0)
elasticsearch (1.0.15)
elasticsearch-api (= 1.0.15)
elasticsearch-transport (= 1.0.15)
elasticsearch-api (1.0.15)
multi_json
elasticsearch-transport (1.0.15)
faraday
multi_json
equalizer (0.0.10)
faraday (0.9.2)
multipart-post (>= 1.2, < 3)
ffi (1.9.10-java)
ffi-rzmq (2.0.4)
ffi-rzmq-core (>= 1.0.1)
ffi-rzmq-core (1.0.4)
ffi (> 1.9)
file-dependencies (0.1.6)
minitar
filesize (0.0.4)
filewatch (0.8.0)
flores (0.0.6)
fpm (1.3.3)
arr-pm (
> 0.0.9)
backports (>= 2.6.2)
cabin (>= 0.6.0)
childprocess
clamp (> 0.6)
ffi
json (>= 1.7.7)
gelf (1.3.2)
json
gelfd (0.2.0)
gem_publisher (1.5.0)
gems (0.8.3)
geoip (1.6.1)
gmetric (0.1.3)
hipchat (1.5.2)
httparty
mimemagic
hitimes (1.2.3-java)
http (0.9.8)
addressable (
> 2.3)
http-cookie (> 1.0)
http-form_data (
> 1.0.1)
http_parser.rb (> 0.6.0)
http-cookie (1.0.2)
domain_name (
> 0.5)
http-form_data (1.0.1)
http_parser.rb (0.6.0-java)
httparty (0.13.7)
json (> 1.8)
multi_xml (>= 0.5.2)
i18n (0.6.9)
insist (1.0.0)
jar-dependencies (0.3.2)
jls-grok (0.11.2)
cabin (>= 0.6.0)
jls-lumberjack (0.0.26)
concurrent-ruby
jmespath (1.1.3)
jrjackson (0.3.8)
jruby-kafka (1.5.0-java)
jar-dependencies (
> 0)
ruby-maven (> 3.3.8)
jruby-openssl (0.9.13-java)
json (1.8.3-java)
kramdown (1.9.0)
logstash-codec-collectd (2.0.2)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-codec-dots (2.0.2)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-codec-edn (2.0.2)
edn
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-codec-edn_lines (2.0.2)
edn
logstash-codec-line
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-codec-es_bulk (2.0.2)
logstash-codec-line
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-codec-fluent (2.0.2-java)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
msgpack-jruby
logstash-codec-graphite (2.0.2)
logstash-codec-line
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-codec-json (2.1.0)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-codec-json_lines (2.1.1)
logstash-codec-line (>= 2.1.0)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-codec-line (2.1.0)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-codec-msgpack (2.0.2-java)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
msgpack-jruby
logstash-codec-multiline (2.0.9)
jls-grok (
> 0.11.1)
logstash-core (>= 2.0.0, < 3.0.0)
logstash-patterns-core
logstash-codec-netflow (2.0.3)
bindata (>= 1.5.0)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-codec-oldlogstashjson (2.0.2)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-codec-plain (2.0.2)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-codec-rubydebug (2.0.5)
awesome_print
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-core (2.2.2-java)
cabin (> 0.7.0)
clamp (
> 0.6.5)
concurrent-ruby (= 0.9.2)
filesize (= 0.0.4)
gems (> 0.8.3)
i18n (= 0.6.9)
jrjackson (
> 0.3.7)
jruby-openssl (= 0.9.13)
logstash-core-event (> 2.2.2)
minitar (
> 0.5.4)
pry (> 0.10.1)
rubyzip (
> 1.1.7)
stud (> 0.0.19)
thread_safe (
> 0.3.5)
treetop (< 1.5.0)
logstash-core-event (2.2.2-java)
logstash-devutils (0.0.18-java)
gem_publisher
insist (= 1.0.0)
kramdown
minitar
rake
rspec (> 3.1.0)
rspec-wait
stud (>= 0.0.20)
logstash-filter-anonymize (2.0.2)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
murmurhash3
logstash-filter-checksum (2.0.2)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-filter-clone (2.0.4)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-filter-csv (2.1.1)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-filter-date (2.1.2)
logstash-codec-json
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-input-generator
logstash-output-null
logstash-filter-dns (2.0.2)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-filter-drop (2.0.2)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-filter-fingerprint (2.0.3)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
murmurhash3
logstash-filter-geoip (2.0.5)
geoip (>= 1.3.2)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
lru_redux (
> 1.1.0)
logstash-filter-grok (2.0.3)
jls-grok (> 0.11.1)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-patterns-core
logstash-filter-json (2.0.3)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-filter-kv (2.0.4)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-filter-metrics (3.0.0)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
metriks
thread_safe
logstash-filter-multiline (2.0.3)
jls-grok (
> 0.11.0)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-patterns-core
logstash-filter-mutate (2.0.3)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-filter-grok
logstash-patterns-core
logstash-filter-ruby (2.0.3)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-filter-date
logstash-filter-sleep (2.0.2)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-filter-split (2.0.2)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-filter-syslog_pri (2.0.2)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-filter-throttle (2.0.2)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-filter-urldecode (2.0.2)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-filter-useragent (2.0.4)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
lru_redux (> 1.1.0)
user_agent_parser (>= 2.0.0)
logstash-filter-uuid (2.0.3)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-filter-xml (2.1.1)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
nokogiri
xml-simple
logstash-input-beats (2.1.3)
concurrent-ruby (
> 0.9.2)
logstash-codec-multiline (> 2.0.5)
logstash-codec-plain
logstash-core (>= 2.0.0, < 3.0.0)
thread_safe (
> 0.3.5)
logstash-input-couchdb_changes (2.0.2)
json
logstash-codec-plain
logstash-core (>= 2.0.0.beta2, < 3.0.0)
stud (>= 0.0.22)
logstash-input-elasticsearch (2.0.3)
elasticsearch (> 1.0, >= 1.0.6)
logstash-codec-json
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-input-eventlog (3.0.1)
logstash-codec-plain
logstash-core (>= 2.0.0.beta2, < 3.0.0)
stud (
> 0.0.22)
win32-eventlog (> 0.6.5)
logstash-input-exec (2.0.4)
logstash-codec-plain
logstash-core (>= 2.0.0.beta2, < 3.0.0)
stud (
> 0.0.22)
logstash-input-file (2.2.1)
addressable
filewatch (> 0.8, >= 0.8.0)
logstash-codec-multiline (
> 2.0.7)
logstash-codec-plain
logstash-core (>= 2.0.0, < 3.0.0)
logstash-input-ganglia (2.0.4)
logstash-codec-plain
logstash-core (>= 2.0.0.beta2, < 3.0.0)
stud (> 0.0.22)
logstash-input-gelf (2.0.2)
gelfd (= 0.2.0)
logstash-codec-plain
logstash-core (>= 2.0.0.beta2, < 3.0.0)
stud (
> 0.0.22)
logstash-input-generator (2.0.2)
logstash-codec-plain
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-input-graphite (2.0.5)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-input-tcp
logstash-input-heartbeat (2.0.2)
logstash-codec-plain
logstash-core (>= 2.0.0.beta2, < 3.0.0)
stud
logstash-input-http (2.2.0)
logstash-codec-plain
logstash-core (>= 2.0.0.beta2, < 3.0.0)
puma (> 2.16, >= 2.16.0)
rack (
> 1)
stud
logstash-input-http_poller (2.0.3)
logstash-codec-plain
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-mixin-http_client (>= 2.1.0, < 3.0.0)
stud (> 0.0.22)
logstash-input-imap (2.0.3)
logstash-codec-plain
logstash-core (>= 2.0.0.beta2, < 3.0.0)
mail
stud (
> 0.0.22)
logstash-input-irc (2.0.3)
cinch
logstash-codec-plain
logstash-core (>= 2.0.0.beta2, < 3.0.0)
stud (> 0.0.22)
logstash-input-jdbc (3.0.0)
logstash-codec-plain
logstash-core (>= 2.0.0.beta2, < 3.0.0)
rufus-scheduler
sequel
tzinfo
tzinfo-data
logstash-input-kafka (2.0.4)
jruby-kafka (= 1.5.0)
logstash-codec-json
logstash-codec-plain
logstash-core (>= 2.0.0.beta2, < 3.0.0)
stud (>= 0.0.22, < 0.1.0)
logstash-input-log4j (2.0.5-java)
logstash-codec-plain
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-input-lumberjack (2.0.5)
concurrent-ruby
jls-lumberjack (
> 0.0.26)
logstash-codec-multiline (> 2.0.4)
logstash-codec-plain
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-input-pipe (2.0.2)
logstash-codec-plain
logstash-core (>= 2.0.0.beta2, < 3.0.0)
stud (
> 0.0.22)
logstash-input-rabbitmq (3.1.4)
logstash-codec-json
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-mixin-rabbitmq_connection (>= 2.3.0, < 3.0.0)
logstash-input-redis (2.0.2)
logstash-codec-json
logstash-core (>= 2.0.0.beta2, < 3.0.0)
redis
logstash-input-s3 (2.0.4)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-mixin-aws
stud (> 0.0.18)
logstash-input-snmptrap (2.0.2)
logstash-codec-plain
logstash-core (>= 2.0.0.beta2, < 3.0.0)
snmp
logstash-input-sqs (2.0.3)
logstash-codec-json
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-mixin-aws (>= 1.0.0)
logstash-input-stdin (2.0.2)
concurrent-ruby
logstash-codec-json
logstash-codec-json_lines
logstash-codec-line
logstash-codec-plain
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-input-syslog (2.0.2)
concurrent-ruby
logstash-codec-plain
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-filter-date
logstash-filter-grok
stud (>= 0.0.22, < 0.1.0)
thread_safe
logstash-input-tcp (3.0.2)
logstash-codec-json
logstash-codec-json_lines
logstash-codec-line
logstash-codec-plain
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-input-twitter (2.2.0)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
stud (>= 0.0.22, < 0.1)
twitter (= 5.15.0)
logstash-input-udp (2.0.3)
logstash-codec-plain
logstash-core (>= 2.0.0.beta2, < 3.0.0)
stud (
> 0.0.22)
logstash-input-unix (2.0.4)
logstash-codec-line
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-input-xmpp (2.0.3)
logstash-codec-plain
logstash-core (>= 2.0.0.beta2, < 3.0.0)
xmpp4r (= 0.5)
logstash-input-zeromq (2.0.2)
ffi-rzmq (> 2.0.4)
logstash-codec-json
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-mixin-aws (2.0.2)
aws-sdk (
> 2.1.0)
aws-sdk-v1 (>= 1.61.0)
logstash-codec-plain
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-mixin-http_client (2.2.1)
logstash-codec-plain
logstash-core (>= 2.0.0, < 3.0.0)
manticore (>= 0.5.2, < 1.0.0)
logstash-mixin-rabbitmq_connection (2.3.0-java)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
march_hare (> 2.15.0)
stud (
> 0.0.22)
logstash-output-cloudwatch (2.0.2)
aws-sdk
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-mixin-aws
rufus-scheduler (> 3.0.9)
logstash-output-csv (2.0.3)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-filter-json
logstash-input-generator
logstash-output-file
logstash-output-elasticsearch (2.5.3-java)
cabin (
> 0.6)
concurrent-ruby
elasticsearch (> 1.0, >= 1.0.13)
logstash-core (>= 2.0.0, < 3.0.0)
manticore (>= 0.5.4, < 1.0.0)
stud (
> 0.0, >= 0.0.17)
logstash-output-email (3.0.2)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
mail (> 2.6.0, >= 2.6.3)
logstash-output-exec (2.0.2)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-output-file (2.2.3)
logstash-codec-json_lines
logstash-codec-line
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-output-ganglia (2.0.2)
gmetric (= 0.1.3)
logstash-codec-plain
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-output-gelf (2.0.3)
gelf (= 1.3.2)
logstash-codec-plain
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-output-graphite (2.0.3)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-output-hipchat (3.0.2)
hipchat
logstash-codec-plain
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-output-http (2.1.1)
logstash-core (>= 2.0.0, < 3.0.0)
logstash-mixin-http_client (>= 2.2.1, < 3.0.0)
logstash-output-irc (2.0.2)
cinch
logstash-codec-plain
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-output-juggernaut (2.0.2)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
redis
logstash-output-kafka (2.0.2)
jruby-kafka (= 1.5.0)
logstash-codec-json
logstash-codec-plain
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-output-lumberjack (2.0.4)
jls-lumberjack (>= 0.0.26)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
stud
logstash-output-nagios (2.0.2)
logstash-codec-plain
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-output-nagios_nsca (2.0.3)
logstash-codec-plain
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-output-null (2.0.2)
logstash-codec-plain
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-output-opentsdb (2.0.2)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-output-pagerduty (2.0.2)
logstash-codec-plain
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-output-pipe (2.0.2)
logstash-codec-plain
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-output-rabbitmq (3.0.7-java)
logstash-core (>= 2.0.0, < 3.0.0)
logstash-mixin-rabbitmq_connection (>= 2.3.0, < 3.0.0)
logstash-output-redis (2.0.2)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
redis
stud
logstash-output-s3 (2.0.4)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-mixin-aws
stud (
> 0.0.22)
logstash-output-sns (3.0.2)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-mixin-aws (>= 1.0.0)
logstash-output-sqs (2.0.2)
aws-sdk
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-mixin-aws
stud
logstash-output-statsd (2.0.5)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-input-generator
statsd-ruby (= 1.2.0)
logstash-output-stdout (2.0.4)
logstash-codec-line
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-output-tcp (2.0.2)
logstash-codec-json
logstash-core (>= 2.0.0.beta2, < 3.0.0)
stud
logstash-output-udp (2.0.2)
logstash-codec-json
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-output-xmpp (2.0.2)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
xmpp4r (= 0.5)
logstash-output-zeromq (2.0.2)
ffi-rzmq (> 2.0.4)
logstash-codec-json
logstash-core (>= 2.0.0.beta2, < 3.0.0)
logstash-patterns-core (2.0.2)
logstash-core (>= 2.0.0.beta2, < 3.0.0)
lru_redux (1.1.0)
mail (2.6.3)
mime-types (>= 1.16, < 3)
manticore (0.5.5-java)
jar-dependencies
march_hare (2.15.0-java)
memoizable (0.4.2)
thread_safe (
> 0.3, >= 0.3.1)
method_source (0.8.2)
metriks (0.9.9.7)
atomic (> 1.0)
avl_tree (
> 1.2.0)
hitimes (> 1.1)
mime-types (2.99)
mimemagic (0.3.1)
minitar (0.5.4)
msgpack-jruby (1.4.1-java)
multi_json (1.11.2)
multi_xml (0.5.5)
multipart-post (2.0.0)
murmurhash3 (0.1.6-java)
naught (1.1.0)
netrc (0.11.0)
nokogiri (1.6.7.2-java)
octokit (3.8.0)
sawyer (
> 0.6.0, >= 0.5.3)
polyglot (0.3.5)
pry (0.10.3-java)
coderay (> 1.1.0)
method_source (
> 0.8.1)
slop (> 3.4)
spoon (
> 0.0)
puma (2.16.0-java)
rack (1.6.4)
rake (10.5.0)
redis (3.2.2)
rest-client (1.8.0)
http-cookie (>= 1.0.2, < 2.0)
mime-types (>= 1.16, < 3.0)
netrc (> 0.7)
rspec (3.1.0)
rspec-core (
> 3.1.0)
rspec-expectations (> 3.1.0)
rspec-mocks (
> 3.1.0)
rspec-core (3.1.7)
rspec-support (> 3.1.0)
rspec-expectations (3.1.2)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (
> 3.1.0)
rspec-mocks (3.1.3)
rspec-support (> 3.1.0)
rspec-support (3.1.2)
rspec-wait (0.0.8)
rspec (>= 2.11, < 3.5)
ruby-maven (3.3.10)
ruby-maven-libs (
> 3.3.1)
ruby-maven-libs (3.3.3)
rubyzip (1.1.7)
rufus-scheduler (3.0.9)
tzinfo
sawyer (0.6.0)
addressable (> 2.3.5)
faraday (
> 0.8, < 0.10)
sequel (4.31.0)
simple_oauth (0.3.1)
simplecov (0.11.2)
docile (> 1.1.0)
json (
> 1.8)
simplecov-html (> 0.10.0)
simplecov-html (0.10.0)
slop (3.6.0)
snmp (1.2.0)
spoon (0.0.4)
ffi
statsd-ruby (1.2.0)
stud (0.0.22)
term-ansicolor (1.3.2)
tins (
> 1.0)
thor (0.19.1)
thread_safe (0.3.5-java)
tins (1.6.0)
treetop (1.4.15)
polyglot
polyglot (>= 0.3.1)
twitter (5.15.0)
addressable (> 2.3)
buftok (
> 0.2.0)
equalizer (= 0.0.10)
faraday (> 0.9.0)
http (>= 0.4, < 0.10)
http_parser.rb (
> 0.6.0)
json (> 1.8)
memoizable (
> 0.4.0)
naught (> 1.0)
simple_oauth (
> 0.3.0)
tzinfo (1.2.2)
thread_safe (~> 0.1)
tzinfo-data (1.2016.1)
tzinfo (>= 1.0.0)
unf (0.1.4-java)
user_agent_parser (2.3.0)
win32-eventlog (0.6.5)
ffi
xml-simple (1.1.5)
xmpp4r (0.5)

PLATFORMS
java

DEPENDENCIES
benchmark-ips
ci_reporter_rspec (= 1.0.0)
coveralls
file-dependencies (= 0.1.6)
flores (> 0.0.6)
fpm (
> 1.3.3)
gems (> 0.8.3)
logstash-codec-collectd
logstash-codec-dots
logstash-codec-edn
logstash-codec-edn_lines
logstash-codec-es_bulk
logstash-codec-fluent
logstash-codec-graphite
logstash-codec-json
logstash-codec-json_lines
logstash-codec-line
logstash-codec-msgpack
logstash-codec-multiline
logstash-codec-netflow
logstash-codec-oldlogstashjson
logstash-codec-plain
logstash-codec-rubydebug
logstash-core (= 2.2.2)
logstash-core-event (= 2.2.2)
logstash-devutils (
> 0.0.15)
logstash-filter-anonymize
logstash-filter-checksum
logstash-filter-clone
logstash-filter-csv
logstash-filter-date
logstash-filter-dns
logstash-filter-drop
logstash-filter-fingerprint
logstash-filter-geoip
logstash-filter-grok
logstash-filter-json
logstash-filter-kv
logstash-filter-metrics
logstash-filter-multiline
logstash-filter-mutate
logstash-filter-ruby
logstash-filter-sleep
logstash-filter-split
logstash-filter-syslog_pri
logstash-filter-throttle
logstash-filter-urldecode
logstash-filter-useragent
logstash-filter-uuid
logstash-filter-xml
logstash-input-beats
logstash-input-couchdb_changes
logstash-input-elasticsearch
logstash-input-eventlog
logstash-input-exec
logstash-input-file
logstash-input-ganglia
logstash-input-gelf
logstash-input-generator
logstash-input-graphite
logstash-input-heartbeat
logstash-input-http
logstash-input-http_poller
logstash-input-imap
logstash-input-irc
logstash-input-jdbc
logstash-input-kafka
logstash-input-log4j
logstash-input-lumberjack
logstash-input-pipe
logstash-input-rabbitmq
logstash-input-redis
logstash-input-s3
logstash-input-snmptrap
logstash-input-sqs
logstash-input-stdin
logstash-input-syslog
logstash-input-tcp
logstash-input-twitter
logstash-input-udp
logstash-input-unix
logstash-input-xmpp
logstash-input-zeromq
logstash-output-cloudwatch
logstash-output-csv
logstash-output-elasticsearch
logstash-output-email
logstash-output-exec
logstash-output-file
logstash-output-ganglia
logstash-output-gelf
logstash-output-graphite
logstash-output-hipchat
logstash-output-http
logstash-output-irc
logstash-output-juggernaut
logstash-output-kafka
logstash-output-lumberjack
logstash-output-nagios
logstash-output-nagios_nsca
logstash-output-null
logstash-output-opentsdb
logstash-output-pagerduty
logstash-output-pipe
logstash-output-rabbitmq
logstash-output-redis
logstash-output-s3
logstash-output-sns
logstash-output-sqs
logstash-output-statsd
logstash-output-stdout
logstash-output-tcp
logstash-output-udp
logstash-output-xmpp
logstash-output-zeromq
octokit (= 3.8.0)
rspec (> 3.1.0)
rubyzip (
> 1.1.7)
simplecov
stud (~> 0.0.21)
tins (= 1.6)

@ph
Copy link
Contributor

ph commented Mar 16, 2016

Quick check agains't two versions of manticore 0.5.5 and 0.5.3.
There is no specific changes concerning the jar versions only a small change in the require_jars ordering. 0.5.5 introduce a dev dependency on ruby-maven ~> 3.3, but I dont think this is related.

@ph
Copy link
Contributor

ph commented Mar 16, 2016

I am wondering if its not related to the ruby-maven cache, when we install a gem that require a jar it will download the jar into $HOME/.m2 and copy it to logstash.

@dave-kong
Copy link

not familiar with maven cache, but the .m2 folder is empty for my root, or default ubuntu user. if that means anything.

@jsvd
Copy link
Member Author

jsvd commented Mar 16, 2016

ok I can now replicate this consistently after removing my ~/.m2 directory..digging deeper..

@ph
Copy link
Contributor

ph commented Mar 16, 2016

@dave-kong Can you check in /opt/logstash ?

@jsvd
Copy link
Member Author

jsvd commented Mar 16, 2016

found another hint with @ph:

That failure we thought was benign is actually causing the update to not install the jars BUT since the jar installation is built as post install hook, to the logstash plugin manager the plugin is correctly installed. This means that during the second try everything looks "ok" and the command exits sucessfuly, even though the httpclient jars aren't actually there anymore:

/tmp/logstash-2.2.2 % find . -name 'http*.jar' 
./vendor/bundle/jruby/1.9/gems/manticore-0.5.2-java/lib/org/apache/httpcomponents/httpclient/4.5/httpclient-4.5.jar
./vendor/bundle/jruby/1.9/gems/manticore-0.5.2-java/lib/org/apache/httpcomponents/httpcore/4.4.1/httpcore-4.4.1.jar
./vendor/bundle/jruby/1.9/gems/manticore-0.5.2-java/lib/org/apache/httpcomponents/httpmime/4.5/httpmime-4.5.jar
/tmp/logstash-2.2.2 % bin/plugin update logstash-output-elasticsearch logstash-output-http
Updating logstash-output-elasticsearch, logstash-output-http
Error Bundler::InstallError, retrying 1/10
An error occurred while installing manticore (0.5.5), and Bundler cannot continue.
Make sure that `gem install manticore -v '0.5.5'` succeeds before bundling.
WARNING: SSLSocket#session= is not supported
Updated logstash-output-elasticsearch 2.5.1 to 2.5.3
/tmp/logstash-2.2.2 % find . -name 'http*.jar' 
/tmp/logstash-2.2.2 %

Looking at why the first update action failed:

  jar dependencies for manticore-0.5.5-java.gemspec . . .
[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[FATAL] Non-parseable POM /tmp/logstash-2.2.2/vendor/bundle/jruby/1.9/gems/jar-dependencies-0.3.2/lib/jars/gemspec_pom.rb: only whitespace content allowed before start tag and not # (position: START_DOCUMENT seen #... @1:1)  @ line 1, column 1
 @ 
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]   
[ERROR]   The project  (/tmp/logstash-2.2.2/vendor/bundle/jruby/1.9/gems/jar-dependencies-0.3.2/lib/jars/gemspec_pom.rb) has 1 error
[ERROR]     Non-parseable POM /tmp/logstash-2.2.2/vendor/bundle/jruby/1.9/gems/jar-dependencies-0.3.2/lib/jars/gemspec_pom.rb: only whitespace content allowed before start tag and not # (position: START_DOCUMENT seen #... @1:1)  @ line 1, column 1 -> [Help 2]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.

This seems related to mkristian/jar-dependencies#39, but now occurring in JRuby 1.7.24.
May I request your input here @mkristian?

@dave-kong
Copy link

@ph no .m2 folder in /opt/logstash

@mkristian
Copy link

the error with non-parsable pom is due to the fact that maven did not install the ruby-DSL for maven. then it fails with the above error and then of course there are no files on .m2 folder

will see now if I can reproduce the error locally

@mkristian
Copy link

all I could find now that "bundler" does not call the post_install_hook after installing the gems, i.e. jar-dependencies never even tries to install the jars. this is when I use the steps to reproduce from the initial report. bundler gives me hard time to include diagnostic output . . still digging

@mkristian
Copy link

@jsvd the problem is that logstash-2.2.0.tar misses some files from the ruby-maven gem: vendor/bundle/jruby/1.9/gems/ruby-maven-3.3.10/.mvn/extensions.xml

adding at vendor/bundle/jruby/1.9/gems/ruby-maven-3.3.10/.mvn/extensions.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- from ruby-maven gem -->
<extensions>
  <extension>
    <groupId>org.torquebox.mojo</groupId>
    <artifactId>mavengem-wagon</artifactId>
    <version>0.2.0</version>
  </extension>
  <extension>
    <groupId>io.takari.polyglot</groupId>
    <artifactId>polyglot-ruby</artifactId>
    <version>0.1.15</version>
  </extension>
</extensions>

fixes the missing jars for me.

the biggest thing was getting some debug output visible. export JARS_DEBUG=true does produce a lot but it gets swallowed by bundler or logstash-bundler

@mkristian
Copy link

@jsvd my last sentence was a feature request :)

@jsvd
Copy link
Member Author

jsvd commented Mar 18, 2016

o.O I have no idea why that file isn't there, we didn't exclude anything in the build process. I'm going to investigate that lead, thanks

@jsvd
Copy link
Member Author

jsvd commented Mar 18, 2016

I see the issue. during packaging we use Rake::FileList[globs], which exclude hidden files. The same happens with Dir.glob by default:

jruby-1.7.23 :046 > Dir.glob("**/*").find {|f| f.match(/maven.*extensions.xml/) }
 => nil 
jruby-1.7.23 :047 > Dir.glob("**/*", File::FNM_DOTMATCH).find {|f| f.match(/maven.*extensions.xml/) }
 => "vendor/bundle/jruby/1.9/gems/ruby-maven-3.3.10/.mvn/extensions.xml" 

@jsvd jsvd added the blocker label Mar 18, 2016
@mkristian
Copy link

mkristian commented Mar 18, 2016 via email

@jsvd
Copy link
Member Author

jsvd commented Mar 18, 2016

confirmed including the file fixes the problem:

/tmp % tar -zxf logstash-2.2.2.bad.tar.gz
/tmp % cd logstash-2.2.2
/tmp/logstash-2.2.2 % bin/plugin update logstash-output-elasticsearch logstash-output-http
Updating logstash-output-elasticsearch, logstash-output-http
Error Bundler::InstallError, retrying 1/10
An error occurred while installing manticore (0.5.5), and Bundler cannot continue.
Make sure that `gem install manticore -v '0.5.5'` succeeds before bundling.
WARNING: SSLSocket#session= is not supported
Updated logstash-output-elasticsearch 2.5.1 to 2.5.3
/tmp/logstash-2.2.2 % bin/logstash -f ../esoutput
The error reported is: 


  you might need to reinstall the gem which depends on the missing jar or in case there is Jars.lock then resolve the jars with `lock_jars` command

no such file to load -- org/apache/httpcomponents/httpcore/4.4.1/httpcore-4.4.1 (LoadError)
/tmp/logstash-2.2.2 % cd ..
/tmp % rm -rf logstash-2.2.2
/tmp % tar -zxf logstash-2.2.2.good.tar.gz
/tmp % cd logstash-2.2.2
/tmp/logstash-2.2.2 % bin/plugin update logstash-output-elasticsearch logstash-output-http
Updating logstash-output-elasticsearch, logstash-output-http
Updated logstash-output-elasticsearch 2.5.1 to 2.5.3
/tmp/logstash-2.2.2 % bin/logstash -f ../esoutput
Settings: Default pipeline workers: 4
Logstash startup completed
^CSIGINT received. Shutting down the pipeline. {:level=>:warn}
Logstash shutdown completed

@suyograo
Copy link
Contributor

Fixed in #4845

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants