新しいものを表示
orange さんがブースト

むしろそのせいでsidekiqが全部ダメになって、OSは落ちてないけどただのカカシになったとかありそう

orange さんがブースト

でも今のLinux Kernel、そんな地獄のような状況になる前に酷いプロセスを容赦なくkillする緊急回避機能ついてなかったっけ

オレンジは基本的にGUI環境前提で動くもの(=ユーザーが操作する環境で動くもの)を作るので、高負荷具合でGUIの反応に影響が出ることをものすごく嫌うし、「ユーザーの操作を最優先に処理すべき!><# 」って発想なので、結果的にわりと自制的な感じに作ってると思う><
他人が作ったものでもGUIの処理が後回しになってるのものすごく嫌うし普段からキレまくってるしキレてプロセスごと殺す事多いし><
(15秒反応なかったら強制終了しよう!><ポリシー)

ていうかmsidekiq自体はネットワーク処理エンジンじゃなく単なるジョブプール?かも?><
ちゃんとネットワークの処理自体見てるのかも?><
あと、ネットワーク関係無くそもそもすぎるびっくりな点として、キューたまりすぎて高負荷で「鯖ごと落ちた」とか昨晩もなんか色々出てたっぽいけど、自分の実行環境の負荷の具合見て自制する機能くらいついてないの?><;

orange さんがブースト

Mastodonの配送処理はsidekiq依存で、sidekiqはリトライ間隔をだんだん広げていくように元々設計されてるし、リトライ回数も設定できるから、延々同じ間隔でリトライするような頭の悪いことにはならない。
後は「信用できなさげなサーバ」判定だろうなあ。

orange さんがブースト

スレッドプール自作する勢から見たら、RoR+nodeって聞いた時点で暴動を起こすレベルな気がする

orange さんがブースト

やだなー富豪プログラミング的手法しかしないいまどきにちゃんとエラー処理まで考える人なんているわけないじゃないですかー
orz

受け側として『弾く処理』入れてようが入れてなかろうが、『弾かれた処理』に対してどうするかちゃんと書かなくてセキュリティーホールになるのであるのならなるのはどっちにしても同じでは?><;
(この場合)『マストドンが通信する相手は必ずマストドンの既知のバージョンである』みたいな前提からそもそもおかしくない?><

orange さんがブースト

「弾かれた」それ自体がセキュリティホールになるかどうかは理論的にはわからん…ただ、そこが「突かれやすい穴」に思えてならないんだよな…

orange さんがブースト

「弾く」処理があるなら「弾かれた」に対応する処理が必要よね…

orange さんがブースト

弾かなければいけないほど大量に届くことは想定してなかった…という気がするけど

もちろんスレッドプール(というかなんと言うか)も自作だったし、誰に学ぶでもなく過去にそういう風に作ったからこそ、マストドンのガバガバ具合「なんで!?><;」って思う><

たしか、ドメイン単位でエラーカウントして信頼性測って(?)、「この鯖信用ならないから後回し!><# 」みたいな感じに作ってた記憶ある><(15年くらい前なのでよく覚えてないけど><;)
あと最初ものすごくタイムアウト短くして、後回しのはタイムアウト長くするってしてたかも><

ていうか、ネットワーク使うもの最近あんまり作らないけど昔作ってたけど、
当時、相手の鯖を(性能/技術的な意味で)徹底して疑うし信頼しないって発想で作るの当たり前だと思って書いたかも><

その発想嫌い><; って話でもあるけど、時系列的にそれ以前に作り始める時に設計として真っ先に考えて当たり前じゃないの感がある><

この低品質具合もUNIX文化の影響大きいと思う><
UNIX流の『シンプル』の駄目な面そのまんまだし><

ていうか、大規模に使われるかどうかと別でも、なにか作る時に、意味妥当性チェック?(例えば株式取引のシステムで発行株数以上の注文はするはずが無いので弾くとか)みたいなのとか、ブレーカーというかリミッターというか必ずつけるの、
プログラミングする時の癖として習慣にしないとマズくない?>< って思うんだけど><

orange さんがブースト

こんなにシビアに使われると思ってなかったんだろうね。

ていうか、なんで何も対策されてないのに完成品としてリリースされてるのか謎レベル感><

orange さんがブースト

これ、何回言ったか分からないけど、2でエラーを受け取ったときに、3と5の処理をドメインごとに管理して後回しにする処理を入れないとダメそう。>BT best-friends.chat/@rosylilly/1

古いものを表示
:realtek:

思考の /dev/null