XSB problems

Issue #838 resolved
Bart Bogaerts created an issue

Na mergen van laatste pull request https://bitbucket.org/krr/idp/pull-request/301/xsb-fixes

gaat er 't een en 't ander mis in het testframework gerelateerd aan xsb

Op zijn minst twee falende tests:

Failed: CalculateDefinitionsWithXSB/CalculateDefinitionsWithXSBTest.CalculatesDefinitionWithXSB/52
Testing /home/bartb/software/idp/tests/definitionWithXSBtests/twovalued_opens/knapsack.idp
FAIL! Calculating the definition with XSB resulted in no model, while without XSB it did have a model.
/home/bartb/software/idp/tests/mxtests/definitionWithXSBtests.cpp:80: Failure
Value of: Status::SUCCESS
  Actual: success
Expected: result
Which is: failed

en

[==========] RefinesDefinitionWithXSB/RefineDefinitionsWithXSBTest.RefinesDefinitionWithXSB/63
Testing /home/bartb/software/idp/tests/definitionWithXSBtests/twovalued_opens/gcd.idp
Refined definitions with XSB...Out of resources
Shutdown failed, aborting.
Aborted (core dumped)

Mogelijks gaat er dus nog meer mis...

aub: run make check voor je een pull request mergt!

Comments (5)

  1. Joachim Jansen

    Ik kan niet meteen vinden waar het probleem zit. Ik krijg segfaults omdat gcd.idp in een timeout gaat en het "killen" zorgt voor de segfault.

    Ik kijk er volgende week naar.

  2. Joachim Jansen

    The first failing test case (knapsack.idp) was a result of a faulty commit in this branch. The second failing test case (gcd.idp) is a result of a timeout. This timeout is caught during XSB's run and is not handled properly. This is then reduced to issue #672

    Something to think about: I looked at why gcd.idp is so slow and I found that a relative simple definition is transformed into a gigantic one. This might be worth looking into. The example is given below:

    {
        dist(a,b)= xDist(a,b)*xDist(a,b)+yDist(a,b)*yDist(a,b).
    }
    

    Is transformed into

    {
        ! a[El] b[El] var3339[El] : dist(a[El],b[El],var3339[El]) <- 
            (
                (? var3340[s1..3] var3341[s1..3] var3342[s1..9] var3343[s1..3] var3344[s1..3] var3345[s1..9] : 
                    (xDist(a[El],b[El],var3340[s1..3]) & 
                    (xDist(a[El],b[El],var3341[s1..3]) & 
                    (
                        *(var3340[s1..3],var3341[s1..3],var3342[s1..9]) & 
                        *(
                            yDist(a[El],b[El],var3343[s1..3]) & 
                            *(
                                yDist(a[El],b[El],var3344[s1..3]) & 
                                *(var3343[s1..3],var3344[s1..3],var3345[s1..9]) &
                                +(var3342[s1..9],var3345[s1..9],var3339[El]))
                        ) & 
                (? var3346[s1..3] var3347[s1..3] var3348[s1..9] var3349[s1..3] var3350[s1..3] var3351[s1..9] var3352[s2..18] : 
                    (
                        xDist(a[El],b[El],var3346[s1..3]) & 
                        xDist(a[El],b[El],var3347[s1..3]) & 
                        *(var3346[s1..3],var3347[s1..3],var3348[s1..9]) & 
                        yDist(a[El],b[El],var3349[s1..3]) & 
                        yDist(a[El],b[El],var3350[s1..3]) & 
                        *(var3349[s1..3],var3350[s1..3],var3351[s1..9]) & 
                        +(var3348[s1..9],var3351[s1..9],var3352[s2..18]) & 
                        El(var3352[s2..18])
                    )
                )
            ).
    }
    
  3. Log in to comment