Hi Chan, Thanks for taking a look. This is running the release version of PredictionIO 0.11.0-incubating, not the Authenticated Elasticsearch branch/PR you mentioned w/ those classpath revisions.
Here it is with the `--verbose` flag, which made some ConnectionPool loglines appear: > $ pio status --verbose > [INFO] [Management$] Inspecting PredictionIO... > [INFO] [Management$] PredictionIO 0.11.0-incubating is installed at > /app/pio-engine/PredictionIO-dist > [INFO] [Management$] Inspecting Apache Spark... > [INFO] [Management$] Apache Spark is installed at > /app/pio-engine/PredictionIO-dist/vendors/spark-hadoop > [INFO] [Management$] Apache Spark 2.1.0 detected (meets minimum requirement > of 1.3.0) > [INFO] [Management$] Inspecting storage backend connections... > [INFO] [Storage$] Verifying Meta Data Backend (Source: PGSQL)... > [DEBUG] [ConnectionPool$] Registered connection pool : > ConnectionPool(url:jdbc:postgresql://postgres/pio, user:pio) using factory : > <default> > [DEBUG] [ConnectionPool$] Registered singleton connection pool : > ConnectionPool(url:jdbc:postgresql://postgres/pio, user:pio) > [ERROR] [Management$] Unable to connect to all storage backends > successfully. > The following shows the error message from the storage backend. > > No suitable driver found for jdbc:postgresql://postgres/pio > (java.sql.SQLException) > > Dumping configuration of initialized storage backend sources. > Please make sure they are correct. > > Source Name: PGSQL; Type: jdbc; Configuration: URL -> > jdbc:postgresql://postgres/pio, PARTITIONS -> 4, PASSWORD -> pio, USERNAME -> > pio, CONNECTIONS -> 8, TYPE -> jdbc, INDEX -> enabled *Mars ( <> .. <> ) > On May 26, 2017, at 05:17, Chan Lee <[email protected]> wrote: > > Actually, if this is a problem occurring only with docker-compose and travis, > I think this may be the issue: > > https://github.com/apache/incubator-predictionio/blob/develop/tests/build_docker.sh#L42-L45 > puts the main assembly jar to assembly/, and data assembly jars to lib/spark > (instead of assembly/spark, which I think is rather confusing) > > Maybe the change in compute-classpath.sh of > https://github.com/apache/incubator-predictionio/pull/372 may have caused pio > commands to fail? > > Best, > Chan > > On Thu, May 25, 2017 at 10:42 PM, Chan Lee <[email protected]> wrote: > Hi Mars, > > I'm not sure what the cause of the error is but adding the --verbose option > may help debug. Also, I've noticed that the host in the postgres URL for the > output (jdbc:postgresql://postgres/pio) is different from the one in > config/pio-env.sh (localhost/$hostport). Hope this helps. > > Best, > Chan > > > On Thu, May 25, 2017 at 6:07 PM, Mars Hall <[email protected]> wrote: > Hi PIO users 🐸 > > I've got this engine that cannot find its Postgres JDBC driver. Common > conundrum! I solved this problem dozens of times with PIO, but this one > stumps me. > > It comes from `pio status`, as opposed to `pio train`: > > > $ ./PredictionIO-dist/bin/pio status > > [INFO] [Management$] Inspecting PredictionIO... > > [INFO] [Management$] PredictionIO 0.11.0-incubating is installed at > > /app/pio-engine/PredictionIO-dist > > [INFO] [Management$] Inspecting Apache Spark... > > [INFO] [Management$] Apache Spark is installed at > > /app/pio-engine/PredictionIO-dist/vendors/spark-hadoop > > [INFO] [Management$] Apache Spark 2.1.0 detected (meets minimum > > requirement of 1.3.0) > > [INFO] [Management$] Inspecting storage backend connections... > > [INFO] [Storage$] Verifying Meta Data Backend (Source: PGSQL)... > > [ERROR] [Management$] Unable to connect to all storage backends > > successfully. > > The following shows the error message from the storage backend. > > > > No suitable driver found for jdbc:postgresql://postgres/pio > > (java.sql.SQLException) > > > > Dumping configuration of initialized storage backend sources. > > Please make sure they are correct. > > > > Source Name: PGSQL; Type: jdbc; Configuration: URL -> > > jdbc:postgresql://postgres/pio, PARTITIONS -> 4, PASSWORD -> pio, USERNAME > > -> pio, CONNECTIONS -> 8, TYPE -> jdbc, INDEX -> enabled > > > I've added a debug output to `bin/pio-class` to reveal what's running (e.g. > classpath); multi-line formatting added by me: > > > exec java \ > > -cp /app/pio-engine/PredictionIO-dist/conf:\ > > /app/pio-engine/PredictionIO-dist/plugins/*:\ > > /app/pio-engine/PredictionIO-dist/lib/spark/*:\ > > > > /app/pio-engine/PredictionIO-dist/lib/pio-assembly-0.11.0-incubating.jar:\ > > /app/pio-engine/PredictionIO-dist/conf:\ > > /app/pio-engine/PredictionIO-dist/conf:\ > > /app/pio-engine/PredictionIO-dist/lib/postgresql_jdbc.jar \ > > -Dpio.log.dir=/root \ > > org.apache.predictionio.tools.console.Console \ > > status \ > > --pio-home /app/pio-engine/PredictionIO-dist > > > > Verified that the Postgres JDBC jar file exists & is readable by the current > user: > > > ls -hal /app/pio-engine/PredictionIO-dist/lib/postgresql_jdbc.jar > > -rw-r--r-- 1 root root 674K May 26 00:57 postgresql_jdbc.jar > > > > Is there something else that would cause that "No suitable driver" error when > something else is really wrong? > > > Context: > This is building on Ubuntu 14.04.5 LTS with docker-compose on TravisCI for > the Heroku buildpack: https://github.com/heroku/predictionio-buildpack/pull/36 > > This same setup works fine elsewhere, finds that JDBC driver, both on Heroku > and local macOS. The build also used to work fine with PredictionIO > 0.10.0-incubating. Trying to upgrade everything to 0.11.0! > > *Mars > > ( <> .. <> ) > > >
