2017-05-31 17 views
0

JVM/OSが同じ量を割り当てていたため、以前はJavaからの外部プロセスの生成に問題があった(* nixオペレーティングシステムのJavaのみに影響を及ぼすと思われる) JVMに利用可能な新しいプロセス用のメモリJavaアプリケーション内での外部プロセスの起動 - メモリの考慮

比較的小さなプロセスを開始する「大きな」Javaアプリケーションがある場合、この新しいプロセスを作成するために使用可能なメモリが不十分なためにプロセスを開始できないため、メモリの問題が発生する可能性があります。

私はこの問題がJava 7/8の最近のバージョンで解決されたかどうかを確認しようとしています。

解決済みとマークされたこのバグレポート:http://bugs.java.com/view_bug.do?bug_id=5049299 - 実際にこの問題が解決され、JVM内からの外部プロセスの開始が「安全」と考えられるかどうかを誰でも確認できますか?

+0

評価版では、安全性とpopen(3C)は子供の 標準ストリームの1つにアクセスするだけです。このセクションではSolarisのみがこれまでに影響を受けたと言われていますが、Linuxは明示的に影響を受けていないと言われています。 – Holger

+0

インターネットには、Linuxも影響を受けるページがあります(少なくともいくつかのリリース):https://confluence.atlassian.com/bitbucketserverkb/forking-jvm-error-12-cannot-allocate-memory-or- error-12-not-enough-space-779171744.html私は確かめたいと思っていました... –

答えて

0

はい問題は7u60および8で解決されます。 影響を受けるバージョンのバグ(https://bugs.openjdk.java.net/browse/JDK-5049299)は、linux、solaris9およびsolaris10を確認します。

しかし、バグからは、JVM内から外部プロセスを開始することが「安全」と考えられていることは明らかではありませんか? マークからの評価の一つは をリリース、現在のSolarisでこれを回避するためにどのような方法があるように思われないのRuntime.execの既存のセマンティクスの制約の範囲内」

を示唆している。のvfork(2) はスレッドではありませんS103は新しい posix_spawnコールをサポートしているので、S10で実行するときにそれを使用する必要があります。 "

関連する問題