You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@juddi.apache.org by "Kurt Stam (JIRA)" <ju...@ws.apache.org> on 2007/06/22 01:02:26 UTC

[jira] Created: (JUDDI-103) Transient registry errors caused by jUDDI race condition

 Transient registry errors caused by jUDDI race condition
---------------------------------------------------------

                 Key: JUDDI-103
                 URL: https://issues.apache.org/jira/browse/JUDDI-103
             Project: jUDDI
          Issue Type: Bug
            Reporter: Kurt Stam
            Assignee: Steve Viens


There is a race condition in the jUDDI codebase which causes transient registry failures.

The symptom of the race condition is the following error message
  E_busy (10400) The request cannot be processed at the current time. The Registry is currently unavailable.

The class containing the race condition is org.apache.juddi.registry.local.Registry

Every call to Registry.getRegistry() results in the recreation and initialisation of a global variable (registry). As the assignment of the global variable is made *before* the initialisation method is called there exists a window of opportunity whereby a caller can obtain a reference to an uninitialised registry. The consequence of this is that calls to RegistryEngine.isAvailable() can return false.

I'm not sure why the RegistryEngine is being recreated on every call but the current code is unsafe (even if ignoring multiprocessor memory models). There should not be a global reference to the registry if it is a requirement to recreate it on every invocation. If it is not a requirement then the initialisation should really be occurring within a static block. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: juddi-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: juddi-dev-help@ws.apache.org


[jira] Closed: (JUDDI-103) Transient registry errors caused by jUDDI race condition

Posted by "Kurt Stam (JIRA)" <ju...@ws.apache.org>.
     [ https://issues.apache.org/jira/browse/JUDDI-103?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Kurt Stam closed JUDDI-103.
---------------------------

    Resolution: Fixed

Applied fix

>  Transient registry errors caused by jUDDI race condition
> ---------------------------------------------------------
>
>                 Key: JUDDI-103
>                 URL: https://issues.apache.org/jira/browse/JUDDI-103
>             Project: jUDDI
>          Issue Type: Bug
>            Reporter: Kurt Stam
>            Assignee: Steve Viens
>
> There is a race condition in the jUDDI codebase which causes transient registry failures.
> The symptom of the race condition is the following error message
>   E_busy (10400) The request cannot be processed at the current time. The Registry is currently unavailable.
> The class containing the race condition is org.apache.juddi.registry.local.Registry
> Every call to Registry.getRegistry() results in the recreation and initialisation of a global variable (registry). As the assignment of the global variable is made *before* the initialisation method is called there exists a window of opportunity whereby a caller can obtain a reference to an uninitialised registry. The consequence of this is that calls to RegistryEngine.isAvailable() can return false.
> I'm not sure why the RegistryEngine is being recreated on every call but the current code is unsafe (even if ignoring multiprocessor memory models). There should not be a global reference to the registry if it is a requirement to recreate it on every invocation. If it is not a requirement then the initialisation should really be occurring within a static block. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: juddi-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: juddi-dev-help@ws.apache.org


[jira] Updated: (JUDDI-103) Transient registry errors caused by jUDDI race condition

Posted by "Kurt Stam (JIRA)" <ju...@ws.apache.org>.
     [ https://issues.apache.org/jira/browse/JUDDI-103?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Kurt Stam updated JUDDI-103:
----------------------------

    Fix Version/s: 2.0

>  Transient registry errors caused by jUDDI race condition
> ---------------------------------------------------------
>
>                 Key: JUDDI-103
>                 URL: https://issues.apache.org/jira/browse/JUDDI-103
>             Project: jUDDI
>          Issue Type: Bug
>            Reporter: Kurt Stam
>            Assignee: Steve Viens
>             Fix For: 2.0
>
>
> There is a race condition in the jUDDI codebase which causes transient registry failures.
> The symptom of the race condition is the following error message
>   E_busy (10400) The request cannot be processed at the current time. The Registry is currently unavailable.
> The class containing the race condition is org.apache.juddi.registry.local.Registry
> Every call to Registry.getRegistry() results in the recreation and initialisation of a global variable (registry). As the assignment of the global variable is made *before* the initialisation method is called there exists a window of opportunity whereby a caller can obtain a reference to an uninitialised registry. The consequence of this is that calls to RegistryEngine.isAvailable() can return false.
> I'm not sure why the RegistryEngine is being recreated on every call but the current code is unsafe (even if ignoring multiprocessor memory models). There should not be a global reference to the registry if it is a requirement to recreate it on every invocation. If it is not a requirement then the initialisation should really be occurring within a static block. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: juddi-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: juddi-dev-help@ws.apache.org