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

D-Bus set-property call to set an attribute in PendingAttributes table has unclear behavior. #6

Open
souvik1914581 opened this issue Oct 18, 2024 · 2 comments
Assignees
Labels
bug Something isn't working

Comments

@souvik1914581
Copy link

souvik1914581 commented Oct 18, 2024

Issue:

  1. Try to set hb_field_core_override attribute using a set-property call using following query:
    busctl set-property xyz.openbmc_project.BIOSConfigManager /xyz/openbmc_project/bios_config/manager xyz.openbmc_project.BIOSConfig.Manager PendingAttributes a{s\(sv\)} 1 "hb_field_core_override" "xyz.openbmc_project.BIOSConfig.Manager.AttributeType.Integer" i 2
    The busctl call above succeeds.
  2. Observe journal log to see pldmd sets the value to 0.
  3. pldmd[823]: BIOS attribute 'hb_field_core_override' updated to value '0' by BMC 'true'
  4. The attribute value always gets set to 0 if we use i, regardless of the value argument given after i, but the busctl call succeeds. There is no indication to the caller that value 0 has been set.
  5. To set the required value we need to use following query: busctl set-property xyz.openbmc_project.BIOSConfigManager /xyz/openbmc_project/bios_config/manager xyz.openbmc_project.BIOSConfig.Manager PendingAttributes a{s\(sv\)} 1 "hb_field_core_override" "xyz.openbmc_project.BIOSConfig.Manager.AttributeType.Integer" x 2

Expectation:

busctl set-property should fail if busctl set-property call is executed using i instead of x or it should set the value specified by i argument.

@mdmillerii
Copy link

For the casual reader, i is int32 and x int64 .
https://dbus.freedesktop.org/doc/dbus-specification.html

@manojkiraneda
Copy link
Contributor

I debugged the today, looks like it's probably a bug in sdbusplus. The application seems to get an int64_t type with the value 0 despite providing the signature i.

@williamspatrick can you take a look at this ?

@manojkiraneda manojkiraneda added the bug Something isn't working label Feb 6, 2025
@manojkiraneda manojkiraneda self-assigned this Feb 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants