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

