Skip to content
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

fix(a380x/air cond): wasm crash during rapid decompression #9543

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

mjuhe
Copy link
Contributor

@mjuhe mjuhe commented Nov 17, 2024

Fixes #9215

Summary of Changes

Fixes an issue with the cabin air flow demand calculation that was causing a wasm crash during rapid decompression.

Screenshots (if necessary)

References

Additional context

The main issue was with the way the pack demand flow and the cabin fan extraction flow was calculated (some values went negative, which drove other values to infinity). I've also added a couple of small fixes that should help in case of adirs failures in flight.

Discord username (if different from GitHub): Commander Ga

Testing instructions

  1. Climb to FL400
  2. Trigger the "Rapid Decompression" faliure on the EFB
  3. Validate that the cabin altitude gets to ~40000ft and that the cabin temperatures stay in a reasonable range (20-30 deg)
  4. Fly for a few minutes, validate the wasm doesn't crash (the PFD continues to operate) and the cabin vertical speed stays within a reasonable range (+/- 100fpm)

How to download the PR for QA

Every new commit to this PR will cause new A32NX and A380X artifacts to be created, built, and uploaded.

  1. Make sure you are signed in to GitHub
  2. Click on the Checks tab on the PR
  3. On the left side, find and click on the PR Build tab
  4. Click on either flybywire-aircraft-a320-neo, flybywire-aircraft-a380-842 (4K) or flybywire-aircraft-a380-842 (8K) download link at the bottom of the page

@2hwk 2hwk added the A380X Related to the A380X aircraft label Nov 17, 2024

self.exterior_flight_altitude = if !self.is_initialised {
if !self.is_initialised && adirs_ambient_pressure.is_some() {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please assign new_exterior_altitude here.
Also just to make sure: this branch can only be taken when it's not initialised and the adirs are available.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes you are right, this condition is not very useful, it was probably me trying to be overly safe when making sure there was no condition where the reference pressure was 0. I reverted these changes now.

@alexr4339
Copy link

Quality Assurance Tester

Discord Username : alexdnzdmb
Object of testing : #9543
Aircraft :A380X
Tier of Testing : 1
Date : 17/11/2024

Testing Process:
Climb to FL400 - check
Trigger the "Rapid Decompression" faliure on the EFB - check
Validate that the cabin altitude gets to ~40000ft and that the cabin temperatures stay in a reasonable range (20-30 deg) - check, increased with around 6400 (seems as if 6400fpm is max indicated value) cabin fpm until probably 40k. However value only showed cab alt of 30k feet but cab alt still increased from 30k onwards until it probably reached around 40k, delta PSI indicates 0 as well
image
image

Fly for a few minutes, validate the wasm doesn't crash (the PFD continues to operate) and the cabin vertical speed stays within a reasonable range (+/- 100fpm) - check

Testing Results:
Not passed (as indicated values are incorrect), passed if that is not scope of PR

Negatives:
CAB alt only shows values up to 30k feet amd doesnt match the cab alt clock instrument indication

Conclusions:

Media:

@mjuhe
Copy link
Contributor Author

mjuhe commented Nov 17, 2024

Thanks for the test @alexr4339 !! Sorry I forgot to mention that the indications only go to +/- 6400fpm (on the vertical speed) and 30,000ft (on the cabin altitude). This is a feature, not a bug 😄as that's how the ARINC data gets transmitted. You can see the real value of the cabin altitude checking the A32NX_PRESS_MAN_CABIN_ALTITUDE LVar in Behaviours.

Although if you experienced no unexpected jumps in VS or in cabin temperature, and most importantly no wasm crashes, I don't think this needs to be tested again.

@2hwk 2hwk removed the QA Failed label Nov 21, 2024
@flogross89
Copy link
Contributor

can we merge this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A380X Related to the A380X aircraft QA Ready to Test QA Tier 1
Projects
Status: 🟣 QA Review: Ready to Test
Development

Successfully merging this pull request may close these issues.

Doors Open and Airplane+System Freeze
5 participants