Max this is the first that I have heard this problem. Then again, most of us 
don’t end up switching networks so it very likely you have discovered a new 
bug.  I would encourage creating a Jira ticket for this issue.

If you don’t feel comfortable creating a Jira ticket I can create one from the 
information you provided here.

The failure is most likely in the connectivity layer of the IoTivity which I am 
unfamiliar with. I hope someone with more expertise in that area will comment 
on this post.

George Nash

From: [email protected] 
[mailto:[email protected]] On Behalf Of Max Kholmyansky
Sent: Sunday, December 24, 2017 12:55 PM
To: iotivity <[email protected]>
Subject: [dev] Multicast discovery failure (usually after WiFi netwrok switches)

Hi,

I am using IoTivity 1.3.1 in Android client (Java SDK)

From time to time, the client stops discovering the servers over the network.
Technically, in a failure after findResources() is called with "/oic/res", the 
error callback "onFindResourceErrorCallback" is called, and no resources are 
discovered.

A typical failure scenario:

  *   Client is connected to WiFi "Network1".
  *   Resource discover works fine.
  *   Connect the client to another WiFi network ("Network2") for few seconds. 
Then back to "Network1".
  *   From that point, usually, findResources() starts failing, although the 
server logs indicate that they respond normally.
  *   Usually, after turning WiFi off for a while, and then turning on and 
reconnecting to "Network1" - all starts working normally again.
I was able to reproduce this issue with "simpleclient" sample, by changing the 
discovery query from "/oic/res?rt=core.light" to "/oic/res".

Attaching the IoTivity trace.

Anyone can find an indication of a specific problem in the log?

2 specific issues that I noticed.

1. There is always a line in the logs:
D/OIC_CA_MSG_HANDLE: error callback error: 7
Looking in IoTivity headers: "7" is

CA_SEND_FAILED,                 /**< Send request failed */

Looks like send over a socket is failing. Is it a familiar problem.



2. I was able to reproduce the issue only with "/oic/res".

When trying to discover a specific resource type, like "/oic/res?rt=oic.wk.d" - 
I did not get to the stack error.

Is there any essential difference between how the discovery with and without 
filters are handled?





Thanks for any hint

Max





_______________________________________________
iotivity-dev mailing list
[email protected]
https://lists.iotivity.org/mailman/listinfo/iotivity-dev

Reply via email to