Openbmc: Witherspoon: phosphor-hwmon-readd: terminate called after throwing an instance of 'std::filesystem::__cxx11::filesystem_error'

Created on 15 Mar 2019  Â·  9Comments  Â·  Source: openbmc/openbmc

Build: https://openpower.xyz/job/openbmc-build/2015/

Version: "2.7.0-dev-90-gae29d00"

Mar 15 09:47:51 witherspoon phosphor-hwmon-readd[1378]: terminate called after throwing an instance of 'std::filesystem::__cxx11::filesystem_error'
Mar 15 09:47:51 witherspoon phosphor-hwmon-readd[1378]:   what():  filesystem error: recursive directory iterator cannot open directory: No such file or directory [/ahb/apb/i2c@1e78a000/i2c-bus@380/tmp275@4a]
Mar 15 10:27:04 witherspoon phosphor-hwmon-readd[2522]: Unable to find hwmon directory from the dev path
Mar 15 10:27:04 witherspoon phosphor-hwmon-readd[2522]: Usage: phosphor-hwmon-readd [options]
Mar 15 10:27:04 witherspoon phosphor-hwmon-readd[2522]: Options:
Mar 15 10:27:04 witherspoon phosphor-hwmon-readd[2522]:     --help               print this menu
Mar 15 10:27:04 witherspoon phosphor-hwmon-readd[2522]:     --path=<path>        sysfs location to monitor
Mar 15 10:27:04 witherspoon phosphor-hwmon-readd[2522]:     --dev-path=<path>    device path to monitor
Mar 15 10:27:04 witherspoon phosphor-hwmon-readd[2522]: ERROR: Path not specified or invalid.

bug

Most helpful comment

All 9 comments

I see this on other systems too.. this is pervassive

The only hwmon change lately was https://github.com/openbmc/phosphor-hwmon/commit/9e997b4da98725401769ef82fe26e11c46a059d9 - "use filesystem instead of experimental". I wonder if std::filesystem behaves different than the experimental::filesystem.
FYI @pstrinkle

I'll take a look this morning.

On Fri, Mar 15, 2019 at 07:05 Matt Spinler notifications@github.com wrote:

The only hwmon change lately was openbmc/phosphor-hwmon@9e997b4
https://github.com/openbmc/phosphor-hwmon/commit/9e997b4da98725401769ef82fe26e11c46a059d9

  • "use filesystem instead of experimental". I wonder if std::filesystem
    behaves different than the experimental::filesystem.
    FYI @pstrinkle https://github.com/pstrinkle

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/openbmc/openbmc/issues/3499#issuecomment-473298523,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABv02PdmDvnQA5Jj0atfXYX_eAsGS6Msks5vW6iegaJpZM4b2Pwo
.

>

"If computers get too powerful, we can organize them into a committee--that
will do them in."

  • Bradley's Bromide

http://www.xkcd.com/488/ -- end DRM
http://www.xkcd.com/175/
http://xkcd.com/303/

though that directory it's looking at clearly doesn't exist: /ahb/apb/i2c@1e78a000/i2c-bus@380/tmp275@4a

Turns out the difference is in the /= operator.

From cpppreference.com, only for std::filesystem:

path& operator/=(const path& p);
1) If p.is_absolute() || (p.has_root_name() && p.root_name() != root_name()), then replaces the current path with p as if by operator=(p) and finishes.

It doesn't say that for experimental::filesystem.

that breaks this line: https://github.com/openbmc/phosphor-hwmon/blob/master/sysfs.cpp#L170

Thanks for running that down.

On Fri, Mar 15, 2019 at 9:16 AM Matt Spinler notifications@github.com
wrote:

Turns out the difference is in the /= operator.

From cpppreference.com, only for std::filesystem:

path& operator/=(const path& p);
1) If p.is_absolute() || (p.has_root_name() && p.root_name() != root_name()), then replaces the current path with p as if by operator=(p) and finishes.

It doesn't say that for experimental::filesystem.

that breaks this line:
https://github.com/openbmc/phosphor-hwmon/blob/master/sysfs.cpp#L170

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/openbmc/openbmc/issues/3499#issuecomment-473348941,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABv02CMuNcaOlRM0DcCG2-qYjtBhtSCKks5vW8dHgaJpZM4b2Pwo
.

--
"If computers get too powerful, we can organize them into a committee--that
will do them in."

  • Bradley's Bromide

http://www.xkcd.com/488/ -- end DRM
http://www.xkcd.com/175/
http://xkcd.com/303/

i can put up a fix in a bit

Thanks!

On Fri, Mar 15, 2019 at 09:25 Matt Spinler notifications@github.com wrote:

i can put up a fix in a bit

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/openbmc/openbmc/issues/3499#issuecomment-473352446,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABv02GQiqXFc4lJNYIg27ou1YbPsuoRcks5vW8lpgaJpZM4b2Pwo
.

>

"If computers get too powerful, we can organize them into a committee--that
will do them in."

  • Bradley's Bromide

http://www.xkcd.com/488/ -- end DRM
http://www.xkcd.com/175/
http://xkcd.com/303/

Was this page helpful?
0 / 5 - 0 ratings