Skip to content
This repository has been archived by the owner on May 10, 2019. It is now read-only.

The Resolver Issue #12

Open
pkmoore opened this issue May 2, 2016 · 3 comments
Open

The Resolver Issue #12

pkmoore opened this issue May 2, 2016 · 3 comments
Labels

Comments

@pkmoore
Copy link
Owner

pkmoore commented May 2, 2016

There is a weird issue around a replay delta with resolve.conf

Currently this is being worked around by disabling the name resolution machinery and entering host information in the hosts file. Current hypothesis is that there is some sort of caching or external mechanism causing problems.

Since the vDSO fix was put in place this delta presents itself as a call to gettimeofday() rather than a call to close() during the name resolution recvfrom() + poll() loop (in wget).

@pkmoore
Copy link
Owner Author

pkmoore commented May 2, 2016

To enable workaround:
modify nsswitch.conf:
hosts: files (remove "dns")

modify host.conf:
order hosts (remove ", bind")

Configure network manager to "manually configure" network interface (or it will talk to resolvconf and work around your changes)

Undo these changes to undo the work-around. Don't forget to change network interface back to DHCP in network manager

@pkmoore pkmoore added the bug label May 2, 2016
@pkmoore
Copy link
Owner Author

pkmoore commented Jun 1, 2016

The failure occurs in the call to res_send made by getaddrinfo. Simple test case is the callgetaddr sample program.

I need a way to debug deeper into the libc function.

Because of new checks, the failure now presents as a difference between the number of bytes requested by the recvfrom() calls made in a loop by this function.

@pkmoore
Copy link
Owner Author

pkmoore commented Jun 7, 2016

Memory contents in first 512 bytes of stack frame before getaddrinfo() call are different in strace'd execution, replayed execution, and normal execution

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

1 participant