Skip to content

Workplace scan over-forking #976

Description

@apiology

I'm not sure what's triggering this, but my LSP seems very unhappy. It seems to be creating quite a few instances trying to cache the same gem.

The client here is lsp-mode in Emacs, so bad behavior on its part is not impossible:

Processes: 740 total, 32 running, 1 stuck, 707 sleeping, 7416 threads                                                                                                                                        10:41:42
Load Avg: 34.16, 35.28, 31.07  CPU usage: 54.98% user, 45.1% sys, 0.0% idle  SharedLibs: 922M resident, 162M data, 92M linkedit. MemRegions: 215 total, 18M resident, 59M private, 2256M shared.
PhysMem: 35G used (4130M wired, 18G compressor), 68M unused. VM: 366T vsize, 5709M framework vsize, 1743922(0) swapins, 2986872(0) swapouts. Networks: packets: 353607580/277G in, 148930951/86G out.
Disks: 219580374/2874G read, 153232444/2940G written.

PID    COMMAND      %CPU  TIME     #TH     #WQ  #PORTS MEM    PURG   CMPRS  PGRP  PPID  STATE    BOOSTS              %CPU_ME %CPU_OTHRS UID  FAULTS     COW      MSGSENT     MSGRECV    SYSBSD      SYSMACH
0      kernel_task  192.4 66:53:12 2955/12 0    0      35M    0B     0B     0     0     running   0[0]               0.00000 0.00000    0    1761805+   0        2147483647  2147483647 0           0
91634  ruby         73.6  66:24:31 8       0    33+    2091M+ 0B     1997M+ 91634 70455 sleeping *0[1]               0.00000 0.00000    501  2147483647 2711963+ 438018      214428     1183557836+ 1026476+
70455  Emacs-arm64- 32.4  33:55:04 3/1     1    54     4774M  0B     3477M- 70455 1     running  *5[2]               0.00000 0.00000    501  41502701+  147607   11806       2765       46970057    120194
52805  ruby         29.9  00:36.52 2/1     0    16     314M+  0B     95M-   51100 52732 running  *0[1]               0.00000 0.00000    501  1007560+   255      53          22         72089+      310
52674  ruby         27.4  00:50.66 2/1     0    16     324M+  0B     98M-   51100 52629 running  *0[1]               0.00000 0.00000    501  1362777+   260      54          22         103453+     315
52798  ruby         27.4  00:38.59 2/1     0    16     267M-  0B     65M-   51100 52716 running  *0[1]               0.00000 0.00000    501  1117348+   252      52          22         79152+      313
52660  ruby         25.7  00:53.13 2/1     0    16     243M-  0B     114M+  51100 52588 running  *0[1]               0.00000 0.00000    501  1396839+   249      54          22         111699+     325
52670  ruby         25.2  00:50.11 2/1     0    16     282M-  0B     120M+  51100 52619 running  *0[1]               0.00000 0.00000    501  1288070+   252      52          22         101852+     327
52810  ruby         24.6  00:35.60 2/1     0    16     299M+  0B     101M-  51100 52745 running  *0[1]               0.00000 0.00000    501  972924+    247      53          22         70269+      311
52595  ruby         24.3  00:57.56 2/1     0    16     314M-  0B     138M+  51100 52538 running  *0[1]               0.00000 0.00000    501  1459475+   271      52          22         116994+     315
52813  ruby         23.7  00:34.48 2/1     0    16     331M+  0B     102M+  51100 52757 running  *0[1]               0.00000 0.00000    501  966628+    264      54          22         69834+      323
52560  ruby         23.6  01:01.05 2/1     0    16     243M+  0B     108M+  51100 52512 running  *0[1]               0.00000 0.00000    501  1534707+   247      53          22         134678+     316
52545  ruby         23.3  01:03.61 2/1     0    16     338M+  0B     130M+  51100 52503 running  *0[1]               0.00000 0.00000    501  1550421+   263      54          22         132463+     318
597    WindowServer 23.3  57:42:55 21      5    17623+ 2624M  123M   602M+  597   1     sleeping *0[1]               1.14850 3.61755    88   276895280+ 129156   1017559715+ 2147483647 2147483647  2147483647
52645  ruby         23.1  00:54.30 2/1     0    16     281M+  0B     127M+  51100 52578 running  *0[1]               0.00000 0.00000    501  1483780+   263      53          22         112451+     323
52735  ruby         22.7  00:42.63 2/1     0    16     298M-  0B     123M+  51100 52676 running  *0[1]               0.00000 0.00000    501  1148065+   256      52          22         85058+      313
52859  ruby         22.5  00:23.68 2/1     0    16     268M+  0B     125M+  52769 52772 running  *0[1]               0.00000 0.00000    501  654682+    259      52          22         54212+      307
52522  ruby         22.2  01:04.23 2/1     0    16     307M+  0B     106M-  51100 52490 running  *0[1]               0.00000 0.00000    501  1493520+   264      54          22         138684+     319
52571  ruby         22.2  01:00.26 2/1     0    16     285M+  0B     78M-   51100 52518 running  *0[1]               0.00000 0.00000    501  1561132+   244      54          22         127685+     323
52663  ruby         22.0  00:51.68 2/1     0    16     270M+  0B     105M+  51100 52597 running  *0[1]               0.00000 0.00000    501  1322497+   254      52          22         107332+     328
52609  ruby         22.0  00:58.13 2/1     0    16     265M-  0B     113M+  51100 52544 running  *0[1]               0.00000 0.00000    501  1501971+   263      53          22         119298+     316
52580  ruby         22.0  01:00.02 2/1     0    16     269M-  0B     84M-   51100 52527 running  *0[1]               0.00000 0.00000    501  1553599+   258      53          22         127038+     323
52667  ruby         21.7  00:51.63 2/1     0    16     281M-  0B     104M-  51100 52612 running  *0[1]               0.00000 0.00000    501  1327260+   245      52          22         102870+     324
52699  ruby         20.6  00:46.97 2/1     0    16     247M-  0B     89M+   51100 52652 running  *0[1]               0.00000 0.00000    501  1268061+   260      53          22         91568+      318
52621  ruby         20.5  00:56.04 2/1     0    16     271M+  0B     121M+  51100 52554 running  *0[1]               0.00000 0.00000    501  1439771+   263      53          22         114772+     325
52683  ruby         20.3  00:48.21 2/1     0    16     263M+  0B     118M+  51100 52642 running  *0[1]               0.00000 0.00000    501  1284069+   252      53          22         102435+     326
52633  ruby         20.3  00:54.91 2/1     0    16     244M-  0B     107M-  51100 52568 running  *0[1]               0.00000 0.00000    501  1409269+   255      53          22         115086+     323
52748  ruby         19.4  00:41.97 2/1     0    16     305M+  0B     110M+  51100 52687 running  *0[1]               0.00000 0.00000    501  1128727+   258      53+         22         88817+      318
52801  ruby         19.0  00:37.60 2/1     0    16     235M-  0B     73M+   51100 52724 running  *0[1]               0.00000 0.00000    501  1043517+   242      53          22         76876+      309
52761  ruby         18.9  00:40.42 2/1     0    16     224M+  0B     73M+   51100 52696 running  *0[1]               0.00000 0.00000    501  1137618+   263      52          22         82182+      320
52794  ruby         18.0  00:38.97 2/1     0    16     245M+  0B     84M+   51100 52708 running  *0[1]               0.00000 0.00000    501  1088320+   259      53          22         80528+      316

from pstree:

 | |-+= 51100 broz /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/solargraph stdio
 | | |-+- 52490 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/solargraph cache parser 3.3.8.0
 | | | \--- 52522 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/yardoc --db /Users/broz/.cache/solargraph/yard-0.9.37/parser-3.3.8.0.yardoc --no-output --plugin solargraph
 | | |-+- 52494 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/solargraph cache parser 3.3.8.0
 | | | \--- 52532 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/yardoc --db /Users/broz/.cache/solargraph/yard-0.9.37/parser-3.3.8.0.yardoc --no-output --plugin solargraph
 | | |-+- 52503 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/solargraph cache parser 3.3.8.0
 | | | \--- 52545 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/yardoc --db /Users/broz/.cache/solargraph/yard-0.9.37/parser-3.3.8.0.yardoc --no-output --plugin solargraph
 | | |-+- 52512 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/solargraph cache parser 3.3.8.0
 | | | \--- 52560 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/yardoc --db /Users/broz/.cache/solargraph/yard-0.9.37/parser-3.3.8.0.yardoc --no-output --plugin solargraph
 | | |-+- 52518 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/solargraph cache parser 3.3.8.0
 | | | \--- 52571 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/yardoc --db /Users/broz/.cache/solargraph/yard-0.9.37/parser-3.3.8.0.yardoc --no-output --plugin solargraph
 | | |-+- 52527 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/solargraph cache parser 3.3.8.0
 | | | \--- 52580 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/yardoc --db /Users/broz/.cache/solargraph/yard-0.9.37/parser-3.3.8.0.yardoc --no-output --plugin solargraph
 | | |-+- 52538 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/solargraph cache parser 3.3.8.0
 | | | \--- 52595 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/yardoc --db /Users/broz/.cache/solargraph/yard-0.9.37/parser-3.3.8.0.yardoc --no-output --plugin solargraph
 | | |-+- 52544 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/solargraph cache parser 3.3.8.0
 | | | \--- 52609 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/yardoc --db /Users/broz/.cache/solargraph/yard-0.9.37/parser-3.3.8.0.yardoc --no-output --plugin solargraph
 | | |-+- 52554 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/solargraph cache parser 3.3.8.0
 | | | \--- 52621 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/yardoc --db /Users/broz/.cache/solargraph/yard-0.9.37/parser-3.3.8.0.yardoc --no-output --plugin solargraph
 | | |-+- 52568 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/solargraph cache parser 3.3.8.0
 | | | \--- 52633 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/yardoc --db /Users/broz/.cache/solargraph/yard-0.9.37/parser-3.3.8.0.yardoc --no-output --plugin solargraph
 | | |-+- 52578 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/solargraph cache parser 3.3.8.0
 | | | \--- 52645 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/yardoc --db /Users/broz/.cache/solargraph/yard-0.9.37/parser-3.3.8.0.yardoc --no-output --plugin solargraph
 | | |-+- 52588 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/solargraph cache parser 3.3.8.0
 | | | \--- 52660 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/yardoc --db /Users/broz/.cache/solargraph/yard-0.9.37/parser-3.3.8.0.yardoc --no-output --plugin solargraph
 | | |-+- 52597 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/solargraph cache parser 3.3.8.0
 | | | \--- 52663 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/yardoc --db /Users/broz/.cache/solargraph/yard-0.9.37/parser-3.3.8.0.yardoc --no-output --plugin solargraph
 | | |-+- 52612 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/solargraph cache parser 3.3.8.0
 | | | \--- 52667 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/yardoc --db /Users/broz/.cache/solargraph/yard-0.9.37/parser-3.3.8.0.yardoc --no-output --plugin solargraph
 | | |-+- 52619 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/solargraph cache parser 3.3.8.0
 | | | \--- 52670 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/yardoc --db /Users/broz/.cache/solargraph/yard-0.9.37/parser-3.3.8.0.yardoc --no-output --plugin solargraph
 | | |-+- 52629 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/solargraph cache parser 3.3.8.0
 | | | \--- 52674 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/yardoc --db /Users/broz/.cache/solargraph/yard-0.9.37/parser-3.3.8.0.yardoc --no-output --plugin solargraph
 | | |-+- 52642 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/solargraph cache parser 3.3.8.0
 | | | \--- 52683 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/yardoc --db /Users/broz/.cache/solargraph/yard-0.9.37/parser-3.3.8.0.yardoc --no-output --plugin solargraph
 | | |-+- 52652 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/solargraph cache parser 3.3.8.0
 | | | \--- 52699 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/yardoc --db /Users/broz/.cache/solargraph/yard-0.9.37/parser-3.3.8.0.yardoc --no-output --plugin solargraph
 | | |-+- 52676 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/solargraph cache parser 3.3.8.0
 | | | \--- 52735 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/yardoc --db /Users/broz/.cache/solargraph/yard-0.9.37/parser-3.3.8.0.yardoc --no-output --plugin solargraph
 | | |-+- 52687 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/solargraph cache parser 3.3.8.0
 | | | \--- 52748 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/yardoc --db /Users/broz/.cache/solargraph/yard-0.9.37/parser-3.3.8.0.yardoc --no-output --plugin solargraph
 | | |-+- 52696 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/solargraph cache parser 3.3.8.0
 | | | \--- 52761 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/yardoc --db /Users/broz/.cache/solargraph/yard-0.9.37/parser-3.3.8.0.yardoc --no-output --plugin solargraph
 | | |-+- 52708 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/solargraph cache parser 3.3.8.0
 | | | \--- 52794 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/yardoc --db /Users/broz/.cache/solargraph/yard-0.9.37/parser-3.3.8.0.yardoc --no-output --plugin solargraph
 | | |-+- 52716 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/solargraph cache parser 3.3.8.0
 | | | \--- 52798 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/yardoc --db /Users/broz/.cache/solargraph/yard-0.9.37/parser-3.3.8.0.yardoc --no-output --plugin solargraph
 | | |-+- 52724 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/solargraph cache parser 3.3.8.0
 | | | \--- 52801 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/yardoc --db /Users/broz/.cache/solargraph/yard-0.9.37/parser-3.3.8.0.yardoc --no-output --plugin solargraph
 | | |-+- 52732 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/solargraph cache parser 3.3.8.0
 | | | \--- 52805 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/yardoc --db /Users/broz/.cache/solargraph/yard-0.9.37/parser-3.3.8.0.yardoc --no-output --plugin solargraph
 | | |-+- 52745 broz ruby /Users/broz/.rbenv/versions/3.4.4/lib/ruby/gems/3.4.0/bin/solargraph cache parser 3.3.8.0

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions