社長:それで、Thunderbird にも手を突っ込みたいのですが。
開発:今コンパイル中です。41分経過。
基盤:Mozillla用にビルド環境は整備されたので、スルスル進んでますね。例の、.mozconfig に ac_add_options --disable-av1 というおまじないをいれただけです。これも何とかしたいですが。
開発:それにしてもこの、Mozillaファミリーのソースの配布っていったいどういうことになってるんですかね。https://archive.mozilla.org が大元かなと思っているのですが。もうこういう寂しさ満点の景色でして。
基盤: Mozillaのソースはここにアップロードするのやめちゃったみたいですね。1999年1月が最後のよう。
基盤:一方Thunderbirdのほうは、今も生きてるようです。この5月19日版があります。77ってのは最新Firefixと同じだから、Mozillaとしての共通番号なんですかね。
開発:それでこの、「thunderbird-77.0b3.source.tar.xz」というのを落としてきて、ビルドしてるところです。
基盤:ビルド60分経過。Firefoxと大差無いようですね。
社長:いったいその2つはどういう関係にあるんでしょうかね?私はこの2つをくっつけたいというか、密に連携させたいんですが。FirefoxのタブでThunderbirdが動いたら楽ちんですよね。あるいはThunderbirdにタブの概念を持ち込むとか。個別メールのタブとか。というか、タブじゃなくて、タグというメタファをブラウザに持ち込みたいなと思ってるんですが。
開発:少なくともThunderbirdの中で動画再生とかHTMLのレンダリングはやりたいですよね。
基盤:このMozillaの「Downloading Source Archive」なんですが、一応「Last modified: Mar 23, 2019, by MDN contributors」とはありますね。でも、例にあげてるのが「Firefox53.0.3」だったり。
開発:まあ、膨大な数の人が参加して開発してるんで、バージョン管理システム無しではできないと思いますが、アーカイブくらい tarball であげといてくれれば良いのにね。
基盤:てか、ページの冒頭にこう書いてあります。Firefox は Mercurial だけど、Thunderbird は別のやつみたいですね。
The Mozilla source code can be obtained either by downloading a source archive or by using a Mercurial (source control) client. If you are just starting out or you want to build a particular Mozilla product release, downloading a source archive is recommended. Otherwise, get the Mozilla Source Code using Mercurial (for Firefox) or Getting Comm-central Source Code (for Thunderbird, SeaMonkey and Firefox). If you want to browse the source instead of downloading it, read Viewing and searching Mozilla source code online.
基盤:あ、コンパイル、エラーで止まりました。ノースペース。
71:38.54 /usr/bin/ar: libjs_static.a: No space left on device
% df
/dev/sda1 61795116 58690284 236536 100% /
基盤:それでは Hyper/Vでディスクをもうちょいデカくして、Ubuntuでpartedしてresize2fs っと。
/dev/sda1 82437528 58694464 20035968 75% /
基盤:で再度 make。
開発:なんでしょう、この天国感。これはもう、もう一台レノボ機を導入してHyper/Vの編隊飛行させたいですねー。
基盤:ホストレノボのほうのSSDがもうマジ満杯です。月曜に4TBのHDDが来るのが待ち遠しいですね。
開発:それはそうと、まずこのページから読むべきだったのかもですね。なんせ最近は検索して直にGitHubとかにいっちゃって、公式サイト的な所も読まないですからねえ。
基盤:ただもう、MDNてオワコン感ハンパ無いですけどね。あれ、ビルドが固まっているような。。何が起きてるんでしょう?
% ps ax
5526 pts/1 Sl+ 4:56 /usr/bin/rustc --crate-name style servo/components/style/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifa ...
開発:でかい塊ですね。もうちょっとこまめに進捗報告してくれると良いのですが。
基盤:あ、これが出た。とりあえずコメントアウトして進行・・・
9:10.15 /home/ysato/thunderbird-77.0/config/makefiles/rust.mk:293: recipe for target 'force-cargo-library-build' failed
9:10.15 make[5]: *** [force-cargo-library-build] Error 101
9:10.17 /home/ysato/thunderbird-77.0/config/recurse.mk:74: recipe for target 'toolkit/library/rust/target' failed
基盤:おっと、これはThunderbirdでは必須のもののようですね。ビルドがエラーで終わってしまいます。
0:03.64 FileNotFoundError: [Errno 2] No such file or directory: '/home/ysato/thunderbird-77.0/obj-x86_64-pc-linux-gnu/x86_64-unknown-linux-gnu/release/libgkrust.a'
基盤:てか、そもそも obj の下に dist/bin/firefox もできてるから、Thunderbirdの tarball のはずですが、Firefox をビルドしてたんですかね。
開発:そもそものエラーが Python系なので、Pythonをアップグレードしてみたらどうですかね?
基盤:やってみました・・・が、変わらないですね。そもそも、Firefoxが作られるけど、Thunderbirdはできてないってどういうことですかね?
開発:Thunderbirdのビルド… ああ、なんかそのものズバリのページがありました。
開発:Thunderbird作りたかったら mozconfig に一行そう書けと。デフォではFirefoxを作っちゃうみたいです。
基盤:すげーわかりやすいインストラクション(笑)。にししてもです、thunderbird-77.0b3.source.tar.xz ってのでビルドしてFirefoxができちゃうってのは不可解ですよねえ。
基盤:まあ、やり直しましょう。・・・んー、最後のところすげー重いですね。top で見ると・・・load average 4。めっちゃスワップしてます。
開発:あー、Thunderbirdのビルドのページの先頭にこう書いてありました。4ギガではギリかもですね。
基盤:そうですか。。メモリ4096MBに制約したのが敗着でしたね。なんせVMのRAMデカくなりすぎると立ち上がらないわ殺せないわになるので制約はしときたいです。では6GBにして。再起動。
開発:お、まともな負荷になりましたね。メモリ消費拡大が5GB寸前で止まってます。
基盤:ともかく、rust が物凄いメモリ食いなことはわかりました。
開発:Rustのmkでエラーが出てるのって、ひょっとしてこれが原因だったりしませんかね?もいっぺんゼロからbuildしてみませんか?
基盤:そうしましょう。そもそも101って終了コードが何かって事ですけどね。なんで一言、シンボリックに表示しないですかねえ。
基盤:あれ、また rust でこけてますね。なんなんでしょう?
開発:行き詰まったら物理層に立ち返るという・・・
基盤:そうですねえ。dmesg ・・・え?なんだコリア。
[ 50.078044] hv_balloon: Max. dynamic memory size: 8192 MB
・・・
[ 1816.851449] oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/,task=rustc,pid=7061,uid=1000
[ 1816.851499] Out of memory: Killed process 7061 (rustc) total-vm:6400040kB, anon-rss:5184104kB, file-rss:0kB, shmem-rss:0kB
[ 1817.053827] oom_reaper: reaped process 7061 (rustc), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB
開発:out-of-memoryで死んでました。ちゃんちゃん。メモリを6GB食うプロセスって、なんかゴージャス 。
基盤:意味がわからないですねー。仮想メモリじゃなくて、物理メモリを要求してるってことでしょうか?
開発:仮想メモリとしても割り当て上限があるのかも。
基盤:fork してって親の使ってた遺産でふくれちゃったとかじゃ無いでしょうね?
dmesg「メモリが足りなくて死にました」
[ 50.023718] hv_balloon: Max. dynamic memory size: 16384 MB [ 68.780991] TCP: eth0: Driver has suspect GRO implementation, TCP performance may be compromised. [ 108.020229] hv_balloon: Balloon request will be partially fulfilled. Balloon floor reached. [ 221.017618] hv_balloon: Balloon request will be partially fulfilled. Not enough memory. [ 284.015897] hv_balloon: Balloon request will be partially fulfilled. Not enough memory. [ 314.016842] hv_balloon: Balloon request will be partially fulfilled. Not enough memory. [ 351.018234] hv_balloon: Balloon request will be partially fulfilled. Balloon floor reached. [ 381.026580] hv_balloon: Balloon request will be partially fulfilled. Not enough memory. [ 393.523863] rustc invoked oom-killer: gfp_mask=0x100cca(GFP_HIGHUSER_MOVABLE), order=0, oom_score_adj=0 [ 393.523865] CPU: 2 PID: 1951 Comm: rustc Not tainted 5.3.0-53-generic #47~18.04.1-Ubuntu [ 393.523866] Hardware name: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS 090008 12/07/2018 [ 393.523866] Call Trace: [ 393.523871] dump_stack+0x6d/0x95 [ 393.523873] dump_header+0x4f/0x200 [ 393.523874] oom_kill_process+0xe6/0x120 [ 393.523875] out_of_memory+0x109/0x510 [ 393.523877] __alloc_pages_slowpath+0xad1/0xe10 [ 393.523878] __alloc_pages_nodemask+0x2cd/0x320 [ 393.523880] alloc_pages_current+0x6a/0xe0 [ 393.523882] __page_cache_alloc+0x6a/0xa0 [ 393.523882] pagecache_get_page+0x9c/0x2b0 [ 393.523883] filemap_fault+0x66d/0xb60 [ 393.523885] ? unlock_page_memcg+0x12/0x20 [ 393.523886] ? page_add_file_rmap+0x5e/0x150 [ 393.523887] ? filemap_map_pages+0x18f/0x380 [ 393.523888] ext4_filemap_fault+0x31/0x44 [ 393.523890] __do_fault+0x57/0x110 [ 393.523891] __handle_mm_fault+0xdd8/0x1260 [ 393.523892] handle_mm_fault+0xcb/0x210 [ 393.523894] __do_page_fault+0x2a1/0x4d0 [ 393.523895] do_page_fault+0x2c/0xe0 [ 393.523897] page_fault+0x34/0x40 [ 393.523898] RIP: 0033:0x7f2982105130 [ 393.523901] Code: Bad RIP value. [ 393.523902] RSP: 002b:00007f2937456e48 EFLAGS: 00010246 [ 393.523903] RAX: 000000000000000f RBX: 00007f2898babe90 RCX: 00007f2806d5f740 [ 393.523903] RDX: 0000000000000000 RSI: 00007f27b3cc28b8 RDI: 00007f2937456e78 [ 393.523904] RBP: 0000000000000004 R08: 0000000000000010 R09: 00000000ffffffff [ 393.523904] R10: 00007f2806d5f750 R11: 0000000000000000 R12: 00007f2896ef4d40 [ 393.523905] R13: 00007f2937456e80 R14: 00007f2898bac038 R15: 000000000000000f [ 393.523906] Mem-Info: [ 393.523908] active_anon:1121207 inactive_anon:186904 isolated_anon:0 active_file:44 inactive_file:46 isolated_file:0 unevictable:8 dirty:0 writeback:0 unstable:0 slab_reclaimable:6473 slab_unreclaimable:9092 mapped:1795 shmem:4091 pagetables:11466 bounce:0 free:7661 free_pcp:975 free_cma:0 [ 393.523910] Node 0 active_anon:4484828kB inactive_anon:747616kB active_file:176kB inactive_file:184kB unevictable:32kB isolated(anon):0kB isolated(file):0kB mapped:7180kB dirty:0kB writeback:0kB shmem:16364kB shmem_thp: 0kB shmem_pmdmapped: 0kB anon_thp: 0kB writeback_tmp:0kB unstable:0kB all_unreclaimable? yes [ 393.523910] Node 0 DMA free:15868kB min:24kB low:36kB high:48kB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB writepending:0kB present:15992kB managed:15908kB mlocked:0kB kernel_stack:0kB pagetables:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB [ 393.523912] lowmem_reserve[]: 0 3863 5314 5314 5314 [ 393.523913] Node 0 DMA32 free:12540kB min:6756kB low:10712kB high:14668kB active_anon:3140036kB inactive_anon:682116kB active_file:16kB inactive_file:268kB unevictable:32kB writepending:0kB present:4046784kB managed:3956652kB mlocked:32kB kernel_stack:5996kB pagetables:37488kB bounce:0kB free_pcp:2036kB local_pcp:248kB free_cma:0kB [ 393.523915] lowmem_reserve[]: 0 0 1450 1450 1450 [ 393.523916] Node 0 Normal free:2236kB min:2536kB low:4020kB high:5504kB active_anon:1344792kB inactive_anon:65500kB active_file:204kB inactive_file:224kB unevictable:0kB writepending:0kB present:1572864kB managed:1485392kB mlocked:0kB kernel_stack:1732kB pagetables:8376kB bounce:0kB free_pcp:1864kB local_pcp:256kB free_cma:0kB [ 393.523917] lowmem_reserve[]: 0 0 0 0 0 [ 393.523918] Node 0 DMA: 1*4kB (U) 1*8kB (U) 1*16kB (U) 1*32kB (U) 1*64kB (U) 1*128kB (U) 1*256kB (U) 0*512kB 1*1024kB (U) 1*2048kB (M) 3*4096kB (M) = 15868kB [ 393.523922] Node 0 DMA32: 159*4kB (UME) 148*8kB (UME) 118*16kB (UME) 42*32kB (UME) 7*64kB (UE) 1*128kB (M) 1*256kB (M) 1*512kB (M) 0*1024kB 3*2048kB (UM) 0*4096kB = 12540kB [ 393.523926] Node 0 Normal: 60*4kB (UE) 44*8kB (UME) 23*16kB (UME) 4*32kB (UME) 4*64kB (UM) 3*128kB (UM) 1*256kB (M) 1*512kB (M) 0*1024kB 0*2048kB 0*4096kB = 2496kB [ 393.523930] Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=1048576kB [ 393.523930] Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=2048kB [ 393.523931] 4754 total pagecache pages [ 393.523932] 514 pages in swap cache [ 393.523933] Swap cache stats: add 446601, delete 446088, find 13695/33209 [ 393.523933] Free swap = 0kB [ 393.523933] Total swap = 1557568kB [ 393.523934] 1408910 pages RAM [ 393.523934] 0 pages HighMem/MovableOnly [ 393.523934] 44422 pages reserved [ 393.523935] 0 pages cma reserved [ 393.523935] 0 pages hwpoisoned [ 393.523935] Tasks state (memory values in pages): [ 393.523935] [ pid ] uid tgid total_vm rss pgtables_bytes swapents oom_score_adj name [ 393.523938] [ 311] 0 311 45640 89 385024 142 0 systemd-journal [ 393.523939] [ 333] 0 333 11700 84 122880 380 -1000 systemd-udevd [ 393.523941] [ 529] 62583 529 36528 14 188416 143 0 systemd-timesyn [ 393.523942] [ 531] 101 531 17659 47 180224 123 0 systemd-resolve [ 393.523942] [ 573] 102 573 65758 57 163840 225 0 rsyslogd [ 393.523944] [ 588] 0 588 73983 33 212992 262 0 accounts-daemon [ 393.523944] [ 591] 0 591 108582 0 352256 381 0 ModemManager [ 393.523945] [ 592] 103 592 12881 304 139264 171 -900 dbus-daemon [ 393.523946] [ 675] 116 675 11813 45 135168 61 0 avahi-daemon [ 393.523947] [ 677] 0 677 11307 6 126976 129 0 wpa_supplicant [ 393.523948] [ 681] 0 681 125853 1 348160 624 0 udisksd [ 393.523949] [ 682] 116 682 11768 5 131072 81 0 avahi-daemon [ 393.523949] [ 683] 0 683 17649 18 172032 178 0 systemd-logind [ 393.523950] [ 685] 0 685 44666 1 237568 1983 0 networkd-dispat [ 393.523951] [ 689] 0 689 160118 376 442368 371 0 NetworkManager [ 393.523952] [ 691] 0 691 400753 3169 356352 2126 -900 snapd [ 393.523953] [ 694] 0 694 9862 26 114688 46 0 cron [ 393.523954] [ 695] 0 695 27178 29 233472 291 0 cupsd [ 393.523955] [ 696] 0 696 1137 0 57344 41 0 acpid [ 393.523956] [ 704] 0 704 27603 27 118784 56 0 irqbalance [ 393.523957] [ 746] 0 746 75882 9 352256 373 0 cups-browsed [ 393.523957] [ 747] 0 747 73229 100 229376 585 0 polkitd [ 393.523958] [ 762] 0 762 48841 0 270336 2002 0 unattended-upgr [ 393.523959] [ 795] 0 795 77302 1 225280 439 0 gdm3 [ 393.523960] [ 796] 0 796 18074 0 184320 188 -1000 sshd [ 393.523961] [ 825] 0 825 6495 1 98304 315 0 dhclient [ 393.523962] [ 827] 0 827 68223 1 299008 468 0 gdm-session-wor [ 393.523962] [ 840] 123 840 339675 0 696320 41050 0 mysqld [ 393.523963] [ 841] 0 841 94434 19 475136 1149 0 apache2 [ 393.523964] [ 855] 112 855 115546 1 389120 440 0 whoopsie [ 393.523965] [ 856] 113 856 14235 26 143360 86 0 kerneloops [ 393.523966] [ 861] 113 861 14235 6 139264 106 0 kerneloops [ 393.523967] [ 879] 1000 879 19289 139 192512 268 0 systemd [ 393.523967] [ 880] 33 880 95070 163 466944 1064 0 apache2 [ 393.523968] [ 881] 33 881 95018 27 462848 1148 0 apache2 [ 393.523969] [ 882] 33 882 95014 2 462848 1171 0 apache2 [ 393.523970] [ 883] 33 883 95014 2 462848 1171 0 apache2 [ 393.523971] [ 884] 1000 884 28548 0 258048 674 0 (sd-pam) [ 393.523971] [ 885] 33 885 95014 2 462848 1171 0 apache2 [ 393.523972] [ 956] 1000 956 72356 95 180224 169 0 gnome-keyring-d [ 393.523973] [ 971] 1000 971 53289 1 176128 169 0 gdm-x-session [ 393.523974] [ 973] 1000 973 155168 6259 626688 3497 0 Xorg [ 393.523975] [ 1019] 1000 1019 12842 251 147456 254 0 dbus-daemon [ 393.523975] [ 1023] 1000 1023 140058 233 425984 433 0 gnome-session-b [ 393.523976] [ 1149] 1000 1149 2825 9 61440 70 0 ssh-agent [ 393.523977] [ 1154] 1000 1154 87322 1 180224 199 0 at-spi-bus-laun [ 393.523978] [ 1159] 1000 1159 12481 66 131072 71 0 dbus-daemon [ 393.523979] [ 1161] 1000 1161 55195 13 188416 178 0 at-spi2-registr [ 393.523979] [ 1185] 1000 1185 932129 15439 1732608 26389 0 gnome-shell [ 393.523980] [ 1191] 0 1191 78759 0 237568 289 0 upowerd [ 393.523981] [ 1198] 1000 1198 73249 122 196608 119 0 gvfsd [ 393.523982] [ 1203] 1000 1203 104028 0 172032 224 0 gvfsd-fuse [ 393.523983] [ 1216] 1000 1216 299048 0 512000 570 0 pulseaudio [ 393.523983] [ 1217] 109 1217 45876 0 122880 74 0 rtkit-daemon [ 393.523984] [ 1230] 1000 1230 90599 238 200704 126 0 ibus-daemon [ 393.523985] [ 1234] 1000 1234 70442 0 172032 200 0 ibus-dconf [ 393.523986] [ 1236] 1000 1236 86252 166 417792 992 0 ibus-x11 [ 393.523987] [ 1240] 1000 1240 69895 29 163840 100 0 ibus-portal [ 393.523987] [ 1246] 1000 1246 68146 0 159744 154 0 xdg-permission- [ 393.523988] [ 1258] 1000 1258 172409 0 536576 869 0 gnome-shell-cal [ 393.523989] [ 1262] 1000 1262 173312 2 741376 1086 0 evolution-sourc [ 393.523990] [ 1270] 1000 1270 196193 2 700416 1513 0 goa-daemon [ 393.523991] [ 1274] 0 1274 74474 36 204800 174 0 boltd [ 393.523991] [ 1281] 1000 1281 76866 209 229376 184 0 gvfs-udisks2-vo [ 393.523992] [ 1290] 1000 1290 76096 0 221184 298 0 goa-identity-se [ 393.523993] [ 1295] 1000 1295 69216 48 172032 75 0 gvfs-mtp-volume [ 393.523994] [ 1299] 1000 1299 94961 51 221184 165 0 gvfs-afc-volume [ 393.523994] [ 1304] 1000 1304 72413 47 184320 106 0 gvfs-gphoto2-vo [ 393.523995] [ 1308] 1000 1308 68767 56 159744 87 0 gvfs-goa-volume [ 393.523996] [ 1312] 0 1312 114452 765 352256 347 0 packagekitd [ 393.523997] [ 1313] 1000 1313 129549 314 503808 963 0 gsd-power [ 393.523998] [ 1314] 1000 1314 87588 1 307200 360 0 gsd-print-notif [ 393.523998] [ 1316] 1000 1316 106092 0 180224 195 0 gsd-rfkill [ 393.523999] [ 1318] 1000 1318 69189 1 163840 164 0 gsd-screensaver [ 393.524000] [ 1324] 1000 1324 113465 116 241664 267 0 gsd-sharing [ 393.524001] [ 1331] 1000 1331 94738 1 233472 262 0 gsd-smartcard [ 393.524001] [ 1335] 1000 1335 123889 168 454656 1140 0 gsd-xsettings [ 393.524002] [ 1339] 1000 1339 83470 0 266240 291 0 gsd-sound [ 393.524003] [ 1350] 1000 1350 125803 193 479232 1041 0 gsd-wacom [ 393.524004] [ 1353] 1000 1353 86157 162 421888 994 0 gsd-clipboard [ 393.524005] [ 1355] 1000 1355 69794 0 172032 182 0 gsd-a11y-settin [ 393.524005] [ 1359] 1000 1359 117691 0 450560 520 0 gsd-datetime [ 393.524006] [ 1364] 1000 1364 164959 228 487424 994 0 gsd-color [ 393.524007] [ 1367] 1000 1367 126882 365 483328 1015 0 gsd-keyboard [ 393.524008] [ 1370] 1000 1370 91367 85 204800 113 0 gsd-housekeepin [ 393.524009] [ 1371] 1000 1371 69797 0 167936 189 0 gsd-mouse [ 393.524009] [ 1375] 1000 1375 198469 208 520192 1057 0 gsd-media-keys [ 393.524010] [ 1409] 1000 1409 127449 0 434176 481 0 gsd-printer [ 393.524011] [ 1410] 117 1410 81499 1 270336 1195 0 colord [ 393.524012] [ 1423] 1000 1423 67983 0 167936 351 0 gsd-disk-utilit [ 393.524013] [ 1424] 1000 1424 198413 1879 790528 1345 0 nautilus-deskto [ 393.524014] [ 1451] 1000 1451 92283 0 217088 330 0 gvfsd-trash [ 393.524014] [ 1462] 1000 1462 223301 0 909312 10023 0 evolution-calen [ 393.524015] [ 1472] 1000 1472 46976 106 131072 63 0 dconf-service [ 393.524016] [ 1481] 1000 1481 284205 0 720896 9923 0 evolution-calen [ 393.524017] [ 1483] 1000 1483 51478 67 163840 118 0 ibus-engine-sim [ 393.524017] [ 1499] 1000 1499 183428 0 581632 897 0 evolution-addre [ 393.524018] [ 1507] 1000 1507 254558 0 614400 994 0 evolution-addre [ 393.524019] [ 1524] 0 1524 27518 1 262144 256 0 sshd [ 393.524020] [ 1611] 1000 1611 27518 0 253952 259 0 sshd [ 393.524021] [ 1612] 1000 1612 7673 1 102400 374 0 bash [ 393.524022] [ 1639] 1000 1639 4500 0 81920 80 0 make [ 393.524023] [ 1640] 1000 1640 64950 294 266240 5627 0 python3 [ 393.524023] [ 1678] 1000 1678 28138 812 229376 5118 0 python3 [ 393.524024] [ 1680] 1000 1680 4500 1 77824 85 0 make [ 393.524025] [ 1686] 1000 1686 4740 1 69632 310 0 make [ 393.524026] [ 1818] 1000 1818 4720 15 77824 292 0 make [ 393.524027] [ 1821] 1000 1821 4720 15 77824 294 0 make [ 393.524027] [ 1840] 1000 1840 4545 8 73728 109 0 make [ 393.524028] [ 1842] 1000 1842 111069 56 667648 45517 0 cargo [ 393.524029] [ 1862] 1000 1862 1563767 1236224 12185600 202803 0 rustc [ 393.524030] [ 1868] 1000 1868 166884 1161 520192 9 0 update-notifier [ 393.524031] [ 1870] 1000 1870 328958 28223 1089536 1981 0 gnome-software [ 393.524032] [ 1895] 0 1895 142888 734 520192 21 0 fwupd [ 393.524032] [ 1952] 1000 1952 199530 1499 720896 0 0 deja-dup-monito [ 393.524033] [ 1961] 33 1961 95014 184 462848 989 0 apache2 [ 393.524034] [ 1973] 1000 1973 199986 2233 577536 0 0 gnome-terminal- [ 393.524035] [ 1981] 1000 1981 7678 372 90112 0 0 bash [ 393.524036] [ 1993] 1000 1993 13078 183 139264 0 0 top [ 393.524036] oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/,task=rustc,pid=1862,uid=1000 [ 393.524079] Out of memory: Killed process 1862 (rustc) total-vm:6255068kB, anon-rss:4944896kB, file-rss:0kB, shmem-rss:0kB [ 393.681287] oom_reaper: reaped process 1862 (rustc), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB u18$
基盤:まあ、今日びのプロセスはギガ食ってるのもよくありますけどね。
u18$ ps axl|sort -r -n +6|head
0 1000 1185 1023 20 0 3722396 112096 poll_s Sl+ tty1 0:06 /usr/bin/gnome-shell
4 0 691 1 20 0 1603012 7528 - Ssl ? 0:01 /usr/lib/snapd/snapd
1 123 840 1 20 0 1358700 0 - Sl ? 0:01 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid
0 1000 1870 1023 20 0 1315832 33592 poll_s SLl+ tty1 0:02 /usr/bin/gnome-software --gapplication-service
1 1000 1216 1 9 -11 1196192 1916 poll_s S<l ? 0:00 /usr/bin/pulseaudio --start --log-target=syslog
0 1000 1481 1462 20 0 1136820 2080 poll_s Sl ? 0:00 /usr/lib/evolution/evolution-calendar-factory-subprocess --factory all --bus-name org.gnome.evolution.dataserver.Subprocess.Backend.Calendarx1462x2 --own-path /org/gnome/evolution/dataserver/Subprocess/Backend/Calendar/1462/2
0 1000 1507 1499 20 0 1018232 2568 poll_s Sl ? 0:00 /usr/lib/evolution/evolution-addressbook-factory-subprocess --factory all --bus-name org.gnome.evolution.dataserver.Subprocess.Backend.AddressBookx1499x2 --own-path /org/gnome/evolution/dataserver/Subprocess/Backend/AddressBook/1499/2
0 1000 1462 879 20 0 893204 0 poll_s Ssl ? 0:00 /usr/lib/evolution/evolution-calendar-factory
0 1000 1973 879 20 0 800104 15600 poll_s Ssl ? 0:00 /usr/lib/gnome-terminal/gnome-terminal-server
0 1000 1952 1023 20 0 798120 1844 poll_s Sl+ tty1 0:00 /usr/lib/deja-dup/deja-dup-monitor
開発:プロセスのリソースに変なリミットがかかってるんじゃないでしょうね?
基盤:さあ。ulimit -a っと。
基盤:泣けてきましたね。あ、でもやっぱり死ぬか。まさか rustcのバグとかじゃないでしょうね?
開発:ともかく、これは mozilla のビルドという本質とは全く関係ない話ではありますね。そのためにもう何時間ロスしたことか。まあ、昔に帰ったようで面白い経験してますが。
基盤:VMの最大メモリは32GBにしましたし、プロセスの仮想メモリはunlimit、スタックは十分にあげたのに死んじゃうって、なんなんですかね?あとはOSレベルでの上限か、はたまたHyper/Vの動的メモリとのなんかの齟齬か。
[ 499.483045] CPU: 1 PID: 2092 Comm: rustc Not tainted 5.3.0-53-generic #47~18.04.1-Ubuntu
[ 499.483046] Hardware name: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS 090008 12/07/2018
[ 499.483047] Call Trace:
[ 499.483064] dump_stack+0x6d/0x95
[ 499.483068] dump_header+0x4f/0x200
[ 499.483069] oom_kill_process+0xe6/0x120
[ 499.483071] out_of_memory+0x109/0x510
[ 499.483075] __alloc_pages_slowpath+0xad1/0xe10
[ 499.483076] __alloc_pages_nodemask+0x2cd/0x320
[ 499.483081] alloc_pages_vma+0x13b/0x190
[ 499.483085] __handle_mm_fault+0x8a8/0x1260
[ 499.483086] handle_mm_fault+0xcb/0x210
[ 499.483091] __do_page_fault+0x2a1/0x4d0
[ 499.483092] do_page_fault+0x2c/0xe0
[ 499.483097] page_fault+0x34/0x40
開発:rustcのコアダンプがないので、この根っこがどこにあるかわからないですね。たぶん、malloc から brk という流れじゃないかと思いますが。あ。core file size が 0 になってるからですか。うーん、スタックサイズにしてもコアダンプサイズにしても、よくわからないデフォルト値です。
基盤:まー、6GBのコアダンプされたら、みんな道連れでアウトですけどね(笑)というか、いらなそうなメモリ食いのプロセスにとりあえず死んでてもらって、make し直してるんですが、rustc の実行時間が6分代に突入してます。最長不倒距離ですね。これ、いけるんじゃないんですか?
基盤:おおー。しかしまー、ほとんど裏方プロセスがシャカリキ状態ですね。あ、死んだ。
[ 2754.568821] Out of memory: Killed process 2748 (rustc) total-vm:6005212kB, anon-rss:4435804kB, file-rss:0kB, shmem-rss:0kB
[ 2754.712397] oom_reaper: reaped process 2748 (rustc), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB
開発:でもまー、不要デーモンに死んでてもらう作戦は明らかに効果があったんで、その線で進めてみましょう。ちょっとブレークしますか。
--
2020-0606 SatoxITS