Push bugs

Support help for users of pushfix.info

Push bugs

Postby pushfix » Fri Dec 18, 2009 9:26 am

Here is my current list of known bugs affecting push on legitimate or hacked devices (i.e. firmware code bugs in 3.0, 3.01, and 3.1.2)

Push is still a little buggy on the phone in my opinion. There are a couple issues that can cause push to stop working for a little while:

#1
If you have a relatively long outage of push AND your phone is connected to a local WiFi router, you may be experiencing the WiFi DNS bug. This affects the phone when it is connected to certain WiFi routers which use a limited DNS server (dnsmasq) and it does not always forward all the information that a *real* DNS server would forward. The solution is to set your WiFi DNS to something other than your router, such as Google's new DNS servers, 8.8.8.8

For detailed instructions, see the last question in my FAQ here : viewtopic.php?f=5&t=2

#2
If you have small amounts of time that you detect that push isn't working (30 minutes max!), then you may have seen the hearbeat interval bug which affects push over cell data. You will generally not experience this bug if you have any push email configured (Exchange, MobileMe), or have Mail set to fetch every 15 or 30 minutes.

What happens is there is a "heartbeat interval" timer that push uses to decide how long to wait before contacting apple to make sure the connection is still up. Well, this interval keeps increasing each time until it reaches one hour OR it gets an error because the cell carrier closed the connection. It usually gets an error before one hour because most cell carriers don't allow you to keep an idle connection open that long. When it gets an error, it drops the heartbeat interval down and starts over again.

However, when it gets that error, basically you have lost instant pushes for a short amount of time.

I am readying a fix within the next week that will force the heartbeat interval to remain around 5 to 15 minutes, which is the most desirable time for all carriers worldwide. Not all users will need the fix and that is an issue for me : determining whether to offer it to everyone.

If you have Erica Utilities installed, you can see your current heartbeat invterval by running

Code: Select all
plutil /var/mobile/Library/Caches/com.apple.persistentconnection.cache.plist

and you will get output like this :
Code: Select all
{
    "PersConn-apsd-com.apple.apsd-push.apple.com" =     {
        date = 2009-12-18 03:06:21 -0600;
        hbi = 1200;
        identifier = "com.apple.apsd-push.apple.com";
    };
}


The current interval in this case is 1200 seconds, which is 20 minutes. It can get as high as 3600 seconds and as low as 300. The push daemon (APSD) constantly adjusts it.
pushfix
Site Admin
 
Posts: 302
Joined: Sun Oct 18, 2009 5:01 am

Re: Push bugs

Postby pushfix » Sun Dec 20, 2009 6:07 am

More about the heartbeat problem:

Question: Why am I not getting 100% of my notifications?

The answer is Apple does not guarantee 100% delivery, only that they do their "best effort". If you want to check it periodically, buy iPush Test for $0.99 in the app store. You can run a timed test on start and it will tell you the push response time. If you run this several times throughout the day and you get an instant response (less than 2 seconds), then push is working as it has been designed by Apple.

If once or twice a day you get a message that does not come back (you get a spinning busy icon), then that is probably a problem with the heartbeat interval.

All cell carriers give private IP addresses to cell phones. When you make an outbound connection to the internet, their systems use NAT to make the connection so that thousands of open connections only come from single IP addresses. There is a timeout for your connection in the NAT table and once that timeout is hit, your connection is no longer valid. Every time a heartbeat is sent, it resets this timeout. When the connection is invalid and it sends the heartbeat, it finds that out and re-establishes a connection. In the time between the timeout and this discovery you have either delayed pushes or possibly lost push alerts.

Apple in all their ignorance do not let us set the push heartbeat value because if set, the OS overwrites it anyway. I am looking through private API's in the Apple SDK to see if there is some way to force this.

A longer heartbeat interval saves battery life (less data packets), but too long and it hits the NAT timeout for your provider, causing a new connection "costing" about 4KB of data. A heartbeat is only 100 bytes.
pushfix
Site Admin
 
Posts: 302
Joined: Sun Oct 18, 2009 5:01 am

Re: Push bugs

Postby pushfix » Thu Dec 24, 2009 7:01 am

Here is another known push bug that is in the current version of the push notification service.

If you get 3 alerts for the same program at the same time, it will only show you the last one.

If you get 3 alerts for 3 different programs at the same time, it will show you all three as you click on Close for each one.

Personally, I hope that Apple will add some sort of notifications manager application in the next release to handle this situation.
pushfix
Site Admin
 
Posts: 302
Joined: Sun Oct 18, 2009 5:01 am

Re: Push bugs

Postby pushfix » Thu Dec 24, 2009 11:10 am

This isn't totally a push bug, but here is another situation. T-Mobile went down nationwide in the US for several hours two days ago (data only). I have just found the relevant log messages in my phone after helping another customer:

Code: Select all
Dec 22 13:53:06 iPhone3G CommCenter[33]: There are 1 assertions for PDP context 0:
Dec 22 13:53:06 iPhone3G CommCenter[33]: PersConn-apsd-com.apple.apsd-push.apple.com
Dec 22 13:53:06 iPhone3G CommCenter[33]: Deactivating PDP since internation roaming is not allowed even though there are assertions
Dec 22 13:53:06 iPhone3G CommCenter[33]: Telling PDP context 0 to go inactive.


What do these mean? PDP context 0 is your main cellular data interface. In this case, push was asking the phone subsystem (CommCenter) to get an IP. CommCenter was saying no because data roaming was set to off in Settings -> General -> Network. Evidently during this T-Mobile outage, their cell network was saying I was roaming even though I was not. Just before this happened, there was another entry from CommCenter when T-Mobile shut down data:

Code: Select all
Dec 22 13:50:08 iPhone3G CommCenter[33]: Error (1) activating PDP context 0 that supports types 1: kUnknownError


One unfortunate customer happened to be installing Pushfix 2.0 during the outage and thought the fix didn't work. The problem almost always lies at the developer, cellular network, or Apple push notification service (extremely rare) level.
pushfix
Site Admin
 
Posts: 302
Joined: Sun Oct 18, 2009 5:01 am

Re: Push bugs

Postby johnwilliamsjr » Thu Apr 29, 2010 8:59 pm

can not believe t-mobile was down if that happened in the uk i know a couple of guys would be screaming pandimonium
johnwilliamsjr
 
Posts: 1
Joined: Thu Apr 29, 2010 8:55 pm


Return to Support (customers)

Who is online

Users browsing this forum: No registered users and 2 guests