You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Christian Stocker (Created) (JIRA)" <ji...@apache.org> on 2012/02/27 07:40:49 UTC

[jira] [Created] (JCR-3244) CPU Load issue with 2.3.6 and 2.4.0

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:

{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}


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

        

[jira] [Updated] (JCR-3244) CPU Load issue with 2.3.6 and 2.4.0

Posted by "Christian Stocker (Updated) (JIRA)" <ji...@apache.org>.
     [ 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

        

[jira] [Commented] (JCR-3244) CPU Load issue with 2.3.6 and 2.4.0

Posted by "Christian Stocker (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/JCR-3244?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13217069#comment-13217069 ] 

Christian Stocker commented on JCR-3244:
----------------------------------------

And here's the dump by Lukas:
http://pastie.org/private/jyorgp7qyhchckiyfzja
                
> 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