Skip to content

SPIN fails to find assertion violation with -run #78

@ericmercer

Description

@ericmercer

Consider the following Promela:

init {
    run f()
}

active proctype f() {
    assert _pid == 1
}

The interpreter finds the assertion violation:

$ ./spin ../../../unexpected.pml
spin: ../../../unexpected.pml:6, Error: assertion violated
spin: text of failed assertion: assert((_pid==1))
#processes: 3
  2:    proc  2 (f:1) ../../../unexpected.pml:6 (state 1)
  2:    proc  1 (f:1) ../../../unexpected.pml:6 (state 1)
  2:    proc  0 (:init::1) ../../../unexpected.pml:3 (state 2) <valid end state>
3 processes created

But -run (-search) does not:

$ ./spin -run -safety ../../../unexpected.pml

(Spin Version 6.5.2 -- 21 June 2024)
        + Partial Order Reduction

Full statespace search for:
        never claim             - (none specified)
        assertion violations    +
        cycle checks            - (disabled by -DSAFETY)
        invalid end states      +

State-vector 20 byte, depth reached 6, errors: 0
        7 states, stored
        0 states, matched
        7 transitions (= stored+matched)
        0 atomic steps
hash conflicts:         0 (resolved)

Stats on memory usage (in Megabytes):
    0.000       equivalent memory usage for states (stored*(State-vector + overhead))
    0.292       actual memory usage for states
  128.000       memory used for hash table (-w24)
    0.534       memory used for DFS stack (-m10000)
  128.730       total actual memory usage


unreached in init
        (0 of 2 states)
unreached in proctype f
        (0 of 2 states)

pan: elapsed time 0 seconds

I'm first found the issue on version 6.5.2 on a Visual Studio Code Python dev container (sudo apt install spin --assume-yes). I then recreated it with a build from source on this repository.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions