# Logstash upgrade from 2.2 to 2.3 failed

**URL:** <https://discuss.elastic.co/t/logstash-upgrade-from-2-2-to-2-3-failed/45887>\
**Category:** Logstash\
**Created:** [March 31, 2016, 8:03am UTC](https://discuss.elastic.co/t/logstash-upgrade-from-2-2-to-2-3-failed/45887 "2016-03-31T08:03:27Z")\
**Posts on this page:** 16\
**Page:** 1

<div class="post-metadata">

**Author:** ![abcfy2](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/abcfy2/32/453_2.png) [@abcfy2](https://discuss.elastic.co/u/abcfy2)\
**Post date:** [March 31, 2016, 8:03am UTC](https://discuss.elastic.co/t/logstash-upgrade-from-2-2-to-2-3-failed/45887/1 "2016-03-31T08:03:27Z")

</div>

Here is my config, and works well in `2.2`.

```auto
 cat /etc/logstash/conf.d/logstash.conf 
input {
    redis {
        data_type => "list"
        batch_count => 50
        host => "127.0.0.1"
        key => "logstash"
        password => "mypasswd"
    }
}

filter {
    if ! [type] or ! [tags] {
        drop { }
    }

    if [host] !~ "rtdstest.*" and "throttled" not in [tags] and (
        (
            [loglevel] == "ERROR" and 
            "未知采集器" not in [message] and 
            "数据上报帧里的sid为空" not in [message] and
            "没有对应的Sampler" not in [message] and
            "Connection reset by peer" not in [message]
        ) or
            [loglevel] != "ERROR" and
            "Exception" in [message]
    ) {
        mutate {
            add_tag => ["alert"]
            add_field => { "mailto" => "myemail@email.com"}
        }

        if "找不到对应的iid信息" in [message] or
           "未配置功率计算规则!" in [message] {
            mutate {
                update => {
                    "mailto" => "myemail@email.com"
                }
            }
        }
    }
}

output {
    elasticsearch {
        hosts => "127.0.0.1"
    }

    if "alert" in [tags] {
        email {
            address => "smtp.exmail.qq.com"
            authentication => "login"
            username => "username"
            password => "password"
            to => "%{mailto}"
            from => "Logstash<logstash@mydomain.com>"
            body => "%{message}"
            subject => "服务器 %{host} %{type} 日志发现异常, LOGLEVEL-%{loglevel}: %{content}"
        }
    }

    if "slow_query" in [tags] and
        [duration] >= 10000 {
        email {
            address => "smtp.exmail.qq.com"
            authentication => "login"
            username => "username"
            password => "password"
            to => "to@mydomain.com"
            from => "Logstash<logstash@mydomain.com>"
            body => "%{message}"
            subject => "服务器 %{host} %{type} 日志发现慢查询, query耗时: %{duration} ms"
        }
    }
}

```

But when I upgrade to `2.3`, will raise this error:

```auto
 /opt/logstash/bin/logstash -f /etc/logstash/conf.d/logstash.conf -t
An unexpected error occurred! {:error=>#<NoMethodError: undefined method `config_valid?' for LogStash::Pipeline:Class>, :class=>"NoMethodError", :backtrace=>["/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.3.0-java/lib/logstash/agent.rb:169:in `execute'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.3.0-java/lib/logstash/runner.rb:94:in `run'", "org/jruby/RubyProc.java:281:in `call'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.3.0-java/lib/logstash/runner.rb:99:in `run'", "org/jruby/RubyProc.java:281:in `call'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/stud-0.0.22/lib/stud/task.rb:24:in `initialize'"], :level=>:warn}

```

My OS is ubuntu 14.04, and java version is `1.8.0_77`.

---

<div class="post-metadata">

**Author:** ![tatdat](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/tatdat/32/113160_2.png) [@tatdat](https://discuss.elastic.co/u/tatdat)\
**Post date:** [March 31, 2016, 8:33am UTC](https://discuss.elastic.co/t/logstash-upgrade-from-2-2-to-2-3-failed/45887/2 "2016-03-31T08:33:14Z")

</div>

Hi, you got same error with me.  
Now -t or --configtest not work on 2.3. But you can run with --verbose or --debug. It work fine !

[https://github.com/elastic/logstash/issues/4933](https://github.com/elastic/logstash/issues/4933)

---

<div class="post-metadata">

**Author:** ![abcfy2](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/abcfy2/32/453_2.png) [@abcfy2](https://discuss.elastic.co/u/abcfy2)\
**Post date:** [March 31, 2016, 8:43am UTC](https://discuss.elastic.co/t/logstash-upgrade-from-2-2-to-2-3-failed/45887/3 "2016-03-31T08:43:47Z")

</div>

Yes, that's it.

Now logstash 2.3 cannot work, and I have to downgrade to `2.2`.

---

<div class="post-metadata">

**Author:** ![tatdat](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/tatdat/32/113160_2.png) [@tatdat](https://discuss.elastic.co/u/tatdat)\
**Post date:** [March 31, 2016, 8:48am UTC](https://discuss.elastic.co/t/logstash-upgrade-from-2-2-to-2-3-failed/45887/4 "2016-03-31T08:48:16Z")

</div>

with me, all config file working on logstash 2.3. I think you don't need downgrade to 2.2.  
When you run --debug, it's showing error config file if it have.

---

<div class="post-metadata">

**Author:** ![abcfy2](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/abcfy2/32/453_2.png) [@abcfy2](https://discuss.elastic.co/u/abcfy2)\
**Post date:** [March 31, 2016, 8:51am UTC](https://discuss.elastic.co/t/logstash-upgrade-from-2-2-to-2-3-failed/45887/5 "2016-03-31T08:51:29Z")

</div>

```auto
~$ sudo service logstash restart
Configuration error. Not restarting. Re-run with configtest parameter for details

```

Configuration error. May be logstash `2.3` has been changed some config. But I've checked the official release notes and not found it.

---

<div class="post-metadata">

**Author:** ![abcfy2](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/abcfy2/32/453_2.png) [@abcfy2](https://discuss.elastic.co/u/abcfy2)\
**Post date:** [March 31, 2016, 8:55am UTC](https://discuss.elastic.co/t/logstash-upgrade-from-2-2-to-2-3-failed/45887/6 "2016-03-31T08:55:20Z")

</div>

Oh, I know the reason. Because `/etc/init.d/logstash` script will check config file by using `--configtest`, but failed.

I try to use `/opt/logstash/bin/logstash -f /etc/logstash/conf.d/logstash.conf --debug` to start manually, and it works.

---

<div class="post-metadata">

**Author:** ![abcfy2](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/abcfy2/32/453_2.png) [@abcfy2](https://discuss.elastic.co/u/abcfy2)\
**Post date:** [March 31, 2016, 8:57am UTC](https://discuss.elastic.co/t/logstash-upgrade-from-2-2-to-2-3-failed/45887/7 "2016-03-31T08:57:59Z")

</div>

I find another bug: [https://github.com/elastic/logstash/issues/4940](https://github.com/elastic/logstash/issues/4940)

---

<div class="post-metadata">

**Author:** ![tatdat](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/tatdat/32/113160_2.png) [@tatdat](https://discuss.elastic.co/u/tatdat)\
**Post date:** [March 31, 2016, 9:01am UTC](https://discuss.elastic.co/t/logstash-upgrade-from-2-2-to-2-3-failed/45887/8 "2016-03-31T09:01:10Z")

</div>

Yep, i always use command for testing and check error

> /opt/logstash/bin/logstash -f /etc/logstash/conf.d/ --debug

Optional, using -w and -b

[https://www.elastic.co/guide/en/logstash/current/pipeline.html](https://www.elastic.co/guide/en/logstash/current/pipeline.html)

---

<div class="post-metadata">

**Author:** ![MikeM](https://avatars.discourse-cdn.com/v4/letter/m/41988e/32.png) [@MikeM](https://discuss.elastic.co/u/MikeM)\
**Post date:** [April 1, 2016, 3:08am UTC](https://discuss.elastic.co/t/logstash-upgrade-from-2-2-to-2-3-failed/45887/9 "2016-04-01T03:08:59Z")

</div>

any luck with this? I'm getting the same error.

---

<div class="post-metadata">

**Author:** ![abcfy2](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/abcfy2/32/453_2.png) [@abcfy2](https://discuss.elastic.co/u/abcfy2)\
**Post date:** [April 1, 2016, 3:47am UTC](https://discuss.elastic.co/t/logstash-upgrade-from-2-2-to-2-3-failed/45887/10 "2016-04-01T03:47:02Z")

</div>

Because of the wrong `--configtest`behavior. So I just delete these lines about `--configtest` in `/etc/init.d/logstash`.

Replace the `147` - `151` lines to `return 0`.

---

<div class="post-metadata">

**Author:** ![Philip\_Morrison](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/philip_morrison/32/439_2.png) [@Philip\_Morrison](https://discuss.elastic.co/u/Philip_Morrison)\
**Post date:** [April 1, 2016, 4:41pm UTC](https://discuss.elastic.co/t/logstash-upgrade-from-2-2-to-2-3-failed/45887/11 "2016-04-01T16:41:08Z")

</div>

Thanks for that info but even with the removed section the pipeline starts, then crashes.  
Any time I try to do /opt/logstash -t -f /blah i get the following

```auto
An unexpected error occurred! {:error=>#<NoMethodError: undefined method `config_valid?' for LogStash::Pipeline:Class>, :class=>"NoMethodError", :backtrace=>["/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.3.0-java/lib/logstash/agent.rb:169:in `execute'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.3.0-java/lib/logstash/runner.rb:94:in `run'", "org/jruby/RubyProc.java:281:in `call'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.3.0-java/lib/logstash/runner.rb:99:in `run'", "org/jruby/RubyProc.java:281:in `call'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/stud-0.0.22/lib/stud/task.rb:24:in `initialize'"], :level=>:warn}

```

---

<div class="post-metadata">

**Author:** ![abcfy2](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/abcfy2/32/453_2.png) [@abcfy2](https://discuss.elastic.co/u/abcfy2)\
**Post date:** [April 1, 2016, 4:54pm UTC](https://discuss.elastic.co/t/logstash-upgrade-from-2-2-to-2-3-failed/45887/12 "2016-04-01T16:54:17Z")

</div>

Because `-t|--configtest` will not work for this version. Waiting for the fix version.

---

<div class="post-metadata">

**Author:** ![Philip\_Morrison](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/philip_morrison/32/439_2.png) [@Philip\_Morrison](https://discuss.elastic.co/u/Philip_Morrison)\
**Post date:** [April 1, 2016, 5:03pm UTC](https://discuss.elastic.co/t/logstash-upgrade-from-2-2-to-2-3-failed/45887/13 "2016-04-01T17:03:12Z")

</div>

Yeah I just found that. I suppose i will run in debug mode until I hear what is going on.

Thanks.

---

<div class="post-metadata">

**Author:** ![joewen](https://avatars.discourse-cdn.com/v4/letter/j/53a042/32.png) [@joewen](https://discuss.elastic.co/u/joewen)\
**Post date:** [April 2, 2016, 2:44pm UTC](https://discuss.elastic.co/t/logstash-upgrade-from-2-2-to-2-3-failed/45887/14 "2016-04-02T14:44:45Z")

</div>

the same to you.logstash 2.2 running well

---

<div class="post-metadata">

**Author:** ![abcfy2](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/abcfy2/32/453_2.png) [@abcfy2](https://discuss.elastic.co/u/abcfy2)\
**Post date:** [April 3, 2016, 5:47am UTC](https://discuss.elastic.co/t/logstash-upgrade-from-2-2-to-2-3-failed/45887/15 "2016-04-03T05:47:30Z")

</div>

Just wait. The developers have been already fixed this issue. Waiting for the next release soon, see: [https://github.com/elastic/logstash/issues/4933](https://github.com/elastic/logstash/issues/4933)

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 6, 2017, 5:04am UTC](https://discuss.elastic.co/t/logstash-upgrade-from-2-2-to-2-3-failed/45887/16 "2017-07-06T05:04:12Z")

</div>


