redshift fails to start geoclue provider after resuming network connection / hangs for 25s

Bug #1398805 reported by Daniel Hahler
14
This bug affects 3 people
Affects Status Importance Assigned to Milestone
geoclue (Ubuntu)
Confirmed
Undecided
Unassigned
redshift (Ubuntu)
Confirmed
Undecided
Unassigned

Bug Description

`redshift -l geoclue -p` hangs after resuming network operation.

This happens after resuming from hibernation, but can be reproduced by disabling and re-enabling the network via network-manager.

strace shows:

    sendmsg(3, {msg_name(0)=NULL, msg_iov(2)=[{"l\1\1\1\214\0\0\0\2\0\0\0\177\0\0\0\1\1o\0\25\0\0\0/org/freedesktop/DBus\0\0\0\6\1s\0\24\0\0\0org.freedesktop.DBus\0\0\0\0\2\1s\0\24\0\0\0org.freedesktop.DBus\0\0\0\0\3\1s\0\10\0\0\0AddMatch\0\0\0\0\0\0\0\0\10\1g\0\1s\0\0", 144}, {"\207\0\0\0type='signal',sender='org.freedesktop.Geoclue.Master',path='/org/freedesktop/Geoclue/Master',interface='org.freedesktop.Geoclue.Master'\0", 140}], msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL) = 284
    sendmsg(3, {msg_name(0)=NULL, msg_iov(2)=[{"l\1\1\1\256\0\0\0\3\0\0\0\177\0\0\0\1\1o\0\25\0\0\0/org/freedesktop/DBus\0\0\0\6\1s\0\24\0\0\0org.freedesktop.DBus\0\0\0\0\2\1s\0\24\0\0\0org.freedesktop.DBus\0\0\0\0\3\1s\0\10\0\0\0AddMatch\0\0\0\0\0\0\0\0\10\1g\0\1s\0\0", 144}, {"\251\0\0\0type='signal',sender='org.freedesktop.DBus',path='/org/freedesktop/DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged',arg0='org.freedesktop.Geoclue.Master'\0", 174}], msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL) = 318
    sendmsg(3, {msg_name(0)=NULL, msg_iov(2)=[{"l\1\0\1#\0\0\0\4\0\0\0\177\0\0\0\1\1o\0\25\0\0\0/org/freedesktop/DBus\0\0\0\6\1s\0\24\0\0\0org.freedesktop.DBus\0\0\0\0\2\1s\0\24\0\0\0org.freedesktop.DBus\0\0\0\0\3\1s\0\f\0\0\0GetNameOwner\0\0\0\0\10\1g\0\1s\0\0", 144}, {"\36\0\0\0org.freedesktop.Geoclue.Master\0", 35}], msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL) = 179
    sendmsg(3, {msg_name(0)=NULL, msg_iov(2)=[{"l\1\0\1\0\0\0\0\5\0\0\0\207\0\0\0\1\1o\0\37\0\0\0/org/freedesktop/Geoclue/Master\0\6\1s\0\36\0\0\0org.freedesktop.Geoclue.Master\0\0\2\1s\0\36\0\0\0org.freedesktop.Geoclue.Master\0\0\3\1s\0\6\0\0\0Create\0\0", 152}, {"", 0}], msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL) = 152
    poll([{fd=3, events=POLLIN}], 1, 25000) = 1 ([{fd=3, revents=POLLIN}])
    recvmsg(3, {msg_name(0)=NULL, msg_iov(1)=[{"l\2\1\1\n\0\0\0\3\0\0\0=\0\0\0\6\1s\0\6\0\0\0:1.411\0\0\5\1u\0\4\0\0\0\10\1g\0\1s\0\0\7\1s\0\24\0\0\0org.freedesktop.DBus\0\0\0\0\5\0\0\0:1.43\0", 2048}], msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_CMSG_CLOEXEC) = 90
    write(4, "\1\0\0\0\0\0\0\0", 8) = 8
    recvmsg(3, 0x7fffcd24f170, MSG_CMSG_CLOEXEC) = -1 EAGAIN (Resource temporarily unavailable)
    poll([{fd=3, events=POLLIN}], 1, 25000

    # Here it hangs

    ) = 0 (Timeout)
    open("/usr/lib/x86_64-linux-gnu/charset.alias", O_RDONLY) = -1 ENOENT (No such file or directory)
    fstat(2, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 56), ...}) = 0
    mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f3d2998c000
    write(2, "Unable to obtain master client: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.\n", 243Unable to obtain master client: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
    ) = 243
    open("/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 5
    fstat(5, {st_mode=S_IFREG|0644, st_size=2570, ...}) = 0
    mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f3d2998b000
    read(5, "# Locale name alias data base.\n# Copyright (C) 1996-2001,2003,2007 Free Software Foundation, Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2, or (at your option)\n# any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n\n# The format of this file is the same as for the corresponding file of\n# the X Window System, which normally can be found in\n#\t/usr/lib/X11/locale/locale.alias\n# A single line contains two fields: an alias and a substitution value.\n# All"..., 4096) = 2570
    read(5, "", 4096) = 0
    close(5) = 0
    munmap(0x7f3d2998b000, 4096) = 0
    open("/usr/share/locale/en_US/LC_MESSAGES/redshift.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
    open("/usr/share/locale/en/LC_MESSAGES/redshift.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
    open("/usr/share/locale-langpack/en_US/LC_MESSAGES/redshift.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
    open("/usr/share/locale-langpack/en/LC_MESSAGES/redshift.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
    write(2, "Failed to start provider geoclue.\n", 34Failed to start provider geoclue.
    ) = 34
    exit_group(1) = ?
    +++ exited with 1 +++

It appears to be related to DBus.

I've tried to find where the timeout could be defined, but without success - it would be probably somewhere in the geoclue package.

It would be nice if it would not fail to start / talk to the service, and in case it's unavoidable it should not use such a long timeout probably.

Also tested with redshift 1.9.1-4ubuntu1, and geoclue 0.12.99-4.

ProblemType: Bug
DistroRelease: Ubuntu 14.04
Package: redshift 1.8-0ubuntu6
ProcVersionSignature: Ubuntu 3.13.0-40.69-generic 3.13.11.10
Uname: Linux 3.13.0-40-generic x86_64
ApportVersion: 2.14.1-0ubuntu3.5
Architecture: amd64
CurrentDesktop: GNOME
Date: Wed Dec 3 13:18:14 2014
InstallationDate: Installed on 2012-05-28 (918 days ago)
InstallationMedia: Ubuntu 12.04 LTS "Precise Pangolin" - Release amd64 (20120425)
SourcePackage: redshift
UpgradeStatus: Upgraded to trusty on 2014-05-01 (215 days ago)

Revision history for this message
Daniel Hahler (blueyed) wrote :
Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in geoclue (Ubuntu):
status: New → Confirmed
Changed in redshift (Ubuntu):
status: New → Confirmed
Revision history for this message
Bryce Harrington (bryce) wrote :

This link suggests redshift may now require installing geoclue-2:
https://askubuntu.com/questions/752406/is-it-possible-to-workaround-the-redshift-geoclue-bug?rq=1

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.