• Nils Goroll's avatar
    finalize task privs when rolling back workspaces · 103ea7c5
    Nils Goroll authored
    ... and introduce request functions for this purpose (for busy
    objects, there is only one use case yet, so we don't).
    
    Before we reset the workspace, we must ensure that there are no active
    references to objects on it. As PRIV_TASK and PRIV_TOP have the same
    lifetime as the respective workspace, they need to be destroyed. vmods
    must not use workspaces for storing information referenced via any of
    the other PRIVs unless the rollback case is considered.
    
    Note that while this bug was exposed by
    beeaa19c, it existed all along for any
    vmod priv state stored on the workspace, so if a vmod happened to
    access a TASK_PRIV stored on the workspace, it would likely have
    triggered a magic check assertion as well.
    
    I got plans for making std.rollback() more useful. While this change
    is required to do so, it only partly covers the planned changes.
    
    Fixes #2706
    103ea7c5
m00000.vtc 2.47 KB