У меня есть модуль, который использует IPC:: Open3 (или IPC:: Open2, обе выставки эта проблема), чтобы назвать внешний двоичный файл (bogofilter в этом случае) и подать его некоторый вход через введенный детьми дескриптор файла, затем читает результат произведенного детьми дескриптора. Код хорошо работает, когда выполнено в большинстве сред. Однако основное использование этого модуля находится в веб-сервисе, который работает под Apache 2.2.6. И под той средой, я получаю ошибку:
Не может fdopen STDOUT: Недействительный аргумент
Это только происходит, когда код работает под Apache. Ранее, код создал ужасно сложную команду, которая включала здесь-документ для входа и выполнила его с обратными галочками. ЭТО работало, но было очень медленно и подвержено прерыванию уникальных и озадачивающих путей. Я не хотел бы должным быть вернуться к старой версии, но я не могу взломать это.
Может быть, потому что mod_perl 2 закрывает stdout? Я только что обнаружил это и опубликовал об этом:
http://marc.info/?l=apache-modperl&m=126296015910250&w=2
Я думаю, что это неприятная ошибка, но никто, кажется, не заботится об этом, пока. Опубликуйте следующее сообщение о списке mod_perl, если ваша проблема связана, и вы хотите, чтобы она обрабатывала внимание.
Джон