Rust part33

レス数が900を超えています。1000を超えると表示できなくなるよ。
2025/11/23(日) 19:14:51.30ID:76/k8vRg
>>870
限るならからあるべき姿まで語り出すのは飛躍
今回のは(可用性向上するための)ボット対策が悪さするなら止める方がマシなだけ

機密性やら完全性やら欠いても動かすかどうかは別問題
あるべき姿として可用性優先してるのではない
2025/11/23(日) 19:34:48.38ID:W+o2V/Ez
>>873
つ >同様の障害時には

前後の文脈読まれたし
その上でより丁寧に書き直すなら以下になるかと
当該サービス(の当該案件)に限るなら、「安全に停止(パニック)する」よりも「可用性を優先すべき」がネットワークインフラを提供する立場としてのあるべき姿と見たわけだ

少なくとも以下の文章からは可用性をサービスの要と見ている節が読み取れるような気もするが
ただしだからといってそれが「機密性やら完全性やら欠いても動かすかどうかは別問題」と矛盾する趣意かは別問題

>An outage like today is unacceptable. We've architected our systems to be highly resilient to failure to ensure traffic will always continue to flow. When we've had outages in the past it's always led to us building new, more resilient systems.
2025/11/23(日) 19:52:12.24ID:W+o2V/Ez
>>872
実際はボット管理で言えばくだんのフィーチャーファイルとやらによる「更新をしない」分岐とかでは(エラーログの通知、及びそれに伴う都度の運用判断することなどは前提として)
当該機能の性格上、頻繁な更新を要することが今回の騒動に拍車をかけた形だろうし(その部分だけで見れば「(前提をネストさせた上で、にもかかわらずそれを無視すれば)"落ちやすい"」)
それにしては肝心のファイル生成をする当のクエリをノールック(あるいは見たけどスルー)でDBの権限変更したのはあまりに杜撰と見る向きもあるが
ちなみに改善手順と銘打って記載列挙された中には、上記のファイルに関するくだりも見られ、要するに「内部生成されたファイルも外部のそれと同等に扱う」とのことらしい

- Hardening ingestion of Cloudflare-generated configuration files in the same way we would for user-generated input
- Enabling more global kill switches for features
- Eliminating the ability for core dumps or other error reports to overwhelm system resources
- Reviewing failure modes for error conditions across all core proxy modules

しかしあの規模の、世界的なインフラ最大手がまさかの現場猫案件かますとは
後知恵バイアスと言われてしまえばそれまでなのだが、それにしてもな感はある
876デフォルトの名無しさん
垢版 |
2025/11/23(日) 20:20:59.87ID:hAxz+HBT
Cargoの管理ファイルがウザイな。
lib.rsまでは良しとしてmod.rsまで必要かえ?
PlatformIOのように全体一発でモジュールとクレート管理できんもんかね?
2025/11/23(日) 20:57:42.13ID:6RGNEouq
Rustのモジュール設計ってPythonのパクり?
2025/11/23(日) 23:28:58.23ID:rr5Ei7G8
>>867
前提の認識は合ってる

判断基準は>>852に書いたように「プログラムやサービスをこのまま動作させることが適当でないエラーが発生した状況」がプログラムコードのバグに起因する(としか考えられない)状況ならpanicが選択肢になる

プログラムコードのバグ以外に起因する状況ならpanicは選択肢にならない
エラーハンドリングをしてプログラムやスレッドの処理を終わらせる
2025/11/23(日) 23:44:04.11ID:rr5Ei7G8
もっともCloudflareの事例はプログラムやサービスを停止させる必要はなくて古い設定値のままトラフィックを捌き続ければよかった
880デフォルトの名無しさん
垢版 |
2025/11/24(月) 00:16:32.96ID:JEY6AAvW
>>858
いや、プログラムが緊急停止した場合の対策が出来ない無能はシステムを運用すべきじゃない、だろ。
881デフォルトの名無しさん
垢版 |
2025/11/24(月) 08:08:42.17ID:ToUcbaMD
>>880
その発言だと開発のポカは運用でカバーできるのが前提になっているけど、panicみたいに緊急停止するような状況はどんなに上手く運用したとしても回避するのは困難かと。
しかもCloudflareの場合は
https://blog.cloudflare.com/ja-jp/18-november-2025-outage/
自動生成した設定ファイルが原因だから、コードに詳しい開発側じゃなければわからない。

これを「運用が無能だから発生した」とか言うんだったら、運用側は「panicは最小限度にしろ」「panicが発生するコードは全て明記して管理しろ」「管理できなければpanicさせるな」と要求するわな。
882デフォルトの名無しさん
垢版 |
2025/11/24(月) 10:00:06.15ID:JEY6AAvW
>>881
あのな、言いたい事は分かるし、プログラマはシステムが止まらないよう最大限の努力しろというのはその通りだが、超新星爆発や太陽フレアやコーヒーが零れるのは止められないからな。それを念頭に運用は速やかにシステムを復旧出来るようにしとけよ。それが出来ずにプログラムやプログラマを非難するだけの運用なら無能というはなし。
2025/11/24(月) 10:32:10.42ID:NcJaUoGt
>>876
いらんからmod.rsは非推奨になったのでは
ディレクトリと同名ファイルで管理するようになって
Facadeパターンとして使いやすくなった
884デフォルトの名無しさん
垢版 |
2025/11/24(月) 10:45:36.91ID:ToUcbaMD
>>882
なんのために制約キツくてコーティング面倒臭いRustを使っているのか、という話だわな。

Rustを採用するマネジメント層からすれば、トラブルの無い安定運用がRustに期待するところであって、Cloudflareみたいなサービス停止トラブルはあってはならない悪夢でしかない。その原因が無能コーダーが不用意に突っ込んだunwrapなんだから、管理側が「SafeRustではpanic禁止にしたい」と考えるのは当然じゃないんかね。
2025/11/24(月) 10:54:15.58ID:6bKOYnAL
>>881
>「panicは最小限度にしろ」「panicが発生するコードは全て明記して管理しろ」「管理できなければpanicさせるな」
クリティカルなサービスなら当然の要求な気がする
障害につながらない仕組みが用意されてるpanicと即障害になるpanicは扱いが違うだろうけど管理は必要
ポストモータムにある対策の4番目に該当する

>>882
最大限の努力をしないと無効な入力値が渡されただけでサービス全体が停止するシステムを作ってしまうようなら無能と言われても仕方ない
2025/11/24(月) 11:23:49.40ID:3cdeWV/q
>>883
ファイル名と配置のルールが変わっただけだぞ
エディタのクイックオープン機能なんかで同名ファイルが大量に並ぶのは見づらいというしょーもない理由
887デフォルトの名無しさん
垢版 |
2025/11/24(月) 12:50:03.58ID:fg7M9od0
>>883
非推奨化はしてないと思うが
インテグレーションテストから共有されるモジュールなんかは mod.rs 方式しか使えなかったりするし
2025/11/24(月) 12:51:36.71ID:OH3b+FiZ
Rustが保証するのはメモリ安全であって、それ以上の機能を言語自体に期待してはいけないね
2025/11/24(月) 13:52:56.65ID:wHdQFDSx
3年かけて数多のスレを潰してようやく分かったか?
2025/11/24(月) 15:25:42.29ID:xtd+oazR
今後Rustは使用必須のスタートラインに過ぎないからな
2025/11/24(月) 17:08:28.30ID:Ya054j8a
Rustの次の言語に期待
2025/11/24(月) 17:14:22.69ID:eqWikkbY
実際、Rust以降ってこれといった言語出てなくない?
2025/11/24(月) 17:19:31.65ID:mGEasdrD
Rustより安全性の高い言語でないと企業が採用しない
Rustのような書きやすさと両立したプログラミング言語は出現しそうにない
2025/11/24(月) 17:45:09.92ID:kI+d7siV
メモリの安全性だけでなくnull safetyやmatchのexhaustivenessなど堅牢なソフトウェアを作るための機能が言語に備わっている

にもかかわらずそれらバイパスする間違ったunwrapやpanicの使い方を「正しい」と思い込んでる人たちを少なからず作り出しているということと、その誤った使い方を構造的に防止する方法がないということがソフトウェアの安全性に対するRustの問題点
895デフォルトの名無しさん
垢版 |
2025/11/24(月) 18:01:28.20ID:p5vlTQW+
unsafeの中以外は⊂(^ω^)⊃ セフセフ!!
2025/11/24(月) 18:21:57.08ID:eehF78R0
>>894
理解できていないのは君だろ
null safetyは必ずnullチェックがなされることを指す
unwrapは必ずnullチェックをする安全な方法
安全でないのはnullチェックをしないunwrap_unchecked()
2025/11/24(月) 18:37:03.11ID:rjCnBMS+
>>896
つまり他言語でも

*nullptr = 123;

で「終了」すればnull safetyだとの主張ですな
2025/11/24(月) 18:43:35.39ID:t2YHlRQh
>>892
Zigがあるじゃん
2025/11/24(月) 18:48:01.50ID:eehF78R0
>>897
それはnullチェックをしていないため安全でない
unwrapは必ずnullチェックをする安全な方法
2025/11/24(月) 18:53:21.46ID:fgR96Ue8
>>898
何年前に出て、現在どれだけ使われてるの?
2025/11/24(月) 19:30:54.35ID:t2YHlRQh
>>900
JavaScriptランタイムのBun
あと、SUSEがZigでSSHの再実装するらしい
2025/11/24(月) 19:58:53.90ID:0956DWdq
>>901
聞いたのは個別具体な事例ではなく、どれだけ使われているか、つまり普及のいかんについてであるのと、あと出た時期Rustと変わんなくない?
903デフォルトの名無しさん
垢版 |
2025/11/24(月) 21:00:06.05ID:/4tPGgp6
Crate.ioには、std::fmt::Debugをインプリしていないクレートが一杯あるんやね。
UartDriverだけかと思いきや、結構ある。
Wrapper作ってのインプリ作業がマンドクセ。
でないと、クレート、モジュールの外部変数Mutex.setもできん。
いろいろ手間のかかる言語だ。
2025/11/24(月) 21:14:00.28ID:P1qKutdV
ラップして Debug を実装するだけならマクロでかなり自動化できると思う。
というかそういうクレートはありそう。 知らんけど。
2025/11/24(月) 22:02:41.96ID:BE69Oim8
>>896
言語に機能は備わっているけど誤った使い方でそれを活用できていない人たちがいるという話に対して「unwrapは必ずnullチェックをする」という言語に備わった機能を紹介しても意味ないでしょ

ちなみにnull safetyは必ずnullチェックがなされることを指すわけではないよ
null safetyを実現するための一手段ではあるけれどね
2025/11/24(月) 22:03:30.71ID:Ucl2n3b7
>>903
これまで誰も困っていないのならば
あなたがおかしい可能性を疑ってみてはいかが
2025/11/24(月) 22:07:33.53ID:qMEdPPRT
>>905
その件は一方的な特定の価値観によって「誤った使い方」と断言してる人がおかしい
まずケースバイケースであり更に同じケースでも価値観の相違がある話なので技術的な話ではない
2025/11/24(月) 22:25:07.64ID:BE69Oim8
>>907
ケースバイケースなのは当然の話なんだがunwrapの誤った使い方によって大障害につながったCloudflareのケースを念頭に話をしてるわけで

あれが「誤った使い方」と断言できない人がこんなスレだけで複数いることがRustの抱えてる問題
2025/11/24(月) 22:28:17.91ID:qMEdPPRT
>>908
本気で言ってるなら正気を疑う
まず思い込みの前提から解放されよう
910デフォルトの名無しさん
垢版 |
2025/11/24(月) 22:31:40.94ID:fg7M9od0
>>906
Rust API Guidelines でもパブリックな型にはDebugトレイトを実装することを推奨してるけど
https://rust-lang.github.io/api-guidelines/debuggability.html
2025/11/24(月) 22:32:27.20ID:vfRWkEzS
>>908
その無理矢理な「Rustの抱えている問題」との書き込みからアンチらしき人にみえます
2025/11/24(月) 22:41:07.93ID:pZ21ptJQ
「所有権の複製」の人って
その発言の前はそもそもクソコードいっぱいこのスレに書いてた人よな?
あの人よくunwrap書いてたような記憶あるけど記憶違いかな
2025/11/24(月) 23:02:06.99ID:A7gFxydS
unwrap使わない人はassertも使わないのかな
条件が破れた時にpanicの発生源になるし
2025/11/25(火) 00:13:09.71ID:8A3kV+Bq
除算は常にchecked_div使ってそう
2025/11/25(火) 00:17:03.45ID:x+ek8sa9
物事を点でしかとらえられない知的障害者が大勢いるのがよくわかってかなしい
早くAIに置換したい
2025/11/25(火) 00:21:51.64ID:GjnKMvo7
0か100か思考の例
2025/11/25(火) 01:08:59.76ID:0646GGZx
>>909
Cloudflareのunwrapの使い方が誤った使い方でないと思ってるならそう思う根拠を述べて反論できないの?
2025/11/25(火) 03:59:13.06ID:+GvTbsc2
>>917
あちこちでの議論くらい読め
Resultを返す関数の中で意図的にResultをunwrapしていることから
そこでエラーは起きないと確信していて起きたら停止すべき事態とみなしている
現実にもありえない重複行が発生してサイズオーバーという異常事態になっていた
あとは運用側の問題でありpanicによりどこで何が起きたか確実に判明して直ぐに対応できる話だがここでは対象外
レスを投稿する

レス数が900を超えています。1000を超えると表示できなくなるよ。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況