kcsbridge cannot work with the latest sdbusplus package.
Fran Hsu (徐誌謙)
Fran.Hsu at quantatw.com
Sat Jun 6 18:22:32 AEST 2020
Hi Vernon,
Thanks, but sorry I didn't check this mail first, so I pushed a fix to Gerrit for review.
Using the alias name is easier than modifying the source code.
I will abandon the code review.
Thanks,
Fran Hsu
E-Mail : Fran.Hsu at QuantaTW.com
> -----Original Message-----
> From: Vernon Mauery <vernon.mauery at linux.intel.com>
> Sent: Saturday, June 6, 2020 4:15 AM
> To: Patrick Williams <patrick at stwcx.xyz>
> Cc: Fran Hsu (徐誌謙) <Fran.Hsu at quantatw.com>; openbmc at lists.ozlabs.org
> Subject: Re: kcsbridge cannot work with the latest sdbusplus package.
>
> On 05-Jun-2020 10:33 AM, Patrick Williams wrote:
> >On Fri, Jun 05, 2020 at 12:57:35PM +0000, Fran Hsu (徐誌謙) wrote:
> >> Hi All,
> >> I built the BMC FW from the latest OpenBMC branch. And I found the ksc
> channel is not working.
> >> I got the following error message:
> >> kcsbridged -c ipmi-kcs1
> >> terminate called after throwing an instance of
> 'sdbusplus::exception::SdBusError'
> >> what(): Invalid path or interface:
> org.freedesktop.DBus.Error.InvalidArgs: Invalid argument
> >> Aborted (core dumped)
> >> So I did a check of the recent package changes.
> >> The latest sdbusplus add the "validate interface and path passed to DBus",
> but there is a problem when kcsbridge call the "add_interface" API, the part of
> the regex checking function.
> >>
> https://github.com/openbmc/sdbusplus/blob/7f664254a4365612b82db2fd8fb
> >> 82798686e777b/include/sdbusplus/asio/object_server.hpp#L811
> >> kcsbridge takes the one parameter of the /dev/ipmi-kcs*. But regex
> function didn't allow the character '-', so I got the exception message.
> >> Does it need to add the regex checking to the "add_interface" API? Or add
> the character '-' to the regex checking pattern?
> >>
> >> Thanks
> >> Fran Hsu
> >> E-Mail : Fran.Hsu at QuantaTW.com
> >>
> >
> >Hi Fran,
> >
> >kcsbridged needs an update to not use a -. This was added because:
> >
> > - The dbus spec is very clear about valid names for Interfaces,
> > Object Paths, and Services [1].
> >
> > - In some cases, sdbus itself and/or the dbus daemon actively check
> > for valid names and give an error, but in a few cases the error
> > was being ignored by applications.
> >
> > - For names that sdbus was not verifying, it is possible they add
> > verification in the future and cause code breakage.
> >
> >I know I was helping one developer recently who was adding a new dbus
> >element and they were stumped as to why their object was not showing up
> >as they expected. It was due to an invalid name that sdbus was
> >dropping. Rather than a silent error from sdbus we made this a hard,
> >obvious error, by throwing an exception.
> >
> >Thanks for reporting the issue. Are you interested in working up a
> >fix, otherwise Vernon is the only listed maintainer presently?
>
> Currently, we are dealing with this issue using a symlink to alias the kcs device.
>
> root at intel-obmc:/tmp# cat /lib/udev/rules.d/99-ipmi-kcs.rules
> KERNEL=="ipmi-kcs3", SYMLINK+="ipmi_kcs3"
> KERNEL=="ipmi-kcs4", SYMLINK+="ipmi_kcs4"
>
> Then we add the instance of the kcsbridge with the ipmi_kcs3 name. Keep in
> mind that whatever name you use, it should match the name in the
> /usr/share/ipmid-providers/channel_config.json file.
>
> --Vernon
More information about the openbmc
mailing list