You are not logged in.

#1 2019-11-23 07:14:38

tcn
Member
Registered: 2011-09-30
Posts: 83

chromium: high (error) count of recvmsg/sendto

Hi!

chromium gets slower and slower over time until it's basically unusable after a week (while the main process' memory footprint continues to grow). Even just typing in the omnibox is slow. This is actually the very first you'll notice.

# sudo strace -wcp 7813
strace: Process 7813 detached
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 58.85    0.569705           9     59334     59322 recvmsg
 20.59    0.199350          12     16399           sendto
 10.11    0.097824           9      9909           poll
  2.61    0.025239          10      2401           read
  1.85    0.017879          14      1249           madvise
  1.47    0.014223          10      1366           openat
  1.11    0.010733           7      1370           close
  1.04    0.010099          22       456           write
  0.87    0.008453           8      1023           stat
  0.80    0.007756           7      1026           fstat
  0.32    0.003059          10       288       102 futex
  0.26    0.002491           7       341           lseek
  0.08    0.000766          28        27           munmap
  0.01    0.000120          10        11           writev
  0.01    0.000083          83         1           fallocate
  0.01    0.000078          15         5           sendmsg
  0.01    0.000074          10         7           getpid
  0.00    0.000046          22         2           mmap
  0.00    0.000043          10         4           fcntl
  0.00    0.000011          11         1           unlink
  0.00    0.000010          10         1           ftruncate
------ ----------- ----------- --------- --------- ----------------
100.00    0.968044                 95221     59424 total

Basically all recvmsg calls fail. Is this normal? And it's always the same few sockets

# sudo strace -p 7813 2>&1 | grep recvmsg | sort | uniq
^Crecvmsg(31, 
recvmsg(31, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(31, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="U\2,\364\331S\372\20\3\4\4\0\0\0\0\0\0\0\0\4\4\4\4\4\0\0\3\37%\2\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
recvmsg(32, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
# ls -l /proc/7813/fd/3{1,2}
lrwx------ 1 tcn tcn 64 Nov 23 08:19 /proc/7813/fd/31 -> 'socket:[57168]'
lrwx------ 1 tcn tcn 64 Nov 23 08:19 /proc/7813/fd/32 -> 'socket:[57169]'

# grep -e 57168 -e 57169 /proc/net/unix
0000000010819d23: 00000003 00000000 00000000 0001 03 57168
00000000e0dc0099: 00000003 00000000 00000000 0001 03 57169

Anybody else with this problem? Any idea how to track this down further?

chromium 78, but have had this issue for a long time.

Last edited by tcn (2019-11-23 14:33:01)

Offline

#2 2019-11-28 09:24:36

saveman71
Member
Registered: 2017-01-03
Posts: 9

Re: chromium: high (error) count of recvmsg/sendto

Hello! I have the same problem.

I have no way to tell if that's related, but I discovered it while investigating about https://bugs.chromium.org/p/chromium/is … ?id=995368

Do you have the same issue as well?

# strace -wcp 87512
strace: Process 87512 attached
^Cstrace: Process 87512 detached
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 50.86   11.753437          16    725176    725092 recvmsg
 29.05    6.713140          55    120864           poll
  7.48    1.727458          16    106265       365 futex
  4.95    1.143050          15     73480           read
  3.75    0.867271          22     37861           write
  1.12    0.258473         154      1675           sendto
  0.76    0.176758          31      5635           openat
  0.66    0.152780          42      3577           madvise
  0.49    0.113963          18      6028           close
  0.34    0.079571          23      3381           fstat
  0.30    0.070032          20      3383           stat
  0.13    0.030602          77       393           munmap
  0.08    0.019274          17      1127           lseek
  0.01    0.002084         173        12           writev
------ ----------- ----------- --------- --------- ----------------
100.00   23.107892               1088857    725457 total

The fds are 31 and 35 for me


# ls -l /proc/87512/fd/31
lrwx------ 1 arch users 64 Nov 28 10:18 /proc/87512/fd/31 -> 'socket:[481552]'
# ls -l /proc/87512/fd/35
lrwx------ 1 arch users 64 Nov 28 10:18 /proc/87512/fd/35 -> 'socket:[481554]'
# grep -e 481552 -e 481554 /proc/net/unix 
0000000029c70ef8: 00000003 00000000 00000000 0001 03 481554
00000000ca047af5: 00000003 00000000 00000000 0001 03 481552

I've done the same investigation steps as you but I'm not sure where you were going.

Offline

#3 2019-11-28 09:28:26

saveman71
Member
Registered: 2017-01-03
Posts: 9

Re: chromium: high (error) count of recvmsg/sendto

Starting with a new profile (I renamed my current profile folder) fixes both issues:

strace: Process 90778 attached
^Cstrace: Process 90778 detached
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 99.11   15.064985      273908        55           poll
  0.79    0.119669      119669         1           restart_syscall
  0.09    0.013649          40       337       310 recvmsg
  0.00    0.000471          39        12           futex
  0.00    0.000374          46         8           read
  0.00    0.000214          53         4           sendto
  0.00    0.000194         194         1           close
  0.00    0.000152         152         1           mmap
  0.00    0.000081          20         4           writev
  0.00    0.000074          36         2           stat
  0.00    0.000037          37         1           fcntl
  0.00    0.000035          35         1           munmap
------ ----------- ----------- --------- --------- ----------------
100.00   15.199936                   427       310 total

Offline

#4 2020-01-05 15:11:17

tcn
Member
Registered: 2011-09-30
Posts: 83

Re: chromium: high (error) count of recvmsg/sendto

So pesky. Maybe really should just switch to a mac...

One debugging step further:

# readlink /proc/7625/fd/3{1,2}
socket:[41838]
socket:[41839]

# lsof -p 7625 -a -d 31 -d 32
COMMAND   PID USER   FD   TYPE             DEVICE SIZE/OFF  NODE NAME
chromium 7625  tcn   31u  unix 0x00000000b350e7b4      0t0 41838 type=STREAM
chromium 7625  tcn   32u  unix 0x0000000024245bbf      0t0 41839 type=STREAM

# ss -p | grep -e 41838 -e 41839
u_str  ESTAB  0       0                                      @/tmp/.X11-unix/X0 52964                                               * 41838                      users:(("Xorg",pid=6569,fd=68))                         
u_str  ESTAB  0       0                                                       * 41838                                               * 52964                      users:(("chromium",pid=7625,fd=31))                     
u_str  ESTAB  0       0                                                       * 41839                                               * 52966                      users:(("chromium",pid=7625,fd=32))                     
u_str  ESTAB  0       0                                      @/tmp/.X11-unix/X0 52966                                               * 41839                      users:(("Xorg",pid=6569,fd=72))    

So, it's apparently Xorg that doesn't return data. I'm guessing that fits the secondary problem that resizing windows is at times very sluggish. Or even impossible (for a while when starting off the browser and restoring the session).

Last edited by tcn (2020-01-05 18:53:44)

Offline

Board footer

Powered by FluxBB