touch-packages team mailing list archive
-
touch-packages team
-
Mailing list archive
-
Message #57753
[Bug 1424966] Re: /usr/lib/arm-linux-gnueabihf/indicator-datetime/indicator-datetime-service:5:reset_timer:unity::indicator::datetime::LiveClock::Impl::on_timerfd_cond:g_main_dispatch:g_main_context_dispatch:g_main_context_iterate
Confirmed, this is related to the TFD_TIMER_CANCEL_ON_SET change. Looks
like timerfd_settime() is failing and setting errno to ECANCELED. This
isn't listed as a possible error in the manpage but now that we're
hitting ECANCELED a web search turns up the condition pretty quickly.
The ability to return ECANCELED was added was added for this use case:
<http://git.kernel.org/cgit/linux/kernel/git/tip/tip.git/commit/?id=99ee5315dac6211e972fa3f23bcc9a0343ff58c4>
> Some applications must be aware of clock realtime being set
> backward. A simple example is a clock applet which arms a timer for
> the next minute display. If clock realtime is set backward then the
> applet displays a stale time for the amount of time which the clock
> was set backwards. Due to that applications poll the time because we
> don't have an interface.
>
> Extend the timerfd interface by adding a flag which puts the timer
> onto a different internal realtime clock. All timers on this clock are
> expired whenever the clock was set.
>
> The timerfd core records the monotonic offset when the timer is
> created. When the timer is armed, then the current offset is compared
> to the previous recorded offset. When it has changed, then
> timerfd_settime returns -ECANCELED. When a timer is read the offset is
> compared and if it changed -ECANCELED returned to user space. Periodic
> timers are not rearmed in the cancelation case.
> http://www.spinics.net/lists/linux-tip-commits/msg11814.html
Likely solution: in indicator-datetime/src/clock-live.cpp, move the
timerfd_create() call from LiveClock::Impl::Impl() to
LiveClock::Impl::reset_timer(), also adding a test to close() the
previous timer if it's not -1.
I will be able to start on this in ~10 hours when my jury duty is done
for the day. If this bug is deemed as supercritical, please feel free to
reclaim the ticket and fix it before then.
--
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to indicator-datetime in
Ubuntu.
https://bugs.launchpad.net/bugs/1424966
Title:
/usr/lib/arm-linux-gnueabihf/indicator-datetime/indicator-datetime-
service:5:reset_timer:unity::indicator::datetime::LiveClock::Impl::on_timerfd_cond:g_main_dispatch:g_main_context_dispatch:g_main_context_iterate
Status in the base for Ubuntu mobile products:
New
Status in indicator-datetime package in Ubuntu:
In Progress
Bug description:
It happened randomly but several time on RTM/krillin. According to
errors.u.c it started with 13.10.0+15.04.20150213.1-0ubuntu1 on vivid
and 13.10.0+15.04.20150213~rtm-0ubuntu1 on RTM.
[ Charles Kerr ]
* change the WallClock to detect time changes from
TFD_TIMER_CANCEL_ON_SET, e.g. when ntp<-->manual is toggled
The Ubuntu Error Tracker has been receiving reports about a problem regarding indicator-datetime. This problem was most recently seen with version 13.10.0+15.04.20150213.1-0ubuntu1, the problem page at https://errors.ubuntu.com/problem/3b8aefe51ab8eae0b64a89605ae01d5433da3000 contains more details.
current build number: 242
device name: krillin
channel: ubuntu-touch/ubuntu-rtm/14.09-proposed
last update: 2015-02-23 08:07:23
version version: 242
version ubuntu: 20150223
version device: 20150216-fe747ac
version custom: 20150216-561-29-186
Trace:
https://errors.ubuntu.com/bucket/?id=/usr/lib/arm-linux-gnueabihf/indicator-datetime/indicator-datetime-service%3A5%3Areset_timer%3Aunity%3A%3Aindicator%3A%3Adatetime%3A%3ALiveClock%3A%3AImpl%3A%3Aon_timerfd_cond%3Ag_main_dispatch%3Ag_main_context_dispatch%3Ag_main_context_iterate
To manage notifications about this bug go to:
https://bugs.launchpad.net/canonical-devices-system-image/+bug/1424966/+subscriptions
References