DocumentIterator usage can corrupt data if you forget to zero/nil your buffer
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 65/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 停滞
- 領域
- databases
調査の方向性
documentdb パッケージにある DocumentIterator の実装を確認します。おそらく iterator.go のようなファイルにあります。反復のたびに slice の参照がどのように再利用されているかを調べます。修正では、各反復で buffer をクリアするか、新しい slice を割り当てるようにします。修正前と修正後でサンプルコードを実行し、データの破損が防止されることを確認します。
索引モデルが issue の本文から書いたものです。
説明
Since it is a slice reference, any nested structs or arrays in your data will be sparsely overwritten during iteration and can still include old data from past iteration if you follow the docs:
// ...
var docs []Document
iterator := documentdb.NewIterator(
client, documentdb.NewDocumentIterator("coll_self_link", nil, &docs, documentdb.PartitionKey("1"), documentdb.Limit(1)),
)
for iterator.Next() {
if err := iterator.Error(); err != nil {
log.Fatal(err)
}
fmt.Println(len(docs))
}
// ...
}```
Instead, nil the buffer like this:
func main() {
// ...
var docs []Document
iterator := documentdb.NewIterator(
client, documentdb.NewDocumentIterator("coll_self_link", nil, &docs, documentdb.PartitionKey("1"), documentdb.Limit(1)),
)
for iterator.Next() {
if err := iterator.Error(); err != nil {
log.Fatal(err)
}
fmt.Println(len(docs))
docs = nil // zero your buffer to avoid corrupt data!
}
// ...
}```
- 主要言語
- Go
- スター
- 31
- フォーク
- 26
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトの環境構築ファイルはまだ確認していません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
a8m/documentdb のほかの issue
-
Does not compileオープンhelp wanted
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
a8m/documentdb#22 · コメント 1 件 ·
-
help wanted
難易度 4/5 3〜5日 初心者へのやさしさ 30/100
a8m/documentdb#31 · コメント 2 件 · リアクション 3 件 ·
-
Query sub arrayオープン
難易度 4/5 3〜5日 初心者へのやさしさ 30/100
a8m/documentdb#12 · コメント 1 件 ·
-
v0.2.0 tasksオープン
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
a8m/documentdb#3 ·
似ている issue
-
Remove CAAPFオープンkind/chore kind/cleanup needs-area
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
rancher/turtles#2848 · コメント 3 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
メンテナーはふだん 1 日以内に返信
-
priority: low 🌱 type: enhancement 💅🏼
難易度 2/5 半日 初心者へのやさしさ 84/100
nebari-dev/llm-serving-pack#199 ·
メンテナーはふだん 3 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
kedacore/keda#8225 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信