NASA-AMMOS / aerie

A software framework for modeling spacecraft.
https://nasa-ammos.github.io/aerie-docs/
MIT License
67 stars 19 forks source link

scheduling mutex condition does not prevent overlap #1336

Closed srschaffJPL closed 2 months ago

srschaffJPL commented 6 months ago

Checked for duplicates

No - I haven't checked

Is this a regression?

No - This is a new bug

Version

2.2.1

Describe the bug

Using a mutex scheduling condition does not prevent scheduling of conflicting activities that have duration spans that overlap.

It does appear to prevent them from scheduling the same start time though. It also does work in some other priority orderings.

Reproduction

Create a plan:

This condition:

These goals:

Press schedule. It places 16 activities for B (ECM_Power_On) as expected. Considering the mutex, this should leave no room at all to place a 12hr long A (GENERIC_Power_Data) anywhere in the plan. However, it also places 4 instances for A.

(Notably, the mutex works as expected in the reverse priority ordering, ie A then B)

Logs

No response

System Info

2023 M2 Macbook Pro Ventura 13.6.4 (22G513)
Chrome 121.0.6167.184
G24 eurc model release https://github.jpl.nasa.gov/Europa-PESS/clipper-aerie/releases

Severity

Moderate

Workaround

None currently outside of manually scheduling

srschaffJPL commented 6 months ago

I confirmed that the ECM_Power_On activity is not instantaneous, in case anyone else had the same hunch. It always delays at least a second.

And the GENERIC_Power_Data delays exactly as long as the duration parameter. However, it is not annotated as controllable duration.