Thunderbirdのコンパイル

社長:それで、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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です