Doing a Query API request using a point ID, but a vector name, for which this point has no vector for, Qdrant panics.
Steps to Reproduce
Run the following commands in console on a fresh install of latest Qdrant version
PUT collections/my_collection
{
"vectors": {
"size": 4,
"distance": "Cosine"
},
"sparse_vectors": {
"text": { }
}
}
PUT /collections/my_collection/points?wait=true
{
"points": [
{
"id": 1,
"vector": {
"text": {
"indices": [1, 3, 5, 7],
"values": [0.1, 0.2, 0.3, 0.4]
}
}
}
]
}
POST collections/my_collection/points/query // <- Will cause the panic
{
"query": 1
}
Qdrant Output
2024-10-09T15:02:32.891698Z ERROR qdrant::startup: Panic backtrace:
0: qdrant::startup::setup_panic_hook::{{closure}}
at ./src/startup.rs:19:25
1: <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/alloc/src/boxed.rs:2077:9
2: std::panicking::rust_panic_with_hook
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/std/src/panicking.rs:799:13
3: std::panicking::begin_panic_handler::{{closure}}
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/std/src/panicking.rs:656:13
4: std::sys_common::backtrace::__rust_end_short_backtrace
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/std/src/sys_common/backtrace.rs:171:18
5: rust_begin_unwind
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/std/src/panicking.rs:652:5
6: core::panicking::panic_fmt
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/core/src/panicking.rs:72:14
7: core::panicking::panic
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/core/src/panicking.rs:146:5
8: core::option::unwrap_failed
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/core/src/option.rs:1985:5
9: core::option::Option<T>::unwrap
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/core/src/option.rs:935:21
10: collection::operations::universal_query::collection_query::VectorQuery<collection::operations::universal_query::collection_query::VectorInput>::ids_into_vectors
at ./lib/collection/src/operations/universal_query/collection_query.rs:169:30
11: collection::operations::universal_query::collection_query::Query::try_into_scoring_query
at ./lib/collection/src/operations/universal_query/collection_query.rs:104:34
12: collection::operations::universal_query::collection_query::CollectionQueryRequest::try_into_shard_request::{{closure}}
at ./lib/collection/src/operations/universal_query/collection_query.rs:492:17
13: core::option::Option<T>::map
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/core/src/option.rs:1075:29
14: collection::operations::universal_query::collection_query::CollectionQueryRequest::try_into_shard_request
at ./lib/collection/src/operations/universal_query/collection_query.rs:489:21
15: collection::collection::query::<impl collection::collection::Collection>::query_batch::{{closure}}::{{closure}}
at ./lib/collection/src/collection/query.rs:230:17
16: collection::common::batching::batch_requests
at ./lib/collection/src/common/batching.rs:73:9
17: collection::collection::query::<impl collection::collection::Collection>::query_batch::{{closure}}
at ./lib/collection/src/collection/query.rs:221:23
18: storage::content_manager::toc::point_ops::<impl storage::content_manager::toc::TableOfContent>::query_batch::{{closure}}
at ./lib/storage/src/content_manager/toc/point_ops.rs:330:14
19: <qdrant::actix::api::query_api::query_points as actix_web::service::HttpServiceFactory>::register::query_points::{{closure}}::{{closure}}
at ./src/actix/api/query_api.rs:63:14
20: qdrant::actix::helpers::time::{{closure}}::{{closure}}
at ./src/actix/helpers.rs:56:30
21: qdrant::actix::helpers::time_impl::{{closure}}
at ./src/actix/helpers.rs:98:18
22: qdrant::actix::helpers::time::{{closure}}
at ./src/actix/helpers.rs:56:49
23: <qdrant::actix::api::query_api::query_points as actix_web::service::HttpServiceFactory>::register::query_points::{{closure}}
at ./src/actix/api/query_api.rs:74:6
24: actix_web::handler::handler_service::{{closure}}::{{closure}}
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/actix-web-4.9.0/src/handler.rs:113:22
25: <core::pin::Pin<P> as core::future::future::Future>::poll
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/core/src/future/future.rs:123:9
26: <actix_web::resource::Resource<T> as actix_web::service::HttpServiceFactory>::register::{{closure}}::{{closure}}
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/actix-web-4.9.0/src/resource.rs:452:28
27: <core::pin::Pin<P> as core::future::future::Future>::poll
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/core/src/future/future.rs:123:9
28: <actix_web::middleware::compress::CompressResponse<S,B> as core::future::future::Future>::poll
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/actix-web-4.9.0/src/middleware/compress.rs:177:22
29: <actix_utils::future::either::Either<L,R> as core::future::future::Future>::poll
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/actix-utils-3.0.1/src/future/either.rs:76:43
30: <actix_web_extras::middleware::condition::ConditionMiddlewareFuture<E,D> as core::future::future::Future>::poll
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/actix-web-extras-0.1.0/src/middleware/condition.rs:139:55
31: <actix_cors::middleware::CorsMiddleware<S> as actix_service::Service<actix_web::service::ServiceRequest>>::call::{{closure}}
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/actix-cors-0.7.0/src/middleware.rs:239:27
32: <core::pin::Pin<P> as core::future::future::Future>::poll
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/core/src/future/future.rs:123:9
33: <actix_web::middleware::condition::ConditionMiddlewareFuture<E,D> as core::future::future::Future>::poll
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/actix-web-4.9.0/src/middleware/condition.rs:123:54
34: <actix_web::middleware::logger::LoggerResponse<S,B> as core::future::future::Future>::poll
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/actix-web-4.9.0/src/middleware/logger.rs:361:32
35: <qdrant::actix::actix_telemetry::ActixTelemetryService<S> as actix_service::Service<actix_web::service::ServiceRequest>>::call::{{closure}}
at ./src/actix/actix_telemetry.rs:47:35
36: <core::pin::Pin<P> as core::future::future::Future>::poll
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/core/src/future/future.rs:123:9
37: <actix_service::map_err::MapErrFuture<A,Req,F,E> as core::future::future::Future>::poll
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/actix-service-2.0.2/src/map_err.rs:99:9
38: actix_http::h1::dispatcher::InnerDispatcher<T,S,B,X,U>::poll_response
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/actix-http-3.7.0/src/h1/dispatcher.rs:466:27
39: <actix_http::h1::dispatcher::Dispatcher<T,S,B,X,U> as core::future::future::Future>::poll
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/actix-http-3.7.0/src/h1/dispatcher.rs:1128:43
40: <actix_http::service::HttpServiceHandlerResponse<T,S,B,X,U> as core::future::future::Future>::poll
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/actix-http-3.7.0/src/service.rs:1064:45
41: <actix_service::and_then::AndThenServiceResponse<A,B,Req> as core::future::future::Future>::poll
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/actix-service-2.0.2/src/and_then.rs:114:37
42: <actix_server::service::StreamService<S,I> as actix_service::Service<(actix_server::worker::WorkerCounterGuard,actix_server::socket::MioStream)>>::call::{{closure}}
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/actix-server-2.1.1/src/service.rs:75:31
43: <core::pin::Pin<P> as core::future::future::Future>::poll
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/core/src/future/future.rs:123:9
44: tokio::runtime::task::core::Core<T,S>::poll::{{closure}}
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/task/core.rs:331:17
45: tokio::loom::std::unsafe_cell::UnsafeCell<T>::with_mut
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/loom/std/unsafe_cell.rs:16:9
46: tokio::runtime::task::core::Core<T,S>::poll
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/task/core.rs:320:13
47: tokio::runtime::task::harness::poll_future::{{closure}}
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/task/harness.rs:500:19
48: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/core/src/panic/unwind_safe.rs:272:9
49: std::panicking::try::do_call
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/std/src/panicking.rs:559:40
50: __rust_try
51: std::panicking::try
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/std/src/panicking.rs:523:19
52: std::panic::catch_unwind
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/std/src/panic.rs:149:14
53: tokio::runtime::task::harness::poll_future
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/task/harness.rs:488:18
54: tokio::runtime::task::harness::Harness<T,S>::poll_inner
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/task/harness.rs:209:27
55: tokio::runtime::task::harness::Harness<T,S>::poll
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/task/harness.rs:154:15
56: tokio::runtime::task::raw::poll
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/task/raw.rs:271:5
57: tokio::runtime::task::raw::RawTask::poll
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/task/raw.rs:201:18
58: tokio::runtime::task::LocalNotified<S>::run
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/task/mod.rs:436:9
59: tokio::task::local::LocalSet::tick::{{closure}}
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/task/local.rs:693:63
60: tokio::runtime::coop::with_budget
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/coop.rs:107:5
61: tokio::runtime::coop::budget
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/coop.rs:73:5
62: tokio::task::local::LocalSet::tick
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/task/local.rs:693:31
63: <tokio::task::local::RunUntil<T> as core::future::future::Future>::poll::{{closure}}
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/task/local.rs:999:16
64: tokio::task::local::LocalSet::with::{{closure}}
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/task/local.rs:747:13
65: std::thread::local::LocalKey<T>::try_with
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/std/src/thread/local.rs:283:12
66: std::thread::local::LocalKey<T>::with
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/std/src/thread/local.rs:260:9
67: tokio::task::local::LocalSet::with
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/task/local.rs:745:9
68: <tokio::task::local::RunUntil<T> as core::future::future::Future>::poll
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/task/local.rs:985:9
69: tokio::task::local::LocalSet::run_until::{{closure}}
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/task/local.rs:639:19
70: <core::pin::Pin<P> as core::future::future::Future>::poll
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/core/src/future/future.rs:123:9
71: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/scheduler/current_thread/mod.rs:696:57
72: tokio::runtime::coop::with_budget
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/coop.rs:107:5
73: tokio::runtime::coop::budget
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/coop.rs:73:5
74: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/scheduler/current_thread/mod.rs:696:25
75: tokio::runtime::scheduler::current_thread::Context::enter
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/scheduler/current_thread/mod.rs:423:19
76: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/scheduler/current_thread/mod.rs:695:36
77: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/scheduler/current_thread/mod.rs:774:68
78: tokio::runtime::context::scoped::Scoped<T>::set
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/context/scoped.rs:40:9
79: tokio::runtime::context::set_scheduler::{{closure}}
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/context.rs:180:26
80: std::thread::local::LocalKey<T>::try_with
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/std/src/thread/local.rs:283:12
81: std::thread::local::LocalKey<T>::with
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/std/src/thread/local.rs:260:9
82: tokio::runtime::context::set_scheduler
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/context.rs:180:9
83: tokio::runtime::scheduler::current_thread::CoreGuard::enter
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/scheduler/current_thread/mod.rs:774:27
84: tokio::runtime::scheduler::current_thread::CoreGuard::block_on
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/scheduler/current_thread/mod.rs:683:19
85: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/scheduler/current_thread/mod.rs:191:28
86: tokio::runtime::context::runtime::enter_runtime
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/context/runtime.rs:65:16
87: tokio::runtime::scheduler::current_thread::CurrentThread::block_on
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/scheduler/current_thread/mod.rs:179:9
88: tokio::runtime::runtime::Runtime::block_on_inner
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/runtime.rs:361:47
89: tokio::runtime::runtime::Runtime::block_on
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/runtime.rs:335:13
90: tokio::task::local::LocalSet::block_on
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/task/local.rs:596:9
91: actix_rt::runtime::Runtime::block_on
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/actix-rt-2.7.0/src/runtime.rs:80:9
92: actix_rt::arbiter::Arbiter::with_tokio_rt::{{closure}}
at /home/jojii/.cargo/registry/src/index.crates.io-6f17d22bba15001f/actix-rt-2.7.0/src/arbiter.rs:144:21
93: std::sys_common::backtrace::__rust_begin_short_backtrace
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/std/src/sys_common/backtrace.rs:155:18
94: std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/std/src/thread/mod.rs:542:17
95: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/core/src/panic/unwind_safe.rs:272:9
96: std::panicking::try::do_call
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/std/src/panicking.rs:559:40
97: __rust_try
98: std::panicking::try
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/std/src/panicking.rs:523:19
99: std::panic::catch_unwind
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/std/src/panic.rs:149:14
100: std::thread::Builder::spawn_unchecked_::{{closure}}
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/std/src/thread/mod.rs:541:30
101: core::ops::function::FnOnce::call_once{{vtable.shim}}
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/core/src/ops/function.rs:250:5
102: <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/alloc/src/boxed.rs:2063:9
103: <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/alloc/src/boxed.rs:2063:9
104: std::sys::pal::unix::thread::Thread::new::thread_start
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/std/src/sys/pal/unix/thread.rs:108:17
105: <unknown>
106: <unknown>
2024-10-09T15:02:32.891924Z ERROR qdrant::startup: Panic occurred in file lib/collection/src/operations/universal_query/collection_query.rs at line 171: called `Option::unwrap()` on a `None` value
Expected Behavior
An error message that there is no default vector available
Doing a Query API request using a point ID, but a vector name, for which this point has no vector for, Qdrant panics.
Steps to Reproduce
Run the following commands in console on a fresh install of latest Qdrant version
Qdrant Output
Expected Behavior
An error message that there is no default vector available