[ 
https://issues.apache.org/jira/browse/TOREE-421?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16958060#comment-16958060
 ] 

ASF GitHub Bot commented on TOREE-421:
--------------------------------------

kevin-bates commented on pull request #178: [TOREE-421] Allow thread groups
URL: https://github.com/apache/incubator-toree/pull/178
 
 
   Remove the portions of Security Manager that restricted the creation of 
thread groups.  This change also preserves the prevention of calls to 
`System.exit()` from sub-threads/groups (including those derived from the 
restricted group) - otherwise such calls from threads in a new thread group can 
terminate the kernel.
   
   I chose **not** to implement the ability to preserve the existing logic 
whereby the creation of new groups are prevented (i.e., via a new boolean 
option `--prevent-new-thread-groups`) since it felt like adding something that 
probably isn't necessary.  If others disagree or we (eventually) find a good 
use-case for restoring that kind of functionality, we can add such an option at 
that time.
 
----------------------------------------------------------------
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:
us...@infra.apache.org


> 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
>            Priority: Major
>
> 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
(v8.3.4#803005)

Reply via email to