[GH-ISSUE #1692] Possible Future leak warning emitted when performing queries #738

Closed
opened 2026-03-16 00:04:28 +03:00 by kerem · 1 comment
Owner

Originally created by @edevil on GitHub (Apr 13, 2022).
Original GitHub issue: https://github.com/hickory-dns/hickory-dns/issues/1692

Describe the bug
This library emits a warning under normal utilisation:

[2022-04-13T15:28:44Z WARN  trust_dns_proto::xfer] error notifying wait, possible future leak: TrySendError { kind: Disconnected }
[2022-04-13T15:28:44Z WARN  trust_dns_proto::xfer::dns_exchange] failed to associate send_message response to the sender
[2022-04-13T15:28:44Z WARN  trust_dns_proto::xfer] error notifying wait, possible future leak: TrySendError { kind: Disconnected }

To Reproduce

use log::LevelFilter;
use tokio::time::{sleep, Duration};
use trust_dns_resolver::TokioAsyncResolver;

#[tokio::main]
async fn main() {
    let mut log_builder = env_logger::Builder::from_default_env();
    log_builder.filter_level(LevelFilter::Warn);
    log_builder.try_init();

    let resolver = TokioAsyncResolver::tokio(Default::default(), Default::default()).unwrap();
    resolver.txt_lookup("bounces.amazon.com.br").await;
    resolver.txt_lookup("amazon.com").await;
    resolver.txt_lookup("spf1.amazon.com").await;
    resolver.txt_lookup("spf2.amazon.com").await;

    sleep(Duration::from_millis(1000)).await;
}

I could not reproduce it with other types of records.

Expected behavior
No warnings. Even though the resolution works, emitting these warnings gives a sense that something is wrong and maybe we are leaking Futures/memory.

System:

  • OS: macOS/Linux
  • Architecture: x86_64
  • Version Latest
  • rustc version: 1.60.0

Version:
Crate: resolver
Version: 0.21.2

Originally created by @edevil on GitHub (Apr 13, 2022). Original GitHub issue: https://github.com/hickory-dns/hickory-dns/issues/1692 **Describe the bug** This library emits a warning under normal utilisation: ``` [2022-04-13T15:28:44Z WARN trust_dns_proto::xfer] error notifying wait, possible future leak: TrySendError { kind: Disconnected } [2022-04-13T15:28:44Z WARN trust_dns_proto::xfer::dns_exchange] failed to associate send_message response to the sender [2022-04-13T15:28:44Z WARN trust_dns_proto::xfer] error notifying wait, possible future leak: TrySendError { kind: Disconnected } ``` **To Reproduce** ```rust use log::LevelFilter; use tokio::time::{sleep, Duration}; use trust_dns_resolver::TokioAsyncResolver; #[tokio::main] async fn main() { let mut log_builder = env_logger::Builder::from_default_env(); log_builder.filter_level(LevelFilter::Warn); log_builder.try_init(); let resolver = TokioAsyncResolver::tokio(Default::default(), Default::default()).unwrap(); resolver.txt_lookup("bounces.amazon.com.br").await; resolver.txt_lookup("amazon.com").await; resolver.txt_lookup("spf1.amazon.com").await; resolver.txt_lookup("spf2.amazon.com").await; sleep(Duration::from_millis(1000)).await; } ``` I could not reproduce it with other types of records. **Expected behavior** No warnings. Even though the resolution works, emitting these warnings gives a sense that something is wrong and maybe we are leaking Futures/memory. **System:** - OS: macOS/Linux - Architecture: x86_64 - Version Latest - rustc version: 1.60.0 **Version:** Crate: resolver Version: 0.21.2
kerem closed this issue 2026-03-16 00:04:34 +03:00
Author
Owner

@edevil commented on GitHub (Apr 13, 2022):

Can be related to tcp_stream, since some of these TXT records are retried over TCP due to their size.

<!-- gh-comment-id:1098363279 --> @edevil commented on GitHub (Apr 13, 2022): Can be related to `tcp_stream`, since some of these TXT records are retried over TCP due to their size.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/hickory-dns#738
No description provided.