Uploaded image for project: 'Apache Tez'
  1. Apache Tez
  2. TEZ-3812

race condition in ssl shuffle

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • None
    • None

    Description

      ShuffleUtils does the following:

      if (sslFactory == null) {
              synchronized (HttpConnectionParams.class) {
                //Create sslFactory if it is null or if it was destroyed earlier
                if (sslFactory == null || sslFactory.getKeystoresFactory().getTrustManagers() == null) {
                  sslFactory =
                      new SSLFactory(org.apache.hadoop.security.ssl.SSLFactory.Mode.CLIENT, conf);
                  try {
                    sslFactory.init();
      

      It is possible for a thread to get sslFactory that has been assigned but not initialized. It could result in e.g. the hostnameVerifier being null:

      Caused by: java.lang.IllegalArgumentException: no HostnameVerifier specified
      at javax.net.ssl.HttpsURLConnection.setHostnameVerifier(HttpsURLConnection.java:265)
      at org.apache.tez.http.SSLFactory.configure(SSLFactory.java:219)
      at org.apache.tez.http.HttpConnection.setupConnection(HttpConnection.java:98)
      at org.apache.tez.http.HttpConnection.connect(HttpConnection.java:137)
      at org.apache.tez.http.HttpConnection.connect(HttpConnection.java:123)
      at org.apache.tez.runtime.library.common.shuffle.orderedgrouped.FetcherOrderedGrouped.setupConnection(FetcherOrderedGrouped.java:340)
      at org.apache.tez.runtime.library.common.shuffle.orderedgrouped.FetcherOrderedGrouped.copyFromHost(FetcherOrderedGrouped.java:260)
      at org.apache.tez.runtime.library.common.shuffle.orderedgrouped.FetcherOrderedGrouped.fetchNext(FetcherOrderedGrouped.java:178)
      at org.apache.tez.runtime.library.common.shuffle.orderedgrouped.FetcherOrderedGrouped.callInternal(FetcherOrderedGrouped.java:191)
      at org.apache.tez.runtime.library.common.shuffle.orderedgrouped.FetcherOrderedGrouped.callInternal(FetcherOrderedGrouped.java:54) 
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            sershe Sergey Shelukhin
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: