ラベル トラブルシューティング の投稿を表示しています。 すべての投稿を表示
ラベル トラブルシューティング の投稿を表示しています。 すべての投稿を表示

2024年9月29日日曜日

Reactアプリケーションが驚きの白さになる問題(net::ERR_CONTENT_LENGTH_MISMATCH)

 Reactを使っていて、なぜか画面が真っ白になることがありました。驚きの白さです。

ブラウザーの開発者ツールでネットワークをモニターしたところ、CSSやJSなどの静的ファイルの読み込みに失敗していることがわかりました。

JSの読み込みに失敗したら驚きの白さになるというのはまあごもっともなんですが、問題は読み込みに失敗している原因がわからないこと。なにしろ、ローカルや開発環境では全く問題ないのに本番環境だけで問題が発生しています。そして読み込みに失敗している原因がnet::ERR_CONTENT_LENGTH_MISMATCHです。なんじゃこら。

色々原因を探っていたら、最終的に見つかったのがコンテンツ配信サーバーのディスクフル。

配信サーバーのストレージが足りない→コンテンツのキャッシュができない→誤ったデータを返す(?)みたいな流れで起きるピタゴラスイッチのようです。

ディスクフルくらい監視して気づけや、というツッコミは勘弁してください。今回は色々事情があったんです。。。

2024年8月11日日曜日

Fluentdでmultilineを使うときにちょっとだけ注意

 前回に引き続きFluentdの話。今回はmultilineパーサーについてです。

このパーサーは正規表現で複数行を解析できるので、regexpの上位互換みたいなもんか。じゃあ何も考えずmultilineにしとけばええやん!と思っていたら・・・

なぜか最後の行が出力されない。

これでしばらく悩んだんですが、そもそも考えてみたら次の行頭が確定するまで現在の行全体が確定しないわけですからそりゃそうですね。

というわけで、しばらく入力がなかったら自動的に行を確定させるためにmultiline_flush_intervalを設定しましょう。

これも数日ハマったので、同じようなハマり方をしている人のために残しておきます。

2024年8月4日日曜日

FluentdでS3に出力するときに気をつけること

 クラウド全盛期の今、ロギングツールも各クラウドの機能に取って代わられている感がありますが、まだまだ現役なFluentdの話です。

Fluentdで収集したログをAWS S3にアップロードする場合、セキュリティー対策として(アカウントが乗っ取られたときにログを盗まれないように)アクセスキーやロールにWRITE権限しかつけないことがあります。

そのときは、out_s3プラグインの設定で以下の項目を無効にしましょう。

  auto_create_bucket false
  check_bucket false
  check_object false

よく考えれば当たり前なのですが、諸々の存在チェックはS3側に読みに行くので、READ権限が必要です。これらを無効にしておかないと、エラーが出てログを収集できなくなります。

なんでこんな当たり前のことをわざわざ記事にするかというと、これを忘れてハマったからです。

2024年3月10日日曜日

GRUBのブートエラー "error: file /boot/ not found."

 先日、Linuxを入れているPCを再起動したら画面にこんなメッセージが出て起動できなくなりました。

error: file /boot/ not found.

Gentoo Linuxを使っているんで時々カーネルのアップデートはするけど、特にブートローダー周りをいじってるわけでもないし現に今まではこういうエラーも特に出なかったし、うーんなんだろなー🤔 このマシン使えないと副業も何もできんし困ったなー🤔

とりあえずエラーメッセージで検索しても原因らしきものは見つからず。仕方ないのでこういうこともあろうかと用意していたUbuntu入りのUSBメモリーで起動し、パーティションをマウント。マウントできたので、とりあえずストレージやパーティションに致命的な障害があるわけではなさそう。

あらためてカーネルの再構築やらgrub-mkconfigやらを実行して再起動。でもまだ同じエラーが出る。

半日近くあれこれ試行錯誤しましたが、最終的にパーティションをマウントしたディレクトリーにchrootしてgrub-installをやり直したら直りました。

grub-install --target=x86_64-efi --efi-directory=/boot/eft --bootloader-id=boot /dev/sda

結局原因はわからずじまいだけど、きっと何かの拍子になんかおかしくなったんでしょう。そうに違いない。

このマシン自体は4年前くらいに買ったやつで、今でもスペック的に大きな不満はないんだけどそろそろ買い換えどきかなぁ🤔

2024年3月3日日曜日

Enpassのバグ報告

 ここ数年パスワードマネージャーにEnpassを使っています。機能的に不満はなく、有料ですがサブスク方式ではなく一括払いのプランもあるので愛用しています。

ただ、最近特定の環境でブラウザーのパスワード自動入力ができなくなってしまいました。

詳細はEnpass公式フォーラムに書きましたが、Firefox v123.0のプライベートモードで自動入力機能が使えません。別の環境(Firefox v115.7)では問題ないので、バージョンアップした際にプライベートモードの拡張機能の仕様が何か変わったのかもしれない・・・と推測しているのですが詳しいことはわかりません。

別の環境のFirefoxをv123.0にしたら少しはハッキリするかもですが、動かなくなったら嫌だしなぁ・・・

誰か解決方法を知っていたら教えてください。

2024年1月14日日曜日

機械学習で全然精度が上がらない

 最近、seq2seqの独自実装にハマっています。まあ独自実装といってもまだ自慢できるような工夫はほとんどないんですが、翻訳とかチャットボットとかになんか使えそうなのでとりあえずエンジンを作っている段階です。

そんな自作seq2seqを使って試しに英日翻訳エンジンを作ってみたんですが、どれだけ学習させても全くもってトンチンカンな翻訳結果にしかなりません。多分アルゴリズムは合ってるはずだし学習データもネット上で公開されている機械学習用のトレーニングデータを使っています。ただデータ量が多いので、ある程度まとめてミニバッチ学習をさせています。何がおかしいんだ・・・

数日悩んでいましたが、ある日ソースコードを見直して気づきました。

ミニバッチ学習させるときに、パディングの影響を最小限にするためにトレーニングデータを長さ順にソートしています。それはいいんですが、入力と出力を独立にソートしていたため、英文と和文の対応がグチャグチャになっていることに。

対応がずれないように、英文の長さを基準にして「英文・和文のペアの配列」をソートして再学習させたところ、無事それっぽい翻訳結果が出ました。そのうちどこかで公開したり、基礎から始めるseq2seq的な記事を書いたりするかもしれません。

良い子のみんな、学習データの入力と出力は別々にソートしちゃダメだよ!こんなことするのは他にいないと思うけどね!

2021年5月2日日曜日

LinuxでWiFiがプチプチ切れる

タイトルの通り、LinuxでWiFiが割と頻繁に(数分〜数十分に1回程度)瞬断しています。今に始まった話ではなく、1年近く前からこの問題はありました。

環境を簡単にまとめると、

です。

2021年1月24日日曜日

GolangのDockerコンテナからRedisクラスター用のスロットを作成しようとしたら"Invalid or out of range slot"というエラーが出た件

ラノベのタイトルみたいになってしまいましたが気のせいです。いい要約が思いつかなかっただけです。

要するに、GolangのDockerコンテナからRedisクラスター用のスロットを作成しようとしたら"Invalid or out of range slot"というエラーが出てしまったわけです。

アホらしいオチなので最初の再現手順だけで原因がわかる人もいるでしょうが、思い込みが激しく解決に丸一日かかったので、未来の自分&他のドジっ子のために残しておきます。