[jitsi-dev] Registrarless SIP accounts issues


#1

Hello,

I did some testing with registrarless accounts.
Test setup:

2 computers (Debian Linux, one Testing with Xfce, other with Stable+Gnome), connected via VPN. They can ping each other, ssh and whatnot works.
Both have registrarless accounts set up. Now first time i start Jitsi on both computers everything seems ok, call s work etc. But after a while Jitsi starts to freeze on one of the computers (mainly on the one with Debian Stable, but not always).
The online notification isnt working anymore, logging out/in the account doesnt show on the other computer, it is frozen in the state in which last was in.
Calling is possible from one of the computers (the one with Debian Stable, it also shows the other computer as online), from the other is not (the other side seems offline in the contact list, hangs at connecting). It gives the following in the logs after i cancel the attempt:

15:50:57.945 SEVERE: impl.protocol.sip.CallPeerSipImpl.hangup().1042 Could not determine call peer state!

Other than that, the registrarless account sometimes logs out out of the blue and if i try to log it bac in i see the following in the logs:

15:44:12.315 SEVERE: util.UtilActivator.uncaughtException().88 An uncaught exception occurred in thread=Thread[AWT-EventQueue-0,6,main] and message was: The service registration is no longer valid.
java.lang.IllegalStateException: The service registration is no longer valid.
  at org.apache.felix.framework.ServiceRegistrationImpl.getReference(ServiceRegistrationImpl.java:93)
  at net.java.sip.communicator.service.protocol.ProtocolProviderFactory.getProviderForAccount(ProtocolProviderFactory.java:580)
  at net.java.sip.communicator.impl.gui.GuiActivator.getRegisteredProviders(GuiActivator.java:356)
  at net.java.sip.communicator.impl.gui.GuiActivator.getOpSetRegisteredProviders(GuiActivator.java:418)
  at net.java.sip.communicator.impl.gui.main.contactlist.ContactListTreeCellRenderer.initButtonsPanel(ContactListTreeCellRenderer.java:796)
  at net.java.sip.communicator.impl.gui.main.contactlist.ContactListTreeCellRenderer.getTreeCellRendererComponent(ContactListTreeCellRenderer.java:403)
  at javax.swing.plaf.basic.BasicTreeUI$NodeDimensionsHandler.getNodeDimensions(BasicTreeUI.java:2751)
  at javax.swing.tree.AbstractLayoutCache.getNodeDimensions(AbstractLayoutCache.java:492)
  at javax.swing.tree.VariableHeightLayoutCache$TreeStateNode.updatePreferredSize(VariableHeightLayoutCache.java:1359)
  at javax.swing.tree.VariableHeightLayoutCache$TreeStateNode.getPreferredWidth(VariableHeightLayoutCache.java:1176)
  at javax.swing.tree.VariableHeightLayoutCache.getMaxNodeWidth(VariableHeightLayoutCache.java:1007)
  at javax.swing.tree.VariableHeightLayoutCache.getPreferredWidth(VariableHeightLayoutCache.java:308)
  at javax.swing.plaf.basic.BasicTreeUI.updateCachedPreferredSize(BasicTreeUI.java:1862)
  at javax.swing.plaf.basic.BasicTreeUI.getPreferredSize(BasicTreeUI.java:1960)
  at javax.swing.plaf.basic.BasicTreeUI.getPreferredSize(BasicTreeUI.java:1948)
  at javax.swing.JComponent.getPreferredSize(JComponent.java:1634)
  at java.awt.BorderLayout.preferredLayoutSize(BorderLayout.java:724)
  at java.awt.Container.preferredSize(Container.java:1605)
  at java.awt.Container.getPreferredSize(Container.java:1590)
  at javax.swing.JComponent.getPreferredSize(JComponent.java:1636)
  at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:788)
  at java.awt.Container.layout(Container.java:1427)
  at java.awt.Container.doLayout(Container.java:1416)
  at java.awt.Container.validateTree(Container.java:1513)
  at java.awt.Container.validate(Container.java:1486)
  at javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:653)
  at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1592)
  at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226)
  at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:647)
  at java.awt.EventQueue.access$000(EventQueue.java:96)
  at java.awt.EventQueue$1.run(EventQueue.java:608)
  at java.awt.EventQueue$1.run(EventQueue.java:606)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
  at java.awt.EventQueue.dispatchEvent(EventQueue.java:617)
  at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
  at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
  at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
  at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
  at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
  at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
15:44:28.684 SEVERE: impl.protocol.sip.OperationSetBasicTelephonySipImpl.processResponse().642 Received error: 481 Call leg/Transaction does not exist

Other error that showed up (i dont exactly know when, i was trying to log back in and call the other computer):

16:07:58.946 SEVERE: util.UtilActivator.uncaughtException().88 An uncaught exception occurred in thread=Thread[AWT-EventQueue-0,6,main] and message was: 4 >= 4
java.lang.ArrayIndexOutOfBoundsException: 4 >= 4
  at java.util.Vector.elementAt(Vector.java:447)
  at javax.swing.DefaultListModel.getElementAt(DefaultListModel.java:87)
  at javax.swing.plaf.basic.BasicListUI.updateLayoutState(BasicListUI.java:1359)
  at javax.swing.plaf.basic.BasicListUI.maybeUpdateLayoutState(BasicListUI.java:1310)
  at javax.swing.plaf.basic.BasicListUI.paintImpl(BasicListUI.java:263)
  at javax.swing.plaf.basic.BasicListUI.paint(BasicListUI.java:239)
  at javax.swing.plaf.ComponentUI.update(ComponentUI.java:161)
  at javax.swing.JComponent.paintComponent(JComponent.java:765)
  at javax.swing.JComponent.paint(JComponent.java:1029)
  at javax.swing.JComponent.paintToOffscreen(JComponent.java:5138)
  at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:302)
  at javax.swing.RepaintManager.paint(RepaintManager.java:1188)
  at javax.swing.JComponent._paintImmediately(JComponent.java:5086)
  at javax.swing.JComponent.paintImmediately(JComponent.java:4896)
  at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:783)
  at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:735)
  at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:677)
  at javax.swing.RepaintManager.access$700(RepaintManager.java:58)
  at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1593)
  at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226)
  at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:647)
  at java.awt.EventQueue.access$000(EventQueue.java:96)
  at java.awt.EventQueue$1.run(EventQueue.java:608)
  at java.awt.EventQueue$1.run(EventQueue.java:606)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
  at java.awt.EventQueue.dispatchEvent(EventQueue.java:617)
  at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
  at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
  at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
  at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
  at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
  at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)

Changing the DTMF type did solve the situation temporarily and logged me back. But after a while Jitsi froze on the other computer, locking the input (the mouse was moving but clicks didnt register), i had to kill even gnome-panel to unfreeze it.

···

--
O zi buna,

Kertesz Laszlo