ruby/perl のsyswrite について話したあとばたんと寝てたら、寝てる間に ruby コミッタと linux kernel コミッタがやってきて write(2) の制約であることが明らかになっていた

ruby/perl のsyswrite について話したあとばたんと寝てたら、寝てる間に ruby コミッタと linux kernel コミッタがやってきて write(2) の制約であることが明らかになっていた
28
前へ 1 ・・ 3 4
小崎 資広 (KOSAKI Motohiro) @kosaki55tea

@kosaki55tea @frsyuki @nalsh @tagomoris あ、できた。straceの結果、rubyは2GBのwriteをするが、カーネルが拒否ってるな。でrubyのsyswriteの仕様としてwrite(2)の結果がそのままスクリプトに返るのでああなる

2013-03-15 04:12:07
Sadayuki Furuhashi @frsyuki

@kosaki55tea @nalsh @tagomoris ほんとだ。write(1, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"..., 2147483647) = 2147479552 ですね。

2013-03-15 04:13:44
小崎 資広 (KOSAKI Motohiro) @kosaki55tea

@frsyuki @nalsh @tagomoris Linuxの仕様として一回のwriteで書ける最大長が INT_MAX & ~PAGE_SIZE にvfsで制限されてるな。Linusが2010年に変えてる。

2013-03-15 04:20:48
小崎 資広 (KOSAKI Motohiro) @kosaki55tea

@frsyuki @nalsh @tagomoris low level driverにint使ってるアホがいて脆弱性報告がうぜーから、もうintでもオーバーフローしなさそうな数で制限しよーぜとか乱暴なコミットログが。Linusがいれてるということはセキュリティがらみだと思う

2013-03-15 04:21:49
小崎 資広 (KOSAKI Motohiro) @kosaki55tea

@frsyuki @nalsh @tagomoris うそだった。2010年の修正はwritevへの適用であって、writeの制限はもっと前から

2013-03-15 04:25:02
小崎 資広 (KOSAKI Motohiro) @kosaki55tea

@frsyuki @nalsh @tagomoris これだな。http://t.co/irBeok43gh なんと昔はINT_MAX以上だとEINVALを返すというクソ仕様だったようだ

2013-03-15 04:33:56
小崎 資広 (KOSAKI Motohiro) @kosaki55tea

@frsyuki @nalsh @tagomoris TLを汚してしまって申し訳ないです。あとで消しておきます

2013-03-15 04:34:27
tagomoris @tagomoris

@kosaki55tea @frsyuki @nalsh おお、寝てる間に調査が。rubyは素通ししてるだけでlinux kernel側の仕様でしたか。じゃあperl syswrite()でも同じ結果になりそうですねー。

2013-03-15 09:30:01
tagomoris @tagomoris

ruby/perl のsyswrite について話したあとばたんと寝てたら、寝てる間に ruby コミッタと linux kernel コミッタがやってきて write(2) の制約であることが明らかになっていた。twitterすごい。w

2013-03-15 09:45:37
達人が教えるつぶあん🇺🇦 @kazeburo

寝ている間に、syswrite、write(2)の話が続いていて勉強になりました

2013-03-15 09:49:17
ふみやす@シェルまおう(自称でない) @satoh_fumiyasu

.@kazeburo @hiroyukim Linux に限らず、そして nonblocking かそうでないかに関係なく、wirte(2) が全部書いてくれるとは限りませんよ。https://t.co/ZToN6SI5bX ←これは間違いだと思う。

2013-03-15 11:26:55
Kazuho Oku @kazuho

partial writeを考慮しないコードとかそもそも避けるのがbest practiceだと思ってた / “ruby/perl のsyswrite について話したあとばたんと寝てたら、寝てる間に ruby コミッタと linu…” http://t.co/RQrLISJk0m

2013-03-15 11:55:40
達人が教えるつぶあん🇺🇦 @kazeburo

Starman::Serverのsyswriteに戻り値のチェックがないなぁと思ったのが個人的には話の発端

2013-03-15 11:58:55
Kazuho Oku @kazuho

ごめんなさい自分のコード漁ったら atomic に write できる仮定おいてるわ

2013-03-15 11:59:17
Kazuho Oku @kazuho

壮大なブーメランがつきささった

2013-03-15 11:59:48
小崎 資広 (KOSAKI Motohiro) @kosaki55tea

結局わたしはツイートを消していいのかいけないのか(困惑) http://t.co/KQHayhrgqM

2013-03-15 13:41:10
tagomoris @tagomoris

@kosaki55tea どうか残しておいてください

2013-03-15 13:48:26
hiroyukim @hiroyukim

@kosaki55tea 空気読まずにまとめてしまってすみません。消さずにすむならありがたいのです。 http://t.co/9O9AZ80Yn3

2013-03-15 14:26:20
前へ 1 ・・ 3 4