You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@mesos.apache.org by "Benjamin Bannier (JIRA)" <ji...@apache.org> on 2016/09/29 10:39:20 UTC
[jira] [Updated] (MESOS-6276) os::realpath should return a
Try instead of Result
[ https://issues.apache.org/jira/browse/MESOS-6276?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Benjamin Bannier updated MESOS-6276:
------------------------------------
Description:
Currently {{os::realpath}} returns a {{Result<string>}}. Here the empty case is used to signify cases where the passed path did not exist (this is a failure for {{::realpath}}), while all other errors lead to an {{Error}}.
This appears to overload {{os::realpath}} with semantics already present in {{os::exists}}, and it should be possible to to achieve the current functionality by filtering inputs to a simpler {{::realpath}} wrapper through {{os::exists}} -- in fact even with the existing implementation users will need to check results of {{os::realpath}} for empty in order to handle non-existing files. Looking at how the empty case is handled now in the majority of uses suggests that just propagating the {{::realpath}} error would be fine and would ensure that by default a good, uniform error message is given (e.g., {{No such file or directory}}).
{{os::realpath}}'s return type was changed from {{Try<string>}} to {{Result<string>}} in {{f69eab21808ce9cb2c9cc8290d9d944c5daaaa5d}}, but it does not appear the reasoning given there justifies this change.
was:
Currently {{os::realpath}} returns a {{Result<string>}}. Here the empty case is used to signify cases where the passed path did not exist (this is a failure for {{::realpath}}), while all other errors lead to an {{Error}}.
This appears to overload {{os::realpath}} with semantics already present in {{os::exists}}, and it should be possible to to achieve the current functionality by filtering inputs to a simpler {{::realpath}} wrapper through {{os::exists}} -- in fact even with the existing implementation users will need to check to result of {{os::realpath}} for empty in order to handle non-existing files. Looking at how the empty case is handled now in the majority of uses suggests that just propagating the {{::realpath}} error would be fine and would ensure that by default a good, uniform error message is given (e.g., {{No such file or directory}}).
{{os::realpath}}'s return type was changed from {{Try<string>}} to {{Result<string>}} in {{f69eab21808ce9cb2c9cc8290d9d944c5daaaa5d}}, but it does appear the reasoning given there justifies this change.
> os::realpath should return a Try<string> instead of Result<string>
> ------------------------------------------------------------------
>
> Key: MESOS-6276
> URL: https://issues.apache.org/jira/browse/MESOS-6276
> Project: Mesos
> Issue Type: Bug
> Components: stout
> Reporter: Benjamin Bannier
>
> Currently {{os::realpath}} returns a {{Result<string>}}. Here the empty case is used to signify cases where the passed path did not exist (this is a failure for {{::realpath}}), while all other errors lead to an {{Error}}.
> This appears to overload {{os::realpath}} with semantics already present in {{os::exists}}, and it should be possible to to achieve the current functionality by filtering inputs to a simpler {{::realpath}} wrapper through {{os::exists}} -- in fact even with the existing implementation users will need to check results of {{os::realpath}} for empty in order to handle non-existing files. Looking at how the empty case is handled now in the majority of uses suggests that just propagating the {{::realpath}} error would be fine and would ensure that by default a good, uniform error message is given (e.g., {{No such file or directory}}).
> {{os::realpath}}'s return type was changed from {{Try<string>}} to {{Result<string>}} in {{f69eab21808ce9cb2c9cc8290d9d944c5daaaa5d}}, but it does not appear the reasoning given there justifies this change.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)