You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@polygene.apache.org by "Niclas Hedhman (JIRA)" <ji...@apache.org> on 2017/04/11 07:09:41 UTC

[jira] [Updated] (POLYGENE-106) Investigate and Document the exact lifecycle of Services

     [ 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)