[jitsi-dev] [jitsi-meet] Error when an user joins again to the conferince


#1

To reproduce:
Having two users with jids user1@domain, user2@domain.

user1@domain joins the room (opens domain/room), and then user2@domain
joins the same room. They are connected.
If user2@domain reloads the page and joins again to the conference, user1
gets infinite error logs in console.
If useRtcpMux is enabled, also the focus is lost, and both users has the
page reloaded (according to
https://github.com/jitsi/jitsi-meet/blob/master/moderator.js#L64).

Error logs in console comes from
https://github.com/jitsi/jitsi-meet/blob/master/rtp_sts.js#L465 and
https://github.com/jitsi/jitsi-meet/blob/master/rtp_sts.js#L667

If I exclude the lines where the ssrcs are removed (
https://github.com/jitsi/jitsi-meet/blob/master/app.js#L870), there are no
more errors. But with useRtcpMux enabled, the focus is still lost.

In jicofo logs, I get the following error:
org.jitsi.jicofo.JitsiMeetConference.allocateChannels().565 Failed to
allocate channels using bridge:
jitsi-videobridge.domainnet.java.sip.communicator.service.protocol.OperationFailedException:
Failed to allocate colibri channels: internal-server-error(500)

In jitsi-videobridge:
[pool-2-thread-14] WARN org.jitsi.videobridge.xmpp.ComponentImpl - (serving
component 'JitsiVideobridge') Unexpected exception while processing IQ
stanza:
<iq type="get" to="jitsi-videobridge.domain"
from="focus@auth.domain/focus763545131222919"
id="SBqSK-43"><conference xmlns="http://jitsi.org/protocol/colibri"
id="2b594b60861b26f3"><content name="audio"><channel
channel-bundle-id="15ppz5" initiator="true" last-n="-1"
endpoint="15ppz5"><payload-type name="opus" clockrate="48000" id="111"
channels="2"><parameter value="10"
name="minptime"/></payload-type><payload-type id="103" name="ISAC"
clockrate="16000"/><payload-type id="104" name="ISAC"
clockrate="32000"/><payload-type id="0" name="PCMU"
clockrate="8000"/><payload-type id="8" name="PCMA"
clockrate="8000"/><payload-type id="106" name="CN"
clockrate="32000"/><payload-type id="105" name="CN"
clockrate="16000"/><payload-type id="13" name="CN"
clockrate="8000"/><payload-type id="126" name="telephone-event"
clockrate="8000"/></channel></content><content name="video"><channel
channel-bundle-id="15ppz5" initiator="true" last-n="-1"
endpoint="15ppz5"><payload-type id="100" name="VP8"
clockrate="90000"><rtcp-fb xmlns="urn:xmpp:jingle:apps:rtp:rtcp-fb:0"
type="ccm" subtype="fir"/><rtcp-fb
xmlns="urn:xmpp:jingle:apps:rtp:rtcp-fb:0" type="nack"/><rtcp-fb
xmlns="urn:xmpp:jingle:apps:rtp:rtcp-fb:0"
type="goog-remb"/></payload-type><payload-type id="116" name="red"
clockrate="90000"/><payload-type id="117" name="ulpfec"
clockrate="90000"/></channel></content><content name="data"><sctpconnection
channel-bundle-id="15ppz5" port="5000" initiator="true"
endpoint="15ppz5"/></content><channel-bundle id="15ppz5"><transport
xmlns="urn:xmpp:jingle:transports:ice-udp:1"/></channel-bundle></conference></iq>

java.lang.NullPointerException

        at
org.jitsi.videobridge.IceUdpTransportManager.doStartConnectivityEstablishment(IceUdpTransportManager.java:958)

        at
org.jitsi.videobridge.IceUdpTransportManager.startConnectivityEstablishment(IceUdpTransportManager.java:1781)

        at
org.jitsi.videobridge.Videobridge.handleColibriConferenceIQ(Videobridge.java:995)

        at
org.jitsi.videobridge.Videobridge.handleColibriConferenceIQ(Videobridge.java:552)

        at
org.jitsi.videobridge.xmpp.ComponentImpl.handleColibriConferenceIQ(ComponentImpl.java:209)

        at
org.jitsi.videobridge.xmpp.ComponentImpl.handleIQRequest(ComponentImpl.java:380)

        at
org.jitsi.videobridge.xmpp.ComponentImpl.handleIQ(ComponentImpl.java:311)

        at
org.jitsi.videobridge.xmpp.ComponentImpl.handleIQ(ComponentImpl.java:263)

        at
org.jitsi.videobridge.xmpp.ComponentImpl.handleIQGet(ComponentImpl.java:362)

        at
org.xmpp.component.AbstractComponent.processIQRequest(AbstractComponent.java:511)

        at
org.xmpp.component.AbstractComponent.processIQ(AbstractComponent.java:289)

        at
org.xmpp.component.AbstractComponent.processQueuedPacket(AbstractComponent.java:239)

        at
org.xmpp.component.AbstractComponent.access$100(AbstractComponent.java:81)

        at
org.xmpp.component.AbstractComponent$PacketProcessor.run(AbstractComponent.java:1051)

        at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

        at java.lang.Thread.run(Thread.java:745)

Of corse, the problem is not related to the case when user2's jid is
changed, as when we do not use login form (using anonymousdomain).

Regards,
Zalmoxisus


#2

Hi,
Thanks for the report ! We'll have a look at it.
Regards,
Pawel

···

14 gru 2014 18:14 "Michael Diordiev" <zalmoxisus@gmail.com> napisał(a):

To reproduce:
Having two users with jids user1@domain, user2@domain.

user1@domain joins the room (opens domain/room), and then user2@domain
joins the same room. They are connected.
If user2@domain reloads the page and joins again to the conference, user1
gets infinite error logs in console.
If useRtcpMux is enabled, also the focus is lost, and both users has the
page reloaded (according to
https://github.com/jitsi/jitsi-meet/blob/master/moderator.js#L64).

Error logs in console comes from
https://github.com/jitsi/jitsi-meet/blob/master/rtp_sts.js#L465 and
https://github.com/jitsi/jitsi-meet/blob/master/rtp_sts.js#L667

If I exclude the lines where the ssrcs are removed (
https://github.com/jitsi/jitsi-meet/blob/master/app.js#L870), there are
no more errors. But with useRtcpMux enabled, the focus is still lost.

In jicofo logs, I get the following error:
org.jitsi.jicofo.JitsiMeetConference.allocateChannels().565 Failed to
allocate channels using bridge:
jitsi-videobridge.domainnet.java.sip.communicator.service.protocol.OperationFailedException:
Failed to allocate colibri channels: internal-server-error(500)

In jitsi-videobridge:
[pool-2-thread-14] WARN org.jitsi.videobridge.xmpp.ComponentImpl -
(serving component 'JitsiVideobridge') Unexpected exception while
processing IQ stanza:
<iq type="get" to="jitsi-videobridge.domain" from="focus@auth.domain/focus763545131222919"
id="SBqSK-43"><conference xmlns="http://jitsi.org/protocol/colibri"
id="2b594b60861b26f3"><content name="audio"><channel
channel-bundle-id="15ppz5" initiator="true" last-n="-1"
endpoint="15ppz5"><payload-type name="opus" clockrate="48000" id="111"
channels="2"><parameter value="10"
name="minptime"/></payload-type><payload-type id="103" name="ISAC"
clockrate="16000"/><payload-type id="104" name="ISAC"
clockrate="32000"/><payload-type id="0" name="PCMU"
clockrate="8000"/><payload-type id="8" name="PCMA"
clockrate="8000"/><payload-type id="106" name="CN"
clockrate="32000"/><payload-type id="105" name="CN"
clockrate="16000"/><payload-type id="13" name="CN"
clockrate="8000"/><payload-type id="126" name="telephone-event"
clockrate="8000"/></channel></content><content name="video"><channel
channel-bundle-id="15ppz5" initiator="true" last-n="-1"
endpoint="15ppz5"><payload-type id="100" name="VP8"
clockrate="90000"><rtcp-fb xmlns="urn:xmpp:jingle:apps:rtp:rtcp-fb:0"
type="ccm" subtype="fir"/><rtcp-fb
xmlns="urn:xmpp:jingle:apps:rtp:rtcp-fb:0" type="nack"/><rtcp-fb
xmlns="urn:xmpp:jingle:apps:rtp:rtcp-fb:0"
type="goog-remb"/></payload-type><payload-type id="116" name="red"
clockrate="90000"/><payload-type id="117" name="ulpfec"
clockrate="90000"/></channel></content><content name="data"><sctpconnection
channel-bundle-id="15ppz5" port="5000" initiator="true"
endpoint="15ppz5"/></content><channel-bundle id="15ppz5"><transport
xmlns="urn:xmpp:jingle:transports:ice-udp:1"/></channel-bundle></conference></iq>

java.lang.NullPointerException

        at
org.jitsi.videobridge.IceUdpTransportManager.doStartConnectivityEstablishment(IceUdpTransportManager.java:958)

        at
org.jitsi.videobridge.IceUdpTransportManager.startConnectivityEstablishment(IceUdpTransportManager.java:1781)

        at
org.jitsi.videobridge.Videobridge.handleColibriConferenceIQ(Videobridge.java:995)

        at
org.jitsi.videobridge.Videobridge.handleColibriConferenceIQ(Videobridge.java:552)

        at
org.jitsi.videobridge.xmpp.ComponentImpl.handleColibriConferenceIQ(ComponentImpl.java:209)

        at
org.jitsi.videobridge.xmpp.ComponentImpl.handleIQRequest(ComponentImpl.java:380)

        at
org.jitsi.videobridge.xmpp.ComponentImpl.handleIQ(ComponentImpl.java:311)

        at
org.jitsi.videobridge.xmpp.ComponentImpl.handleIQ(ComponentImpl.java:263)

        at
org.jitsi.videobridge.xmpp.ComponentImpl.handleIQGet(ComponentImpl.java:362)

        at
org.xmpp.component.AbstractComponent.processIQRequest(AbstractComponent.java:511)

        at
org.xmpp.component.AbstractComponent.processIQ(AbstractComponent.java:289)

        at
org.xmpp.component.AbstractComponent.processQueuedPacket(AbstractComponent.java:239)

        at
org.xmpp.component.AbstractComponent.access$100(AbstractComponent.java:81)

        at
org.xmpp.component.AbstractComponent$PacketProcessor.run(AbstractComponent.java:1051)

        at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

        at java.lang.Thread.run(Thread.java:745)

Of corse, the problem is not related to the case when user2's jid is
changed, as when we do not use login form (using anonymousdomain).

Regards,
Zalmoxisus

_______________________________________________
dev mailing list
dev@jitsi.org
Unsubscribe instructions and other list options:
http://lists.jitsi.org/mailman/listinfo/dev


#3

Hi,

The issue should be fixed by[1]. There was a problem with channel
bundles handling on the bridge.

Regards,
Pawel

[1]: https://github.com/jitsi/jitsi-videobridge/commit/0edc4009bbbd1b3aeaa08136b08eb9f454e4b410

···

On Sun, Dec 14, 2014 at 8:15 PM, Paweł Domas <pawel.domas@jitsi.org> wrote:

Hi,
Thanks for the report ! We'll have a look at it.
Regards,
Pawel

14 gru 2014 18:14 "Michael Diordiev" <zalmoxisus@gmail.com> napisał(a):

To reproduce:
Having two users with jids user1@domain, user2@domain.

user1@domain joins the room (opens domain/room), and then user2@domain
joins the same room. They are connected.
If user2@domain reloads the page and joins again to the conference, user1
gets infinite error logs in console.
If useRtcpMux is enabled, also the focus is lost, and both users has the
page reloaded (according to
https://github.com/jitsi/jitsi-meet/blob/master/moderator.js#L64).

Error logs in console comes from
https://github.com/jitsi/jitsi-meet/blob/master/rtp_sts.js#L465 and
https://github.com/jitsi/jitsi-meet/blob/master/rtp_sts.js#L667

If I exclude the lines where the ssrcs are removed
(https://github.com/jitsi/jitsi-meet/blob/master/app.js#L870), there are no
more errors. But with useRtcpMux enabled, the focus is still lost.

In jicofo logs, I get the following error:
org.jitsi.jicofo.JitsiMeetConference.allocateChannels().565 Failed to
allocate channels using bridge:
jitsi-videobridge.domainnet.java.sip.communicator.service.protocol.OperationFailedException:
Failed to allocate colibri channels: internal-server-error(500)

In jitsi-videobridge:
[pool-2-thread-14] WARN org.jitsi.videobridge.xmpp.ComponentImpl -
(serving component 'JitsiVideobridge') Unexpected exception while processing
IQ stanza:
<iq type="get" to="jitsi-videobridge.domain"
from="focus@auth.domain/focus763545131222919" id="SBqSK-43"><conference
xmlns="http://jitsi.org/protocol/colibri" id="2b594b60861b26f3"><content
name="audio"><channel channel-bundle-id="15ppz5" initiator="true"
last-n="-1" endpoint="15ppz5"><payload-type name="opus" clockrate="48000"
id="111" channels="2"><parameter value="10"
name="minptime"/></payload-type><payload-type id="103" name="ISAC"
clockrate="16000"/><payload-type id="104" name="ISAC"
clockrate="32000"/><payload-type id="0" name="PCMU"
clockrate="8000"/><payload-type id="8" name="PCMA"
clockrate="8000"/><payload-type id="106" name="CN"
clockrate="32000"/><payload-type id="105" name="CN"
clockrate="16000"/><payload-type id="13" name="CN"
clockrate="8000"/><payload-type id="126" name="telephone-event"
clockrate="8000"/></channel></content><content name="video"><channel
channel-bundle-id="15ppz5" initiator="true" last-n="-1"
endpoint="15ppz5"><payload-type id="100" name="VP8"
clockrate="90000"><rtcp-fb xmlns="urn:xmpp:jingle:apps:rtp:rtcp-fb:0"
type="ccm" subtype="fir"/><rtcp-fb
xmlns="urn:xmpp:jingle:apps:rtp:rtcp-fb:0" type="nack"/><rtcp-fb
xmlns="urn:xmpp:jingle:apps:rtp:rtcp-fb:0"
type="goog-remb"/></payload-type><payload-type id="116" name="red"
clockrate="90000"/><payload-type id="117" name="ulpfec"
clockrate="90000"/></channel></content><content name="data"><sctpconnection
channel-bundle-id="15ppz5" port="5000" initiator="true"
endpoint="15ppz5"/></content><channel-bundle id="15ppz5"><transport
xmlns="urn:xmpp:jingle:transports:ice-udp:1"/></channel-bundle></conference></iq>

java.lang.NullPointerException

        at
org.jitsi.videobridge.IceUdpTransportManager.doStartConnectivityEstablishment(IceUdpTransportManager.java:958)

        at
org.jitsi.videobridge.IceUdpTransportManager.startConnectivityEstablishment(IceUdpTransportManager.java:1781)

        at
org.jitsi.videobridge.Videobridge.handleColibriConferenceIQ(Videobridge.java:995)

        at
org.jitsi.videobridge.Videobridge.handleColibriConferenceIQ(Videobridge.java:552)

        at
org.jitsi.videobridge.xmpp.ComponentImpl.handleColibriConferenceIQ(ComponentImpl.java:209)

        at
org.jitsi.videobridge.xmpp.ComponentImpl.handleIQRequest(ComponentImpl.java:380)

        at
org.jitsi.videobridge.xmpp.ComponentImpl.handleIQ(ComponentImpl.java:311)

        at
org.jitsi.videobridge.xmpp.ComponentImpl.handleIQ(ComponentImpl.java:263)

        at
org.jitsi.videobridge.xmpp.ComponentImpl.handleIQGet(ComponentImpl.java:362)

        at
org.xmpp.component.AbstractComponent.processIQRequest(AbstractComponent.java:511)

        at
org.xmpp.component.AbstractComponent.processIQ(AbstractComponent.java:289)

        at
org.xmpp.component.AbstractComponent.processQueuedPacket(AbstractComponent.java:239)

        at
org.xmpp.component.AbstractComponent.access$100(AbstractComponent.java:81)

        at
org.xmpp.component.AbstractComponent$PacketProcessor.run(AbstractComponent.java:1051)

        at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

        at java.lang.Thread.run(Thread.java:745)

Of corse, the problem is not related to the case when user2's jid is
changed, as when we do not use login form (using anonymousdomain).

Regards,
Zalmoxisus

_______________________________________________
dev mailing list
dev@jitsi.org
Unsubscribe instructions and other list options:
http://lists.jitsi.org/mailman/listinfo/dev


#4

Pawel, thanks for the update! The issue with useRtcpMux is solved now.

There remains the issue in jitsi-meet with the infinite console warnings
"No jid for ssrc" on the user1 side when user2 comes again. It can cause a
memory leak.

By the way, after upgrading jicofo, I do not see any more logs in
/var/log/jitsi/jicofo/jicofo.log, although I see the
"LOGFILE=/var/log/jitsi/jicofo.log"
line in /etc/init.d/jicofo is not altered.

Regards,
Zalmoxisus

···

On Mon, Dec 15, 2014 at 12:21 PM, Paweł Domas <pawel.domas@jitsi.org> wrote:

Hi,

The issue should be fixed by[1]. There was a problem with channel
bundles handling on the bridge.

Regards,
Pawel

[1]:
https://github.com/jitsi/jitsi-videobridge/commit/0edc4009bbbd1b3aeaa08136b08eb9f454e4b410

On Sun, Dec 14, 2014 at 8:15 PM, Paweł Domas <pawel.domas@jitsi.org> > wrote:
> Hi,
> Thanks for the report ! We'll have a look at it.
> Regards,
> Pawel
>
> 14 gru 2014 18:14 "Michael Diordiev" <zalmoxisus@gmail.com> napisał(a):
>>
>> To reproduce:
>> Having two users with jids user1@domain, user2@domain.
>>
>> user1@domain joins the room (opens domain/room), and then user2@domain
>> joins the same room. They are connected.
>> If user2@domain reloads the page and joins again to the conference,
user1
>> gets infinite error logs in console.
>> If useRtcpMux is enabled, also the focus is lost, and both users has the
>> page reloaded (according to
>> https://github.com/jitsi/jitsi-meet/blob/master/moderator.js#L64).
>>
>> Error logs in console comes from
>> https://github.com/jitsi/jitsi-meet/blob/master/rtp_sts.js#L465 and
>> https://github.com/jitsi/jitsi-meet/blob/master/rtp_sts.js#L667
>>
>> If I exclude the lines where the ssrcs are removed
>> (https://github.com/jitsi/jitsi-meet/blob/master/app.js#L870), there
are no
>> more errors. But with useRtcpMux enabled, the focus is still lost.
>>
>> In jicofo logs, I get the following error:
>> org.jitsi.jicofo.JitsiMeetConference.allocateChannels().565 Failed to
>> allocate channels using bridge:
>>
jitsi-videobridge.domainnet.java.sip.communicator.service.protocol.OperationFailedException:
>> Failed to allocate colibri channels: internal-server-error(500)
>>
>> In jitsi-videobridge:
>> [pool-2-thread-14] WARN org.jitsi.videobridge.xmpp.ComponentImpl -
>> (serving component 'JitsiVideobridge') Unexpected exception while
processing
>> IQ stanza:
>> <iq type="get" to="jitsi-videobridge.domain"
>> from="focus@auth.domain/focus763545131222919" id="SBqSK-43"><conference
>> xmlns="http://jitsi.org/protocol/colibri"
id="2b594b60861b26f3"><content
>> name="audio"><channel channel-bundle-id="15ppz5" initiator="true"
>> last-n="-1" endpoint="15ppz5"><payload-type name="opus"
clockrate="48000"
>> id="111" channels="2"><parameter value="10"
>> name="minptime"/></payload-type><payload-type id="103" name="ISAC"
>> clockrate="16000"/><payload-type id="104" name="ISAC"
>> clockrate="32000"/><payload-type id="0" name="PCMU"
>> clockrate="8000"/><payload-type id="8" name="PCMA"
>> clockrate="8000"/><payload-type id="106" name="CN"
>> clockrate="32000"/><payload-type id="105" name="CN"
>> clockrate="16000"/><payload-type id="13" name="CN"
>> clockrate="8000"/><payload-type id="126" name="telephone-event"
>> clockrate="8000"/></channel></content><content name="video"><channel
>> channel-bundle-id="15ppz5" initiator="true" last-n="-1"
>> endpoint="15ppz5"><payload-type id="100" name="VP8"
>> clockrate="90000"><rtcp-fb xmlns="urn:xmpp:jingle:apps:rtp:rtcp-fb:0"
>> type="ccm" subtype="fir"/><rtcp-fb
>> xmlns="urn:xmpp:jingle:apps:rtp:rtcp-fb:0" type="nack"/><rtcp-fb
>> xmlns="urn:xmpp:jingle:apps:rtp:rtcp-fb:0"
>> type="goog-remb"/></payload-type><payload-type id="116" name="red"
>> clockrate="90000"/><payload-type id="117" name="ulpfec"
>> clockrate="90000"/></channel></content><content
name="data"><sctpconnection
>> channel-bundle-id="15ppz5" port="5000" initiator="true"
>> endpoint="15ppz5"/></content><channel-bundle id="15ppz5"><transport
>>
xmlns="urn:xmpp:jingle:transports:ice-udp:1"/></channel-bundle></conference></iq>
>>
>> java.lang.NullPointerException
>>
>> at
>>
org.jitsi.videobridge.IceUdpTransportManager.doStartConnectivityEstablishment(IceUdpTransportManager.java:958)
>>
>> at
>>
org.jitsi.videobridge.IceUdpTransportManager.startConnectivityEstablishment(IceUdpTransportManager.java:1781)
>>
>> at
>>
org.jitsi.videobridge.Videobridge.handleColibriConferenceIQ(Videobridge.java:995)
>>
>> at
>>
org.jitsi.videobridge.Videobridge.handleColibriConferenceIQ(Videobridge.java:552)
>>
>> at
>>
org.jitsi.videobridge.xmpp.ComponentImpl.handleColibriConferenceIQ(ComponentImpl.java:209)
>>
>> at
>>
org.jitsi.videobridge.xmpp.ComponentImpl.handleIQRequest(ComponentImpl.java:380)
>>
>> at
>>
org.jitsi.videobridge.xmpp.ComponentImpl.handleIQ(ComponentImpl.java:311)
>>
>> at
>>
org.jitsi.videobridge.xmpp.ComponentImpl.handleIQ(ComponentImpl.java:263)
>>
>> at
>>
org.jitsi.videobridge.xmpp.ComponentImpl.handleIQGet(ComponentImpl.java:362)
>>
>> at
>>
org.xmpp.component.AbstractComponent.processIQRequest(AbstractComponent.java:511)
>>
>> at
>>
org.xmpp.component.AbstractComponent.processIQ(AbstractComponent.java:289)
>>
>> at
>>
org.xmpp.component.AbstractComponent.processQueuedPacket(AbstractComponent.java:239)
>>
>> at
>>
org.xmpp.component.AbstractComponent.access$100(AbstractComponent.java:81)
>>
>> at
>>
org.xmpp.component.AbstractComponent$PacketProcessor.run(AbstractComponent.java:1051)
>>
>> at
>>
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>>
>> at
>>
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>>
>> at java.lang.Thread.run(Thread.java:745)
>>
>>
>> Of corse, the problem is not related to the case when user2's jid is
>> changed, as when we do not use login form (using anonymousdomain).
>>
>> Regards,
>> Zalmoxisus
>>
>> _______________________________________________
>> dev mailing list
>> dev@jitsi.org
>> Unsubscribe instructions and other list options:
>> http://lists.jitsi.org/mailman/listinfo/dev

_______________________________________________
dev mailing list
dev@jitsi.org
Unsubscribe instructions and other list options:
http://lists.jitsi.org/mailman/listinfo/dev