hi folks,

I'm trying to run a Spark Scala job using Toree and I'm running into some
issues as the code in our job calls into one of our libraries which tries
to create threads in its own ThreadGroup:
https://github.com/twitter/util/blob/develop/util-core/src/main/scala/com/twitter/concurrent/NamedPoolThreadFactory.scala#L28

This seems to cause this check in Toree's KernelSecurityManager to trip:
https://github.com/apache/incubator-toree/blob/master/kernel-api/src/main/scala/org/apache/toree/security/KernelSecurityManager.scala#L121

Stack looks like:

Name: java.lang.SecurityException
Message: Not allowed to modify ThreadGroups!
StackTrace:   at
org.apache.toree.security.KernelSecurityManager.checkAccess(KernelSecurityManager.scala:114)
  at java.lang.ThreadGroup.checkAccess(ThreadGroup.java:315)
  at java.lang.Thread.init(Thread.java:394)
  at java.lang.Thread.init(Thread.java:349)
  at java.lang.Thread.<init>(Thread.java:599)
  at 
com.twitter.concurrent.NamedPoolThreadFactory.newThread(NamedPoolThreadFactory.scala:32)
...

Here's a simple repro:

println(Thread.currentThread().getThreadGroup) // default thread
groupval group: ThreadGroup = new
ThreadGroup(Thread.currentThread().getThreadGroup(), "name")
val hello = new Thread(group, new Runnable {
    def run() {
    println("hello world")
  }
})
println(hello.getThreadGroup)
hello.start

Any suggestions for working around this? (TOREE-421
<https://issues.apache.org/jira/browse/TOREE-421>)


Thanks,


-- 
- Piyush

Reply via email to