2019年6月26日 - 警告:InterSystems IRIS におけるメモリリーク
対象バージョン:
InterSystems IRIS Data Platform 2019.1, 2019.2
InterSystems IRIS for Health 2019.1, 2019.2
HealthShare Health Connect 2019.1
対象プラットフォーム: すべて
[発生する問題]
可変な引数をもつパラメータを、参照渡しで呼び出すアプリケーションにおいてメモリリークが発生します。
...構文によって可変な引数をもつサブルーチンを呼び出すとき、可変な引数部分に参照渡しの変数を指定した場合、メモリリークが発生します。その結果、プロセスのパーティションを使い切り、
エラーを引き起こす可能性があります。
これら技術の詳細については、ドキュメント「ObjectScript の使用法」内の「呼び出し可能なユーザ定義コードモジュール」にある、「可変個数のパラメータ」および「参照渡し」の項目を参照ください。
以下、今回の障害が発生するコード例です。
test
set (var1,var2,var3)=0
do sub(var1,.var2,var3)
quit
sub(arg1,args...)
quit
USER>for i=1:1:1000 { do ^test } write $S
268301128
USER>for i=1:1:1000 { do ^test } write $S
268276552
上記のサブルーチン呼び出しを、以下に変更しても発生します。
do sub(var1,var2,.var3)
以下の呼び出しの場合は発生しません。
do sub(.var1,var2,var3)
[解決方法]
この問題は修正ID: CDS3148 で解決します。この修正は今後リリース予定のすべての製品に含まれる予定です。また、お客様のご要望により、修正を現在お使いの製品に対するパッチとして個別に作成してご提供することが可能です。お使いのシステムに対するパッチが必要な場合は、下記バージョン情報とライセンスキー情報をご確認の上、
インターシステムズカスタマーサポートセンターまでお知らせ下さい。