Bagikan melalui


Memory Orphaning

Jika aplikasi terdistribusi Anda menggunakan parameter pointer [ in, out, unique] atau [in, out, ptr], sisi server aplikasi dapat mengubah nilai parameter pointer menjadi null. Ketika server kemudian mengembalikan nilai null ke klien, memori yang direferensikan oleh pointer sebelum panggilan prosedur jarak jauh masih ada di sisi klien, tetapi tidak lagi dapat diakses dari pointer tersebut (kecuali dalam kasus penunjuk penuh alias). Memori ini dikatakan yatim piatu. Ini juga disebut kebocoran memori. Yatim piatu memori berulang pada klien menyebabkan klien kehabisan sumber daya memori yang tersedia.

Memori juga dapat tanpa sumber setiap kali server mengubah penunjuk yang disematkan ke nilai null. Misalnya, jika parameter menunjuk ke struktur data yang kompleks seperti pohon, sisi server aplikasi dapat menghapus simpul pohon dan mengatur penunjuk di dalam pohon menjadi null.

Situasi lain yang dapat menyebabkan kebocoran memori melibatkan array yang sesuai, bervariasi, dan terbuka yang berisi pointer. Ketika aplikasi server memodifikasi parameter yang menentukan ukuran array atau rentang yang ditransmisikan sehingga mewakili nilai yang lebih kecil, stub menggunakan nilai yang lebih kecil untuk mengosongkan memori. Elemen array dengan indeks yang lebih besar dari parameter ukuran tanpa sumber. Aplikasi Anda harus membebaskan elemen di luar rentang yang ditransmisikan.