-
Notifications
You must be signed in to change notification settings - Fork 208
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
Assertion failure on Auto-Scheduling
#2426
Comments
I've attempted to fix the auto-scheduler in #2421. There has been a few commits refactoring the auto-scheduler and the refactoring is likely the cause of these errors. If you need to use the auto-scheduler, the easiest way is to revert the refactoring commits manually. |
Although some fixes have gone into the auto-scheduler and they fix one of our problems, the example above still triggers an error with the latest master 73edcf3. It also fails on 2.3, where I think this was all introduced. The problem executing the binary is probably because he doesn't have |
There is a bug souffle-lang#2426, which causes an assertion in the SelingerProfileSipsMetric::getReordering. There is no need to assert, since we can handle the problem gracefully by not reordering atoms.
There is a bug souffle-lang#2426, which causes an assertion in the SelingerProfileSipsMetric::getReordering. In our use case we cannot fail the compilation, if as long as the datalog is valid. So, rather than fixing the problem I decided to work-around it for the time being, until we have a proper fix. We can work around this problem in one of two ways: 1. don't assert and just don't reorder atoms (this should be fine) 2. don't create the metric in the first place, if there is no profile I decided to use souffle-lang#2 as that seems to be the safer option. A warning is printed if the scheduler cannot be used.
There is a bug souffle-lang#2426, which causes an assertion in the SelingerProfileSipsMetric::getReordering. In our use case we cannot fail the compilation, if as long as the datalog is valid. So, rather than fixing the problem I decided to work-around it for the time being, until we have a proper fix. We can work around this problem in one of two ways: 1. don't assert and just don't reorder atoms (this should be fine) 2. don't create the metric in the first place, if there is no profile I decided to use souffle-lang#2 as that seems to be the safer option. A warning is printed if the scheduler cannot be used.
There is a bug souffle-lang#2426, which causes an assertion in the SelingerProfileSipsMetric::getReordering. Rther than fixing the problem I decided to work-around it for the time being, until we have a proper fix. We can work around this problem in one of two ways: 1. don't assert and just don't reorder atoms (this should be fine) 2. don't create the metric in the first place, if there is no profile I decided to use souffle-lang#2 as that seems to be the safer option. I added code for a warning, but disabled it because it is incompatible with the ctest suite.
There is a bug souffle-lang#2426, which causes an assertion in the SelingerProfileSipsMetric::getReordering. Rther than fixing the problem I decided to work-around it for the time being, until we have a proper fix. We can work around this problem in one of two ways: 1. don't assert and just don't reorder atoms (this should be fine) 2. don't create the metric in the first place, if there is no profile I decided to use souffle-lang#2 as that seems to be the safer option. I added code for a warning, but disabled it because it is incompatible with the ctest suite.
The following program triggers an assertion failure:
This is the command:
The second command triggers the assertion failure:
If I remove the
B(x)
in the rule, then there is no assertion failure, but still get the messagefailed to execute binary
.The souffle version is 0ad4109
The text was updated successfully, but these errors were encountered: