[
https://issues.apache.org/jira/browse/POLYGENE-106?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Niclas Hedhman updated POLYGENE-106:
------------------------------------
Description:
The Bootstrap is required to be single-threaded, no concurrency measures are
present, and any multi-threaded code executing before the application has been
activated, is deemed "undefined" and "potentially fatal".
But, services are allowed to be lazy-instantiated, which is even the default,
which means that their activation must be fully thread-safe, including the new
activation/passivation system for services. POLYGENE-39 might indicate that the
initialize() method hadn't been executed in full, before another thread is
granted access to the FileEntityStore, causing "slices==0" and a DivideByZero
exception to be thrown.
I think it is essential that the exact details and locks involved, are fully
investigated and documented to understand what happens during the
instantiation/activation/initialization phase of a service, long after the
application has been activated.
was:
The Bootstrap is required to be single-threaded, no concurrency measures are
present, and any multi-threaded code executing before the application has been
activated, is deemed "undefined" and "potentially fatal".
But, services are allowed to be lazy-instantiated, which is even the default,
which means that their activation must be fully thread-safe, including the new
activation/passivation system for services. ZEST-39 might indicate that the
initialize() method hadn't been executed in full, before another thread is
granted access to the FileEntityStore, causing "slices==0" and a DivideByZero
exception to be thrown.
I think it is essential that the exact details and locks involved, are fully
investigated and documented to understand what happens during the
instantiation/activation/initialization phase of a service, long after the
application has been activated.
> Investigate and Document the exact lifecycle of Services
> --------------------------------------------------------
>
> Key: POLYGENE-106
> URL: https://issues.apache.org/jira/browse/POLYGENE-106
> Project: Polygene
> Issue Type: Bug
> Reporter: Niclas Hedhman
>
> The Bootstrap is required to be single-threaded, no concurrency measures are
> present, and any multi-threaded code executing before the application has
> been activated, is deemed "undefined" and "potentially fatal".
> But, services are allowed to be lazy-instantiated, which is even the default,
> which means that their activation must be fully thread-safe, including the
> new activation/passivation system for services. POLYGENE-39 might indicate
> that the initialize() method hadn't been executed in full, before another
> thread is granted access to the FileEntityStore, causing "slices==0" and a
> DivideByZero exception to be thrown.
> I think it is essential that the exact details and locks involved, are fully
> investigated and documented to understand what happens during the
> instantiation/activation/initialization phase of a service, long after the
> application has been activated.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)