https://atlas.torproject.org/#search/moria1
shows this text at the top:
"This relay is running an outdated Tor version and should be updated to a recent release of Tor that may contain important fixes."
But the relay is running "Tor 0.3.3.0-alpha-dev". This is not an outdated Tor version -- it is newer than any of the recommended versions.
Tor has some somewhat complicated logic for deciding whether a version is obsolete -- see tor_version_is_obsolete(). Is atlas's best plan to try to reproduce Tor's logic? Should we try to specify it, e.g. in version-spec.txt, so external programs have a chance of getting it right?
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items ...
Show closed items
Linked items 0
Link issues together to show that they're related.
Learn more.
Tor has some somewhat complicated logic for deciding whether a version is obsolete -- see tor_version_is_obsolete(). Is atlas's best plan to try to reproduce Tor's logic? Should we try to specify it, e.g. in version-spec.txt, so external programs have a chance of getting it right?
One possible way to fix this would be to change "outdated" to "not recommended" in that Atlas text and let the user figure out whether that means too old or too new. I'd guess that the relay operator knows pretty well whether they're running something experimental or haven't updated their package for a while.
However, if that's a major usability issue, let's add the logic for deciding whether "not recommended" means "outdated" to Onionoo. In that case I wouldn't mind working from a spec.
I'd guess that the relay operator knows pretty well whether they're running something experimental or haven't updated their package for a while.
And if only the relay operator used the atlas page for the relay, that would be enough. I worry that users look at the atlas pages for other relays and get scared.
Yes, agreed. I'm moving this ticket to Onionoo, because that's what we should work on first. Setting to needs_information until there's a spec or until somebody figures that a spec is not necessary, in which case I'd just read the tor code (#24257 (moved)).
Trac: Status: new to needs_information Type: defect to enhancement Summary: atlas complains "outdated tor version" for too new tor versions too to Add a new "outdated" field to distinguish between outdated and too new tor versions Component: Metrics/Atlas to Metrics/Onionoo
I took a brief look at tor_version_is_obsolete() today. Quite a few cases there. Before I looked at that code I somehow assumed that we could divide the non-recommended bucket into outdated and experimental and be done with it. But it seems like we'd also need an unknown bucket and maybe even more.
If that's really the case we might want to avoid adding separate boolean fields for all possible statuses, like "outdated_version":true, "experimental_version":false, etc., and instead introduce a new string field like "version_status":"outdated" with pre-defined values like "recommended", "outdated" (or "obsolete"?), "experimental", "unknown", etc.
Does that make sense? What statuses would we need, and how would we call them to avoid confusing users when a client application decides to present version status values directly to its users?
I like the "version_status" idea. I was thinking to add the specific reasons why a version is not recommended (the ones that are affected by specific bugs as mentioned in the tor source) but I wonder if those do not ever actually see the consensus anyway and so wouldn't be appearing in Onionoo.
This would perhaps be something to add to Atlas when a whole bunch of relays are just about to disappear to explain to those users that they need to upgrade, but once the relays are not in Onionoo anymore the message would never be seen again.
Setting to needs_information until there's a spec or until somebody figures that a spec is not necessary, in which case I'd just read the tor code (#24257 (moved)).
it matches the spec but I find the spec strange and counterintuitive
if 0.2.5.16 is recommended I would declare 0.2.5.16-dev experimental,
but I guess the spec will not be changed.
actually, by the version spec 0.2.5.16-dev is "new in series"
No, 0.2.5.17 is also a recommended version, there's just no relay running that version. And with 0.2.5.16 and 0.2.5.17 being recommended versions, 0.2.5.16-dev is an unrecommended version.
Anyway, if the spec is strange and counterintuitive, let's try to fix it.
actually, by the version spec 0.2.5.16-dev is "new in series"
No, 0.2.5.17 is also a recommended version, there's just no relay running that version.
And with 0.2.5.16 and 0.2.5.17 being recommended versions, 0.2.5.16-dev is an unrecommended version.
I'm sorry, you are right.
recommended version might include unreleased versions (in preparation for upcoming releases). 0.2.5.17 is an unreleased version.
Anyway, if the spec is strange and counterintuitive, let's try to fix it.