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

Akri udev ATTRS ignored #114

Closed
jiria opened this issue Nov 8, 2020 · 1 comment · Fixed by #130
Closed

Akri udev ATTRS ignored #114

jiria opened this issue Nov 8, 2020 · 1 comment · Fixed by #130
Assignees
Labels
documentation Improvements or additions to documentation enhancement New feature or request

Comments

@jiria
Copy link
Contributor

jiria commented Nov 8, 2020

Describe the bug
Based on the Akri udev grammar it seems that ATTRS might be supported, but when I pass ATTRS as part of my udev rule, Agent is ignoring it:

[2020-11-08T09:04:14Z TRACE agent::protocols::udev::discovery_impl] parse_udev_rule - unsupported field ATTRS{manufacturer}

Is v2 not yet supported?

Output of kubectl get pods,akrii,akric -o wide
agent and controller are running, my configuration is specified, but too many instances are found, because ATTRS of the rule are ignored

Kubernetes Version: K3s

To Reproduce
Supplying rule such as SUBSYSTEM=="tty"\, ATTRS{manufacturer}=="Silicon Labs"\, ATTRS{idProduct}=="ea60"' matches all tty devices.

Expected behavior
Supplying rule such as SUBSYSTEM=="tty"\, ATTRS{manufacturer}=="Silicon Labs"\, ATTRS{idProduct}=="ea60"' should only match tty devices that have manufacturer and idProduct in the device or its parents.

Logs (please share snips of applicable logs)
Snippet from Agent log:

[2020-11-08T09:04:14Z TRACE agent::util::config_action] do_periodic_discovery - start for config akri-udev
[2020-11-08T09:04:14Z TRACE agent::util::config_action] do_periodic_discovery - loop iteration for config akri-udev
[2020-11-08T09:04:14Z TRACE agent::protocols::udev::discovery_handler] discover - for udev rules ["SUBSYSTEM==\"tty\", ATTRS{manufacturer}==\"Silicon Labs\", ATTRS{idProduct}
==\"ea60\""]
[2020-11-08T09:04:14Z INFO  agent::protocols::udev::discovery_impl] parse_udev_rule - enter for udev rule string SUBSYSTEM=="tty", ATTRS{manufacturer}=="Silicon Labs", ATTRS{
idProduct}=="ea60"
[2020-11-08T09:04:14Z TRACE agent::protocols::udev::discovery_impl] parse_udev_rule - parsing udev_rule "SUBSYSTEM==\"tty\", ATTRS{manufacturer}==\"Silicon Labs\", ATTRS{idPr
oduct}==\"ea60\""
[2020-11-08T09:04:14Z TRACE agent::protocols::udev::discovery_impl] parse_udev_rule - unsupported field ATTRS{manufacturer}
[2020-11-08T09:04:14Z TRACE agent::protocols::udev::discovery_impl] parse_udev_rule - unsupported field ATTRS{idProduct}
[2020-11-08T09:04:14Z TRACE agent::protocols::udev::discovery_impl] find_devices - enter with udev_filters [UdevFilter { field: Pair { rule: subsystem, span: Span { str: "SUB
SYSTEM", start: 0, end: 9 }, inner: [] }, operation: equality, value: "tty" }]
[2020-11-08T09:04:14Z TRACE agent::protocols::udev::discovery_impl] enumerator_match_udev_filters - enter with udev_filters [UdevFilter { field: Pair { rule: subsystem, span:
Span { str: "SUBSYSTEM", start: 0, end: 9 }, inner: [] }, operation: equality, value: "tty" }]
[2020-11-08T09:04:14Z TRACE agent::protocols::udev::discovery_impl] enumerator_nomatch_udev_filters - enter with udev_filters []
[2020-11-08T09:04:14Z TRACE agent::protocols::udev::discovery_impl] filter_by_remaining_udev_filters - enter with udev_filters []
[2020-11-08T09:04:14Z TRACE agent::protocols::udev::discovery_impl] do_parse_and_find - returning discovered devices with devpaths: ["/dev/ttyAMA0", "/dev/ttyUSB0", "/dev/con
sole", "/dev/ptmx", "/dev/tty", "/dev/tty0", "/dev/tty1", "/dev/tty10", "/dev/tty11", "/dev/tty12", "/dev/tty13", "/dev/tty14", "/dev/tty15", "/dev/tty16", "/dev/tty17", "/de
v/tty18", "/dev/tty19", "/dev/tty2", "/dev/tty20", "/dev/tty21", "/dev/tty22", "/dev/tty23", "/dev/tty24", "/dev/tty25", "/dev/tty26", "/dev/tty27", "/dev/tty28", "/dev/tty29
", "/dev/tty3", "/dev/tty30", "/dev/tty31", "/dev/tty32", "/dev/tty33", "/dev/tty34", "/dev/tty35", "/dev/tty36", "/dev/tty37", "/dev/tty38", "/dev/tty39", "/dev/tty4", "/dev
/tty40", "/dev/tty41", "/dev/tty42", "/dev/tty43", "/dev/tty44", "/dev/tty45", "/dev/tty46", "/dev/tty47", "/dev/tty48", "/dev/tty49", "/dev/tty5", "/dev/tty50", "/dev/tty51"
, "/dev/tty52", "/dev/tty53", "/dev/tty54", "/dev/tty55", "/dev/tty56", "/dev/tty57", "/dev/tty58", "/dev/tty59", "/dev/tty6", "/dev/tty60", "/dev/tty61", "/dev/tty62", "/dev
/tty63", "/dev/tty7", "/dev/tty8", "/dev/tty9", "/dev/ttyprintk"]
[2020-11-08T09:04:14Z TRACE agent::protocols::udev::discovery_handler] discover - mapping and returning devices at devpaths {"/dev/tty41", "/dev/tty24", "/dev/tty20", "/dev/t
ty37", "/dev/tty51", "/dev/tty38", "/dev/tty17", "/dev/tty18", "/dev/tty49", "/dev/tty5", "/dev/tty4", "/dev/tty0", "/dev/tty63", "/dev/tty43", "/dev/tty48", "/dev/tty39", "/
dev/tty46", "/dev/tty28", "/dev/tty11", "/dev/tty54", "/dev/tty36", "/dev/tty30", "/dev/tty52", "/dev/tty16", "/dev/tty2", "/dev/tty45", "/dev/tty61", "/dev/tty25", "/dev/tty
", "/dev/tty59", "/dev/tty42", "/dev/tty29", "/dev/tty47", "/dev/tty56", "/dev/tty55", "/dev/ttyUSB0", "/dev/tty44", "/dev/tty50", "/dev/tty33", "/dev/tty13", "/dev/tty58", "
/dev/tty31", "/dev/ttyAMA0", "/dev/tty6", "/dev/tty10", "/dev/tty8", "/dev/tty35", "/dev/ttyprintk", "/dev/tty32", "/dev/tty14", "/dev/tty60", "/dev/tty23", "/dev/tty27", "/d
ev/tty40", "/dev/tty3", "/dev/tty7", "/dev/ptmx", "/dev/tty1", "/dev/tty19", "/dev/tty15", "/dev/tty53", "/dev/tty62", "/dev/tty22", "/dev/tty9", "/dev/tty21", "/dev/tty26", 
"/dev/tty57", "/dev/tty34", "/dev/console", "/dev/tty12"}
@jiria jiria added bug Something isn't working documentation Improvements or additions to documentation enhancement New feature or request and removed bug Something isn't working labels Nov 8, 2020
@jiria
Copy link
Contributor Author

jiria commented Nov 9, 2020

Please consider supporting the recursive attributes and improving the documentation as to what is/what is not supported and how to validate the rules.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation enhancement New feature or request
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

2 participants