You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@freemarker.apache.org by "Tihua Duan (Jira)" <ji...@apache.org> on 2021/10/12 13:17:00 UTC

[jira] [Updated] (FREEMARKER-198) Deadlock occurs during initialization in parallel test environment.

     [ https://issues.apache.org/jira/browse/FREEMARKER-198?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tihua Duan updated FREEMARKER-198:
----------------------------------
    Description: 
I'm testing freemaker code on two SBT tests, The first code is
{code:java}
val config = new Configuration(Configuration.VERSION_2_3_31)
val d = new DefaultObjectWrapper()
println(d.getJythonSupport){code}
Another is
{code:java}
val d = new DefaultObjectWrapper()
println(d.getJythonSupport){code}
When I tested them in parallel, waiting for each other happened.

I speculate that some static initialization code has circular dependencies.
_TemplateAPI.SAFE_OBJECT_WRAPPER-> DefaultObjectWapper.instance->DefaultObjectWrapperConfiguration->_TemplateAPI

  was:
I'm testing freemaker code on two SBT tests, The first code is
{code:java}
val config = new Configuration(Configuration.VERSION_2_3_31)
val d = new DefaultObjectWrapper()
println(d.getJythonSupport){code}
Another is
{code:java}
val d = new DefaultObjectWrapper()
println(d.getJythonSupport){code}
When I tested them in parallel, waiting for each other happened.


> Deadlock occurs during initialization in parallel test environment.
> -------------------------------------------------------------------
>
>                 Key: FREEMARKER-198
>                 URL: https://issues.apache.org/jira/browse/FREEMARKER-198
>             Project: Apache Freemarker
>          Issue Type: Bug
>          Components: engine
>    Affects Versions: 2.3.31
>            Reporter: Tihua Duan
>            Priority: Major
>
> I'm testing freemaker code on two SBT tests, The first code is
> {code:java}
> val config = new Configuration(Configuration.VERSION_2_3_31)
> val d = new DefaultObjectWrapper()
> println(d.getJythonSupport){code}
> Another is
> {code:java}
> val d = new DefaultObjectWrapper()
> println(d.getJythonSupport){code}
> When I tested them in parallel, waiting for each other happened.
> I speculate that some static initialization code has circular dependencies.
> _TemplateAPI.SAFE_OBJECT_WRAPPER-> DefaultObjectWapper.instance->DefaultObjectWrapperConfiguration->_TemplateAPI



--
This message was sent by Atlassian Jira
(v8.3.4#803005)