I'm running ConnMan 1.19 over a hard-wired interface (eth0). Over this
interface I'm streaming music and sporadically the GStreamer pipeline
fails because souphttpsrc fails because it cannot connect to the
network. I monitored the routing table using:
ip monitor
and enabled ConnMan to dump debug messages to syslog. When my
streaming fails it seems to be due to the fact that ConnMan is
adding/deleting the same default route over-and-over again. Here's the
sample debug output:
Dec 11 16:51:27 localhost daemon.debug connmand[12867]:
src/dnsproxy.c:send_cached_response() sk 10 id 0xad06 answers 1 ptr
0xbd672 length 83 dns 83
Dec 11 16:51:30 localhost daemon.debug connmand[12867]:
src/rtnl.c:rtnl_message() buf 0x7edef978 len 52
Dec 11 16:51:30 localhost daemon.debug connmand[12867]:
src/rtnl.c:rtnl_message() DELROUTE len 52 type 25 flags 0x0000 seq 0
pid 0
Dec 11 16:51:30 localhost daemon.debug connmand[12867]:
src/ipconfig.c:__connman_ipconfig_delroute() index 2
Dec 11 16:51:30 localhost daemon.debug connmand[12867]:
src/service.c:service_route_changed() eth0 route changed
Dec 11 16:51:30 localhost daemon.debug connmand[12867]:
src/ipconfig.c:__connman_ipconfig_append_ipv4()
Dec 11 16:51:30 localhost daemon.debug connmand[12867]:
src/session.c:ipconfig_changed() service 0xb2bd8 ipconfig 0xa75d8
Dec 11 16:51:30 localhost daemon.info connmand[12867]: eth0 {del}
route 0.0.0.0 gw 192.168.120.1 scope 0 <UNIVERSE>
Dec 11 16:51:30 localhost daemon.debug connmand[12867]:
src/connection.c:connection_delgateway() index 2 gateway 192.168.120.1
Dec 11 16:51:30 localhost daemon.debug connmand[12867]:
src/connection.c:find_default_gateway() default 0xa7718 order 1
Dec 11 16:51:30 localhost daemon.debug connmand[12867]:
src/connection.c:set_default_gateway() type 0 gateway ipv4 0xa7738
ipv6 (nil)
Dec 11 16:51:30 localhost daemon.debug connmand[12867]:
src/inet.c:__connman_inet_rtnl_open() fd 25
Dec 11 16:51:30 localhost daemon.debug connmand[12867]:
src/inet.c:__connman_inet_rtnl_talk() handle 0x7edef2e8 len 44 err 44
Dec 11 16:51:30 localhost daemon.debug connmand[12867]:
src/inet.c:__connman_inet_rtnl_close() handle 0x7edef2e8
Dec 11 16:51:30 localhost daemon.debug connmand[12867]:
src/service.c:__connman_service_indicate_default() service 0xb2bd8
state online
Dec 11 16:51:30 localhost daemon.debug connmand[12867]:
src/rtnl.c:rtnl_message() buf 0x7edef978 len 52
Dec 11 16:51:30 localhost daemon.debug connmand[12867]:
src/rtnl.c:rtnl_message() NEWROUTE len 52 type 24 flags 0x0000 seq
1386777091 pid -46529
Dec 11 16:51:30 localhost daemon.debug connmand[12867]:
src/ipconfig.c:__connman_ipconfig_newroute() index 2
Dec 11 16:51:30 localhost daemon.debug connmand[12867]:
src/service.c:service_route_changed() eth0 route changed
Dec 11 16:51:30 localhost daemon.debug connmand[12867]:
src/ipconfig.c:__connman_ipconfig_append_ipv4()
Dec 11 16:51:30 localhost daemon.debug connmand[12867]:
src/session.c:ipconfig_changed() service 0xb2bd8 ipconfig 0xa75d8
Dec 11 16:51:30 localhost daemon.info connmand[12867]: eth0 {add}
route 0.0.0.0 gw 192.168.120.1 scope 0 <UNIVERSE>
Dec 11 16:51:30 localhost daemon.debug connmand[12867]:
src/connection.c:connection_newgateway() index 2 gateway 192.168.120.1
Dec 11 16:51:30 localhost daemon.debug connmand[12867]:
src/rtnl.c:rtnl_message() buf 0x7edef978 len 52
Dec 11 16:51:30 localhost daemon.debug connmand[12867]:
src/rtnl.c:rtnl_message() DELROUTE len 52 type 25 flags 0x0000 seq 0
pid 0
Dec 11 16:51:30 localhost daemon.debug connmand[12867]:
src/ipconfig.c:__connman_ipconfig_delroute() index 2
Dec 11 16:51:30 localhost daemon.debug connmand[12867]:
src/service.c:service_route_changed() eth0 route changed
Dec 11 16:51:30 localhost daemon.debug connmand[12867]:
src/ipconfig.c:__connman_ipconfig_append_ipv4()
Dec 11 16:51:30 localhost daemon.debug connmand[12867]:
src/session.c:ipconfig_changed() service 0xb2bd8 ipconfig 0xa75d8
. . . <This sequence can go on for 30-50 more times in succession
before a final "add" >
When ConnMan enters this mode it may add/remove the default route
numerous times before recovering. The "ip monitor" confirms this
behavior is causing my streaming to be very unpredictable and subject
to random failures because libsoup can't figure out how to route a
request (e.g the default route is gone for the period of time it tries
to make an HTTP request). Can someone tell me what might be causing
ConnMan to spew and periodically get stuck in this mode where it
thinks it has to add/remove the default route? What typically triggers
this behavior . . . e.g. under what conditions should ConnMan try to
add/remove the default route?
Thanks for any suggestions . . .
_______________________________________________
connman mailing list
[email protected]
https://lists.connman.net/mailman/listinfo/connman