Comments (8)
from norm.
I am using an WiFi access point. And I am just powering off the access point for this test.
from norm.
from norm.
I am using the Loglevel 7, //PL_MAX, and I don't get any more info from NORM.
In the log I can see the messages from the OS, like:
2020-02-19 10:14:06.393 ? D/NetworkMonitor/NetworkAgentInfo [WIFI () - 610]: Disconnected
But NORM is not showing anything.
Norm is printing these stats sometime after the disconnect:
2020-02-19 10:14:12.129 ? I/protolib: NormSenderNode::OnActivityTimeout() node>175843434 for sender>2681601
2020-02-19 10:14:12.766 ? I/protolib: REPORT time>09:14:12.766783 node>175843434 ***************************************
2020-02-19 10:14:12.767 ? I/protolib: Local status:
2020-02-19 10:14:12.767 ? I/protolib: txRate> 64.000 kbps sentRate> 0.000 grtt>0.228400
2020-02-19 10:14:12.767 ? I/protolib: Remote sender>2681601 grtt>0.422500 sec loss>0.000000
2020-02-19 10:14:12.767 ? I/protolib: rxRate> 0.000 kbps rx_goodput> 0.000 kbps
2020-02-19 10:14:12.767 ? I/protolib: rxObjects> completed>1 pending>0 failed>0
2020-02-19 10:14:12.767 ? I/protolib: fecBufferUsage> current>0 peak>0 overuns>0
2020-02-19 10:14:12.767 ? I/protolib: strBufferUsage> current>0 peak>0 overuns>0
2020-02-19 10:14:12.767 ? I/protolib: resyncs>0 nacks>0 suppressed>0
2020-02-19 10:14:12.767 ? I/protolib: ***************************************************************************
2020-02-19 10:14:13.263 ? D/io_stats: !@ 179,0 r 82125 4717596 w 150508 4729104 d 11929 24813356 f 37991 40392 iot 165088 147220 th 51200 0 0 pt 0 inp 0 0 47193.862
And a short time after that, it runns into the endless loop of:
2020-02-19 10:14:27.635 ? E/protolib: ProtoSocket::SendTo() sendto() error: Invalid argument
2020-02-19 10:14:27.635 ? W/protolib: NormSession::SendMessage() sendto(224.1.2.3/4102) warning: Invalid argument
2020-02-19 10:14:27.638 ? E/protolib: ProtoSocket::SendTo() sendto() error: Invalid argument
2020-02-19 10:14:27.639 ? W/protolib: NormSession::SendMessage() sendto(224.1.2.3/4102) warning: Invalid argument
2020-02-19 10:14:27.642 ? E/protolib: ProtoSocket::SendTo() sendto() error: Invalid argument
Yes exactly I would benefit from a notification that the data can't be send so I can handle it in my app. Otherwise I have no idea if the data was send or not.
Yes, NORM is trying to send the data again and again. This is good. But it does it in a very fast endless loop. It would be nice if it would use some exponential back-off.
from norm.
A couple of more questions:
-
Does it recover when your wifi becomes reconnected? Or it a permanent condition?
-
Are you running fixed data rate or with congestion control enabled? The latter will slow down on its own ... otherwise it does regulate the rate of this issue at the fixed data rate packet interval. If some sort of send error notification was issued, the application could reduce the data rate as it chose ...
(Also sorry I haven't been able to address this yet. I need to set up something so I can test this but have not been able to be in my office much. I have Android devices and an access point I can use to replicate your situation ... it's the time that's hard to find).
from norm.
I just pushed updated code that extends the NORM_SEND_ERROR notification posting cases to cover the sort of error you are getting. I have not tested it for your specific issue and did not change the "polling" behavior with regards to send retry attempts ... but with the notification you can now decide what to do at the app layer
from norm.
Thank you!
I will try it in the next days.
from norm.
Sorry for the delay. Now I found the time to test your new version.
Now I do see the NORM_SEND_ERROR when the WiFi drops.
Thank you for the improvement!
from norm.
Related Issues (20)
- norm 1.5.9 python binding failure HOT 4
- norm 1.5.9 python binding of setRxPortReuse session's method seems not to work HOT 1
- norm 1.5.9 fatal error with the python binding of session's method fileEnqueue HOT 1
- Segmentation fault (normObject.cpp) HOT 1
- Receiving File and writing to mounted share is slow HOT 10
- Suggestion: Make pynorm work with Python3 HOT 3
- debugStats.py: No module named 'pynorm.extra.pipeparser' HOT 2
- add arguments `txBindAddress` back to pynorm Session.setTxPort HOT 1
- Suggestion: Use Python enum in pynorm/constants.py
- function `setTxOnly` missed in pynorm/session.py
- function `NormChangeDestination` missed in pynorm and NormDeveloperGuide
- Question:how to get the status of each sender session? HOT 2
- the fairness among multiple sender sessions. HOT 6
- NormRestartInstance cause ASSERT INVALID_DESCRIPTOR error HOT 4
- ProtoTree x->right ==x Caused infinite loop HOT 41
- normCast not support dir? HOT 3
- NormStreamSend Java Example Does Not Compile HOT 2
- NormObjectTable::Remove(NormObject*): Assertion `__null != tree.Find(theObject->GetId().GetValuePtr(), 8*sizeof(UINT16))' failed HOT 3
- 2 compiler warnings seem to indicate errors HOT 1
- Suggestion: .NET NORM Extension HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from norm.