If you have root you can alter the global settings database (DATA_STALL_ALARM_AGRESSIVE_DELAY_IN_MS, DATA_STALL_ALARM_NON_AGGRESSIVE_DELAY_IN_MS).
On Mon, Dec 17, 2012 at 4:22 AM, Goncalo Oliveira <[email protected]>wrote: > Robert, isn't there any way to override the data stall detector behavior? > or at least change the default value? > > > On 17 December 2012 12:02, Goncalo Oliveira <[email protected]> wrote: > >> Thanks again for the feedback Robert. >> >> I'm sending a heartbeat package but an answer is given. Though, I'm only >> sending the heartbeat every 30 minutes. Well, currently I'm doing less than >> that, but only as a workaround for this problem. For the test in case, I'm >> not even sending data. I'm just connecting and listening. >> More information that might be relevant - I ran the test again, but this >> time I'm not even making a connection. I'm just listening to the >> connectivity changes - I was suspecting someone else was causing this. >> Turns out that the same behavior occurs, so someone else is causing this? >> >> 12-17 11:50:27.951 374 374 D GSM : [GsmDCT] cleanUpConnection: >> tearDown=true reason=pdpReset >> 12-17 11:50:27.951 374 374 D GSM : [GsmDCT] cleanUpConnection: >> tearing down >> 12-17 11:50:27.951 374 1486 D GSM : [GsmDC-1] DcActiveState >> msg.what=EVENT_DISCONNECT RefCount=0 >> 12-17 11:50:27.951 374 1486 D GSM : [GsmDC-1] tearDownData radio >> is on, call deactivateDataCall >> 12-17 11:50:27.951 374 1486 D RILJ : [1903]> DEACTIVATE_DATA_CALL 1 >> 2 >> 12-17 11:50:27.959 374 374 D GSM : [ApnContext] setState: >> DISCONNECTING for type default, previous state:CONNECTED >> 12-17 11:50:27.959 374 374 D GSM : [ApnContext] set reason as >> pdpReset, for type mms,current state IDLE >> 12-17 11:50:27.959 374 374 D GSM : [GsmDCT] cleanUpConnection: >> tearDown=true reason=pdpReset >> 12-17 11:50:27.959 374 374 D GSM : [ApnContext] setState: IDLE >> for type mms, previous state:IDLE >> 12-17 11:50:27.959 374 374 D GSM : [GsmDCT] isDataPossible(mms): >> possible=true isDataAllowed=true apnTypePossible=true >> apnContextisEnabled=false apnContextState()=IDLE >> 12-17 11:50:27.959 374 374 D GSM : [GsmDCT] get active apn string >> for type:mms >> 12-17 11:50:27.959 374 374 D GSM : [ApnContext] set reason as >> pdpReset, for type cbs,current state IDLE >> 12-17 11:50:27.959 374 374 D GSM : [GsmDCT] cleanUpConnection: >> tearDown=true reason=pdpReset >> 12-17 11:50:27.959 374 374 D GSM : [ApnContext] setState: IDLE >> for type cbs, previous state:IDLE >> 12-17 11:50:27.959 374 374 D GSM : [GsmDCT] isDataPossible(cbs): >> possible=true isDataAllowed=true apnTypePossible=true >> apnContextisEnabled=false apnContextState()=IDLE >> 12-17 11:50:27.959 374 374 D GSM : [GsmDCT] get active apn string >> for type:cbs >> 12-17 11:50:27.959 374 374 D GSM : [GsmDCT] stopNetStatPoll >> 12-17 11:50:28.006 374 374 D GSM : [GsmDCT] handleMessage msg={ >> what=270368 when=-1ms arg1=1 } >> 12-17 11:50:28.576 111 209 D RILClient: processUnsolicited(): resp_id >> (11010), len(59) >> 12-17 11:50:28.576 115 194 D RILClient: processUnsolicited(): resp_id >> (11010), len(59) >> 12-17 11:50:28.576 756 784 D RILS : Executing Am broadcast -a >> android.intent.action.PROXIMITY_CP --es cmd on >> 12-17 11:50:30.576 374 496 D RILJ : [1903]< DEACTIVATE_DATA_CALL >> >> Cheers >> >> >> On 14 December 2012 19:58, Robert Greenwalt <[email protected]>wrote: >> >>> oops.. I truncated a sentence.. >>> >>> updateDataStallInfo logs show what's going on when a stall is detected. >>> In your log you can see that 21 packets have been sent since you last >>> received a packet. >>> >>> >>> On Fri, Dec 14, 2012 at 11:49 AM, Robert Greenwalt < >>> [email protected]> wrote: >>> >>>> The data stall detector is watching for outgoing packets with no >>>> corresponding return. If it sees this for X (6 minute default) it tries a >>>> bunch of things and one of those steps is to tear down and rebuild the >>>> connection. That's what you're seeing. I believe UDP packets may get >>>> ignored, thus my tcp/udp question. You can see some log lines in the radio >>>> log like "updateDataStallInfo: OUT send=..." that show what' >>>> >>>> What are you doing in your keepalive pings? Sending a char with no >>>> response, or echoing a response back? That could cause the problem because >>>> there'd be outgoing traffic but no incoming traffic. If there were NO >>>> outgoing the data stall detector shouldn't fire. If you change your >>>> keep-alive to send both ways you should be fine. >>>> >>>> This makes me wonder what your other test device is doing - the one >>>> that doesn't show this problem. Are you using rooted devices? They would >>>> allow you to use tcpdump and look at the network traffic.. >>>> >>>> >>>> >>>> >>>> On Fri, Dec 14, 2012 at 11:28 AM, Robert Greenwalt < >>>> [email protected]> wrote: >>>> >>>>> Interesting. >>>>> >>>>> Maybe it is an android bug! >>>>> >>>>> What kind of traffic are you sending? tcp? udp? >>>>> >>>>> >>>>> On Fri, Dec 14, 2012 at 11:23 AM, Goncalo Oliveira <[email protected] >>>>> > wrote: >>>>> >>>>>> Got the radio logs... >>>>>> >>>>>> http://pastebin.com/754wJ2jd >>>>>> >>>>>> This seems to be it >>>>>> GSM : [GsmDCT] onReceive: >>>>>> action=com.android.internal.telephony.gprs-data-stall >>>>>> >>>>>> >>>>>> On 14 December 2012 18:25, Robert Greenwalt <[email protected]>wrote: >>>>>> >>>>>>> 3319 is fine. It's just the tethering code noting an interface is >>>>>>> going away. >>>>>>> >>>>>>> Can you get radio logs? This is the system log - there are several >>>>>>> log buffers. A bugreport (adb bugreport > mybug.txt) would get them >>>>>>> all. >>>>>>> Then you can match the connectivityservice dropout with what happened >>>>>>> in >>>>>>> the radio. >>>>>>> >>>>>>> I don't think you should open a bug: this is not an android issue, >>>>>>> but rather it's a samsung issue. >>>>>>> >>>>>>> I have opened an internal issue to expand CTS to check for this - >>>>>>> any device wanting to claim to be an android device would not be >>>>>>> allowed to >>>>>>> do such a thing in the future. >>>>>>> >>>>>>> >>>>>>> On Fri, Dec 14, 2012 at 10:08 AM, Goncalo Oliveira < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>>> Robert, >>>>>>>> >>>>>>>> Thanks again for the feedback. I traced the logs from samsung with >>>>>>>> a simple app to reproduce this behavior. Same thing, 6/7 minutes and it >>>>>>>> drops. >>>>>>>> I posted the logs here: http://pastebin.com/FcPPbq3V >>>>>>>> On line 3323 you can see ConnectivityService disconnecting. What I >>>>>>>> can't understand is what's causing it. Line 3319 is suspicious as I >>>>>>>> don't >>>>>>>> have tethering on, but other than that I can't really determine what >>>>>>>> causes >>>>>>>> this. Should I open a bug for this? >>>>>>>> >>>>>>>> Cheers >>>>>>>> >>>>>>>> >>>>>>>> On 14 December 2012 16:50, Robert Greenwalt >>>>>>>> <[email protected]>wrote: >>>>>>>> >>>>>>>>> Is it possible something else on the device is occasionally >>>>>>>>> sending data and reseting your window? >>>>>>>>> >>>>>>>>> I would look in the log for the timestamp of the >>>>>>>>> ConnectivityChanged broadcast and then check the radio log and see >>>>>>>>> what's >>>>>>>>> going on. >>>>>>>>> >>>>>>>>> I suspect there is an unsolicited data call list notification >>>>>>>>> coming from the radio showing that the data call has gone away. >>>>>>>>> Perhaps >>>>>>>>> just before that there may be something explaining why. >>>>>>>>> >>>>>>>>> You may have to contact samsung if you're sure that other devices >>>>>>>>> have longer connection times on the same carrier. >>>>>>>>> >>>>>>>>> >>>>>>>>> On Fri, Dec 14, 2012 at 8:30 AM, Goncalo Oliveira < >>>>>>>>> [email protected]> wrote: >>>>>>>>> >>>>>>>>>> Hi Robert, >>>>>>>>>> >>>>>>>>>> Thanks for the reply. If I send a packet every 5/6 minutes the >>>>>>>>>> connectivity is maintained yes. Only if connection is idle for >>>>>>>>>> longer than >>>>>>>>>> that. The weird thing is that it's not an exact timer, even though >>>>>>>>>> the >>>>>>>>>> average is very close. Sometimes it lasts 7 minutes, sometimes 8 or >>>>>>>>>> 9. I >>>>>>>>>> even saw this happening with a 4 minute interval, though very >>>>>>>>>> rarely. On >>>>>>>>>> the other device, I can most of the times maintain higher idle times. >>>>>>>>>> I'll try to look at the logs more carefully to see if there's >>>>>>>>>> something else. Is there anything in particular that I should look >>>>>>>>>> for? >>>>>>>>>> >>>>>>>>>> Cheers >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On 14 December 2012 16:16, Robert Greenwalt < >>>>>>>>>> [email protected]> wrote: >>>>>>>>>> >>>>>>>>>>> Android is not supposed to do this, though there is no guarantee >>>>>>>>>>> of connectivity. It sounds like something samsung is doing, either >>>>>>>>>>> accidentally or on purpose. >>>>>>>>>>> >>>>>>>>>>> If you send a packet every 6 minutes does that keep the device >>>>>>>>>>> from pulsing connectivity? >>>>>>>>>>> >>>>>>>>>>> Can you take a bugreport - the radio log may have some >>>>>>>>>>> indication of why it's happening. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Fri, Dec 14, 2012 at 2:24 AM, Goncalo Oliveira < >>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>> >>>>>>>>>>>> Hi all, >>>>>>>>>>>> >>>>>>>>>>>> Seems that Android is dropping idle sockets when under a mobile >>>>>>>>>>>> network. Usually, no socket is kept alive for more than 7 minutes >>>>>>>>>>>> of >>>>>>>>>>>> inactivity. I am using a SIM card with a particular APN, that >>>>>>>>>>>> allows idle >>>>>>>>>>>> sockets for at least 30 minutes - this was tested using another >>>>>>>>>>>> kind of >>>>>>>>>>>> device, also communicating with GSM, and there are no drops, so >>>>>>>>>>>> problem >>>>>>>>>>>> isn't the SIM card. >>>>>>>>>>>> >>>>>>>>>>>> After a few searches in the web, I tried a few approaches to >>>>>>>>>>>> work around this, but until now, no success. I tried using a >>>>>>>>>>>> partial wake >>>>>>>>>>>> lock after connecting, releasing only when disconnected - didn't >>>>>>>>>>>> work. Also >>>>>>>>>>>> tried using only a 2G network, as some said that changing from >>>>>>>>>>>> network type >>>>>>>>>>>> could impact on this - same outcome. >>>>>>>>>>>> >>>>>>>>>>>> After digging a bit more and by analyzing logcat, I watched >>>>>>>>>>>> that a CONNECTIVITY_CHANGE is sent after some idle time, >>>>>>>>>>>> disabling the data transfer availability (active network is >>>>>>>>>>>> mobile, no >>>>>>>>>>>> connectivity) and another one is sent enabling it again (active >>>>>>>>>>>> network is >>>>>>>>>>>> mobile, connectivity). This cuts off all live socket connections. >>>>>>>>>>>> >>>>>>>>>>>> Investigating a little bit more, I also observed that this >>>>>>>>>>>> behavior is not consistent through all Android versions, or maybe >>>>>>>>>>>> (even >>>>>>>>>>>> worse) through different hardware. Connectivity break is >>>>>>>>>>>> occurring in a Galaxy Tab 7 with Android 4.0.4. The same isn't >>>>>>>>>>>> occurring in >>>>>>>>>>>> an Unitech TB 100 with Android 3.2. >>>>>>>>>>>> >>>>>>>>>>>> Does anyone know where I can get more information and/or I can >>>>>>>>>>>> work around this? I would really like to avoid sending heartbeats >>>>>>>>>>>> every 6/7 >>>>>>>>>>>> minutes. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Cheers >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> You received this message because you are subscribed to the >>>>>>>>>>>> Google >>>>>>>>>>>> Groups "Android Developers" group. >>>>>>>>>>>> To post to this group, send email to >>>>>>>>>>>> [email protected] >>>>>>>>>>>> To unsubscribe from this group, send email to >>>>>>>>>>>> [email protected] >>>>>>>>>>>> For more options, visit this group at >>>>>>>>>>>> http://groups.google.com/group/android-developers?hl=en >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> You received this message because you are subscribed to the >>>>>>>>>>> Google >>>>>>>>>>> Groups "Android Developers" group. >>>>>>>>>>> To post to this group, send email to >>>>>>>>>>> [email protected] >>>>>>>>>>> To unsubscribe from this group, send email to >>>>>>>>>>> [email protected] >>>>>>>>>>> For more options, visit this group at >>>>>>>>>>> http://groups.google.com/group/android-developers?hl=en >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Gonçalo Oliveira >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> You received this message because you are subscribed to the Google >>>>>>>>>> Groups "Android Developers" group. >>>>>>>>>> To post to this group, send email to >>>>>>>>>> [email protected] >>>>>>>>>> To unsubscribe from this group, send email to >>>>>>>>>> [email protected] >>>>>>>>>> For more options, visit this group at >>>>>>>>>> http://groups.google.com/group/android-developers?hl=en >>>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> You received this message because you are subscribed to the Google >>>>>>>>> Groups "Android Developers" group. >>>>>>>>> To post to this group, send email to >>>>>>>>> [email protected] >>>>>>>>> To unsubscribe from this group, send email to >>>>>>>>> [email protected] >>>>>>>>> For more options, visit this group at >>>>>>>>> http://groups.google.com/group/android-developers?hl=en >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Gonçalo Oliveira >>>>>>>> >>>>>>>> -- >>>>>>>> You received this message because you are subscribed to the Google >>>>>>>> Groups "Android Developers" group. >>>>>>>> To post to this group, send email to >>>>>>>> [email protected] >>>>>>>> To unsubscribe from this group, send email to >>>>>>>> [email protected] >>>>>>>> For more options, visit this group at >>>>>>>> http://groups.google.com/group/android-developers?hl=en >>>>>>>> >>>>>>> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "Android Developers" group. >>>>>>> To post to this group, send email to >>>>>>> [email protected] >>>>>>> To unsubscribe from this group, send email to >>>>>>> [email protected] >>>>>>> For more options, visit this group at >>>>>>> http://groups.google.com/group/android-developers?hl=en >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Gonçalo Oliveira >>>>>> >>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "Android Developers" group. >>>>>> To post to this group, send email to >>>>>> [email protected] >>>>>> To unsubscribe from this group, send email to >>>>>> [email protected] >>>>>> For more options, visit this group at >>>>>> http://groups.google.com/group/android-developers?hl=en >>>>>> >>>>> >>>>> >>>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Android Developers" group. >>> To post to this group, send email to [email protected] >>> To unsubscribe from this group, send email to >>> [email protected] >>> For more options, visit this group at >>> http://groups.google.com/group/android-developers?hl=en >>> >> >> >> >> -- >> Gonçalo Oliveira >> > > > > -- > Gonçalo Oliveira > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en > -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

