Summary: | DBUS_COOKIE_SHA1 can't work between machines | ||
---|---|---|---|
Product: | dbus | Reporter: | djch-intel-bugs |
Component: | core | Assignee: | Havoc Pennington <hp> |
Status: | RESOLVED DUPLICATE | QA Contact: | John (J5) Palmieri <johnp> |
Severity: | normal | ||
Priority: | medium | CC: | lilydjwg |
Version: | 1.2.x | ||
Hardware: | x86 (IA32) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
djch-intel-bugs
2010-06-15 15:38:04 UTC
this was broken by 1c6596eb52fdf196705efe6c06dcd9fe8f836afc Date: Sun Dec 13 13:30:09 2009 -0800 Use monotonic clock for _dbus_get_current_time() if it's available. _dbus_get_current_time() is used for timeouts, but uses gettimeofday(), whic relies on the wall clock time, which can change. If the time is changed forw or backwards, the timeouts are no longer valid, so the monotonic clock must https://bugs.freedesktop.org/show_bug.cgi?id=25624 I think uuid generation should use wall clock time, in addition to the keyring timestamp. I'd suggest just having _dbus_get_monotonic_time()/get_timestamp()/something separate from current_time() instead of cramming them into one function. get_monotonic_time() can return current_time() when monotonic is unavailable. Tried a quick hack - change CLOCK_MONOTONIC to CLOCK_REALTIME in dbus-sysdeps-unix.c (only) Now works fine between machines using cookie_sha1 and shared keyring. Next step is a proper patch to separate the inter-machine timestamps from the local - I may have removed monotonic where I didn't need to... Thanks This was probably Bug #48580. *** This bug has been marked as a duplicate of bug 48580 *** |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.