Наконец я нашел причину.
Во-первых, я замечаю, что НЕ всегда это исключение приходит
в той же точке.
Иногда был
java.io.IOException: неверный аргумент
в java.io.FileOutputStream.close0 (собственный метод)
в java.io.FileOutputStream.close (FileOutputStream.java:279)
^^^^^
а иногда было
java.io.IOException: Invalid argument
at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(FileOutputStream.java:260)
Таким образом, проблема НЕ является проблемой Java. Даже не проблема NFS.
Проблема в в базовом типе файловой системы, который является DRBD
файловая система.
Тестирование в оболочке для записи через узлы работает, если кто-то пишет
файл. То есть:
на смонтированном узле nfs
cd /tmp
date > /shared/path-to-some-not-mounted-dir/today
will work
но
cat myBigFile > /shared/path-to-some-not-mounted-dir/today
доставит следующую ошибку
cat: write error: Invalid argument
Поэтому решение заключается в использовании файловой системы другого типа, например, gfs.