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

( <> .. <> )

Reply via email to