On Wed, Apr 28, 2021 at 09:00:47AM +0200, Uwe Kleine-König wrote:
> Package: webext-foxyproxy
> Version: 7.5.1+dfsg-1
> Severity: normal
> 
> Hello,
> 
> occationally (I didn't find the trigger yet) a subprocess of firefox
> occupies one complete cpu. There is no functional problem, all seems to
> work just fine.
> 
> It was not clear to me what part of firefox is responsible for it, but
> now I think it is foxyproxy. I started a new profile and the problem
> didn't occur until I enabled foxyproxy. Today I looked in more detail
> into the process' status before closing firefox (which cures the
> problem):
> 
> According to strace the process (with pid 16443) does:
> 
>         read(8, "\372", 1)                      = 1
>         recvmsg(17, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource 
> temporarily unavailable)
>         recvmsg(17, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource 
> temporarily unavailable)
>         poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
> events=POLLIN}], 3, 0) = 0 (Timeout)
>         write(9, "\372", 1)                     = 1
>         recvmsg(17, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource 
> temporarily unavailable)
>         recvmsg(17, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource 
> temporarily unavailable)
>         poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
> events=POLLIN}], 3, 0) = 1 ([{fd=8, revents=POLLIN}])
>
> in a tight loop.

I checked now what that WebExtensions process does directly after
starting, there it looks like following:

09:26:10.657028 restart_syscall(<... resuming interrupted read ...>) = 1
09:26:11.155145 read(8, "\372", 1)      = 1
09:26:11.155647 futex(0x7ff2ccf2aeb4, FUTEX_WAKE_PRIVATE, 1) = 1
09:26:11.156104 write(9, "\372", 1)     = 1
09:26:11.156379 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:11.156848 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 1 ([{fd=8, revents=POLLIN}])
09:26:11.157099 read(8, "\372", 1)      = 1
09:26:11.157342 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:11.157457 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 0 (Timeout)
09:26:11.157786 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:11.157940 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 0 (Timeout)
09:26:11.158081 write(15, "\0", 1)      = 1
09:26:11.158385 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:11.158535 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 1 ([{fd=8, revents=POLLIN}])
09:26:11.158652 read(8, "\372", 1)      = 1
09:26:11.158754 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:11.158852 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 0 (Timeout)
09:26:11.158974 write(9, "\372", 1)     = 1
09:26:11.159077 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:11.159174 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 1 ([{fd=8, revents=POLLIN}])
09:26:11.159284 read(8, "\372", 1)      = 1
09:26:11.159395 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:11.159496 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 0 (Timeout)
09:26:11.159964 futex(0x7ff2ddd32404, FUTEX_WAKE_PRIVATE, 1) = 1
09:26:11.160060 futex(0x7ff2ddd323a8, FUTEX_WAKE_PRIVATE, 1) = 1
09:26:11.160201 write(15, "\0", 1)      = 1
09:26:11.160340 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:11.160554 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 0 (Timeout)
09:26:11.160786 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:11.160990 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 0 (Timeout)
09:26:11.161118 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:11.161218 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 0 (Timeout)
09:26:11.161320 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:11.161416 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, -1) = 1 ([{fd=8, revents=POLLIN}])
09:26:15.812258 read(8, "\372", 1)      = 1
09:26:15.812513 write(15, "\0", 1)      = 1
09:26:15.812724 write(9, "\372", 1)     = 1
09:26:15.813013 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:15.813422 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 1 ([{fd=8, revents=POLLIN}])
09:26:15.813761 read(8, "\372", 1)      = 1
09:26:15.813968 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:15.814089 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 0 (Timeout)
09:26:15.814204 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:15.814317 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 0 (Timeout)
09:26:15.814489 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:15.814621 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 0 (Timeout)
09:26:15.814735 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:15.814832 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, -1) = 1 ([{fd=8, revents=POLLIN}])
09:26:16.160900 read(8, "\372", 1)      = 1
09:26:16.161383 futex(0x7ff2ccf2aeb0, FUTEX_WAKE_PRIVATE, 1) = 1
09:26:16.161777 write(9, "\372", 1)     = 1
09:26:16.162165 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:16.162330 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 1 ([{fd=8, revents=POLLIN}])
09:26:16.162499 read(8, "\372", 1)      = 1
09:26:16.162613 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:16.162713 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 0 (Timeout)
09:26:16.162827 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:16.162924 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 0 (Timeout)
09:26:16.163038 write(15, "\0", 1)      = 1
09:26:16.163247 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:16.163551 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 1 ([{fd=8, revents=POLLIN}])
09:26:16.163707 read(8, "\372", 1)      = 1
09:26:16.163813 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:16.163917 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 0 (Timeout)
09:26:16.164040 write(9, "\372", 1)     = 1
09:26:16.164144 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:16.164242 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 1 ([{fd=8, revents=POLLIN}])
09:26:16.164347 read(8, "\372", 1)      = 1
09:26:16.164442 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:16.164539 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 0 (Timeout)
09:26:16.164979 futex(0x7ff2ddd32400, FUTEX_WAKE_PRIVATE, 1) = 1
09:26:16.165093 futex(0x7ff2ddd323a8, FUTEX_WAKE_PRIVATE, 1) = 1
09:26:16.165325 write(15, "\0", 1)      = 1
09:26:16.165524 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:16.165663 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 0 (Timeout)
09:26:16.165780 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:16.165879 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 0 (Timeout)
09:26:16.165989 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:16.166088 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 0 (Timeout)
09:26:16.166187 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:16.166283 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, -1) = 1 ([{fd=17, revents=POLLIN}])
09:26:20.210584 recvmsg(17, {msg_name=NULL, msg_namelen=0, 
msg_iov=[{iov_base="U\2\252\0)W\243\6\3\24\4\0\20\0\0\0\0\0\0\24\24\24\24\24\0\0\3\37%\2\0\0",
 iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
09:26:20.211114 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:20.211507 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:20.211829 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, -1) = 1 ([{fd=8, revents=POLLIN}])
09:26:21.165886 read(8, "\372", 1)      = 1
09:26:21.166321 futex(0x7ff2ccf2aeb4, FUTEX_WAKE_PRIVATE, 1) = 1
09:26:21.166762 write(9, "\372", 1)     = 1
09:26:21.167163 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:21.167331 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 1 ([{fd=8, revents=POLLIN}])
09:26:21.167582 read(8, "\372", 1)      = 1
09:26:21.167842 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:21.167966 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 0 (Timeout)
09:26:21.168159 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:21.168331 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 0 (Timeout)
09:26:21.168465 write(15, "\0", 1)      = 1
09:26:21.168673 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:21.168875 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 1 ([{fd=8, revents=POLLIN}])
09:26:21.169007 read(8, "\372", 1)      = 1
09:26:21.169112 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:21.169242 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 0 (Timeout)
09:26:21.169376 write(9, "\372", 1)     = 1
09:26:21.169503 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:21.169607 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 1 ([{fd=8, revents=POLLIN}])
09:26:21.169715 read(8, "\372", 1)      = 1
09:26:21.169820 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:21.169928 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 0 (Timeout)
09:26:21.170383 futex(0x7ff2ddd32404, FUTEX_WAKE_PRIVATE, 1) = 1
09:26:21.170484 futex(0x7ff2ddd323a8, FUTEX_WAKE_PRIVATE, 1) = 1
09:26:21.170715 write(15, "\0", 1)      = 1
09:26:21.170927 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:21.171092 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 0 (Timeout)
09:26:21.171210 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:21.171310 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 0 (Timeout)
09:26:21.171419 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)
09:26:21.171520 poll([{fd=8, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, 
events=POLLIN}], 3, 0) = 0 (Timeout)
09:26:21.171620 recvmsg(17, {msg_namelen=0}, 0) = -1 EAGAIN (Resource 
temporarily unavailable)

So it at least occasionally calls poll with a non-zero timeout.

> ls /proc/16443 contains:
> lrwxrwxrwx   1 uwe  uwe  0 Apr 28 08:25 cwd -> '/proc/16444/fdinfo (deleted)'
> lrwxrwxrwx   1 uwe  uwe  0 Apr 28 08:25 root -> '/proc/16444/fdinfo (deleted)'

this is similar directly after startup.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | https://www.pengutronix.de/ |

Attachment: signature.asc
Description: PGP signature

Reply via email to