Aztán van egy olyan, hogy `mtrace(3)` és `mtrace(1)`
Betoltam a derék termék alá, meglátjuk, mi lesz belőle. (Mondjuk most jól jönne, ha a SpringBoot nem ébredne fel félpercenként, hogy 'na, kell valami? tudok valamit tüsténkedni?'.)
Szerk: és már itt is egy eredmény:
*** Error 'java.io.IOException: Cannot run program "df": error=1886334817, Exec failed'
in system('df -h ./tmp')
Ebből az első rész a ProcessBuilder által dobott Exception toString-je, a hibakódot még nem találtam meg az errno tipikus értékei között, de még keresem.
van pl egy olyan, hogy
/openjdk-jdk11u/src/java.base/share/classes/java/lang/ProcessBuilder.java:1124
// It's much easier for us to create a high-quality error
// message than the low-level C code which found the problem.
throw new IOException(
"Cannot run program \"" + prog + "\""
+ (dir == null ? "" : " (in directory \"" + dir + "\")")
+ exceptionInfo,
cause);
Ő ezt hívja:
/openjdk-jdk11u/src/java.base/windows/classes/java/lang/ProcessImpl.java
És végül van a natív kód:
openjdk-jdk11u/src/java.base/unix/native/libjava/ProcessImpl_md.c: Java_java_lang_ProcessImpl_forkAndExec /openjdk-jdk11u/src/java.base/unix/native/libjava/childproc.c: int childProcess(void *arg)
Szerk: stacktrace javítása után:
Root Exception: java.io.IOException: error=811743284, Exec failed Following Excp: java.io.IOException: Cannot run program "df": error=811743284, Exec failed at java.base/java.lang.ProcessImpl.forkAndExec(Native Method) at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:340) at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:271) at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1107) at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1071)
Szóval az a csúnya szám az errno értéke, amikor a childProcess valamilyen hibára szalad. Esetleg ez a 'valamilyen hiba' nem állítja az errno-t, bár mindenki azt hitte, hogy minden hiba állítja az errno-t?