jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christian Stocker (Updated) (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (JCR-3244) CPU Load issue with 2.3.6 and 2.4.0
Date Mon, 27 Feb 2012 06:40:50 GMT

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

Christian Stocker updated JCR-3244:
-----------------------------------

    Description: 
We discovered an issue with adding and removing references to a Weak Reference Multi-Value
property
within the same session, which leads to running 100% CPU .

In PHPCR/Jackalope, I do the following:

***
// remove the weakreference property if one was there
$m->setProperty("refs",null);
$session->save();

//add some references
$m->setProperty("refs",$refs,10);
$session->save();

//remove one and set the others again
array_pop($refs);
$m->setProperty("refs",$refs,10);
$session->save();
***

If I do the last setProperty() with a new session, then it works.

On the HTTP level it looks like this:

https://gist.github.com/1869626

The last REPORT (where we try to resolve the UUID to a path), it hangs.

According to Jukka, the problem is the following:

***
Yep. From the thread dump posted by Lukas it looks like the culprit
here is the appliesToResource() lock computation done by the
TxLockManagerImpl class in jackrabbit-webdav. The method makes a wrong
assumption about the return value of the Text.getRelativeParent()
utility method, and ends up in an infinite loop. 
***


  was:
We discovered an issue with adding and removing references to a Weak Reference Multi-Value
property
within the same session, which leads to running 100% CPU .

In PHPCR/Jackalope, I do the following:

{noformat}
// remove the weakreference property if one was there
$m->setProperty("refs",null);
$session->save();

//add some references
$m->setProperty("refs",$refs,10);
$session->save();

//remove one and set the others again
array_pop($refs);
$m->setProperty("refs",$refs,10);
$session->save();
{noformat}

If I do the last setProperty() with a new session, then it works.

On the HTTP level it looks like this:

https://gist.github.com/1869626

The last REPORT (where we try to resolve the UUID to a path), it hangs.

According to Jukka, the problem is the following:

{quote}
Yep. From the thread dump posted by Lukas it looks like the culprit
here is the appliesToResource() lock computation done by the
TxLockManagerImpl class in jackrabbit-webdav. The method makes a wrong
assumption about the return value of the Text.getRelativeParent()
utility method, and ends up in an infinite loop. 
{quote}


    
> CPU Load issue with 2.3.6 and 2.4.0
> -----------------------------------
>
>                 Key: JCR-3244
>                 URL: https://issues.apache.org/jira/browse/JCR-3244
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-jcr-server
>            Reporter: Christian Stocker
>
> We discovered an issue with adding and removing references to a Weak Reference Multi-Value
property
> within the same session, which leads to running 100% CPU .
> In PHPCR/Jackalope, I do the following:
> ***
> // remove the weakreference property if one was there
> $m->setProperty("refs",null);
> $session->save();
> //add some references
> $m->setProperty("refs",$refs,10);
> $session->save();
> //remove one and set the others again
> array_pop($refs);
> $m->setProperty("refs",$refs,10);
> $session->save();
> ***
> If I do the last setProperty() with a new session, then it works.
> On the HTTP level it looks like this:
> https://gist.github.com/1869626
> The last REPORT (where we try to resolve the UUID to a path), it hangs.
> According to Jukka, the problem is the following:
> ***
> Yep. From the thread dump posted by Lukas it looks like the culprit
> here is the appliesToResource() lock computation done by the
> TxLockManagerImpl class in jackrabbit-webdav. The method makes a wrong
> assumption about the return value of the Text.getRelativeParent()
> utility method, and ends up in an infinite loop. 
> ***

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message