drill-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jacques Nadeau (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DRILL-3822) PathScanner fails to find jdbc-all's drill-module.conf in SQuirreL
Date Tue, 22 Sep 2015 23:49:04 GMT

    [ https://issues.apache.org/jira/browse/DRILL-3822?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14903675#comment-14903675

Jacques Nadeau commented on DRILL-3822:

The changes in the shading behavior were to avoid the situation where pathScanner is going
beyond its context to find information. It used to traverse the entire classloader hierarchy.
That doesn't make sense when you're in an app server scenario. Instead we should be constrained
in our behavior. The question is why this fix [1] is causing issues in this situation.

[1] https://github.com/apache/drill/commit/4e3b7dc0333a01e72d0ea9256331ea1e1dd51181?diff=split#diff-13e50b60c90f8ea8fe55481963573776R145

> PathScanner fails to find jdbc-all's drill-module.conf in SQuirreL
> ------------------------------------------------------------------
>                 Key: DRILL-3822
>                 URL: https://issues.apache.org/jira/browse/DRILL-3822
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Client - JDBC
>    Affects Versions: 1.2.0
>            Reporter: Krystal
>            Assignee: Daniel Barclay (Drill)
>         Attachments: squirrel.log
> git.commit.id.abbrev=3c89b30
> I used the latest drill-jdbc-all-1.2.0-SNAPSHOT.jar against the SQuirreL SQL application.
 I got the following error when trying to connect to the drill data source:
> {noformat}
> ERROR net.sourceforge.squirrel_sql.client.gui.db.ConnectToAliasCallBack  - Unexpected
Error occurred attempting to open an SQL connection.
> java.util.concurrent.ExecutionException: java.lang.RuntimeException: oadd.com.typesafe.config.ConfigException$Missing:
No configuration setting found for key 'drill.exec'
> Full error message is in the attached file. 
> {noformat}
> We turned on logging and found that the jdbc-all Jar file's {{drill-module.conf}} file
was not being found (explaining why the configuration key {{drill.exec}} wasn't found).
> After further investigation, it seems that {{PathScanner}} directly uses the system class
loader, bypassing the context class loader.
> (After drill-jdbc-all-1.2.0-SNAPSHOT.jar was changed from being listed in SQuirreL's
"additional class paths" (presumably being loaded by a special class loader) to being copied
into SQuirreL's Jar file directory (and therefore loaded by the system class loader), SQuirreL
worked. (Apparently, {{PathScanner}} was then able to find  {{drill-module.conf}} in the JDBC-all
Jar file and load it, so the later reference to {{drill.exec}} no longer failed.) 
> Also, SQuirreL works correctly with drill-1.1's JDBC-all Jar file, and there were some
recent changes to {{PathScanner}} related to class loaders.)

This message was sent by Atlassian JIRA

View raw message