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

boolean normalization fails #2811

Open
markus2330 opened this issue Jun 25, 2019 · 3 comments

Comments

Projects
None yet
2 participants
@markus2330
Copy link
Contributor

commented Jun 25, 2019

@kodebach wrote in #2772:

For example today I found this problem. I have no idea, why it didn't come up until now, or why it even is a problem, but here we are:

kdb set -N user /sw/lcdproc/lcdproc/#0/current/lcdproc/foreground true
#> Using name user/sw/lcdproc/lcdproc/#0/current/lcdproc/foreground
#> Set string to "true"

kdb get /sw/lcdproc/lcdproc/#0/current/lcdproc/foreground
#> Sorry, module type issued the error 52:
#> error in the type plugin: The key user/sw/lcdproc/lcdproc/#0/current/lcdproc/foreground was already normalized by a different plugin! Please ensure that there is only one plugin active that will normalize this key.

kdb get user/sw/lcdproc/lcdproc/#0/current/lcdproc/foreground
#> 1

For context, the type plugin is the only one mounted at this mountpoint that does normalization. It is also not a problem with kdb, since I originally noticed the error with lcdproc itself. So it has to be a problem in kdbGet itself. For some reason it seems type is called twice with the same key.

@markus2330

This comment has been minimized.

Copy link
Contributor Author

commented Jun 25, 2019

@kodebach Are we sure that this is not a cache problem (are you sure that there was no get/ls before the get with the error)? Maybe the origvalue was cached and the type plugin got confused because of this?

@kodebach

This comment has been minimized.

Copy link
Contributor

commented Jun 25, 2019

Are we sure that this is not a cache problem (are you sure that there was no get/ls before the get with the error)?

The calls were executed in exactly this order without anything in between. If you call kdb rm user/sw/lcdproc/lcdproc/#0/current/lcdproc/foreground at the end, you can also start the whole thing from the top again.

Maybe the origvalue was cached and the type plugin got confused because of this?

Unlikely, AFAIK if we have a cache hit no plugins are executed.

@markus2330

This comment has been minimized.

Copy link
Contributor Author

commented Jun 27, 2019

Ok, I was thinking about that maybe "origvalue" was cached in unwanted ways. If we can exclude this possibility we would need reproducible steps to debug this problem. It would be a grave bug if the core actually calls your plugin twice without specifying this in infos/placements

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.