"Unable to find driver class" when use jdbc_driver_library => "/home/ubuntu/ojdbc6.jar" after upgrade to Logstash 6.8.4

The latest release of Logstash 6.8.4 with jdbc-input-plugin 4.3.16 give us following error in syslog

Oct 24 21:02:00 ip-10-40-0-99 logstash[15520]:   2172   job:
Oct 24 21:02:00 ip-10-40-0-99 logstash[15520]:   2172     Rufus::Scheduler::CronJob "*/1 * * * *" {}
Oct 24 21:02:00 ip-10-40-0-99 logstash[15520]:   2172   error:
Oct 24 21:02:00 ip-10-40-0-99 logstash[15520]:   2172     2172
Oct 24 21:02:00 ip-10-40-0-99 logstash[15520]:   2172     LogStash::PluginLoadingError
Oct 24 21:02:00 ip-10-40-0-99 logstash[15520]:   2172     Unable to find driver class via URLClassLoader in given driver jars: Java::oracle.jdbc.driver.OracleDriver and Java::oracle.jdbc.driver.OracleDriver
Oct 24 21:02:00 ip-10-40-0-99 logstash[15520]:   2172       /usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-input-jdbc-4.3.16/lib/logstash/plugin_mixins/jdbc/jdbc.rb:181:in `open_jdbc_connection'
Oct 24 21:02:00 ip-10-40-0-99 logstash[15520]:   2172       /usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-input-jdbc-4.3.16/lib/logstash/plugin_mixins/jdbc/jdbc.rb:253:in `execute_statement'
Oct 24 21:02:00 ip-10-40-0-99 logstash[15520]:   2172       /usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-input-jdbc-4.3.16/lib/logstash/inputs/jdbc.rb:309:in `execute_query'
Oct 24 21:02:00 ip-10-40-0-99 logstash[15520]:   2172       /usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-input-jdbc-4.3.16/lib/logstash/inputs/jdbc.rb:276:in `block in run'
Oct 24 21:02:00 ip-10-40-0-99 logstash[15520]:   2172       /usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/rufus-scheduler-3.0.9/lib/rufus/scheduler/jobs.rb:234:in `do_call'
Oct 24 21:02:00 ip-10-40-0-99 logstash[15520]:   2172       /usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/rufus-scheduler-3.0.9/lib/rufus/scheduler/jobs.rb:258:in `do_trigger'
Oct 24 21:02:00 ip-10-40-0-99 logstash[15520]:   2172       /usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/rufus-scheduler-3.0.9/lib/rufus/scheduler/jobs.rb:300:in `block in start_work_thread'
Oct 24 21:02:00 ip-10-40-0-99 logstash[15520]:   2172       /usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/rufus-scheduler-3.0.9/lib/rufus/scheduler/jobs.rb:299:in `block in start_work_thread'
Oct 24 21:02:00 ip-10-40-0-99 logstash[15520]:   2172       org/jruby/RubyKernel.java:1425:in `loop'
Oct 24 21:02:00 ip-10-40-0-99 logstash[15520]:   2172       /usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/rufus-scheduler-3.0.9/lib/rufus/scheduler/jobs.rb:289:in `block in start_work_thread'
Oct 24 21:02:00 ip-10-40-0-99 logstash[15520]:   2172   tz:
Oct 24 21:02:00 ip-10-40-0-99 logstash[15520]:   2172     ENV['TZ']:
Oct 24 21:02:00 ip-10-40-0-99 logstash[15520]:   2172     Time.now: 2019-10-24 21:02:00 +0900

our pipeline config looks like

        jdbc_driver_library => "/home/ubuntu/ojdbc6.jar"
        jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"

OS Info

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 16.04.5 LTS
Release:	16.04
Codename:	xenial

JDK info

$ java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

It was fine when running Logstash 6.8.2 and 6.8.3 with jdbc-input-plugin 4.3.13.
So I guess something wrong with the Driver loading modification for jdbc-input-plugin 4.3.14. and 4.3.15 release

A workaround for us is to not using jdbc_driver_library but place the ojdbc6.jar in logstash-core lib path

install -C -m 644 -o logstash -g logstash /home/ubuntu/ojdbc6.jar /usr/share/logstash/logstash-core/lib/jars

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.