vanzin commented on issue #24502: [SPARK-27610] - Yarn external shuffle service fails to start when spark.shuffle.io.mode=EPOLL URL: https://github.com/apache/spark/pull/24502#issuecomment-488136055 How does this work? Won't the symbols in the native libraries still match the original, non-relocated names? e.g. in the source for the native lib I see this: ``` static jint netty_epoll_native_JNI_OnLoad(JNIEnv* env, const char* packagePrefix) { // We must register the statically referenced methods first! if (netty_unix_util_register_natives(env, packagePrefix, "io/netty/channel/epoll/NativeStaticallyReferencedJniMethods", statically_referenced_fixed_method_table, statically_referenced_fixed_method_table_size) != 0) { return JNI_ERR; } // Register the methods which are not referenced by static member variables JNINativeMethod* dynamicMethods = createDynamicMethodsTable(packagePrefix); if (netty_unix_util_register_natives(env, packagePrefix, "io/netty/channel/epoll/Native", dynamicMethods, dynamicMethodsTableSize()) != 0) { freeDynamicMethodsTable(dynamicMethods); return JNI_ERR; } ``` The shade plugin doesn't change those strings to be in the new relocated package. Never mind how the JVM is even able to match the relocate Java names to the symbols in the native library in the first place.
---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected] With regards, Apache Git Services --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
