mirror of
https://github.com/hickory-dns/hickory-dns.git
synced 2026-04-25 03:05:51 +03:00
[GH-ISSUE #393] dns_sd::tests::test_list_services panics on my machine #178
Labels
No labels
blocked
breaking-change
bug
bug:critical
bug:tests
cleanup
compliance
compliance
compliance
crate:all
crate:client
crate:native-tls
crate:proto
crate:recursor
crate:resolver
crate:resolver
crate:rustls
crate:server
crate:util
dependencies
docs
duplicate
easy
easy
enhance
enhance
enhance
feature:dns-over-https
feature:dns-over-quic
feature:dns-over-tls
feature:dnsssec
feature:global_lb
feature:mdns
feature:tsig
features:edns
has workaround
ops
perf
platform:WASM
platform:android
platform:fuchsia
platform:linux
platform:macos
platform:windows
pull-request
question
test
tools
tools
trust
unclear
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/hickory-dns#178
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @luser on GitHub (Apr 10, 2018).
Original GitHub issue: https://github.com/hickory-dns/hickory-dns/issues/393
I saw your users.rlo post and thought I'd try it out locally, but the test fails for me:
I have a lot of devices on my home network, so I'm not sure what exactly is causing the problem. If there's any useful info I can provide to help you narrow this down I'm happy to do so.
@luser commented on GitHub (Apr 10, 2018):
I ran the test again with Wireshark running. There were three devices responding to the query. Here's the dissected view of their responses:
Those are my Synology NAS, an iPhone, and a Raspberry Pi 3 running OctoPi. If it'd be helpful I'm happy to send you the full packet capture via email.
@bluejekyll commented on GitHub (Apr 10, 2018):
You hit a spot where I was trying to keep the fact that mDNS returns more than one Messsage per request from dirtying all the other lookups with multiple Messages. I’m not sure why, as I thought I had that clean, but I’ll take a look when I have a minute. I’ll get some more responding on my network and see if I can reproduce.
Thanks for the report!
@bluejekyll commented on GitHub (Apr 10, 2018):
if you rerun with
BACKTRACE=fullthat should give us the backtrace to the actual panic path.@luser commented on GitHub (Apr 10, 2018):
Here's the output with
RUST_BACKTRACE=full: https://gist.github.com/luser/da0cc48090d04010bfc8a72832fa5f4e@luser commented on GitHub (Apr 11, 2018):
This no longer panics on my machine, thanks! (I don't know if it's accurately presenting all of the results.)
@bluejekyll commented on GitHub (Apr 11, 2018):
It’s definitely possible. There are a lot of things that could be going on. If there is another mDNS responder running on the node, we might not be getting everything to the socket where trust-dns is running.
This impl is definitely experimental, so if you want to help debug why we might be dropping information that would be great.
For the mDNS responder issue we can set a flag in the message to respond directly to the UDP port. That’s described in the RFC and might make responses more reliable at the potential cost of more network traffic.
@luser commented on GitHub (Apr 11, 2018):
I don't know much about mDNS but I'm handy with Wireshark and have a working knowledge of network and system programming, so I'm happy to provide any info or do any testing that would be helpful!
@bluejekyll commented on GitHub (Apr 11, 2018):
I didn't know much about mDNS when I started this, which also probably means that I got some things wrong :)
In fact, I just noticed a bug rereading the RFC: https://tools.ietf.org/html/rfc6762#section-19
* ignores the Query ID field (except for generating legacy responses), I definitely look for the query_id on all responses still.I wonder if the query-id is not being set in some responses: #395
And this is the bit that might need to be set if there is another active mDNS responder on the same system: https://tools.ietf.org/html/rfc6762#section-18.12
There are lots of fun corner cases here :(