Skip to content

Commit 4812166

Browse files
mrizzictron
authored andcommitted
chore: add warning about IDs required by 'as_ref()'
Signed-off-by: mrizzi <[email protected]>
1 parent f368f70 commit 4812166

File tree

1 file changed

+5
-0
lines changed
  • modules/ingestor/src/service/advisory/csaf

1 file changed

+5
-0
lines changed

modules/ingestor/src/service/advisory/csaf/creator.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@ impl<'a> StatusCreator<'a> {
150150

151151
let product_id = ProductInformation::create_uuid(org_id, product.product.clone());
152152

153+
// Warn: id must be Set(), required for sorting
153154
let product_entity = product::ActiveModel {
154155
id: Set(product_id),
155156
name: Set(product.product.clone()),
@@ -165,6 +166,7 @@ impl<'a> StatusCreator<'a> {
165166
cpe: product.cpe.clone(),
166167
};
167168

169+
// Warn: into_active_model() sets id with Set(), required for sorting
168170
let (version_range_entity, product_version_range_entity) =
169171
range.clone().into_active_model();
170172
version_ranges.push(version_range_entity);
@@ -189,6 +191,7 @@ impl<'a> StatusCreator<'a> {
189191
product_version_range_id: range.uuid(),
190192
};
191193

194+
// Warn: into_active_model() sets id with Set(), required for sorting
192195
let base_product = product_status
193196
.into_active_model(self.advisory_id, self.vulnerability_id.clone());
194197

@@ -253,6 +256,7 @@ impl<'a> StatusCreator<'a> {
253256
cpes.create(connection).await?;
254257

255258
for ps in &self.entries {
259+
// Warn: into_active_model() sets id with Set(), required for sorting
256260
let (version_range, purl_status) = ps
257261
.clone()
258262
.into_active_model(self.advisory_id, self.vulnerability_id.clone());
@@ -263,6 +267,7 @@ impl<'a> StatusCreator<'a> {
263267
// Sort all collections by ID before batch inserting to ensure consistent lock acquisition
264268
// order across transactions. This prevents deadlocks from index page lock contention
265269
// when multiple concurrent transactions insert overlapping data.
270+
// Warn: as_ref() requires id fields to be Set() (never NotSet), guaranteed by constructors above.
266271
product_models.sort_by_key(|model| *model.id.as_ref());
267272
version_ranges.sort_by_key(|model| *model.id.as_ref());
268273
package_statuses.sort_by_key(|model| *model.id.as_ref());

0 commit comments

Comments
 (0)