例のGearmanのあれですが、naoyaさんが調べてくれてます(Gearmanのやつ、Gearmanのやつ#2)。 とりあえず、問題となる箇所をsysread()ではなく、recv()でMSG_WAITALLをすることにより64kb以上のデータでも問題のなく取得できることを確認しました。すげー。 変更は下記のような感じにしました。ほぼnaoyaさんが書いた修正案そのままです。 --- Util.pm.old 2007-06-30 06:40:24.000000000 +0900 +++ Util.pm.new 2007-09-29 13:55:10.278878000 +0900 @@ -1,6 +1,7 @@ package Gearman::Util; use strict; +use Socket; # for MSG_WAITALL # I: to jobserver # O: