[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [cf-dev] RE : RE : Clean-up mechanism for blockwise transfer is removing observe state
|
> Observe is working OK over long period of time if there is no block2 option
> involves in the observe response.
I was explicitly testing with the obs-large resource, which involves Block2 notifications. I redid some tests using the cf-client, which is running successfully with Block2 notifications for several hours now.
> I have extracted more logs but I still cannot explain what is going on.
At the Connector level it is hard to see what is going on. Using the MessageTracer interceptor might help.
However, I had the suspicion that it is related to a race condition when new notifications interfere with an ongoing blockwise transfer. A request cancellation is triggered, when a wrong block number is received. This could happen when a blockwise notification arrives during a blockwise transfer and a new block is requested just before an old block arrives.
11 WARNING [BlockwiseLayer]: Ongoing blockwise transfer reseted at num=2 by new notification: CON-2.05 MID=51132, Token=33bae1, OptionSet={"Observe":1399451, "Content-Format":"text/plai", "Max-Age":5, "Block2":"(szx=2/64, m=true, num=0)"}, "------------------------".. 64 bytes - (org.eclipse.californium.core.network.stack.BlockwiseLayer.java:350) receiveResponse() in thead Thread-1 at (2015-12-25 14:46:47)
11 WARNING [Matcher]: Possible MID reuse before lifetime end: 33bae1 expected MID 32965 but received 32964 - (org.eclipse.californium.core.network.Matcher.java:347) receiveResponse() in tread Thread-1 at (2015-12-25 14:46:47)
11 WARNING [BlockwiseLayer]: Wrong block number. Expected 1 but received 2. Reject response; exchange has failed. - (org.eclipse.californium.core.network.stack.BlockwiseLayer.java:458) reeiveResponse() in thread Thread-1 at (2015-12-25 14:46:47)
In general, such situations should be avoided by choosing a prober notification period, so that all blocks can actually be transmitted. Yet I will improve the BlockwiseLayer, so that such overlaps are temporarily possible.
Ciao
Matthias