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

In real time, a cst can be instantiated before matching all facts #184

Open
jefft0 opened this issue Oct 7, 2021 · 0 comments
Open

In real time, a cst can be instantiated before matching all facts #184

jefft0 opened this issue Oct 7, 2021 · 0 comments
Labels
bug Something isn't working

Comments

@jefft0
Copy link
Collaborator

jefft0 commented Oct 7, 2021

A CSTOverlay accumulates facts in the current sampling period. If enough facts match a composite state, it instantiates the composite state as a fact. If a composite state is instantiated, this means that all of its member are considered facts.

The problem is that, when Replicode is running in real time some times it will instantiate a composite state if it only accumulated a few matched facts. For example, if the composite state has four members, the CSTOverlay may only find facts which match two members, but will instantiate the composite state anyway. This means that the other members are also considered facts, even though they weren't checked and may not actually be facts. This never occurs in diagnostic time mode. It occurs as a side effect of multithreaded interaction which must be investigated.

(This was addressed in pull requests #79 by adding original_patterns_size_ and checking it before instantiating the cst. But since it never occurs in diagnostic mode, the pull request was reverted pending investigation of why the bug happens in real time.)

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

1 participant