-
Notifications
You must be signed in to change notification settings - Fork 18
Eye suddenly stops executing rules #143
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
Comments
I'm calling curl 10000 times (10 times more than you mentioned) in https://github.com/eyereasoner/eye/blob/master/reasoning/shell-command/query-10000.n3 and it nicely gives https://github.com/eyereasoner/eye/blob/master/reasoning/shell-command/query-10000-answer.n3 Could you give a concrete example showing that things are broken? |
I need to investigate. I assumed that it was something related to child processes but I must have been wrong. So far I only have example too complex to be useful |
Upon further investigation, maybe it is related to this trick you shared which prevents a rule from executing multiple times (to avoid side effects) # ... match ?req ...
({ ?req tuner:done true } false true) log:ifThenElseIn ?SCOPE .
true log:becomes { ?req tuner:done true } . I added a trace in the positive condition of this if statement and I found that with each matched instance of |
I also find something else. In my specific example, I iterate over a paged hydra collection (a HTTP API). Each response includes a Here's the relevant code: ?req tuner:response ?res ; tuner:url ?page .
(
{
?body log:includes {
<countries>!hydra:view hydra:next ?nextPage .
} .
}
{
?body log:includes {
<countries> hydra:view ?view .
?view hydra:next ?nextPage .
} .
(?view!log:localName ": " ?page!log:localName " => " ?nextPage!log:localName)!string:concatenation^log:trace .
true log:becomes {
<#fetchEntireCollection> <#fetch> ?nextPage
}
}
{
true log:becomes { <#fetchEntireCollection> earl:outcome earl:passed }
}
)!log:ifThenElseIn . See I added that
So it looks like a wrong value for tl;dr; ( "curl -s -X " ?method " '" ?endpoint "' -o " ?responseBodyFile )!string:concatenation!e:exec .
?responseBodyFile log:semantics ?res . |
Can you give the simplest possible concrete case that I can run and that shows that things are broken? |
Yea, that's the hard part. For now I could share the failing example if you are willing to run JS :) |
I the API testing project, I found that when I run multiple test cases (and thus requests), there is a certain threshold which, when reached, suddenly stops
I thought it was related to simply running many processes with
e:exec
but a synthetic case did not work and I easily called curl 1000 times.The text was updated successfully, but these errors were encountered: