Release 1.5.2
Sun 29 June 2014 by MonnandTL;DR: Please checkout our release note for version 1.5.2.
Sorry for my absence since November 2013. I was preparing other things and working on other projects. During this period, I received several bug reports related to uniqush-push. Some of them indicating some large service is currently using uniqush-push as their backend push service, while some of them contains very weird log messages which I did not expect. It is really exciting for me to see uniqush-push working on top of user base with millions of users. But it is so disappointed that I was not able to quickly found the root cause of all bugs.
Fortunately, it seems that most bugs are related to the APNS' waiting time calculation. When a push operation failed, uniqush-push will wait for some time before retry. It will announce a failure after 3 attempts. The waiting time is increased for each attempt. The way we used to calculate the waiting time was to square the previous waiting time. The problem is that we represent time period in terms of nanoseconds. Squaring it quickly leads to an integer overflow. This is why lots of logs in bug reports contains some negative waiting times.
There's also a potential problem with deterministic waiting times: It may leads to message storm. Imagine you want to send one million message at same time and some of them will fail. Because all of the failed messages will be resent after the same period, it leads to another spike of network usage, which may lead to failure as well. An easy fix is to wait for a random amount of time.
In 1.5.2, uniqush-push will randomly increase the waiting time before every resend of a message. This should fix most bug report I received. But I did not confirmed this with every reporter yet. If you have any other issues with the most recent version, please report a bug.
Release 1.5.1
This version contains several minor bug fixes and improvements. Details can be found in the release note. Two noticeable changes are:
- Subscriber and service names can contain
@
now. content-available
parameter is supported in APNS.
Release 1.5.0: Kindle Support
Release 1.4.5
This version contains only one bug fix. Since this bug is critical, it is highly recommended to upgrade to this version.
Thanks for cmabastar-gumi's bug report again. For more details, please check out our release note.
read moreRelease 1.4.4
This version contains some minor bug fixes and a huge improvement for APNS. I would like to give special thanks to cmabastar-gumi for his detailed bug reports. Please check the release note for detailed ChangeLog.
In this post, I will explain more about how I improved the performance for APNS …
read moreRelease 1.4.3 and uniqush-conn
This version contains some minor bug fixes and includes some hidden features which will be used by uniqush-conn. The release note explains all the changes.
Instead of the changes themselves, in this post, I would like to talk about how they related to the uniqush-conn and what's the next step …
read moreRelease 1.4.2
This version is mainly a bug-fix version. See the release note for more details. I will briefly explain each point below. (This version is released on April 1st. But it is really not a joke, I promise.)
Proper stop
- bugfix Stop on /stop. Sorry, I forgot to implement the feature …