GNOME Bugzilla – Bug 625632
webcal back end fails to contact server
Last modified: 2010-07-30 09:04:53 UTC
I'm publishing a calendar on a web server, and have configured Evolution to use an 'on the web' calendar at http://david.woodhou.se/whatever.ics This works fine when I'm at home, but I'm currently in a hotel with no IPv6 connectivity and I've noticed that it doesn't seem to work. Instead of following RFC3484 and falling back to Legacy IP, it seems to be aborting after failing to contact the IPv6 address of the server.
A strace (below) shows the problem -- it attempts to connect over IPv6, but never over Legacy IP. When we don't have IPv6 connectivity, glibc would return the Legacy IP address first in the getaddrinfo() results. However, Evolution has been running since I left home on Tuesday -- so perhaps libsoup cached the original getaddrinfo() results? That shouldn't hurt as long as we correctly fall back through the results rather than only using the first one. poll([{fd=3, events=POLLIN}, {fd=11, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN|POLLPRI}, {fd=16, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}, {fd=6, events=POLLIN}], 6, 1793992) = 1 ([{fd=6, revents=POLLIN}]) read(6, "l\1\0\1\0\0\0\0\v\3\0\0\247\0\0\0\1\1o\0001\0\0\0/org/gnome/evolution/dataserver/calendar/7662/146\0\0\0\0\0\0\0"..., 2048) = 184 read(6, 0x22f85d0, 2048) = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=3, events=POLLIN}, {fd=11, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN|POLLPRI}, {fd=16, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}, {fd=6, events=POLLIN}], 6, 0) = 0 (Timeout) writev(6, [{"l\2\1\1\0\0\0\0\334\34\2\0\30\0\0\0\6\1s\0\6\0\0\0:1.176\0\0\5\1u\0\v\3\0\0", 40}, {"", 0}], 2) = 40 poll([{fd=3, events=POLLIN}, {fd=11, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN|POLLPRI}, {fd=16, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}, {fd=6, events=POLLIN}], 6, 1000) = 0 (Timeout) poll([{fd=3, events=POLLIN}, {fd=11, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN|POLLPRI}, {fd=16, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}, {fd=6, events=POLLIN}], 6, 0) = 0 (Timeout) socket(PF_INET6, SOCK_STREAM, IPPROTO_IP) = 15 fcntl(15, F_GETFL) = 0x2 (flags O_RDWR) fcntl(15, F_SETFL, O_RDWR|O_NONBLOCK) = 0 fcntl(15, F_GETFD) = 0 fcntl(15, F_SETFD, FD_CLOEXEC) = 0 setsockopt(15, SOL_TCP, TCP_NODELAY, [1], 4) = 0 setsockopt(15, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0 setsockopt(15, SOL_SOCKET, SO_RCVTIMEO, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 setsockopt(15, SOL_SOCKET, SO_SNDTIMEO, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 fstat(15, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0 fcntl(15, F_GETFL) = 0x802 (flags O_RDWR|O_NONBLOCK) connect(15, {sa_family=AF_INET6, sin6_port=htons(80), inet_pton(AF_INET6, "2001:770:15f::2", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 ENETUNREACH (Network is unreachable) close(15) = 0 poll([{fd=3, events=POLLIN}, {fd=11, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN|POLLPRI}, {fd=16, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}, {fd=6, events=POLLIN}], 6, 0) = 0 (Timeout) poll([{fd=3, events=POLLIN}, {fd=11, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN|POLLPRI}, {fd=16, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}, {fd=6, events=POLLIN}], 6, 0) = 0 (Timeout) poll([{fd=3, events=POLLIN}, {fd=11, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN|POLLPRI}, {fd=16, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}, {fd=6, events=POLLIN}], 6, 6000) = 0 (Timeout) open("/home/dwmw2/.evolution/cache/calendar/webcal___david.woodhou.se_all.ics/calendar.ics~", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 15 fstat(15, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2b9c2b2000 write(15, "BEGIN:VCALENDAR\r\nCALSCALE:GREGORIAN\r\nPRODID:-//Ximian//NONSGML Evolution Calenda"..., 115) = 115 close(15) = 0 munmap(0x7f2b9c2b2000, 4096) = 0 rename("/home/dwmw2/.evolution/cache/calendar/webcal___david.woodhou.se_all.ics/calendar.ics~", "/home/dwmw2/.evolution/cache/calendar/webcal___david.woodhou.se_all.ics/calendar.ics") = 0 poll([{fd=3, events=POLLIN}, {fd=11, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN|POLLPRI}, {fd=16, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}, {fd=6, events=POLLIN}], 6, 1793989) = 1 ([{fd=6, revents=POLLIN}]) read(6, "l\4\1\1\35\0\0\0\4\2\0\0\211\0\0\0\1\1o\0\25\0\0\0/org/freedesktop/DBus\0\0\0\2\1s\0\24\0\0\0org.freedesktop.DBus\0\0\0\0"..., 2048) = 189 read(6, 0x22f85d0, 2048) = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=3, events=POLLIN}, {fd=11, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN|POLLPRI}, {fd=16, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}, {fd=6, events=POLLIN}], 6, 0) = 0 (Timeout) poll([{fd=3, events=POLLIN}, {fd=11, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN|POLLPRI}, {fd=16, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}, {fd=6, events=POLLIN}], 6, 1782461) = 1 ([{fd=6, revents=POLLIN}]) read(6, "l\4\1\1\35\0\0\0\5\2\0\0\211\0\0\0\1\1o\0\25\0\0\0/org/freedesktop/DBus\0\0\0\2\1s\0\24\0\0\0org.freedesktop.DBus\0\0\0\0"..., 2048) = 189 read(6, 0x22f85d0, 2048) = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=3, events=POLLIN}, {fd=11, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN|POLLPRI}, {fd=16, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}, {fd=6, events=POLLIN}], 6, 0) = 0 (Timeout) poll([{fd=3, events=POLLIN}, {fd=11, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN|POLLPRI}, {fd=16, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}, {fd=6, events=POLLIN}], 6, 1782459^C <unfinished ...> Process 7662 detached
yeah, longstanding lameness. maybe for 2.32 *** This bug has been marked as a duplicate of bug 526321 ***