2 Replies Latest reply on May 28, 2018 4:47 AM by Marko Bauhardt

    Extract TDE file from Tableau server fails under MapR

    Marko Bauhardt

      I want to extract a TDE file via Java

       

      new Extract(fileName)
      

       

      but I get the following error message:

       

       

          Caused by: com.tableausoftware.TableauException: server did not call us back
      at com.tableausoftware.extract.Extract.<init>(Unknown Source)
      

       

       

      I read several threads in different forums. The suggested solution there was to set the correct permissions on the file `tdeserver64`.

      This doesn't fix the issue, the exception is still the same.

       

      Then I tried to run the sample code provided by the Tableau SDK. The sample code is working.

      The difference between the sample code and my code is that the jar file `maprfs-5.2.0.jar` is in my classpath.

      We are loading also a Hadoop configuration which uses classes from the MapR jar to generate a binary `libMapRClient.5.2.0-mapr.so` file and load this file into the JNA path.

       

          java.io.FileInputStream.open0(Native Method)
          java.io.FileInputStream.open(FileInputStream.java:195)
          java.io.FileInputStream.<init>(FileInputStream.java:138)
          com.mapr.fs.ShimLoader.extractLibraryFile(ShimLoader.java:421)
          com.mapr.fs.ShimLoader.findNativeLibrary(ShimLoader.java:529)
          com.mapr.fs.ShimLoader.loadNativeLibrary(ShimLoader.java:340)
          com.mapr.fs.ShimLoader.load(ShimLoader.java:226)
          org.apache.hadoop.conf.CoreDefaultProperties<clinit(CoreDefaultProperties.java:61)
          java.lang.Class.forName0(Native Method)
          java.lang.Class.forName(Class.java:348)
      

       

       

      It looks like this leads to the exception mentioned above. I assume this because I get a “C” stack trace, too:

       

       

      *** glibc detected *** /usr/java/default/bin/java: free(): invalid pointer: 0x00007fde3a83e2c0 ***
          ======= Backtrace: =========
          /lib64/libc.so.6(+0x75dee)[0x7fdebd791dee]
          /lib64/libc.so.6(+0x78c3d)[0x7fdebd794c3d]
          /tmp/tableau-sdk/lib64/tableausdk/libtabsys.so(_ZNSs9_M_mutateEmmm+0x1c4)[0x7fde063b45c4]
          /tmp/tableau-sdk/lib64/tableausdk/libtabsys.so(_ZNSs15_M_replace_safeEmmPKcm+0x1e)[0x7fde063b4a7e]
          /root/tmp/mapr-root-libMapRClient.5.2.0-mapr.so(_ZN4mapr2fs8CidCache15GetCidForVolumeEPKcNS0_20VolLinkAttributeTypeEPjPNS0_6FidMsgEbb+0x4c2)[0x7fde3aea4982]
          /root/mapr-root-libMapRClient.5.2.0-mapr.so(_ZN4mapr2fs8CidCache4InitEPKciPmPjPNS0_9MapClientEb+0x1b1)[0x7fde3aea61b1]
          /root/mapr-root-libMapRClient.5.2.0-mapr.so(_ZN4mapr2fs9MapClient4InitEPmijjjPKcP8_jstringbb+0x1c7)[0x7fde3ae4bc17]
          /root/mapr-root-libMapRClient.5.2.0-mapr.so(_ZN4mapr2fs9MapClient9GetClientEP7JNIEnv_PKcPmijjjS5_P8_jstringbPNS0_19MapClientInitParamsEPib+0x10f)[0x7fde3ae793ef]
          /root/mapr-root-libMapRClient.5.2.0-mapr.so(_ZN4mapr2fs9MapClient9GetClientEP7JNIEnv_PKcPmijjjS5_P8_jstringbPNS0_19MapClientInitParamsEPi+0x49)[0x7fde3ae796d9]
          /root/mapr-root-libMapRClient.5.2.0-mapr.so(Java_com_mapr_fs_jni_MapRClient_OpenClient+0x1b4)[0x7fde3af2f1c4]
      

       

      If I remove the `maprfs.jar`, the extraction of the TDE file works.

       

      Had someone the same issue when trying to extract a TDE file on a MapR Hadoop cluster, or with `maprfs.jar` in the classpath?

      Or are there some restrictions regarding `libc.so`, `libtabsys.so` and `libMapRClient.so`?

       

      Side note: This issue happens only on Linux, not on Mac OS X.