What if I don't have root access? Is there anything else I can do?
On 17 December 2012 16:08, Robert Greenwalt <[email protected]> wrote: > 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 > -- 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

