powered by Jive Software

Smack 4.2.2 - fetch devicelist holds system for long period of time when server replies with <item-not-found />

omemo

#1

Facing the following problem while testing aTalk IBR registration on Note3. After a successful IBR registration of the new account on server, the server sends a welcome message to the user. When user opens the chat to view the message, immediately after chat window is launched, the display blanks out (black screen), and only returns after an extended period of time with the welcome message correctly show. I have repeated the test 5 times and observed the same and that the blank out period is ~50s; seems to relate to smack reply timeout. However there is no smack exception being thrown.

I have attached the debug log below. It appears that smack does not take any action on server reply “item-not-found” but hold system for the smack reply-timeout before returning.

I have done another experiment, setReplyTimeout to 5s. This time, smack throws reply timeout after elapse of 5s but still the display blank out for ~50s.

For aTalk, I need to find out why devicelist is not available on newly registered account. However everything seems ok after I relaunch aTalk app.

======== aTalk debug log =================
01-12 08:47:13.493 D/SMACK: SENT (3): <presence id='RXgFh-336'><status></status><priority>30</priority><x xmlns='vcard-temp:x:update'></x><c xmlns='http://jabber.org/protocol/caps' hash='sha-1' node='http://android.atalk.org' ver='qlaf8fmwUojcVNOO07fSQc7Ko9Y='/></presence><iq to='atalk.org' id='RXgFh-337' type='get'><query xmlns='http://jabber.org/protocol/disco#info' node='eu.siacs.conversations.axolotl.devicelist'></query></iq>
01-12 08:47:13.513 D/SMACK: RECV (3): <presence xml:lang='en' to='test2@atalk.org/atalk' from='test2@atalk.org/atalk' id='RXgFh-336'><x xmlns='vcard-temp:x:update'/><c xmlns='http://jabber.org/protocol/caps' hash='sha-1' node='http://android.atalk.org' ver='qlaf8fmwUojcVNOO07fSQc7Ko9Y='/><priority>30</priority><status/></presence>
01-12 08:47:13.513 D/SMACK: RECV (3): <iq xml:lang='en' to='test2@atalk.org/atalk' from='atalk.org' type='error' id='RXgFh-337'><query node='eu.siacs.conversations.axolotl.devicelist' xmlns='http://jabber.org/protocol/disco#info'/><error code='404' type='cancel'><item-not-found xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/><text xml:lang='en' xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'>No features available</text></error></iq>
01-12 08:47:46.903 I/art: Thread[2,tid=2130,WaitingInMainSignalCatcherLoop,Thread*=0xaf90e400,peer=0x12c91080,"Signal Catcher"]: reacting to signal 3
01-12 08:47:47.103 I/art: Wrote stack traces to '/data/anr/traces.txt'
01-12 08:48:03.503 I/Choreographer: Skipped 3002 frames!  The application may be doing too much work on its main thread.
01-12 08:48:03.543 I/WebViewFactory: Loading com.google.android.webview version 63.0.3239.111 (code 323911100)
01-12 08:48:03.543 D/ResourcesManager: creating new AssetManager and set to /data/app/com.google.android.webview-2/base.apk
01-12 08:48:03.563 I/art: Rejecting re-init on previously-failed class java.lang.Class<com.android.webview.chromium.TokenBindingManagerAdapter>
01-12 08:48:03.563 I/art: Rejecting re-init on previously-failed class java.lang.Class<com.android.webview.chromium.TokenBindingManagerAdapter>
01-12 08:48:03.583 I/art: Rejecting re-init on previously-failed class java.lang.Class<com.android.webview.chromium.ServiceWorkerControllerAdapter>
01-12 08:48:03.583 I/art: Rejecting re-init on previously-failed class java.lang.Class<com.android.webview.chromium.ServiceWorkerControllerAdapter>
01-12 08:48:03.593 I/cr_LibraryLoader: Time to load native libraries: 3 ms (timestamps 5497-5500)
01-12 08:48:03.593 I/chromium: [INFO:library_loader_hooks.cc(36)] Chromium logging enabled: level = 0, default verbosity = 0
01-12 08:48:03.593 I/cr_LibraryLoader: Expected native library version number "63.0.3239.111", actual native library version number "63.0.3239.111"
01-12 08:48:03.703 I/cr_BrowserStartup: Initializing chromium process, singleProcess=true
01-12 08:48:03.823 I/aTalk: [25] service.httputil.HttpUtils.executeMethod().205 Auto checking for software update: GET http://atalk.sytes.net/releases/atalk-android/versionupdate.properties HTTP/1.1
01-12 08:48:03.833 D/ConnectivityManager.CallbackHandler: CM callback handler got msg 524290
01-12 08:48:03.863 V/ActivityThread: updateVisibility : ActivityRecord{c29c0e0 token=android.os.BinderProxy@3e8760f6 {org.atalk.android/org.atalk.android.gui.aTalk}} show : false
01-12 08:48:04.083 I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@4026314 time:465345990