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 exeption 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 configution 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.