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

Bug #1398805 reported by Daniel Hahler on 2014-12-03
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
geoclue (Ubuntu)
Undecided
Unassigned
redshift (Ubuntu)
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)

Daniel Hahler (blueyed) wrote :
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers