You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zeppelin.apache.org by "Roland Johann (JIRA)" <ji...@apache.org> on 2018/09/04 16:08:00 UTC

[jira] [Created] (ZEPPELIN-3765) Dependency download via Proxy inefficient

Roland Johann created ZEPPELIN-3765:
---------------------------------------

             Summary: Dependency download via Proxy inefficient
                 Key: ZEPPELIN-3765
                 URL: https://issues.apache.org/jira/browse/ZEPPELIN-3765
             Project: Zeppelin
          Issue Type: Bug
          Components: Interpreters
    Affects Versions: 0.8.0
            Reporter: Roland Johann


Zeppelin tries to download dependencies with repositories in defined order:
 * default maven central
 * local
 * custom/self defined

When zeppelin must use a http proxy custom defined maven central with proxy properties solve this particular issue and introduces another one, based on the ordering of dependency resolution with defined repositories: First default maven central will be used, when the connection can't be established the used library (sonatype aether and apache wagon) wait 120 seconds until the request fails, then tries subsequent repositories.

In the current implementation one configures aether to use shorter timeouts with system properties `aether.connector.connectTimeout` and `aether.connector.requestTimeout` which will be used at `WagonRepositoryConnector.java:310` but never will be passet to the actual http client.

As apache wagon with `LightweightHttpWagon` implementation is in use which itself uses plain Java `sun.net.www.http.HttpClient` properties to set timeouts will be `sun.net.client.defaultConnectTimeout` and `sun.net.client.defaultReadTimeout`.

These Properties can be used as workaround but we shouldn't rely on timeouts here.

We can solve the problem in several ways:

Change the kind default repositories are treated/specified:
 * ordering of repos: first custom, then default
 * don't specify default repositories at code but at `interpreter.json` configuration file
 * when still definition at code, default maven central repo should get optional proxy/auth at `org.apache.zeppelin.dep.Booter#newCentralRepository`

I prefer that there are no repo definitions at code and the user can specify everything at `interpreter.json`.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)