Piyush Narang created TOREE-421: ----------------------------------- Summary: KernelSecurityManager doesn't allow users to create their own thread groups Key: TOREE-421 URL: https://issues.apache.org/jira/browse/TOREE-421 Project: TOREE Issue Type: Bug Reporter: Piyush Narang
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: {code} 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) ... {code} Here's a simple repro: {code} println(Thread.currentThread().getThreadGroup) // default thread group val 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 {code} Any suggestions for working around this? -- This message was sent by Atlassian JIRA (v6.4.14#64029)