mirror of
https://github.com/meilisearch/MeiliSearch
synced 2025-07-04 20:37:15 +02:00
Send owned metadata and clear inputs in case of error
This commit is contained in:
parent
3740755d9c
commit
735634e998
3 changed files with 12 additions and 5 deletions
|
@ -1259,7 +1259,7 @@ impl<'doc> OnEmbed<'doc> for WriteGrenadOnEmbed<'_> {
|
|||
error: crate::vector::error::EmbedError,
|
||||
embedder_name: &'doc str,
|
||||
unused_vectors_distribution: &crate::vector::error::UnusedVectorsDistribution,
|
||||
_metadata: &[crate::vector::session::Metadata<'doc>],
|
||||
_metadata: bumpalo::collections::Vec<'doc, crate::vector::session::Metadata<'doc>>,
|
||||
) -> crate::Error {
|
||||
if let FaultSource::Bug = error.fault {
|
||||
crate::Error::InternalError(crate::InternalError::VectorEmbeddingError(error.into()))
|
||||
|
|
|
@ -478,7 +478,7 @@ impl<'doc> OnEmbed<'doc> for OnEmbeddingDocumentUpdates<'doc, '_> {
|
|||
error: crate::vector::hf::EmbedError,
|
||||
embedder_name: &'doc str,
|
||||
unused_vectors_distribution: &UnusedVectorsDistributionBump,
|
||||
metadata: &[Metadata<'doc>],
|
||||
metadata: BVec<'doc, Metadata<'doc>>,
|
||||
) -> crate::Error {
|
||||
if let FaultSource::Bug = error.fault {
|
||||
crate::Error::InternalError(crate::InternalError::VectorEmbeddingError(error.into()))
|
||||
|
|
|
@ -28,7 +28,7 @@ pub trait OnEmbed<'doc> {
|
|||
error: EmbedError,
|
||||
embedder_name: &'doc str,
|
||||
unused_vectors_distribution: &Self::ErrorMetadata,
|
||||
metadata: &[Metadata<'doc>],
|
||||
metadata: BVec<'doc, Metadata<'doc>>,
|
||||
) -> crate::Error;
|
||||
}
|
||||
|
||||
|
@ -143,12 +143,19 @@ impl<'doc, C: OnEmbed<'doc>, I: Input> EmbedSession<'doc, C, I> {
|
|||
Ok(())
|
||||
}
|
||||
Err(error) => {
|
||||
// reset metadata and inputs, and send metadata to the error processing.
|
||||
let doc_alloc = self.metadata.bump();
|
||||
let metadata = std::mem::replace(
|
||||
&mut self.metadata,
|
||||
BVec::with_capacity_in(self.inputs.capacity(), doc_alloc),
|
||||
);
|
||||
self.inputs.clear();
|
||||
return Err(self.on_embed.process_embedding_error(
|
||||
error,
|
||||
self.embedder_name,
|
||||
unused_vectors_distribution,
|
||||
&self.metadata,
|
||||
))
|
||||
metadata,
|
||||
));
|
||||
}
|
||||
};
|
||||
self.inputs.clear();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue