[BUG] Memory accumulation when using load_image in a loop
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 30/100
- issue の種類
- バグ
- 明瞭さ
- 説明が足りない
- 活発さ
- 停滞
- 技術スタック
- rust
調査の方向性
まず src/main.rs:6 にある提供されたループを実行し、src/image/mod.rs:317 の load_image ラッパーと、報告されているネイティブな af_load_image パスを調べます。画像の繰り返し読み込みによってデバイスメモリが保持されるかを追跡し、関連するクリーンアップまたは所有権の挙動を特定します。繰り返し読み込み用の回帰テストを追加し、再現手順でメモリ不足エラーが発生するまでメモリが蓄積されなくなれば完了です。
索引モデルが issue の本文から書いたものです。
説明
The following program crashed. But why?
use arrayfire::*;
fn main() {
let mut y =constant!(0 as u8;1);
for i in 0..1000 {
let x = load_image::<u8>("2dzs/robot_2dz.png".to_string(), true);
let z = or(&x, &y, true);
y = z.copy();
println!("i={}", i);
}
println!("max(y)={:#?}", max_all(&y));
}
i=0
i=1
i=2
i=3
i=4
i=5
i=6
i=7
i=8
i=9
i=10
i=11
i=12
i=13
i=14
i=15
i=16
i=17
i=18
i=19
i=20
i=21
i=22
i=23
i=24
i=25
i=26
i=27
i=28
i=29
i=30
i=31
i=32
i=33
i=34
i=35
i=36
i=37
i=38
i=39
i=40
i=41
i=42
i=43
i=44
i=45
i=46
i=47
i=48
i=49
i=50
i=51
thread 'main' panicked at 'Error message: System or Device ran out of memory
Last error: In function af_load_image
In file src/api/c/imageio.cpp:393
0# 0x00007F4FC1A299AF in /opt/arrayfire/lib/libafcuda.so.3
1# 0x0000560F6F590AFF in target/debug/crash
2# 0x0000560F6F590099 in target/debug/crash
3# 0x0000560F6F5903AB in target/debug/crash
4# 0x0000560F6F59031E in target/debug/crash
5# 0x0000560F6F58FC41 in target/debug/crash
6# 0x0000560F6F5A707F in target/debug/crash
7# 0x0000560F6F58FC10 in target/debug/crash
8# 0x0000560F6F5902EC in target/debug/crash
9# 0x00007F4FFB823510 in /lib/x86_64-linux-gnu/libc.so.6
10# __libc_start_main in /lib/x86_64-linux-gnu/libc.so.6
11# 0x0000560F6F58FB15 in target/debug/crash
', /home/joe/.cargo/registry/src/mirrors.ustc.edu.cn-12df342d903acd47/arrayfire-3.8.0/src/core/error.rs:37:14
stack backtrace:
0: rust_begin_unwind
at /rustc/c07a8b4e09f356c7468b69c50cac7fc5b5000b8a/library/std/src/panicking.rs:584:5
1: core::panicking::panic_fmt
at /rustc/c07a8b4e09f356c7468b69c50cac7fc5b5000b8a/library/core/src/panicking.rs:142:14
2: arrayfire::core::error::handle_error_general
at /home/joe/.cargo/registry/src/mirrors.ustc.edu.cn-12df342d903acd47/arrayfire-3.8.0/src/core/error.rs:37:14
3: arrayfire::core::error::Callback::call
at /home/joe/.cargo/registry/src/mirrors.ustc.edu.cn-12df342d903acd47/arrayfire-3.8.0/src/core/error.rs:29:9
4: arrayfire::core::error::HANDLE_ERROR
at /home/joe/.cargo/registry/src/mirrors.ustc.edu.cn-12df342d903acd47/arrayfire-3.8.0/src/core/error.rs:95:5
5: arrayfire::image::load_image
at /home/joe/.cargo/registry/src/mirrors.ustc.edu.cn-12df342d903acd47/arrayfire-3.8.0/src/image/mod.rs:317:9
6: crash::main
at ./src/main.rs:6:17
7: core::ops::function::FnOnce::call_once
at /rustc/c07a8b4e09f356c7468b69c50cac7fc5b5000b8a/library/core/src/ops/function.rs:248:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
- 主要言語
- Rust
- スター
- 827
- フォーク
- 59
- PR マージ指標
- 30日以内にマージされた PR はありません
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
arrayfire/arrayfire-rust のほかの issue
-
Bug
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
arrayfire/arrayfire-rust#388 ·
-
Bug
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
arrayfire/arrayfire-rust#387 ·
-
Bug
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
arrayfire/arrayfire-rust#386 ·
-
Bug
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
arrayfire/arrayfire-rust#384 ·
-
Bug
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
arrayfire/arrayfire-rust#385 · コメント 1 件 ·
arrayfire/arrayfire-rust の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
Eynzof/Hermes-CN-Desktop#616 ·
-
bug rules
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
app bug
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
IronCoreLabs/ironcore-alloy#346 ·
-
good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100