たまに掃除は必要!熱暴走…

イメージ
 そんなに暑くないのに… 本日、午前中にオンラインで打合せをしていると、突然マシンがダウン。 一瞬、停電か?と思ったもののディスプレイの電源は入っている。 あれっ?と思い、すぐさまノートで打合せを継続。 その間に、再度マシンの電源を投入。 問題なく起動する。 でも、CPU温度がたまたま目に入り、95℃を超えて徐々に上昇していく。 105℃あたりで再度マシンダウン。 これは、熱暴走によるダウンの可能性が高い。 以前、CPUをRyzen7→9にした頃は、60℃〜70℃程度だった記憶がある。 本当はGW中にSSDの載せ替えを行う予定だったけれど、忙しくて先延ばしにしていた。 その時やっていれば、多分掃除もしただろうに…。 ということで、午後からマシンを解体し、掃除をすることに。 ケース本体のFANはホコリがかなり溜まっている。 GPUのFANは問題ない。 電源とCPU FANはひどい。 一旦、CPU FANを取り外し、きれいにする。ついでにCPUグリスも塗り直しセット。 動作確認すると、投入直後で40℃台。 そりゃ、熱暴走も起こすわけだ。 せっかくバラしたので、SSDの載せ替えを実施。 OSは500GBで、ユーザ領域(/home)は1TBを使用しているもののAIのmodelをいくつも落としていたり、DockerのImageが多種置いてあるため、結構容量を食っている。 今回、2TBのSSD( Hanye SSD ¥17,800- で入手済)を用意してあるので、 1TB→2TB, 500GB→1TBと玉突きで移動させることを計画していたので実施する。 本当は、ddコマンドで移すつもりだったのだけれど、3月にお客さんのところで使いそうだったので、 ORICOのクローン機能付SSDアダプタ を入手済。 裸族のSSD版ですね…。1万円程度の品です。 これに、新品のSSDとこれまでの1TBのSSDを差し込んでクローン開始。 そこそこ時間はかかるものの、放置でOK。 ただ、HanyeのSSDについているヒートシンクが引っかかるため、一旦取り外してクローン後取り付ける必要があった。 続いて、500GB→先程の1TBに書き込み。 ただ、1TB(samsungの980pro)が、先程のクローンでかなり熱くなっていたため、速度低下が激しい感じ。1TB→2TBよりも時間がかかった感じ。 ...

異なるマシンで403 forbiddenが発生する

API関連のプログラムを作成中に

RESTfulなAPIを作成して、テストしているのだけれど、ノート上では通ったテストがデスクトップ上のマシンだと通らない事象が発生…。

なぜか、403 forbiddenが返ってくる。

まずは、ブラウザでPOST/GETのテスト。
問題なく動作する(これはこれで、なぜだ…)

なので、動いているかと思い、PUT/DELETEなどのmethodもテストする。
ブラウザでは無理なので、Postmanを使っている。

ノートでは、正常にレスポンスが返ってくるのに、デスクトップだとエラー。

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
    <head>
        <title>403 Forbidden</title>
    </head>
    <body>
        <h1>Forbidden</h1>
        <p>You don't have permission to access /~yoshimura/xxxxx/api/yyyyy/12345
on this server.
            <br />
        </p>
        <hr>
        <address>Apache/2.4.29 (Ubuntu) Server at localhost Port 80</address>
    </body>
</html>
なんで〜。
念の為、ログを見る。

::1 - - [02/Feb/2019:12:17:44 +0900] "POST /~yoshimura/xxxxx/api/yyyyy/12345 HTTP/1.1" 200 198 "-" "PostmanRuntime/7.4.0"
::1 - - [02/Feb/2019:12:19:00 +0900] "PUT /~yoshimura/xxxxx/api/yyyyy/12345 HTTP/1.1" 403 539 "-" "PostmanRuntime/7.4.0"
::1 - - [02/Feb/2019:12:39:39 +0900] "GET /~yoshimura/xxxxx/api/yyyyy/12345 HTTP/1.1" 200 2150 "-" "PostmanRuntime/7.4.0"
::1 - - [02/Feb/2019:12:41:09 +0900] "DELETE /~yoshimura/xxxxx/api/yyyyy/12345 HTTP/1.1" 403 539 "-" "PostmanRuntime/7.4.0"
::1 - - [02/Feb/2019:12:41:36 +0900] "PATCH /~yoshimura/xxxxx/api/yyyyy/99999 HTTP/1.1" 403 539 "-" "PostmanRuntime/7.4.0"


パーミッションが無いって言われても、同じプログラムにアクセスしてるんでっせ…。
むむむ。POSTとGETは通るのに…。

noteでは、localhost直で叩いていたけれど、デスクトップは他のプロジェクトなどもあるので、ユーザディレクトリで動かしているからか?→ピーン! 🔔

解決!

apache上のuserで動作するように、mods-enabledにuserdirを突っ込んでいる。
( # a2enmod userdir )

この設定ファイルuserdir.confを見ると、
<Directory /home/*/public_html>
        AllowOverride FileInfo AuthConfig Limit Indexes Options
        Options MultiViews Indexes FollowSymlinks IncludesNoExec
        Require method GET POST OPTIONS
</Directory>

あった!
require method に getとpostしか許可していなかった…。
これを
Require method GET POST PUT DELETE OPTIONS
と書き換えて、apacheを再起動。
無事に、受け取るようになった…。

しょうもない設定漏れで、2時間程無駄に費やしたゎ。

ということで、wwwroot以外で動作させる場合に、userdir.confの設定にも気をつけようという備忘録です。


コメント

このブログの人気の投稿

Ubuntu24.04 でGUIが死んだ

VirtualBoxが異常

MEGAにも弱点があった?