On Thu, Apr 30, 2015 at 3:34 PM Adam Moore <[email protected]> wrote:

> On Thu, Apr 30, 2015 at 3:48 AM, Patrik Flykt
> <[email protected]> wrote:
> >
> >         Hi,
> >
> > On Wed, 2015-04-29 at 12:57 -0700, Adam Moore wrote:
> >> On Mon, Apr 27, 2015 at 8:26 AM, Olivier Pinel (opinel)
> >> <[email protected]> wrote:
> >> > Hello,
> >> >
> >> > I am facing a random issue with NTP time setup when conman starts.
> >> > I am using conman 1.27  (will try to reproduce with 1.29 tomorrow)
> with a single ethernet connection.
> >> >
> >> > From my first investigation (I am quite new to conman code), I think
> there is a race condition. In the failing case, it seems that DHCP response
> is parsed after ethernet service goes to ready so timeservers are set but
> timeserver_start has already been called and will not be again until a new
> state changed.
> >> >
> >> > I've managed to catch attached traces where there is one success and
> one failure.
> >> > Could you please have a look and tell me if my understanding is
> correct?
> >> > If so don’t we need to add a restart of time setup at each
> modification of timeservers list?
> >>
> >> Hi Olivier,
> >>
> >> I'm experiencing a similar issue using Connman 1.28.  I have a device
> >> running connman, a switch, and a network with a DHCP server.  If I
> >> attach my device to the switch first, I will get a link local address
> >> and a transition to the "ready" state for the ethernet service.  Then,
> >> if I attach the switch to the network, connman handles the dhcp lease,
> >> but no transition out of the ready state takes place, and thus no
> >> Wispr/online check, and thus no state change handling processing (such
> >> as NTP) occurs.
> >>
> >> Though my scenario is fairly controlled, this is a problem during a
> >> power outage, where a device and switch power up before a DHCP server
> >> is available.
> >>
> >> I'm still a newbie to the connman code too, but it seems like both of
> >> our problems would be solved if the state change processing (or just a
> >> timeserver sync) that occurs upon entry to the ready or online state
> >> is performed after each dhcp lease, though it might be tricky to do
> >> this cleanly since the handling code is suppressed if there is a state
> >> transition from a state to itself.
> >>
> >> Any advice on what would be appropriate to do here would be appreciated.
> >
> > Thanks for the investigations! See if the patch on the mailing list
> > fixes your issues.
>
> Thanks Patrik!
>
> I tried this, but it didn't have an effect in my scenario - after
> adding some logging I confirmed I'm falling out of
> __connman_service_ipconfig_indicate_state where it returns EALREADY
> because the new state matched the old state - in my case both were
> READY, so I never make it to the new call.
>
> Ill keep playing to see if I can put the timeserver sync call
> somewhere else or possibly not return early in the READY case.
>
Adam
>

Got something working which performs the sync and results into a transition
into the online state, so I'll prepare a couple of patches for review which
you can use if you like.


>
> >
> > Cheers,
> >
> >         Patrik
> >
> > _______________________________________________
> > connman mailing list
> > [email protected]
> > https://lists.connman.net/mailman/listinfo/connman
>
_______________________________________________
connman mailing list
[email protected]
https://lists.connman.net/mailman/listinfo/connman

Reply via email to