You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by "Paul Clare (JIRA)" <ji...@apache.org> on 2012/09/21 19:30:07 UTC

[jira] [Created] (VYSPER-326) Synchronizing on the BoshSessionContext for both inbound and outbound processing can lead to deadlock.

Paul Clare created VYSPER-326:
---------------------------------

             Summary: Synchronizing on the BoshSessionContext for both inbound and outbound processing can lead to deadlock.
                 Key: VYSPER-326
                 URL: https://issues.apache.org/jira/browse/VYSPER-326
             Project: VYSPER
          Issue Type: Bug
    Affects Versions: 0.7, 0.8
            Reporter: Paul Clare


This has taken some time to understand and is difficult to reproduce, the best scenerio would be with multiplexed sessions.

Given the two call stacks below let's asuume that we have

alice@vysper.org/foo (qtp124427164-18) 
alice@vysper.org/bar (qtp124427164-16) 

For alice@vysper.org/foo the inbound bosh request aquires a lock to her BoshSession (0x000000070840e538)

And at the same time alice@vysper.org/bar inbound request aquires a lock to her BoshSession (0x000000070853ecd8)
 
In order for both threads to release the locks on their respective sessions they will need to complete a call to LocalDeliveryUtils.relayToResourceDirectly which according to spec will the handlers will attempt to deliver to ALL resources.

This is where the deadlock occurs.

alice@vysper.org/foo needs to aquire the lock to alice@vysper.org/bar session (currently held by qtp124427164-16) to complete relayToAllResources.

alice@vysper.org/bar needs to get a lock to alice@vysper.org/foo session (currently held by qtp124427164-18) to complete relayToAllResources.

In both cases the held lock is in BoshHandler.process

   synchronized (session) {
     ... ...
      processSession(session, br);


And in both cases the waiting lock is the lock on the BoshBackedSessionContext.write
  
   public synchronized void write(Stanza stanza) {
     write0(boshHandler.wrapStanza(stanza));
   }

Currently I am use a different monitor for the outbound write to try and offset the lock contention with the inbound processing. 

  public void write(Stanza stanza) {
    synchronized(writeLock) {
      write0(boshHandler.wrapStanza(stanza));
    }
  }

So inbound processing will lock on the Session and outbound writes will block on the writeLock internal to the session.

I Would appreciate any thoughts on this.


"qtp124427164-18 - /bosh/":
        at org.apache.vysper.xmpp.extension.xep0124.BoshBackedSessionContext.write(BoshBackedSessionContext.java:196)
        - waiting to lock <0x000000070853ecd8> (a org.apache.vysper.xmpp.extension.xep0124.BoshBackedSessionContext)
        at org.apache.vysper.xmpp.delivery.LocalDeliveryUtils.relayToResourceDirectly(LocalDeliveryUtils.java:47)
        at org.apache.vysper.xmpp.modules.roster.handler.RosterIQHandler.pushRosterItemToInterestedResources(RosterIQHandler.java:281)
        at org.apache.vysper.xmpp.modules.roster.handler.RosterIQHandler.handleSet(RosterIQHandler.java:220)
        at org.apache.vysper.xmpp.modules.core.base.handler.DefaultIQHandler.executeIQLogic(DefaultIQHandler.java:73)
        at org.apache.vysper.xmpp.modules.core.base.handler.IQHandler.executeCore(IQHandler.java:117)
        at org.apache.vysper.xmpp.modules.core.base.handler.XMPPCoreStanzaHandler.execute(XMPPCoreStanzaHandler.java:113)
        at org.apache.vysper.xmpp.protocol.worker.AbstractStateAwareProtocolWorker.executeHandler(AbstractStateAwareProtocolWorker.java:73)
        at org.apache.vysper.xmpp.protocol.worker.AbstractStateAwareProtocolWorker.processStanza(AbstractStateAwareProtocolWorker.java:48)
        at org.apache.vysper.xmpp.protocol.ProtocolWorker.processStanza(ProtocolWorker.java:191)
        at org.apache.vysper.xmpp.extension.xep0124.BoshHandler.processStanza(BoshHandler.java:236)
        at org.apache.vysper.xmpp.extension.xep0124.BoshHandler.processSession(BoshHandler.java:183)
        at org.apache.vysper.xmpp.extension.xep0124.BoshHandler.process(BoshHandler.java:147)
        - locked <0x000000070840e538> (a org.apache.vysper.xmpp.extension.xep0124.BoshBackedSessionContext)
        at org.apache.vysper.xmpp.extension.xep0124.BoshSaxContentHandler.emitStanza(BoshSaxContentHandler.java:90)
        
"qtp124427164-16 - /bosh/":
        at org.apache.vysper.xmpp.extension.xep0124.BoshBackedSessionContext.write(BoshBackedSessionContext.java:196)
        - waiting to lock <0x000000070840e538> (a org.apache.vysper.xmpp.extension.xep0124.BoshBackedSessionContext)
        at org.apache.vysper.xmpp.delivery.LocalDeliveryUtils.relayToResourceDirectly(LocalDeliveryUtils.java:47)
        at org.apache.vysper.xmpp.modules.core.im.handler.PresenceSubscriptionHandler.handleOutboundSubscriptionRequest(PresenceSubscriptionHandler.java:550)
        at org.apache.vysper.xmpp.modules.core.im.handler.PresenceSubscriptionHandler.executeCorePresence(PresenceSubscriptionHandler.java:106)
        at org.apache.vysper.xmpp.modules.core.im.handler.PresenceHandler.executeCore(PresenceHandler.java:66)
        at org.apache.vysper.xmpp.modules.core.base.handler.XMPPCoreStanzaHandler.execute(XMPPCoreStanzaHandler.java:113)
        at org.apache.vysper.xmpp.protocol.worker.AbstractStateAwareProtocolWorker.executeHandler(AbstractStateAwareProtocolWorker.java:73)
        at org.apache.vysper.xmpp.protocol.worker.AbstractStateAwareProtocolWorker.processStanza(AbstractStateAwareProtocolWorker.java:48)
        at org.apache.vysper.xmpp.protocol.ProtocolWorker.processStanza(ProtocolWorker.java:191)
        at org.apache.vysper.xmpp.extension.xep0124.BoshHandler.processStanza(BoshHandler.java:236)
        at org.apache.vysper.xmpp.extension.xep0124.BoshHandler.processSession(BoshHandler.java:183)
        at org.apache.vysper.xmpp.extension.xep0124.BoshBackedSessionContext.insertRequest(BoshBackedSessionContext.java:669)
        at org.apache.vysper.xmpp.extension.xep0124.BoshHandler.process(BoshHandler.java:138)
        - locked <0x000000070853ecd8> (a org.apache.vysper.xmpp.extension.xep0124.BoshBackedSessionContext)
        at org.apache.vysper.xmpp.extension.xep0124.BoshSaxContentHandler.emitStanza(BoshSaxContentHandler.java:90)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (VYSPER-326) Synchronizing on the BoshSessionContext for both inbound and outbound processing can lead to deadlock.

Posted by "Bernd Fondermann (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/VYSPER-326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13461231#comment-13461231 ] 

Bernd Fondermann commented on VYSPER-326:
-----------------------------------------

Sounds reasonable.
However, in TRUNK, there is no longer a write0 method and my BoshBackedSessionContext has no code in line 196.

Are you on HEAD in TRUNK?
                
> Synchronizing on the BoshSessionContext for both inbound and outbound processing can lead to deadlock.
> ------------------------------------------------------------------------------------------------------
>
>                 Key: VYSPER-326
>                 URL: https://issues.apache.org/jira/browse/VYSPER-326
>             Project: VYSPER
>          Issue Type: Bug
>    Affects Versions: 0.7, 0.8
>            Reporter: Paul Clare
>
> This has taken some time to understand and is difficult to reproduce, the best scenerio would be with multiplexed sessions.
> Given the two call stacks below let's asuume that we have
> alice@vysper.org/foo (qtp124427164-18) 
> alice@vysper.org/bar (qtp124427164-16) 
> For alice@vysper.org/foo the inbound bosh request aquires a lock to her BoshSession (0x000000070840e538)
> And at the same time alice@vysper.org/bar inbound request aquires a lock to her BoshSession (0x000000070853ecd8)
>  
> In order for both threads to release the locks on their respective sessions they will need to complete a call to LocalDeliveryUtils.relayToResourceDirectly which according to spec will the handlers will attempt to deliver to ALL resources.
> This is where the deadlock occurs.
> alice@vysper.org/foo needs to aquire the lock to alice@vysper.org/bar session (currently held by qtp124427164-16) to complete relayToAllResources.
> alice@vysper.org/bar needs to get a lock to alice@vysper.org/foo session (currently held by qtp124427164-18) to complete relayToAllResources.
> In both cases the held lock is in BoshHandler.process
>    synchronized (session) {
>      ... ...
>       processSession(session, br);
> And in both cases the waiting lock is the lock on the BoshBackedSessionContext.write
>   
>    public synchronized void write(Stanza stanza) {
>      write0(boshHandler.wrapStanza(stanza));
>    }
> Currently I am use a different monitor for the outbound write to try and offset the lock contention with the inbound processing. 
>   public void write(Stanza stanza) {
>     synchronized(writeLock) {
>       write0(boshHandler.wrapStanza(stanza));
>     }
>   }
> So inbound processing will lock on the Session and outbound writes will block on the writeLock internal to the session.
> I Would appreciate any thoughts on this.
> "qtp124427164-18 - /bosh/":
>         at org.apache.vysper.xmpp.extension.xep0124.BoshBackedSessionContext.write(BoshBackedSessionContext.java:196)
>         - waiting to lock <0x000000070853ecd8> (a org.apache.vysper.xmpp.extension.xep0124.BoshBackedSessionContext)
>         at org.apache.vysper.xmpp.delivery.LocalDeliveryUtils.relayToResourceDirectly(LocalDeliveryUtils.java:47)
>         at org.apache.vysper.xmpp.modules.roster.handler.RosterIQHandler.pushRosterItemToInterestedResources(RosterIQHandler.java:281)
>         at org.apache.vysper.xmpp.modules.roster.handler.RosterIQHandler.handleSet(RosterIQHandler.java:220)
>         at org.apache.vysper.xmpp.modules.core.base.handler.DefaultIQHandler.executeIQLogic(DefaultIQHandler.java:73)
>         at org.apache.vysper.xmpp.modules.core.base.handler.IQHandler.executeCore(IQHandler.java:117)
>         at org.apache.vysper.xmpp.modules.core.base.handler.XMPPCoreStanzaHandler.execute(XMPPCoreStanzaHandler.java:113)
>         at org.apache.vysper.xmpp.protocol.worker.AbstractStateAwareProtocolWorker.executeHandler(AbstractStateAwareProtocolWorker.java:73)
>         at org.apache.vysper.xmpp.protocol.worker.AbstractStateAwareProtocolWorker.processStanza(AbstractStateAwareProtocolWorker.java:48)
>         at org.apache.vysper.xmpp.protocol.ProtocolWorker.processStanza(ProtocolWorker.java:191)
>         at org.apache.vysper.xmpp.extension.xep0124.BoshHandler.processStanza(BoshHandler.java:236)
>         at org.apache.vysper.xmpp.extension.xep0124.BoshHandler.processSession(BoshHandler.java:183)
>         at org.apache.vysper.xmpp.extension.xep0124.BoshHandler.process(BoshHandler.java:147)
>         - locked <0x000000070840e538> (a org.apache.vysper.xmpp.extension.xep0124.BoshBackedSessionContext)
>         at org.apache.vysper.xmpp.extension.xep0124.BoshSaxContentHandler.emitStanza(BoshSaxContentHandler.java:90)
>         
> "qtp124427164-16 - /bosh/":
>         at org.apache.vysper.xmpp.extension.xep0124.BoshBackedSessionContext.write(BoshBackedSessionContext.java:196)
>         - waiting to lock <0x000000070840e538> (a org.apache.vysper.xmpp.extension.xep0124.BoshBackedSessionContext)
>         at org.apache.vysper.xmpp.delivery.LocalDeliveryUtils.relayToResourceDirectly(LocalDeliveryUtils.java:47)
>         at org.apache.vysper.xmpp.modules.core.im.handler.PresenceSubscriptionHandler.handleOutboundSubscriptionRequest(PresenceSubscriptionHandler.java:550)
>         at org.apache.vysper.xmpp.modules.core.im.handler.PresenceSubscriptionHandler.executeCorePresence(PresenceSubscriptionHandler.java:106)
>         at org.apache.vysper.xmpp.modules.core.im.handler.PresenceHandler.executeCore(PresenceHandler.java:66)
>         at org.apache.vysper.xmpp.modules.core.base.handler.XMPPCoreStanzaHandler.execute(XMPPCoreStanzaHandler.java:113)
>         at org.apache.vysper.xmpp.protocol.worker.AbstractStateAwareProtocolWorker.executeHandler(AbstractStateAwareProtocolWorker.java:73)
>         at org.apache.vysper.xmpp.protocol.worker.AbstractStateAwareProtocolWorker.processStanza(AbstractStateAwareProtocolWorker.java:48)
>         at org.apache.vysper.xmpp.protocol.ProtocolWorker.processStanza(ProtocolWorker.java:191)
>         at org.apache.vysper.xmpp.extension.xep0124.BoshHandler.processStanza(BoshHandler.java:236)
>         at org.apache.vysper.xmpp.extension.xep0124.BoshHandler.processSession(BoshHandler.java:183)
>         at org.apache.vysper.xmpp.extension.xep0124.BoshBackedSessionContext.insertRequest(BoshBackedSessionContext.java:669)
>         at org.apache.vysper.xmpp.extension.xep0124.BoshHandler.process(BoshHandler.java:138)
>         - locked <0x000000070853ecd8> (a org.apache.vysper.xmpp.extension.xep0124.BoshBackedSessionContext)
>         at org.apache.vysper.xmpp.extension.xep0124.BoshSaxContentHandler.emitStanza(BoshSaxContentHandler.java:90)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Closed] (VYSPER-326) Synchronizing on the BoshSessionContext for both inbound and outbound processing can lead to deadlock.

Posted by "Paul Clare (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/VYSPER-326?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Paul Clare closed VYSPER-326.
-----------------------------

    Resolution: Not A Problem
    
> Synchronizing on the BoshSessionContext for both inbound and outbound processing can lead to deadlock.
> ------------------------------------------------------------------------------------------------------
>
>                 Key: VYSPER-326
>                 URL: https://issues.apache.org/jira/browse/VYSPER-326
>             Project: VYSPER
>          Issue Type: Bug
>    Affects Versions: 0.7, 0.8
>            Reporter: Paul Clare
>
> This has taken some time to understand and is difficult to reproduce, the best scenerio would be with multiplexed sessions.
> Given the two call stacks below let's asuume that we have
> alice@vysper.org/foo (qtp124427164-18) 
> alice@vysper.org/bar (qtp124427164-16) 
> For alice@vysper.org/foo the inbound bosh request aquires a lock to her BoshSession (0x000000070840e538)
> And at the same time alice@vysper.org/bar inbound request aquires a lock to her BoshSession (0x000000070853ecd8)
>  
> In order for both threads to release the locks on their respective sessions they will need to complete a call to LocalDeliveryUtils.relayToResourceDirectly which according to spec will the handlers will attempt to deliver to ALL resources.
> This is where the deadlock occurs.
> alice@vysper.org/foo needs to aquire the lock to alice@vysper.org/bar session (currently held by qtp124427164-16) to complete relayToAllResources.
> alice@vysper.org/bar needs to get a lock to alice@vysper.org/foo session (currently held by qtp124427164-18) to complete relayToAllResources.
> In both cases the held lock is in BoshHandler.process
>    synchronized (session) {
>      ... ...
>       processSession(session, br);
> And in both cases the waiting lock is the lock on the BoshBackedSessionContext.write
>   
>    public synchronized void write(Stanza stanza) {
>      write0(boshHandler.wrapStanza(stanza));
>    }
> Currently I am use a different monitor for the outbound write to try and offset the lock contention with the inbound processing. 
>   public void write(Stanza stanza) {
>     synchronized(writeLock) {
>       write0(boshHandler.wrapStanza(stanza));
>     }
>   }
> So inbound processing will lock on the Session and outbound writes will block on the writeLock internal to the session.
> I Would appreciate any thoughts on this.
> "qtp124427164-18 - /bosh/":
>         at org.apache.vysper.xmpp.extension.xep0124.BoshBackedSessionContext.write(BoshBackedSessionContext.java:196)
>         - waiting to lock <0x000000070853ecd8> (a org.apache.vysper.xmpp.extension.xep0124.BoshBackedSessionContext)
>         at org.apache.vysper.xmpp.delivery.LocalDeliveryUtils.relayToResourceDirectly(LocalDeliveryUtils.java:47)
>         at org.apache.vysper.xmpp.modules.roster.handler.RosterIQHandler.pushRosterItemToInterestedResources(RosterIQHandler.java:281)
>         at org.apache.vysper.xmpp.modules.roster.handler.RosterIQHandler.handleSet(RosterIQHandler.java:220)
>         at org.apache.vysper.xmpp.modules.core.base.handler.DefaultIQHandler.executeIQLogic(DefaultIQHandler.java:73)
>         at org.apache.vysper.xmpp.modules.core.base.handler.IQHandler.executeCore(IQHandler.java:117)
>         at org.apache.vysper.xmpp.modules.core.base.handler.XMPPCoreStanzaHandler.execute(XMPPCoreStanzaHandler.java:113)
>         at org.apache.vysper.xmpp.protocol.worker.AbstractStateAwareProtocolWorker.executeHandler(AbstractStateAwareProtocolWorker.java:73)
>         at org.apache.vysper.xmpp.protocol.worker.AbstractStateAwareProtocolWorker.processStanza(AbstractStateAwareProtocolWorker.java:48)
>         at org.apache.vysper.xmpp.protocol.ProtocolWorker.processStanza(ProtocolWorker.java:191)
>         at org.apache.vysper.xmpp.extension.xep0124.BoshHandler.processStanza(BoshHandler.java:236)
>         at org.apache.vysper.xmpp.extension.xep0124.BoshHandler.processSession(BoshHandler.java:183)
>         at org.apache.vysper.xmpp.extension.xep0124.BoshHandler.process(BoshHandler.java:147)
>         - locked <0x000000070840e538> (a org.apache.vysper.xmpp.extension.xep0124.BoshBackedSessionContext)
>         at org.apache.vysper.xmpp.extension.xep0124.BoshSaxContentHandler.emitStanza(BoshSaxContentHandler.java:90)
>         
> "qtp124427164-16 - /bosh/":
>         at org.apache.vysper.xmpp.extension.xep0124.BoshBackedSessionContext.write(BoshBackedSessionContext.java:196)
>         - waiting to lock <0x000000070840e538> (a org.apache.vysper.xmpp.extension.xep0124.BoshBackedSessionContext)
>         at org.apache.vysper.xmpp.delivery.LocalDeliveryUtils.relayToResourceDirectly(LocalDeliveryUtils.java:47)
>         at org.apache.vysper.xmpp.modules.core.im.handler.PresenceSubscriptionHandler.handleOutboundSubscriptionRequest(PresenceSubscriptionHandler.java:550)
>         at org.apache.vysper.xmpp.modules.core.im.handler.PresenceSubscriptionHandler.executeCorePresence(PresenceSubscriptionHandler.java:106)
>         at org.apache.vysper.xmpp.modules.core.im.handler.PresenceHandler.executeCore(PresenceHandler.java:66)
>         at org.apache.vysper.xmpp.modules.core.base.handler.XMPPCoreStanzaHandler.execute(XMPPCoreStanzaHandler.java:113)
>         at org.apache.vysper.xmpp.protocol.worker.AbstractStateAwareProtocolWorker.executeHandler(AbstractStateAwareProtocolWorker.java:73)
>         at org.apache.vysper.xmpp.protocol.worker.AbstractStateAwareProtocolWorker.processStanza(AbstractStateAwareProtocolWorker.java:48)
>         at org.apache.vysper.xmpp.protocol.ProtocolWorker.processStanza(ProtocolWorker.java:191)
>         at org.apache.vysper.xmpp.extension.xep0124.BoshHandler.processStanza(BoshHandler.java:236)
>         at org.apache.vysper.xmpp.extension.xep0124.BoshHandler.processSession(BoshHandler.java:183)
>         at org.apache.vysper.xmpp.extension.xep0124.BoshBackedSessionContext.insertRequest(BoshBackedSessionContext.java:669)
>         at org.apache.vysper.xmpp.extension.xep0124.BoshHandler.process(BoshHandler.java:138)
>         - locked <0x000000070853ecd8> (a org.apache.vysper.xmpp.extension.xep0124.BoshBackedSessionContext)
>         at org.apache.vysper.xmpp.extension.xep0124.BoshSaxContentHandler.emitStanza(BoshSaxContentHandler.java:90)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (VYSPER-326) Synchronizing on the BoshSessionContext for both inbound and outbound processing can lead to deadlock.

Posted by "Bernd Fondermann (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/VYSPER-326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13461336#comment-13461336 ] 

Bernd Fondermann commented on VYSPER-326:
-----------------------------------------

ok, thanks. Since I wouldn't completely rule out this situation even with the current BOSH, please feel free to re-open if the problem resurfaces.
                
> Synchronizing on the BoshSessionContext for both inbound and outbound processing can lead to deadlock.
> ------------------------------------------------------------------------------------------------------
>
>                 Key: VYSPER-326
>                 URL: https://issues.apache.org/jira/browse/VYSPER-326
>             Project: VYSPER
>          Issue Type: Bug
>    Affects Versions: 0.7, 0.8
>            Reporter: Paul Clare
>
> This has taken some time to understand and is difficult to reproduce, the best scenerio would be with multiplexed sessions.
> Given the two call stacks below let's asuume that we have
> alice@vysper.org/foo (qtp124427164-18) 
> alice@vysper.org/bar (qtp124427164-16) 
> For alice@vysper.org/foo the inbound bosh request aquires a lock to her BoshSession (0x000000070840e538)
> And at the same time alice@vysper.org/bar inbound request aquires a lock to her BoshSession (0x000000070853ecd8)
>  
> In order for both threads to release the locks on their respective sessions they will need to complete a call to LocalDeliveryUtils.relayToResourceDirectly which according to spec will the handlers will attempt to deliver to ALL resources.
> This is where the deadlock occurs.
> alice@vysper.org/foo needs to aquire the lock to alice@vysper.org/bar session (currently held by qtp124427164-16) to complete relayToAllResources.
> alice@vysper.org/bar needs to get a lock to alice@vysper.org/foo session (currently held by qtp124427164-18) to complete relayToAllResources.
> In both cases the held lock is in BoshHandler.process
>    synchronized (session) {
>      ... ...
>       processSession(session, br);
> And in both cases the waiting lock is the lock on the BoshBackedSessionContext.write
>   
>    public synchronized void write(Stanza stanza) {
>      write0(boshHandler.wrapStanza(stanza));
>    }
> Currently I am use a different monitor for the outbound write to try and offset the lock contention with the inbound processing. 
>   public void write(Stanza stanza) {
>     synchronized(writeLock) {
>       write0(boshHandler.wrapStanza(stanza));
>     }
>   }
> So inbound processing will lock on the Session and outbound writes will block on the writeLock internal to the session.
> I Would appreciate any thoughts on this.
> "qtp124427164-18 - /bosh/":
>         at org.apache.vysper.xmpp.extension.xep0124.BoshBackedSessionContext.write(BoshBackedSessionContext.java:196)
>         - waiting to lock <0x000000070853ecd8> (a org.apache.vysper.xmpp.extension.xep0124.BoshBackedSessionContext)
>         at org.apache.vysper.xmpp.delivery.LocalDeliveryUtils.relayToResourceDirectly(LocalDeliveryUtils.java:47)
>         at org.apache.vysper.xmpp.modules.roster.handler.RosterIQHandler.pushRosterItemToInterestedResources(RosterIQHandler.java:281)
>         at org.apache.vysper.xmpp.modules.roster.handler.RosterIQHandler.handleSet(RosterIQHandler.java:220)
>         at org.apache.vysper.xmpp.modules.core.base.handler.DefaultIQHandler.executeIQLogic(DefaultIQHandler.java:73)
>         at org.apache.vysper.xmpp.modules.core.base.handler.IQHandler.executeCore(IQHandler.java:117)
>         at org.apache.vysper.xmpp.modules.core.base.handler.XMPPCoreStanzaHandler.execute(XMPPCoreStanzaHandler.java:113)
>         at org.apache.vysper.xmpp.protocol.worker.AbstractStateAwareProtocolWorker.executeHandler(AbstractStateAwareProtocolWorker.java:73)
>         at org.apache.vysper.xmpp.protocol.worker.AbstractStateAwareProtocolWorker.processStanza(AbstractStateAwareProtocolWorker.java:48)
>         at org.apache.vysper.xmpp.protocol.ProtocolWorker.processStanza(ProtocolWorker.java:191)
>         at org.apache.vysper.xmpp.extension.xep0124.BoshHandler.processStanza(BoshHandler.java:236)
>         at org.apache.vysper.xmpp.extension.xep0124.BoshHandler.processSession(BoshHandler.java:183)
>         at org.apache.vysper.xmpp.extension.xep0124.BoshHandler.process(BoshHandler.java:147)
>         - locked <0x000000070840e538> (a org.apache.vysper.xmpp.extension.xep0124.BoshBackedSessionContext)
>         at org.apache.vysper.xmpp.extension.xep0124.BoshSaxContentHandler.emitStanza(BoshSaxContentHandler.java:90)
>         
> "qtp124427164-16 - /bosh/":
>         at org.apache.vysper.xmpp.extension.xep0124.BoshBackedSessionContext.write(BoshBackedSessionContext.java:196)
>         - waiting to lock <0x000000070840e538> (a org.apache.vysper.xmpp.extension.xep0124.BoshBackedSessionContext)
>         at org.apache.vysper.xmpp.delivery.LocalDeliveryUtils.relayToResourceDirectly(LocalDeliveryUtils.java:47)
>         at org.apache.vysper.xmpp.modules.core.im.handler.PresenceSubscriptionHandler.handleOutboundSubscriptionRequest(PresenceSubscriptionHandler.java:550)
>         at org.apache.vysper.xmpp.modules.core.im.handler.PresenceSubscriptionHandler.executeCorePresence(PresenceSubscriptionHandler.java:106)
>         at org.apache.vysper.xmpp.modules.core.im.handler.PresenceHandler.executeCore(PresenceHandler.java:66)
>         at org.apache.vysper.xmpp.modules.core.base.handler.XMPPCoreStanzaHandler.execute(XMPPCoreStanzaHandler.java:113)
>         at org.apache.vysper.xmpp.protocol.worker.AbstractStateAwareProtocolWorker.executeHandler(AbstractStateAwareProtocolWorker.java:73)
>         at org.apache.vysper.xmpp.protocol.worker.AbstractStateAwareProtocolWorker.processStanza(AbstractStateAwareProtocolWorker.java:48)
>         at org.apache.vysper.xmpp.protocol.ProtocolWorker.processStanza(ProtocolWorker.java:191)
>         at org.apache.vysper.xmpp.extension.xep0124.BoshHandler.processStanza(BoshHandler.java:236)
>         at org.apache.vysper.xmpp.extension.xep0124.BoshHandler.processSession(BoshHandler.java:183)
>         at org.apache.vysper.xmpp.extension.xep0124.BoshBackedSessionContext.insertRequest(BoshBackedSessionContext.java:669)
>         at org.apache.vysper.xmpp.extension.xep0124.BoshHandler.process(BoshHandler.java:138)
>         - locked <0x000000070853ecd8> (a org.apache.vysper.xmpp.extension.xep0124.BoshBackedSessionContext)
>         at org.apache.vysper.xmpp.extension.xep0124.BoshSaxContentHandler.emitStanza(BoshSaxContentHandler.java:90)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira