network-manager using 70%+ CPU on Nexus 4

Bug #1206405 reported by Steve Langasek
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
network-manager (Ubuntu)
Expired
High
Unassigned
Saucy
Won't Fix
High
Unassigned

Bug Description

This morning after moving around between multiple buildings / wireless domains, NM is now using 70%+ CPU on my Nexus 4 (mako). I noticed this because the UI was being very slow to respond.

  PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
  958 root 20 0 104m 71m 4380 R 99.4 3.8 703:52.27 NetworkManager

strace doesn't show much interesting, so most of the CPU time seems to be spent in userspace.

# strace -ff -p 958
Process 958 attached with 4 threads
[pid 1230] restart_syscall(<... resuming interrupted call ...> <unfinished ...>
[pid 1065] restart_syscall(<... resuming interrupted call ...> <unfinished ...>
[pid 960] rt_sigtimedwait([HUP INT TERM], NULL, NULL, 8 <unfinished ...>
[pid 958] gettimeofday({69007, 423546}, NULL) = 0
[pid 958] gettimeofday({69007, 423759}, NULL) = 0
[pid 958] gettimeofday({69007, 424004}, NULL) = 0
[pid 958] gettimeofday({69007, 424217}, NULL) = 0
[pid 958] gettimeofday({69007, 424492}, NULL) = 0
[pid 958] gettimeofday({69007, 424706}, NULL) = 0
[pid 958] gettimeofday({69007, 424919}, NULL) = 0
[pid 958] gettimeofday({69007, 425133}, NULL) = 0
[pid 958] gettimeofday({69007, 425407}, NULL) = 0
[pid 958] gettimeofday({69007, 425591}, NULL) = 0
[pid 958] gettimeofday({69007, 425804}, NULL) = 0
[pid 958] gettimeofday({69007, 426018}, NULL) = 0
[pid 958] gettimeofday({69007, 426293}, NULL) = 0
[pid 958] gettimeofday({69007, 426476}, NULL) = 0
[pid 958] gettimeofday({69007, 426720}, NULL) = 0
[pid 958] gettimeofday({69007, 426934}, NULL) = 0
[pid 958] gettimeofday({69007, 427178}, NULL) = 0
[pid 958] gettimeofday({69007, 427391}, NULL) = 0
[pid 958] gettimeofday({69007, 427635}, NULL) = 0
[pid 958] gettimeofday({69007, 427819}, NULL) = 0
[pid 958] gettimeofday({69007, 428124}, NULL) = 0
[pid 958] gettimeofday({69007, 428368}, NULL) = 0
[pid 958] gettimeofday({69007, 428612}, NULL) = 0
[pid 958] gettimeofday({69007, 428887}, NULL) = 0
[pid 958] gettimeofday({69007, 429131}, NULL) = 0
[pid 958] gettimeofday({69007, 429375}, NULL) = 0
[pid 958] gettimeofday({69007, 429650}, NULL) = 0
[pid 958] gettimeofday({69007, 429863}, NULL) = 0
[pid 958] gettimeofday({69007, 430138}, NULL) = 0
[pid 958] gettimeofday({69007, 430443}, NULL) = 0
[pid 958] gettimeofday({69007, 430657}, NULL) = 0
[pid 958] gettimeofday({69007, 430901}, NULL) = 0
[pid 958] gettimeofday({69007, 431206}, NULL) = 0
[pid 958] gettimeofday({69007, 431451}, NULL) = 0
[pid 958] gettimeofday({69007, 431664}, NULL) = 0
[pid 958] gettimeofday({69007, 431939}, NULL) = 0
[pid 958] gettimeofday({69007, 432214}, NULL) = 0
[pid 958] gettimeofday({69007, 432458}, NULL) = 0
[pid 958] gettimeofday({69007, 432702}, NULL) = 0
[pid 958] gettimeofday({69007, 433007}, NULL) = 0
[pid 958] gettimeofday({69007, 433221}, NULL) = 0
[pid 958] gettimeofday({69007, 433465}, NULL) = 0
[pid 958] gettimeofday({69007, 433740}, NULL) = 0
[pid 958] gettimeofday({69007, 433984}, NULL) = 0
[pid 958] gettimeofday({69007, 434228}, NULL) = 0
[pid 958] gettimeofday({69007, 434503}, NULL) = 0
[pid 958] gettimeofday({69007, 434747}, NULL) = 0
[pid 958] gettimeofday({69007, 434991}, NULL) = 0
[pid 958] gettimeofday({69007, 435266}, NULL) = 0
[pid 958] gettimeofday({69007, 435479}, NULL) = 0
[pid 958] gettimeofday({69007, 435754}, NULL) = 0
[pid 958] gettimeofday({69007, 436029}, NULL) = 0
[pid 958] gettimeofday({69007, 436273}, NULL) = 0
[pid 958] gettimeofday({69007, 436517}, NULL) = 0
[pid 958] gettimeofday({69007, 436792}, NULL) = 0
[pid 958] gettimeofday({69007, 437036}, NULL) = 0
[pid 958] gettimeofday({69007, 437280}, NULL) = 0
[pid 958] gettimeofday({69007, 437555}, NULL) = 0
[pid 958] gettimeofday({69007, 437799}, NULL) = 0
[pid 958] gettimeofday({69007, 438043}, NULL) = 0
[pid 958] gettimeofday({69007, 438318}, NULL) = 0
[pid 958] gettimeofday({69007, 438562}, NULL) = 0
[pid 958] gettimeofday({69007, 438867}, NULL) = 0
[pid 958] gettimeofday({69007, 439081}, NULL) = 0
[pid 958] gettimeofday({69007, 439325}, NULL) = 0
[pid 958] gettimeofday({69007, 439630}, NULL) = 0
[pid 958] gettimeofday({69007, 439844}, NULL) = 0
[pid 958] gettimeofday({69007, 440118}, NULL) = 0
[pid 958] gettimeofday({69007, 440393}, NULL) = 0
[pid 958] gettimeofday({69007, 440607}, NULL) = 0
[pid 958] gettimeofday({69007, 440881}, NULL) = 0
[pid 958] gettimeofday({69007, 441156}, NULL) = 0
[pid 958] gettimeofday({69007, 441400}, NULL) = 0
[pid 958] gettimeofday({69007, 442072}, NULL) = 0
[pid 958] gettimeofday({69007, 442316}, NULL) = 0
[pid 958] gettimeofday({69007, 442560}, NULL) = 0
[pid 958] gettimeofday({69007, 442835}, NULL) = 0
[pid 958] gettimeofday({69007, 443109}, NULL) = 0
[pid 958] gettimeofday({69007, 443323}, NULL) = 0
[pid 958] gettimeofday({69007, 443628}, NULL) = 0
[pid 958] gettimeofday({69007, 443872}, NULL) = 0
[pid 958] gettimeofday({69007, 444178}, NULL) = 0
[pid 958] gettimeofday({69007, 444391}, NULL) = 0
[pid 958] gettimeofday({69007, 444635}, NULL) = 0
[pid 958] gettimeofday({69007, 444941}, NULL) = 0
[pid 958] gettimeofday({69007, 445154}, NULL) = 0
[pid 958] gettimeofday({69007, 445398}, NULL) = 0
[pid 958] gettimeofday({69007, 445704}, NULL) = 0
[pid 958] gettimeofday({69007, 445917}, NULL) = 0
[pid 958] gettimeofday({69007, 446161}, NULL) = 0
[pid 958] gettimeofday({69007, 446467}, NULL) = 0
[pid 958] gettimeofday({69007, 446680}, NULL) = 0
[pid 958] gettimeofday({69007, 446924}, NULL) = 0
[pid 958] gettimeofday({69007, 447230}, NULL) = 0
[pid 958] gettimeofday({69007, 447474}, NULL) = 0
[pid 958] gettimeofday({69007, 447687}, NULL) = 0
[pid 958] gettimeofday({69007, 447993}, NULL) = 0
[pid 958] gettimeofday({69007, 448237}, NULL) = 0
[pid 958] gettimeofday({69007, 448450}, NULL) = 0
[pid 958] gettimeofday({69007, 448756}, NULL) = 0
[pid 958] gettimeofday({69007, 449000}, NULL) = 0
[pid 958] gettimeofday({69007, 449244}, NULL) = 0
[pid 958] gettimeofday({69007, 449519}, NULL) = 0
[pid 958] gettimeofday({69007, 449763}, NULL) = 0
[pid 958] gettimeofday({69007, 450007}, NULL) = 0
[pid 958] gettimeofday({69007, 450282}, NULL) = 0
[pid 958] gettimeofday({69007, 450495}, NULL) = 0
[pid 958] gettimeofday({69007, 450739}, NULL) = 0
[pid 958] gettimeofday({69007, 451014}, NULL) = 0
[pid 958] gettimeofday({69007, 451228}, NULL) = 0
[pid 958] gettimeofday({69007, 451502}, NULL) = 0
[pid 958] gettimeofday({69007, 451747}, NULL) = 0
[pid 958] gettimeofday({69007, 451960}, NULL) = 0
[pid 958] gettimeofday({69007, 452754}, NULL) = 0
[pid 958] gettimeofday({69007, 452998}, NULL) = 0
[pid 958] gettimeofday({69007, 453242}, NULL) = 0
[pid 958] gettimeofday({69007, 453456}, NULL) = 0
[pid 958] gettimeofday({69007, 453700}, NULL) = 0
[pid 958] gettimeofday({69007, 453975}, NULL) = 0
[pid 958] gettimeofday({69007, 454188}, NULL) = 0
[pid 958] gettimeofday({69007, 454463}, NULL) = 0
[pid 958] gettimeofday({69007, 454707}, NULL) = 0
[pid 958] gettimeofday({69007, 454921}, NULL) = 0
[pid 958] gettimeofday({69007, 455165}, NULL) = 0
[pid 958] gettimeofday({69007, 455440}, NULL) = 0
[pid 958] gettimeofday({69007, 455653}, NULL) = 0
[pid 958] gettimeofday({69007, 455897}, NULL) = 0
[pid 958] gettimeofday({69007, 456172}, NULL) = 0
[pid 958] gettimeofday({69007, 456386}, NULL) = 0
[pid 958] gettimeofday({69007, 456630}, NULL) = 0
[pid 958] gettimeofday({69007, 456905}, NULL) = 0
[pid 958] gettimeofday({69007, 457118}, NULL) = 0
[pid 958] gettimeofday({69007, 457362}, NULL) = 0
[pid 958] gettimeofday({69007, 457637}, NULL) = 0
[pid 958] gettimeofday({69007, 457881}, NULL) = 0
[pid 958] gettimeofday({69007, 458125}, NULL) = 0
[pid 958] gettimeofday({69007, 458339}, NULL) = 0
[pid 958] gettimeofday({69007, 458583}, NULL) = 0
[pid 958] gettimeofday({69007, 458858}, NULL) = 0
[pid 958] gettimeofday({69007, 459071}, NULL) = 0
[pid 958] gettimeofday({69007, 459316}, NULL) = 0
[pid 958] gettimeofday({69007, 459590}, NULL) = 0
[pid 958] gettimeofday({69007, 459804}, NULL) = 0
[pid 958] gettimeofday({69007, 460018}, NULL) = 0
[pid 958] gettimeofday({69007, 460231}, NULL) = 0
[pid 958] gettimeofday({69007, 460506}, NULL) = 0
[pid 958] gettimeofday({69007, 460720}, NULL) = 0
[pid 958] gettimeofday({69007, 460964}, NULL) = 0
[pid 958] gettimeofday({69007, 461238}, NULL) = 0
[pid 958] gettimeofday({69007, 461483}, NULL) = 0
[pid 958] gettimeofday({69007, 461727}, NULL) = 0
[pid 958] gettimeofday({69007, 461971}, NULL) = 0
[pid 958] gettimeofday({69007, 462185}, NULL) = 0
[pid 958] gettimeofday({69007, 462429}, NULL) = 0
[pid 958] gettimeofday({69007, 462703}, NULL) = 0
[pid 958] gettimeofday({69007, 462917}, NULL) = 0
[pid 958] gettimeofday({69007, 463161}, NULL) = 0
[pid 958] gettimeofday({69007, 463436}, NULL) = 0
[pid 958] gettimeofday({69007, 463619}, NULL) = 0
[pid 958] gettimeofday({69007, 463863}, NULL) = 0
[pid 958] gettimeofday({69007, 464138}, NULL) = 0
[pid 958] gettimeofday({69007, 464351}, NULL) = 0
[pid 958] gettimeofday({69007, 464596}, NULL) = 0
[pid 958] gettimeofday({69007, 464870}, NULL) = 0
[pid 958] gettimeofday({69007, 465053}, NULL) = 0
[pid 958] gettimeofday({69007, 465298}, NULL) = 0
[pid 958] gettimeofday({69007, 465572}, NULL) = 0
[pid 958] gettimeofday({69007, 465786}, NULL) = 0
[pid 958] gettimeofday({69007, 466030}, NULL) = 0
[pid 958] gettimeofday({69007, 466305}, NULL) = 0
[pid 958] gettimeofday({69007, 466488}, NULL) = 0
[pid 958] gettimeofday({69007, 466732}, NULL) = 0
[pid 958] gettimeofday({69007, 467007}, NULL) = 0
[pid 958] gettimeofday({69007, 467220}, NULL) = 0
[pid 958] gettimeofday({69007, 467465}, NULL) = 0
[pid 958] gettimeofday({69007, 467739}, NULL) = 0
[pid 958] gettimeofday({69007, 467922}, NULL) = 0
[pid 958] gettimeofday({69007, 468197}, NULL) = 0
[pid 958] gettimeofday({69007, 468441}, NULL) = 0
[pid 958] gettimeofday({69007, 468655}, NULL) = 0
[pid 958] gettimeofday({69007, 468899}, NULL) = 0
[pid 958] gettimeofday({69007, 469174}, NULL) = 0
[pid 958] gettimeofday({69007, 469357}, NULL) = 0
[pid 958] gettimeofday({69007, 469632}, NULL) = 0
[pid 958] gettimeofday({69007, 469876}, NULL) = 0
[pid 958] gettimeofday({69007, 470089}, NULL) = 0
[pid 958] gettimeofday({69007, 470303}, NULL) = 0
[pid 958] gettimeofday({69007, 470547}, NULL) = 0
[pid 958] gettimeofday({69007, 470791}, NULL) = 0
[pid 958] gettimeofday({69007, 471035}, NULL) = 0
[pid 958] gettimeofday({69007, 471249}, NULL) = 0
[pid 958] gettimeofday({69007, 471554}, NULL) = 0
[pid 958] gettimeofday({69007, 471768}, NULL) = 0
[pid 958] gettimeofday({69007, 471982}, NULL) = 0
[pid 958] gettimeofday({69007, 472256}, NULL) = 0
[pid 958] gettimeofday({69007, 472470}, NULL) = 0
[pid 958] gettimeofday({69007, 472714}, NULL) = 0
[pid 958] gettimeofday({69007, 472989}, NULL) = 0
[pid 958] gettimeofday({69007, 473172}, NULL) = 0
[pid 958] gettimeofday({69007, 473447}, NULL) = 0
[pid 958] gettimeofday({69007, 473721}, NULL) = 0
[pid 958] gettimeofday({69007, 473904}, NULL) = 0
[pid 958] gettimeofday({69007, 474149}, NULL) = 0
[pid 958] gettimeofday({69007, 474362}, NULL) = 0
[pid 958] gettimeofday({69007, 474637}, NULL) = 0
[pid 958] gettimeofday({69007, 474881}, NULL) = 0
[pid 958] gettimeofday({69007, 475095}, NULL) = 0
[pid 958] gettimeofday({69007, 475369}, NULL) = 0
[pid 958] gettimeofday({69007, 475614}, NULL) = 0
[pid 958] gettimeofday({69007, 475827}, NULL) = 0
[pid 958] gettimeofday({69007, 476071}, NULL) = 0
[pid 958] gettimeofday({69007, 476315}, NULL) = 0
[pid 958] gettimeofday({69007, 476529}, NULL) = 0
[pid 958] gettimeofday({69007, 476743}, NULL) = 0
[pid 958] gettimeofday({69007, 477017}, NULL) = 0
[pid 958] gettimeofday({69007, 477262}, NULL) = 0
[pid 958] gettimeofday({69007, 477536}, NULL) = 0
[pid 958] gettimeofday({69007, 477719}, NULL) = 0
[pid 958] gettimeofday({69007, 477994}, NULL) = 0
[pid 958] gettimeofday({69007, 478269}, NULL) = 0
[pid 958] gettimeofday({69007, 478452}, NULL) = 0
[pid 958] gettimeofday({69007, 478696}, NULL) = 0
[pid 958] gettimeofday({69007, 478910}, NULL) = 0
[pid 958] gettimeofday({69007, 479184}, NULL) = 0
[pid 958] gettimeofday({69007, 479398}, NULL) = 0
[pid 958] gettimeofday({69007, 479612}, NULL) = 0
[pid 958] gettimeofday({69007, 479856}, NULL) = 0
[pid 958] gettimeofday({69007, 480131}, NULL) = 0
[pid 958] gettimeofday({69007, 480344}, NULL) = 0
[pid 958] gettimeofday({69007, 480588}, NULL) = 0
[pid 958] gettimeofday({69007, 480863}, NULL) = 0
[pid 958] gettimeofday({69007, 481077}, NULL) = 0
[pid 958] gettimeofday({69007, 481321}, NULL) = 0
[pid 958] gettimeofday({69007, 481596}, NULL) = 0
[pid 958] gettimeofday({69007, 481840}, NULL) = 0
[pid 958] gettimeofday({69007, 482053}, NULL) = 0
[pid 958] gettimeofday({69007, 482328}, NULL) = 0
[pid 958] gettimeofday({69007, 482511}, NULL) = 0
[pid 958] gettimeofday({69007, 482755}, NULL) = 0
[pid 958] gettimeofday({69007, 482969}, NULL) = 0
[pid 958] gettimeofday({69007, 483244}, NULL) = 0
[pid 958] gettimeofday({69007, 483457}, NULL) = 0
[pid 958] gettimeofday({69007, 483701}, NULL) = 0
[pid 958] gettimeofday({69007, 483976}, NULL) = 0
[pid 958] gettimeofday({69007, 484190}, NULL) = 0
[pid 958] gettimeofday({69007, 484434}, NULL) = 0
[pid 958] gettimeofday({69007, 484709}, NULL) = 0
[pid 958] gettimeofday({69007, 484892}, NULL) = 0
[pid 958] gettimeofday({69007, 485166}, NULL) = 0
[pid 958] gettimeofday({69007, 485380}, NULL) = 0
[pid 958] gettimeofday({69007, 485624}, NULL) = 0
[pid 958] gettimeofday({69007, 485868}, NULL) = 0
[pid 958] gettimeofday({69007, 486113}, NULL) = 0
[pid 958] gettimeofday({69007, 486357}, NULL) = 0
[pid 958] gettimeofday({69007, 486570}, NULL) = 0
[pid 958] gettimeofday({69007, 486814}, NULL) = 0
[pid 958] gettimeofday({69007, 487059}, NULL) = 0
[pid 958] gettimeofday({69007, 487303}, NULL) = 0
[pid 958] gettimeofday({69007, 487516}, NULL) = 0
[pid 958] gettimeofday({69007, 487791}, NULL) = 0
[pid 958] gettimeofday({69007, 488035}, NULL) = 0
[pid 958] gettimeofday({69007, 488249}, NULL) = 0
[pid 958] gettimeofday({69007, 488524}, NULL) = 0
[pid 958] gettimeofday({69007, 488737}, NULL) = 0
[pid 958] gettimeofday({69007, 488981}, NULL) = 0
[pid 958] gettimeofday({69007, 489256}, NULL) = 0
[pid 958] gettimeofday({69007, 489470}, NULL) = 0
[pid 958] gettimeofday({69007, 489714}, NULL) = 0
[pid 958] gettimeofday({69007, 489989}, NULL) = 0
[pid 958] gettimeofday({69007, 490172}, NULL) = 0
[pid 958] gettimeofday({69007, 490446}, NULL) = 0
[pid 958] gettimeofday({69007, 490721}, NULL) = 0
[pid 958] gettimeofday({69007, 490904}, NULL) = 0
[pid 958] gettimeofday({69007, 491148}, NULL) = 0
[pid 958] gettimeofday({69007, 492552}, NULL) = 0
[pid 958] gettimeofday({69007, 492766}, NULL) = 0
[pid 958] gettimeofday({69007, 493041}, NULL) = 0
[pid 958] gettimeofday({69007, 493315}, NULL) = 0
[pid 958] gettimeofday({69007, 493498}, NULL) = 0
[pid 958] gettimeofday({69007, 493743}, NULL) = 0
[pid 958] gettimeofday({69007, 494017}, NULL) = 0
[pid 958] gettimeofday({69007, 494231}, NULL) = 0
[pid 958] gettimeofday({69007, 494445}, NULL) = 0
[pid 958] gettimeofday({69007, 494689}, NULL) = 0
[pid 958] gettimeofday({69007, 494933}, NULL) = 0
[pid 958] gettimeofday({69007, 495177}, NULL) = 0
[pid 958] gettimeofday({69007, 495391}, NULL) = 0
[pid 958] gettimeofday({69007, 495665}, NULL) = 0
[pid 958] gettimeofday({69007, 495879}, NULL) = 0
[pid 958] gettimeofday({69007, 496123}, NULL) = 0
[pid 958] gettimeofday({69007, 496398}, NULL) = 0
[pid 958] gettimeofday({69007, 496612}, NULL) = 0
[pid 958] gettimeofday({69007, 496856}, NULL) = 0
[pid 958] gettimeofday({69007, 497130}, NULL) = 0
[pid 958] gettimeofday({69007, 497313}, NULL) = 0
[pid 958] gettimeofday({69007, 497558}, NULL) = 0
[pid 958] gettimeofday({69007, 497832}, NULL) = 0
[pid 958] gettimeofday({69007, 498046}, NULL) = 0
[pid 958] gettimeofday({69007, 498290}, NULL) = 0
[pid 958] gettimeofday({69007, 498565}, NULL) = 0
[pid 958] gettimeofday({69007, 498748}, NULL) = 0
[pid 958] gettimeofday({69007, 498992}, NULL) = 0
[pid 958] gettimeofday({69007, 499297}, NULL) = 0
[pid 958] gettimeofday({69007, 499511}, NULL) = 0
[pid 958] gettimeofday({69007, 499786}, NULL) = 0
[pid 958] gettimeofday({69007, 500060}, NULL) = 0
[pid 958] gettimeofday({69007, 500304}, NULL) = 0
[pid 958] gettimeofday({69007, 500549}, NULL) = 0
[pid 958] gettimeofday({69007, 500854}, NULL) = 0
[pid 958] gettimeofday({69007, 501098}, NULL) = 0
[pid 958] gettimeofday({69007, 501312}, NULL) = 0
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] recvmsg(7, {msg_name(0)=NULL, msg_iov(1)=[{"l\4\1\1 \0\0\0\23\200\0\0\211\0\0\0\1\1o\0\25\0\0\0/org/fre"..., 2048}], msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_CMSG_CLOEXEC) = 2048
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] recvmsg(7, {msg_name(0)=NULL, msg_iov(1)=[{"\1b\0\0\0\0\0\0\0\0\0\0\10\0\0\0Lockdown\0\1b\0\0\0\0\0"..., 2048}], msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_CMSG_CLOEXEC) = 2048
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] inotify_add_watch(8, "/lib/firmware", IN_MODIFY|IN_ATTRIB|IN_CLOSE_WRITE|IN_MOVED_FROM|IN_MOVED_TO|IN_CREATE|IN_DELETE|IN_DELETE_SELF|IN_MOVE_SELF|IN_UNMOUNT|IN_ONLYDIR) = -1 ENOENT (No such file or directory)
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] recvmsg(15, {msg_name(12)={sa_family=AF_NETLINK, pid=567, groups=00000002}, msg_iov(1)=[{"libudev\0\376\355\312\376(\0\0\0(\0\0\0\270\0\0\0uu\24\310\0\0\0\0"..., 8192}], msg_controllen=24, {cmsg_len=24, cmsg_level=SOL_SOCKET, cmsg_type=SCM_CREDENTIALS{pid=25529, uid=0, gid=0}}, msg_flags=0}, 0) = 224
[pid 958] stat64("/sys/subsystem/rfkill/devices/rfkill0", 0xbea71f90) = -1 ENOENT (No such file or directory)
[pid 958] stat64("/sys/bus/rfkill/devices/rfkill0", 0xbea71f90) = -1 ENOENT (No such file or directory)
[pid 958] stat64("/sys/class/rfkill/rfkill0", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
[pid 958] readlink("/sys/class/rfkill/rfkill0", "../../devices/platform/wcnss_wla"..., 1024) = 58
[pid 958] stat64("/sys/devices/platform/wcnss_wlan.0/ieee80211/phy0/rfkill0/uevent", {st_mode=S_IFREG|0644, st_size=4096, ...}) = 0
[pid 958] open("/sys/devices/platform/wcnss_wlan.0/ieee80211/phy0/rfkill0/uevent", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 20
[pid 958] fstat64(20, {st_mode=S_IFREG|0644, st_size=4096, ...}) = 0
[pid 958] mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x43d05000
[pid 958] read(20, "RFKILL_NAME=phy0\nRFKILL_TYPE=wla"..., 4096) = 49
[pid 958] read(20, "", 4096) = 0
[pid 958] close(20) = 0
[pid 958] munmap(0x43d05000, 4096) = 0
[pid 958] readlink("/sys/devices/platform/wcnss_wlan.0/ieee80211/phy0/rfkill0/subsystem", "../../../../../../class/rfkill", 1024) = 30
[pid 958] open("/run/udev/data/+rfkill:rfkill0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] sendmsg(18, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\34\0\0\0\21\0\5\3>'\0\0\276\3\200\0 \0\0\0\10\0\3\0\r\0\0\0", 28}], msg_controllen=0, msg_flags=0}, 0) = 28
[pid 958] recvmsg(18, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"x\1\0\0\21\0\2\0>'\0\0\276\3\200\0\"\1\0\0\10\0.\0\346\6\0\0\10\0\3\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 376
[pid 958] recvmsg(18, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\24\0\0\0\3\0\2\0>'\0\0\276\3\200\0\0\0\0\0", 4096}], msg_controllen=0, msg_flags=0}, 0) = 20
[pid 958] sendmsg(18, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\34\0\0\0\21\0\5\3?'\0\0\276\3\200\0 \0\0\0\10\0\3\0\r\0\0\0", 28}], msg_controllen=0, msg_flags=0}, 0) = 28
[pid 958] recvmsg(18, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"x\1\0\0\21\0\2\0?'\0\0\276\3\200\0\"\1\0\0\10\0.\0\346\6\0\0\10\0\3\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 376
[pid 958] recvmsg(18, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\24\0\0\0\3\0\2\0?'\0\0\276\3\200\0\0\0\0\0", 4096}], msg_controllen=0, msg_flags=0}, 0) = 20
[pid 958] sendmsg(18, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\34\0\0\0\21\0\5\0@'\0\0\276\3\200\0\5\0\0\0\10\0\3\0\r\0\0\0", 28}], msg_controllen=0, msg_flags=0}, 0) = 28
[pid 958] recvmsg(18, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"@\0\0\0\21\0\0\0@'\0\0\276\3\200\0\7\1\0\0\10\0\3\0\r\0\0\0\10\0\1\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 64
[pid 958] recvmsg(18, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"$\0\0\0\2\0\0\0@'\0\0\276\3\200\0\0\0\0\0\34\0\0\0\21\0\5\0@'\0\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 36
[pid 958] sendmsg(18, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\34\0\0\0\21\0\5\3A'\0\0\276\3\200\0 \0\0\0\10\0\3\0\r\0\0\0", 28}], msg_controllen=0, msg_flags=0}, 0) = 28
[pid 958] recvmsg(18, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"x\1\0\0\21\0\2\0A'\0\0\276\3\200\0\"\1\0\0\10\0.\0\346\6\0\0\10\0\3\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 376
[pid 958] recvmsg(18, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\24\0\0\0\3\0\2\0A'\0\0\276\3\200\0\0\0\0\0", 4096}], msg_controllen=0, msg_flags=0}, 0) = 20
[pid 958] sendmsg(18, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\34\0\0\0\21\0\5\3B'\0\0\276\3\200\0 \0\0\0\10\0\3\0\r\0\0\0", 28}], msg_controllen=0, msg_flags=0}, 0) = 28
[pid 958] recvmsg(18, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"x\1\0\0\21\0\2\0B'\0\0\276\3\200\0\"\1\0\0\10\0.\0\346\6\0\0\10\0\3\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 376
[pid 958] recvmsg(18, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\24\0\0\0\3\0\2\0B'\0\0\276\3\200\0\0\0\0\0", 4096}], msg_controllen=0, msg_flags=0}, 0) = 20
[pid 958] sendmsg(18, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"(\0\0\0\21\0\5\0C'\0\0\276\3\200\0\21\0\0\0\10\0\3\0\r\0\0\0\n\0\6\0"..., 40}], msg_controllen=0, msg_flags=0}, 0) = 40
[pid 958] recvmsg(18, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"h\0\0\0\21\0\0\0C'\0\0\276\3\200\0\23\1\0\0\10\0\3\0\r\0\0\0\n\0\6\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 104
[pid 958] recvmsg(18, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"$\0\0\0\2\0\0\0C'\0\0\276\3\200\0\0\0\0\0(\0\0\0\21\0\5\0C'\0\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 36
[pid 958] clock_gettime(CLOCK_MONOTONIC, {45635, 604445677}) = 0
[pid 958] sendmsg(7, {msg_name(0)=NULL, msg_iov(2)=[{"l\1\0\1\37\0\0\0\252\365\1\0\223\0\0\0\1\1o\0#\0\0\0/fi/w1/w"..., 168}, {"\27\0\0\0\0\0\0\0\4\0\0\0Type\0\1s\0\6\0\0\0active\0", 31}], msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL) = 199
[pid 958] gettimeofday({69007, 526766}, NULL) = 0
[pid 958] clock_gettime(CLOCK_MONOTONIC, {45635, 605849614}) = 0
[pid 958] clock_gettime(CLOCK_MONOTONIC, {45635, 606063257}) = 0
[pid 958] poll([{fd=4, events=POLLIN}, {fd=8, events=POLLIN}, {fd=10, events=POLLIN}, {fd=9, events=POLLIN}, {fd=5, events=POLLIN|POLLPRI}, {fd=7, events=POLLIN}, {fd=15, events=POLLIN}], 7, 0) = 4 ([{fd=4, revents=POLLIN}, {fd=5, revents=POLLIN}, {fd=7, revents=POLLIN}, {fd=15, revents=POLLIN}])
[pid 958] read(4, "\34\0\0\0\0\0\0\0", 16) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] recvmsg(5, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000001}, msg_iov(1)=[{"\344\3\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\r\0\0\0\3\20\0\0\0\0\0\0"..., 4096}], msg_controllen=24, {cmsg_len=24, cmsg_level=SOL_SOCKET, cmsg_type=SCM_CREDENTIALS{pid=0, uid=0, gid=0}}, msg_flags=0}, 0) = 996
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8

A gdb backtrace shows:

(gdb) bt
#0 0x40b53a6e in g_slist_find ()
   from /lib/arm-linux-gnueabihf/libglib-2.0.so.0
#1 0x401cc5b6 in dbus_g_proxy_manager_filter (user_data=0x13e3728,
    message=<optimized out>, connection=<optimized out>) at dbus-gproxy.c:1329
#2 dbus_g_proxy_manager_filter (connection=<optimized out>,
    message=<optimized out>, user_data=0x13e3728) at dbus-gproxy.c:1196
#3 0x40255e3c in dbus_connection_dispatch ()
   from /lib/arm-linux-gnueabihf/libdbus-1.so.3
#4 0x401c8558 in message_queue_dispatch (source=<optimized out>,
    callback=<optimized out>, user_data=<optimized out>) at dbus-gmain.c:90
#5 0x40b3fa46 in g_main_context_dispatch ()
   from /lib/arm-linux-gnueabihf/libglib-2.0.so.0
#6 0x40b3fca6 in ?? () from /lib/arm-linux-gnueabihf/libglib-2.0.so.0
#7 0x40b3fca6 in ?? () from /lib/arm-linux-gnueabihf/libglib-2.0.so.0

stepping through this, the busy loop appears to be in dbus_g_proxy_manager_filter().

Steve Langasek (vorlon)
Changed in network-manager (Ubuntu):
importance: Undecided → High
Revision history for this message
Steve Langasek (vorlon) wrote :

Some more info in the logs:

Jan 1 21:00:36 ubuntu-phablet NetworkManager[958]: <warn> could not mark modem as powered: (null) The name org.ofono was not provided by any .service files
Jan 1 21:00:36 ubuntu-phablet NetworkManager[958]: <warn> modem with path /ril_0 already exists, ignoring
Jan 1 21:00:36 ubuntu-phablet NetworkManager[958]: dbus_g_error_get_name: assertion 'error->code == DBUS_GERROR_REMOTE_EXCEPTION' failed
Jan 1 21:00:36 ubuntu-phablet NetworkManager[958]: <warn> could not mark modem as powered: (null) The name org.ofono was not provided by any .service files
Jan 1 21:00:36 ubuntu-phablet NetworkManager[958]: <warn> modem with path /ril_0 already exists, ignoring
Jan 1 21:00:36 ubuntu-phablet NetworkManager[958]: dbus_g_error_get_name: assertion 'error->code == DBUS_GERROR_REMOTE_EXCEPTION' failed

Revision history for this message
Steve Langasek (vorlon) wrote :

After restarting NM with 'restart network-manager', the busy loop has gone away. However, the network indicator is now broken and shows no wireless networks despite being associated.

Revision history for this message
Tony Espy (awe) wrote :

@Steve

It be nice if we could figure out whether or not ofono has a role in this bug. Could you try disabling ofono via an upstart .override file, reboot the phone, and see if you can get it in the same state?

I managed to wedge the phone pretty good by disabling 3g, connecting to my home AP, then heading out of range of my AP. The odd thing was that I was able to get chewie-network-menu server to grab all the CPU vs. NM. Maybe this was because once I got out of range, I opened the network-indicator ( which went crazy, re-painting every few seconds, and still showing my home AP as connected ). When I got back to my loft and attached the phone via USB, chewie-network-menu-server had 96+% of the CPU!

I'll re-try the same scenario without messing with the indicator and see if NM grabs the CPU instead...

One last comment, as opposed to strace, perhaps you could start with a fresh syslog ( remove it, then reboot ), and then do a grep of "NetworkManager" to pull all the NM messages into a single file.

Changed in touch-preview-images:
assignee: nobody → Tony Espy (awe)
Revision history for this message
Tony Espy (awe) wrote :

A couple more comments:

1. I can't seem to reliably reproduce the scenario I just described in comment #3.

2. AFAIK, we've never made the plumbing work between powerd and NM, such that when a device comes out of S3, it tries to immediately re-connect to Wi-Fi, if it was previously connected. This is kind of moot on the Nexus4, as it currently never goes into S3.

3. While trying to recreate your bug, I'm still occasionally hitting bug #1195787. I just bumped the priority of this bug to Critical.

4. You say you're walking between multiple buildings / wireless domains, can you clarify whether you're roaming between APs with the same SSID, or whether you're connecting to different SSIDs when you move from one building to another? Are they APs open, or secure?

Revision history for this message
Steve Langasek (vorlon) wrote :

So with today's build, I got the behavior from your comment #3 - chewie blowing up rather than NM. Still working to reproduce this under controlled conditions.

Revision history for this message
Steve Langasek (vorlon) wrote :

With ofono disabled, I was never able to reproduce the problem again. I now no longer have access to where the bug was being reproduced. So maybe the logical conclusion here is that it was ofonod-related.

Revision history for this message
Tony Espy (awe) wrote :

Well, if we can't reproduce this, I'm going to mark it as Incomplete and we'll wait and see if it crops up again.

Changed in touch-preview-images:
status: New → Incomplete
Revision history for this message
Rolf Leggewie (r0lf) wrote :

saucy has seen the end of its life and is no longer receiving any updates. Marking the saucy task for this ticket as "Won't Fix".

Changed in network-manager (Ubuntu Saucy):
status: New → Won't Fix
no longer affects: touch-preview-images
Changed in network-manager (Ubuntu):
status: New → Incomplete
Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for network-manager (Ubuntu) because there has been no activity for 60 days.]

Changed in network-manager (Ubuntu):
status: Incomplete → Expired
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.