Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

websteps: include raw errors #2033

Closed
4 tasks
bassosimone opened this issue Feb 22, 2022 · 1 comment
Closed
4 tasks

websteps: include raw errors #2033

bassosimone opened this issue Feb 22, 2022 · 1 comment
Assignees
Labels
2024-01-data-quality-cleanup Data quality issues addressed on 2024-01 data quality enhancement improving existing code or new feature methodology issues related to the testing methodology ooni/probe-engine priority/medium user feedback requests that have been added to the backlog as a direct result of user feedback or testing

Comments

@bassosimone
Copy link
Contributor

This issue is about including into websteps results (and possibly other results) raw errors (stripped if needed). The argument here is that adding raw errors increases confidence in the measurement process. We'll close this issue when we'll have done that.

More specifically, this issue means we should be including:

  • the raw code returned by getaddrinfo
  • the raw errno value when a syscall fails
  • the Rcode returned by DNS
  • the raw (but stripped) Go error string on Go specific errors

This formulation of the needs in terms of data quality has been advocated by @fortuna for quite some time. A less general formulation that only discusses DNS is available at #1569. This specific issue is directly to address feedback that @fortuna and @ohnorobo provided to me when I discussed websteps' design with them.

I think the correct way to go about implementing this issue is to have extractors that use errors.As to cast a given error into the lowest-level error code. These extractors will write directly into the measurements observations after an error. (I already have a prototype implementation that extracts the getaddrinfo result, which I started developing to address #2029.)

@bassosimone bassosimone added enhancement improving existing code or new feature priority/medium methodology issues related to the testing methodology data quality ooni/probe-engine labels Feb 22, 2022
@bassosimone bassosimone self-assigned this Feb 22, 2022
@bassosimone bassosimone added the user feedback requests that have been added to the backlog as a direct result of user feedback or testing label Feb 22, 2022
bassosimone added a commit to ooni/probe-cli that referenced this issue May 27, 2022
This commit changes our system resolver to call getaddrinfo
directly when CGO is enabled. This change allows us to:

1. obtain the CNAME easily

2. obtain the real getaddrinfo retval

See ooni/probe#2029

See ooni/probe#2033
bassosimone added a commit to ooni/probe-cli that referenced this issue May 28, 2022
This commit changes our system resolver to call getaddrinfo directly when CGO is enabled. This change allows us to:

1. obtain the CNAME easily

2. obtain the real getaddrinfo retval

3. handle platform specific oddities such as `EAI_NODATA`
returned on Android devices

See ooni/probe#2029 and ooni/probe#2029 (comment) in particular.

See ooni/probe#2033 for documentation regarding the desire to see `getaddrinfo`'s retval.

See ooni/probe#2118 for possible follow-up changes.
@bassosimone
Copy link
Contributor Author

I'm gonna call this done, since we do that for Web Connectivity v0.5.

@bassosimone bassosimone added the 2024-01-data-quality-cleanup Data quality issues addressed on 2024-01 label Jan 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2024-01-data-quality-cleanup Data quality issues addressed on 2024-01 data quality enhancement improving existing code or new feature methodology issues related to the testing methodology ooni/probe-engine priority/medium user feedback requests that have been added to the backlog as a direct result of user feedback or testing
Projects
None yet
Development

No branches or pull requests

1 participant