You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@toree.apache.org by "Luciano Resende (Jira)" <ji...@apache.org> on 2019/11/01 19:18:00 UTC
[jira] [Resolved] (TOREE-421) KernelSecurityManager doesn't allow
users to create their own thread groups
[ https://issues.apache.org/jira/browse/TOREE-421?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Luciano Resende resolved TOREE-421.
-----------------------------------
Fix Version/s: 0.4.0
Assignee: Kevin Bates
Resolution: Fixed
> 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
> Assignee: Kevin Bates
> Priority: Major
> Fix For: 0.4.0
>
>
> 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)