Github user dalaro commented on the pull request:
https://github.com/apache/incubator-tinkerpop/pull/154#issuecomment-159313974
I think this problem also applies to GiraphGraphComputer. Consider the
following sequence of operations in SparkGraphComputer when `null !=
System.getSecurityManager()`.
* submit passes a task to CompletableFuture.supplyAsync (served by the
forkjoin common pool)
* submitted task calls FileSystem.get
* FileSystem.get calls a bunch of Hadoop permission guts and eventually
gets to UserGroupInformation.newLoginContext
* UserGroupInformation.newLoginContext calls setContextClassLoader on the
current thread
* setContextClassLoader throws SecurityException if `null !=
System.getSecurityManager()` and the task is running in a common forkjoin pool
thread, killing the task
The FileSystem.get call is visible in SGC's source. The succeeding calls
happen inside FileSystem.get and aren't visible in TP's source. But GGC calls
FileSystem.get with the same parameter signature as SGC, so they should both be
affected by this problem.
I don't know whether the same problem applies to TinkerGraphComputer, but
my guess is no, unless TinkerGraphComputer's internals touch the context
classloader or something else that does, like Hadoop.
I'll rework the PR to apply to both SGC and GGC (but not TGC).
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---