hpi-sam / digital-fuesim-manv

A German simulation system for training emergency medical services leadership personnel on how to manage Mass Casualty Incidents.
https://fuesim-manv.de/
GNU Affero General Public License v3.0
16 stars 8 forks source link

Bug Docker container broken #650

Closed anonym-HPI closed 1 year ago

anonym-HPI commented 1 year ago

The docker container at fuesim-manv.de is down, the database is not fresh, this error is coming up. Pulled to have newest images and restarted them:

file:///usr/local/app/shared/dist/models/utils/position/position-helpers.js:50
digital-fuesim-manv  |     return position.type === 'coordinates';
digital-fuesim-manv  |                     ^
digital-fuesim-manv  |
digital-fuesim-manv  | TypeError: Cannot read properties of undefined (reading 'type')
digital-fuesim-manv  |     at isPositionOnMap (file:///usr/local/app/shared/dist/models/utils/position/position-helpers.js:50:21)
digital-fuesim-manv  |     at isOnMap (file:///usr/local/app/shared/dist/models/utils/position/position-helpers.js:2:12)
digital-fuesim-manv  |     at updateSpatialElementTree (file:///usr/local/app/shared/dist/models/utils/position/position-helpers-mutable.js:21:9)
digital-fuesim-manv  |     at changePosition (file:///usr/local/app/shared/dist/models/utils/position/position-helpers-mutable.js:13:9)
digital-fuesim-manv  |     at Object.reducer (file:///usr/local/app/shared/dist/store/action-reducers/vehicle.js:168:17)
digital-fuesim-manv  |     at applyAction (file:///usr/local/app/shared/dist/store/reduce-exercise-state.js:27:54)
digital-fuesim-manv  |     at file:///usr/local/app/shared/dist/store/reduce-exercise-state.js:40:13
digital-fuesim-manv  |     at produce (file:///usr/local/app/shared/node_modules/immer/dist/immer.esm.mjs:1:16230)
digital-fuesim-manv  |     at applyAllActions (file:///usr/local/app/shared/dist/store/reduce-exercise-state.js:38:12)
digital-fuesim-manv  |     at applyMigrations (file:///usr/local/app/shared/dist/state-migrations/migrations.js:50:44)
digital-fuesim-manv  | (node:14) ExperimentalWarning: The Node.js specifier resolution flag is experimental. It could change or be removed at any time.
digital-fuesim-manv  | (Use `node --trace-warnings ...` to show where the warning was created)
digital-fuesim-manv  | query: SELECT * FROM current_schema()
digital-fuesim-manv  | query: CREATE EXTENSION IF NOT EXISTS "uuid-ossp"
digital-fuesim-manv  | query: SELECT version();
digital-fuesim-manv  | query: SELECT * FROM "information_schema"."tables" WHERE "table_schema" = 'public' AND "table_name" = 'migrations'
digital-fuesim-manv  | query: SELECT * FROM "migrations" "migrations" ORDER BY "id" DESC
digital-fuesim-manv  | No migrations are pending
digital-fuesim-manv  | (node:27) ExperimentalWarning: The Node.js specifier resolution flag is experimental. It could change or be removed at any time.
digital-fuesim-manv  | (Use `node --trace-warnings ...` to show where the warning was created)
digital-fuesim-manv  | Successfully connected to the database.
digital-fuesim-manv  | Loading exercises from database…
digital-fuesim-manv  | ❌ An error occurred while loading exercises.

Could be a result of https://github.com/hpi-sam/digital-fuesim-manv/pull/616

Database shows the following:

LOG: could not receive data from client: Connection reset by peer, probably because the container aborts and retries.

anonym-HPI commented 1 year ago

@lukasrad02 As you have made the type PR, could you look at it?

lukasrad02 commented 1 year ago

The code from the error message is part of the position refactoring (#607, #612), done by @benn02, but I can take a look at this, too.

@anonym-HPI Can you provide us the exercise JSON causing this failure? The stack trace seems like the failure occurs during a migration of an exercise.

My first guess is that it could be caused by something missing in Migration 16, which was added later to this migration (see https://github.com/hpi-sam/digital-fuesim-manv/pull/625/files#diff-8d25d0591771a2492c80daa33599bb9080338b966884b5cad23db357848cd1c7) since Benildur said that it is not strictly necessary and we therefore don't need a new migration.

benn02 commented 1 year ago

I think I completed the Migration with #612, but maybe there is still something missing

benn02 commented 1 year ago

But it seems like there is an Element of which the position has not been set in the migrations

anonym-HPI commented 1 year ago

I don't know excactly which exercise it is. The whole server does not start. Do you want to have a dump of the database?

benn02 commented 1 year ago

Do you have the Exercises as distinct JSON Files?

anonym-HPI commented 1 year ago

I have not done anything with a particular exercise, I went to the website and saw a bad gateway error from nginx and logged on to the server to fix and looked at the logs I get via docker compose logs -f. I can send you a dump of the database, but I don't have a particular exercise that resulted in a crash of the container. Just all exercises started and not deleted in the last month on fuesim-manv.de, which could be more than a few.

I could clear the database, but this would just make the error go away, but not fix the issue, that probably resulted in a migration error or so.

benn02 commented 1 year ago

So I think I maybe did something that could maybe fix it but since I don't have a test case maybe try it out before merging?

lukasrad02 commented 1 year ago

I think I completed the Migration with #612, but maybe there is still something missing

I'm afraid that altering migration 16 with a later commit does not affect exercises that have already been migrated to version 16 with the old migration.

anonym-HPI commented 1 year ago

I will try, building the container locally, just a moment.

lukasrad02 commented 1 year ago

Do you want to have a dump of the database?

Yes, this would be nice!

benn02 commented 1 year ago

I think I completed the Migration with #612, but maybe there is still something missing

I'm afraid that altering migration 16 with a later commit does not affect exercises that have already been migrated to version 16 with the old migration.

That would explain it... So I need to write a new migration? That is not optimal

benn02 commented 1 year ago

I added a new migration 20 that repeats the missing part of 16 and 18

anonym-HPI commented 1 year ago

So tried it, with the branch, including 20, getting the following error (but the website can be served, as the container does return error code 0, but the backend is not available), a part of what the logs show:

``` digital-fuesim-manv | ❌ An error occurred while loading exercises. digital-fuesim-manv | The validation of the exercises and actions in the database failed: [ digital-fuesim-manv | ValidationError { digital-fuesim-manv | target: AddVehicleAction { digital-fuesim-manv | type: '[Vehicle] Add vehicle', digital-fuesim-manv | vehicle: Vehicle { digital-fuesim-manv | id: 'f8c97844-7845-4349-a9ca-0ce58205b43d', digital-fuesim-manv | type: 'vehicle', digital-fuesim-manv | vehicleType: 'RTW', digital-fuesim-manv | name: 'RTW ???', digital-fuesim-manv | materialIds: { '6b4e06e5-f781-4253-b235-a5341ef9cb36': true }, digital-fuesim-manv | patientCapacity: 1, digital-fuesim-manv | position: MapPosition { digital-fuesim-manv | type: 'coordinates', digital-fuesim-manv | coordinates: MapCoordinates { x: undefined, y: undefined } digital-fuesim-manv | }, digital-fuesim-manv | image: ImageProperties { digital-fuesim-manv | url: '/assets/rtw-vehicle.png', digital-fuesim-manv | height: 100, digital-fuesim-manv | aspectRatio: 2.211377245508982 digital-fuesim-manv | }, digital-fuesim-manv | personnelIds: { digital-fuesim-manv | '3d8bf86c-6d56-4288-a92d-da8de663de3d': true, digital-fuesim-manv | 'aae00929-4923-49bd-afff-4a94c477e448': true digital-fuesim-manv | }, digital-fuesim-manv | patientIds: {} digital-fuesim-manv | }, digital-fuesim-manv | materials: [ digital-fuesim-manv | Material { digital-fuesim-manv | id: '6b4e06e5-f781-4253-b235-a5341ef9cb36', digital-fuesim-manv | type: 'material', digital-fuesim-manv | vehicleId: 'f8c97844-7845-4349-a9ca-0ce58205b43d', digital-fuesim-manv | vehicleName: 'RTW ???', digital-fuesim-manv | assignedPatientIds: {}, digital-fuesim-manv | canCaterFor: CanCaterFor { digital-fuesim-manv | red: 2, digital-fuesim-manv | yellow: 0, digital-fuesim-manv | green: 0, digital-fuesim-manv | logicalOperator: 'and' digital-fuesim-manv | }, digital-fuesim-manv | overrideTreatmentRange: 2.5, digital-fuesim-manv | treatmentRange: 5.5, digital-fuesim-manv | position: VehiclePosition { digital-fuesim-manv | type: 'vehicle', digital-fuesim-manv | vehicleId: 'f8c97844-7845-4349-a9ca-0ce58205b43d' digital-fuesim-manv | }, digital-fuesim-manv | image: ImageProperties { digital-fuesim-manv | url: '/assets/material.svg', digital-fuesim-manv | height: 40, digital-fuesim-manv | aspectRatio: 1 digital-fuesim-manv | } digital-fuesim-manv | } digital-fuesim-manv | ], digital-fuesim-manv | personnel: [ digital-fuesim-manv | Personnel { digital-fuesim-manv | id: '3d8bf86c-6d56-4288-a92d-da8de663de3d', digital-fuesim-manv | type: 'personnel', digital-fuesim-manv | vehicleId: 'f8c97844-7845-4349-a9ca-0ce58205b43d', digital-fuesim-manv | personnelType: 'notSan', digital-fuesim-manv | vehicleName: 'RTW ???', digital-fuesim-manv | assignedPatientIds: {}, digital-fuesim-manv | canCaterFor: CanCaterFor { digital-fuesim-manv | red: 2, digital-fuesim-manv | yellow: 1, digital-fuesim-manv | green: 0, digital-fuesim-manv | logicalOperator: 'and' digital-fuesim-manv | }, digital-fuesim-manv | overrideTreatmentRange: 2.5, digital-fuesim-manv | treatmentRange: 5.5, digital-fuesim-manv | image: ImageProperties { digital-fuesim-manv | url: '/assets/notSan-personnel.svg', digital-fuesim-manv | height: 80, digital-fuesim-manv | aspectRatio: 1 digital-fuesim-manv | }, digital-fuesim-manv | position: VehiclePosition { digital-fuesim-manv | type: 'vehicle', digital-fuesim-manv | vehicleId: 'f8c97844-7845-4349-a9ca-0ce58205b43d' digital-fuesim-manv | } digital-fuesim-manv | }, digital-fuesim-manv | Personnel { digital-fuesim-manv | id: 'aae00929-4923-49bd-afff-4a94c477e448', digital-fuesim-manv | type: 'personnel', digital-fuesim-manv | vehicleId: 'f8c97844-7845-4349-a9ca-0ce58205b43d', digital-fuesim-manv | personnelType: 'rettSan', digital-fuesim-manv | vehicleName: 'RTW ???', digital-fuesim-manv | assignedPatientIds: {}, digital-fuesim-manv | canCaterFor: CanCaterFor { digital-fuesim-manv | red: 1, digital-fuesim-manv | yellow: 2, digital-fuesim-manv | green: 0, digital-fuesim-manv | logicalOperator: 'and' digital-fuesim-manv | }, digital-fuesim-manv | overrideTreatmentRange: 2.5, digital-fuesim-manv | treatmentRange: 5.5, digital-fuesim-manv | image: ImageProperties { digital-fuesim-manv | url: '/assets/rettSan-personnel.svg', digital-fuesim-manv | height: 80, digital-fuesim-manv | aspectRatio: 1 digital-fuesim-manv | }, digital-fuesim-manv | position: VehiclePosition { digital-fuesim-manv | type: 'vehicle', digital-fuesim-manv | vehicleId: 'f8c97844-7845-4349-a9ca-0ce58205b43d' digital-fuesim-manv | } digital-fuesim-manv | } digital-fuesim-manv | ] digital-fuesim-manv | }, digital-fuesim-manv | value: Vehicle { digital-fuesim-manv | id: 'f8c97844-7845-4349-a9ca-0ce58205b43d', digital-fuesim-manv | type: 'vehicle', digital-fuesim-manv | vehicleType: 'RTW', digital-fuesim-manv | name: 'RTW ???', digital-fuesim-manv | materialIds: { '6b4e06e5-f781-4253-b235-a5341ef9cb36': true }, digital-fuesim-manv | patientCapacity: 1, digital-fuesim-manv | position: MapPosition { digital-fuesim-manv | type: 'coordinates', digital-fuesim-manv | coordinates: MapCoordinates { x: undefined, y: undefined } digital-fuesim-manv | }, digital-fuesim-manv | image: ImageProperties { digital-fuesim-manv | url: '/assets/rtw-vehicle.png', digital-fuesim-manv | height: 100, digital-fuesim-manv | aspectRatio: 2.211377245508982 digital-fuesim-manv | }, digital-fuesim-manv | personnelIds: { digital-fuesim-manv | '3d8bf86c-6d56-4288-a92d-da8de663de3d': true, digital-fuesim-manv | 'aae00929-4923-49bd-afff-4a94c477e448': true digital-fuesim-manv | }, digital-fuesim-manv | patientIds: {} digital-fuesim-manv | }, digital-fuesim-manv | property: 'vehicle', digital-fuesim-manv | children: [ digital-fuesim-manv | ValidationError { digital-fuesim-manv | target: Vehicle { digital-fuesim-manv | id: 'f8c97844-7845-4349-a9ca-0ce58205b43d', digital-fuesim-manv | type: 'vehicle', digital-fuesim-manv | vehicleType: 'RTW', digital-fuesim-manv | name: 'RTW ???', digital-fuesim-manv | materialIds: { '6b4e06e5-f781-4253-b235-a5341ef9cb36': true }, digital-fuesim-manv | patientCapacity: 1, digital-fuesim-manv | position: MapPosition { digital-fuesim-manv | type: 'coordinates', digital-fuesim-manv | coordinates: MapCoordinates { x: undefined, y: undefined } digital-fuesim-manv | }, digital-fuesim-manv | image: ImageProperties { digital-fuesim-manv | url: '/assets/rtw-vehicle.png', digital-fuesim-manv | height: 100, digital-fuesim-manv | aspectRatio: 2.211377245508982 digital-fuesim-manv | }, digital-fuesim-manv | personnelIds: { digital-fuesim-manv | '3d8bf86c-6d56-4288-a92d-da8de663de3d': true, digital-fuesim-manv | 'aae00929-4923-49bd-afff-4a94c477e448': true digital-fuesim-manv | }, digital-fuesim-manv | patientIds: {} digital-fuesim-manv | }, digital-fuesim-manv | value: MapPosition { digital-fuesim-manv | type: 'coordinates', digital-fuesim-manv | coordinates: MapCoordinates { x: undefined, y: undefined } digital-fuesim-manv | }, digital-fuesim-manv | property: 'position', digital-fuesim-manv | children: [ digital-fuesim-manv | ValidationError { digital-fuesim-manv | target: MapPosition { digital-fuesim-manv | type: 'coordinates', digital-fuesim-manv | coordinates: MapCoordinates { x: undefined, y: undefined } digital-fuesim-manv | }, digital-fuesim-manv | value: MapCoordinates { x: undefined, y: undefined }, digital-fuesim-manv | property: 'coordinates', digital-fuesim-manv | children: [ digital-fuesim-manv | ValidationError { digital-fuesim-manv | target: MapCoordinates { x: undefined, y: undefined }, digital-fuesim-manv | value: undefined, digital-fuesim-manv | property: 'x', digital-fuesim-manv | children: [], digital-fuesim-manv | constraints: { digital-fuesim-manv | isNumber: 'x must be a number conforming to the specified constraints' digital-fuesim-manv | } digital-fuesim-manv | }, digital-fuesim-manv | ValidationError { digital-fuesim-manv | target: MapCoordinates { x: undefined, y: undefined }, digital-fuesim-manv | value: undefined, digital-fuesim-manv | property: 'y', digital-fuesim-manv | children: [], digital-fuesim-manv | constraints: { digital-fuesim-manv | isNumber: 'y must be a number conforming to the specified constraints' digital-fuesim-manv | } digital-fuesim-manv | } digital-fuesim-manv | ] digital-fuesim-manv | } digital-fuesim-manv | ] digital-fuesim-manv | } digital-fuesim-manv | ] digital-fuesim-manv | } digital-fuesim-manv | ] digital-fuesim-manv exited with code 0 digital-fuesim-manv | (node:14) ExperimentalWarning: The Node.js specifier resolution flag is experimental. It could change or be removed at any time. digital-fuesim-manv | (Use `node --trace-warnings ...` to show where the warning was created) digital-fuesim-manv | query: SELECT * FROM current_schema() digital-fuesim-manv | query: CREATE EXTENSION IF NOT EXISTS "uuid-ossp" digital-fuesim-manv | query: SELECT version(); digital-fuesim-manv | query: SELECT * FROM "information_schema"."tables" WHERE "table_schema" = 'public' AND "table_name" = 'migrations' digital-fuesim-manv | query: SELECT * FROM "migrations" "migrations" ORDER BY "id" DESC digital-fuesim-manv | No migrations are pending digital-fuesim-manv | (node:27) ExperimentalWarning: The Node.js specifier resolution flag is experimental. It could change or be removed at any time. digital-fuesim-manv | (Use `node --trace-warnings ...` to show where the warning was created) digital-fuesim-manv | Successfully connected to the database. digital-fuesim-manv | Loading exercises from database… digital-fuesim-manv | ❌ An error occurred while loading exercises. digital-fuesim-manv | The validation of the exercises and actions in the database failed: [ digital-fuesim-manv | ValidationError { digital-fuesim-manv | target: AddPatientAction { digital-fuesim-manv | type: '[Patient] Add patient', digital-fuesim-manv | patient: Patient { digital-fuesim-manv | id: '2cc7e0de-2f2f-4333-9124-0b3b5af46e2b', digital-fuesim-manv | type: 'patient', digital-fuesim-manv | personalInformation: PersonalInformation { digital-fuesim-manv | name: 'Ljudmila Rosenow', digital-fuesim-manv | address: 'Burgstraße 39', digital-fuesim-manv | birthdate: '29.3.' digital-fuesim-manv | }, digital-fuesim-manv | biometricInformation: BiometricInformation { digital-fuesim-manv | age: 16, digital-fuesim-manv | sex: 'female', digital-fuesim-manv | externalFeatures: 'blaue Augen, rothaarig, 1,69 m' digital-fuesim-manv | }, digital-fuesim-manv | pretriageInformation: PretriageInformation { digital-fuesim-manv | injuries: 'Prellmarke an der Stirn; blutende Wunde am linken Unterarm', digital-fuesim-manv | bodyCheck: 'leichte Schmerzen beim Auftreten im rechten Sprunggelenk; Schwanger; sonst o.B.', digital-fuesim-manv | isWalkable: true, digital-fuesim-manv | breathing: 'unauffällig', digital-fuesim-manv | awareness: 'leicht verwirrt', digital-fuesim-manv | pulse: '79; gut tastbar', digital-fuesim-manv | skin: 'unauffällig', digital-fuesim-manv | pain: 'leichte', digital-fuesim-manv | pupils: 'isocor', digital-fuesim-manv | psyche: 'ängstlich', digital-fuesim-manv | hearing: 'unauffällig' digital-fuesim-manv | }, digital-fuesim-manv | patientStatusCode: PatientStatusCode { digital-fuesim-manv | firstField: PatientStatusDataField { colorCode: 'X', behaviourCode: 'A' }, digital-fuesim-manv | secondField: PatientStatusDataField { colorCode: 'X', behaviourCode: 'A' }, digital-fuesim-manv | thirdField: PatientStatusDataField { colorCode: 'X', behaviourCode: 'A' } digital-fuesim-manv | }, digital-fuesim-manv | pretriageStatus: 'white', digital-fuesim-manv | realStatus: 'green', digital-fuesim-manv | image: ImageProperties { digital-fuesim-manv | url: '/assets/patient.svg', digital-fuesim-manv | height: 80, digital-fuesim-manv | aspectRatio: 1 digital-fuesim-manv | }, digital-fuesim-manv | position: PositionBase { digital-fuesim-manv | type: undefined, digital-fuesim-manv | x: 1461906.6224264638, digital-fuesim-manv | y: 6871667.368664204 digital-fuesim-manv | }, digital-fuesim-manv | stateTime: 0, digital-fuesim-manv | healthStates: [ digital-fuesim-manv | PatientHealthState { digital-fuesim-manv | id: 'ec79230f-433b-4616-9559-b69272b70d75', digital-fuesim-manv | type: 'patientHealthState', digital-fuesim-manv | functionParameters: FunctionParameters { digital-fuesim-manv | constantChange: 0, digital-fuesim-manv | notarztModifier: 0, digital-fuesim-manv | notSanModifier: 0, digital-fuesim-manv | rettSanModifier: 0 digital-fuesim-manv | }, digital-fuesim-manv | nextStateConditions: [] digital-fuesim-manv | } digital-fuesim-manv | ], digital-fuesim-manv | currentHealthStateId: 'ec79230f-433b-4616-9559-b69272b70d75', digital-fuesim-manv | health: 100000, digital-fuesim-manv | assignedPersonnelIds: {}, digital-fuesim-manv | assignedMaterialIds: {}, digital-fuesim-manv | timeSpeed: 1, digital-fuesim-manv | visibleStatusChanged: false, digital-fuesim-manv | remarks: '', digital-fuesim-manv | treatmentTime: 0, digital-fuesim-manv | metaPosition: { digital-fuesim-manv | type: 'coordinates', digital-fuesim-manv | position: { x: 1461906.6224264638, y: 6871667.368664204 } digital-fuesim-manv | } digital-fuesim-manv | } digital-fuesim-manv | }, digital-fuesim-manv | value: Patient { digital-fuesim-manv | id: '2cc7e0de-2f2f-4333-9124-0b3b5af46e2b', digital-fuesim-manv | type: 'patient', digital-fuesim-manv | personalInformation: PersonalInformation { digital-fuesim-manv | name: 'Ljudmila Rosenow', digital-fuesim-manv | address: 'Burgstraße 39', digital-fuesim-manv | birthdate: '29.3.' digital-fuesim-manv | }, digital-fuesim-manv | biometricInformation: BiometricInformation { digital-fuesim-manv | age: 16, digital-fuesim-manv | sex: 'female', digital-fuesim-manv | externalFeatures: 'blaue Augen, rothaarig, 1,69 m' digital-fuesim-manv | }, digital-fuesim-manv | pretriageInformation: PretriageInformation { digital-fuesim-manv | injuries: 'Prellmarke an der Stirn; blutende Wunde am linken Unterarm', digital-fuesim-manv | bodyCheck: 'leichte Schmerzen beim Auftreten im rechten Sprunggelenk; Schwanger; sonst o.B.', digital-fuesim-manv | isWalkable: true, digital-fuesim-manv | breathing: 'unauffällig', digital-fuesim-manv | awareness: 'leicht verwirrt', digital-fuesim-manv | pulse: '79; gut tastbar', digital-fuesim-manv | skin: 'unauffällig', digital-fuesim-manv | pain: 'leichte', digital-fuesim-manv | pupils: 'isocor', digital-fuesim-manv | psyche: 'ängstlich', digital-fuesim-manv | hearing: 'unauffällig' digital-fuesim-manv | }, digital-fuesim-manv | patientStatusCode: PatientStatusCode { digital-fuesim-manv | firstField: PatientStatusDataField { colorCode: 'X', behaviourCode: 'A' }, digital-fuesim-manv | secondField: PatientStatusDataField { colorCode: 'X', behaviourCode: 'A' }, digital-fuesim-manv | thirdField: PatientStatusDataField { colorCode: 'X', behaviourCode: 'A' } digital-fuesim-manv | }, digital-fuesim-manv | pretriageStatus: 'white', digital-fuesim-manv | realStatus: 'green', digital-fuesim-manv | image: ImageProperties { digital-fuesim-manv | url: '/assets/patient.svg', digital-fuesim-manv | height: 80, digital-fuesim-manv | aspectRatio: 1 digital-fuesim-manv | }, digital-fuesim-manv | position: PositionBase { digital-fuesim-manv | type: undefined, digital-fuesim-manv | x: 1461906.6224264638, digital-fuesim-manv | y: 6871667.368664204 digital-fuesim-manv | }, digital-fuesim-manv | stateTime: 0, digital-fuesim-manv | healthStates: [ digital-fuesim-manv | PatientHealthState { digital-fuesim-manv | id: 'ec79230f-433b-4616-9559-b69272b70d75', digital-fuesim-manv | type: 'patientHealthState', digital-fuesim-manv | functionParameters: FunctionParameters { digital-fuesim-manv | constantChange: 0, digital-fuesim-manv | notarztModifier: 0, digital-fuesim-manv | notSanModifier: 0, digital-fuesim-manv | rettSanModifier: 0 digital-fuesim-manv | }, digital-fuesim-manv | nextStateConditions: [] digital-fuesim-manv | } digital-fuesim-manv | ], digital-fuesim-manv | currentHealthStateId: 'ec79230f-433b-4616-9559-b69272b70d75', digital-fuesim-manv | health: 100000, digital-fuesim-manv | assignedPersonnelIds: {}, digital-fuesim-manv | assignedMaterialIds: {}, digital-fuesim-manv | timeSpeed: 1, digital-fuesim-manv | visibleStatusChanged: false, digital-fuesim-manv | remarks: '', digital-fuesim-manv | treatmentTime: 0, digital-fuesim-manv | metaPosition: { digital-fuesim-manv | type: 'coordinates', digital-fuesim-manv | position: { x: 1461906.6224264638, y: 6871667.368664204 } digital-fuesim-manv | } digital-fuesim-manv | }, digital-fuesim-manv | property: 'patient', digital-fuesim-manv | children: [ digital-fuesim-manv | ValidationError { digital-fuesim-manv | target: Patient { digital-fuesim-manv | id: '2cc7e0de-2f2f-4333-9124-0b3b5af46e2b', digital-fuesim-manv | type: 'patient', digital-fuesim-manv | personalInformation: PersonalInformation { digital-fuesim-manv | name: 'Ljudmila Rosenow', digital-fuesim-manv | address: 'Burgstraße 39', digital-fuesim-manv | birthdate: '29.3.' digital-fuesim-manv | }, digital-fuesim-manv | biometricInformation: BiometricInformation { digital-fuesim-manv | age: 16, digital-fuesim-manv | sex: 'female', digital-fuesim-manv | externalFeatures: 'blaue Augen, rothaarig, 1,69 m' digital-fuesim-manv | }, digital-fuesim-manv | pretriageInformation: PretriageInformation { digital-fuesim-manv | injuries: 'Prellmarke an der Stirn; blutende Wunde am linken Unterarm', digital-fuesim-manv | bodyCheck: 'leichte Schmerzen beim Auftreten im rechten Sprunggelenk; Schwanger; sonst o.B.', digital-fuesim-manv | isWalkable: true, digital-fuesim-manv | breathing: 'unauffällig', digital-fuesim-manv | awareness: 'leicht verwirrt', digital-fuesim-manv | pulse: '79; gut tastbar', digital-fuesim-manv | skin: 'unauffällig', digital-fuesim-manv | pain: 'leichte', digital-fuesim-manv | pupils: 'isocor', digital-fuesim-manv | psyche: 'ängstlich', digital-fuesim-manv | hearing: 'unauffällig' digital-fuesim-manv | }, digital-fuesim-manv | patientStatusCode: PatientStatusCode { digital-fuesim-manv | firstField: PatientStatusDataField { digital-fuesim-manv | colorCode: 'X', digital-fuesim-manv | behaviourCode: 'A' digital-fuesim-manv | }, digital-fuesim-manv | secondField: PatientStatusDataField { digital-fuesim-manv | colorCode: 'X', digital-fuesim-manv | behaviourCode: 'A' digital-fuesim-manv | }, digital-fuesim-manv | thirdField: PatientStatusDataField { digital-fuesim-manv | colorCode: 'X', digital-fuesim-manv | behaviourCode: 'A' digital-fuesim-manv | } digital-fuesim-manv | }, digital-fuesim-manv | pretriageStatus: 'white', digital-fuesim-manv | realStatus: 'green', digital-fuesim-manv | image: ImageProperties { digital-fuesim-manv | url: '/assets/patient.svg', digital-fuesim-manv | height: 80, digital-fuesim-manv | aspectRatio: 1 digital-fuesim-manv | }, digital-fuesim-manv | position: PositionBase { digital-fuesim-manv | type: undefined, digital-fuesim-manv | x: 1461906.6224264638, digital-fuesim-manv | y: 6871667.368664204 digital-fuesim-manv | }, digital-fuesim-manv | stateTime: 0, digital-fuesim-manv | healthStates: [ digital-fuesim-manv | PatientHealthState { digital-fuesim-manv | id: 'ec79230f-433b-4616-9559-b69272b70d75', digital-fuesim-manv | type: 'patientHealthState', digital-fuesim-manv | functionParameters: FunctionParameters { digital-fuesim-manv | constantChange: 0, digital-fuesim-manv | notarztModifier: 0, digital-fuesim-manv | notSanModifier: 0, digital-fuesim-manv | rettSanModifier: 0 digital-fuesim-manv | }, digital-fuesim-manv | nextStateConditions: [] digital-fuesim-manv | } digital-fuesim-manv | ], digital-fuesim-manv | currentHealthStateId: 'ec79230f-433b-4616-9559-b69272b70d75', digital-fuesim-manv | health: 100000, digital-fuesim-manv | assignedPersonnelIds: {}, digital-fuesim-manv | assignedMaterialIds: {}, digital-fuesim-manv | timeSpeed: 1, digital-fuesim-manv | visibleStatusChanged: false, digital-fuesim-manv | remarks: '', digital-fuesim-manv | treatmentTime: 0, digital-fuesim-manv | metaPosition: { digital-fuesim-manv | type: 'coordinates', digital-fuesim-manv | position: { x: 1461906.6224264638, y: 6871667.368664204 } digital-fuesim-manv | } digital-fuesim-manv | }, digital-fuesim-manv | value: { digital-fuesim-manv | type: 'coordinates', digital-fuesim-manv | position: { x: 1461906.6224264638, y: 6871667.368664204 } digital-fuesim-manv | }, digital-fuesim-manv | property: 'metaPosition', digital-fuesim-manv | children: undefined, digital-fuesim-manv | constraints: { digital-fuesim-manv | whitelistValidation: 'property metaPosition should not exist' digital-fuesim-manv | } digital-fuesim-manv | }, digital-fuesim-manv | ValidationError { digital-fuesim-manv | target: Patient { digital-fuesim-manv | id: '2cc7e0de-2f2f-4333-9124-0b3b5af46e2b', digital-fuesim-manv | type: 'patient', digital-fuesim-manv | personalInformation: PersonalInformation { digital-fuesim-manv | name: 'Ljudmila Rosenow', digital-fuesim-manv | address: 'Burgstraße 39', digital-fuesim-manv | birthdate: '29.3.' digital-fuesim-manv | }, digital-fuesim-manv | biometricInformation: BiometricInformation { digital-fuesim-manv | age: 16, digital-fuesim-manv | sex: 'female', digital-fuesim-manv | externalFeatures: 'blaue Augen, rothaarig, 1,69 m' digital-fuesim-manv | }, digital-fuesim-manv | pretriageInformation: PretriageInformation { digital-fuesim-manv | injuries: 'Prellmarke an der Stirn; blutende Wunde am linken Unterarm', digital-fuesim-manv | bodyCheck: 'leichte Schmerzen beim Auftreten im rechten Sprunggelenk; Schwanger; sonst o.B.', digital-fuesim-manv | isWalkable: true, digital-fuesim-manv | breathing: 'unauffällig', digital-fuesim-manv | awareness: 'leicht verwirrt', digital-fuesim-manv | pulse: '79; gut tastbar', digital-fuesim-manv | skin: 'unauffällig', digital-fuesim-manv | pain: 'leichte', digital-fuesim-manv | pupils: 'isocor', digital-fuesim-manv | psyche: 'ängstlich', digital-fuesim-manv | hearing: 'unauffällig' digital-fuesim-manv | }, digital-fuesim-manv | patientStatusCode: PatientStatusCode { digital-fuesim-manv | firstField: PatientStatusDataField { digital-fuesim-manv | colorCode: 'X', digital-fuesim-manv | behaviourCode: 'A' digital-fuesim-manv | }, digital-fuesim-manv | secondField: PatientStatusDataField { digital-fuesim-manv | colorCode: 'X', digital-fuesim-manv | behaviourCode: 'A' digital-fuesim-manv | }, digital-fuesim-manv | thirdField: PatientStatusDataField { digital-fuesim-manv | colorCode: 'X', digital-fuesim-manv | behaviourCode: 'A' digital-fuesim-manv | } digital-fuesim-manv | }, digital-fuesim-manv | pretriageStatus: 'white', digital-fuesim-manv | realStatus: 'green', digital-fuesim-manv | image: ImageProperties { digital-fuesim-manv | url: '/assets/patient.svg', digital-fuesim-manv | height: 80, digital-fuesim-manv | aspectRatio: 1 digital-fuesim-manv | }, digital-fuesim-manv | position: PositionBase { digital-fuesim-manv | type: undefined, digital-fuesim-manv | x: 1461906.6224264638, digital-fuesim-manv | y: 6871667.368664204 digital-fuesim-manv | }, digital-fuesim-manv | stateTime: 0, digital-fuesim-manv | healthStates: [ digital-fuesim-manv | PatientHealthState { digital-fuesim-manv | id: 'ec79230f-433b-4616-9559-b69272b70d75', digital-fuesim-manv | type: 'patientHealthState', digital-fuesim-manv | functionParameters: FunctionParameters { digital-fuesim-manv | constantChange: 0, digital-fuesim-manv | notarztModifier: 0, digital-fuesim-manv | notSanModifier: 0, digital-fuesim-manv | rettSanModifier: 0 digital-fuesim-manv | }, digital-fuesim-manv | nextStateConditions: [] digital-fuesim-manv | } digital-fuesim-manv | ], digital-fuesim-manv | currentHealthStateId: 'ec79230f-433b-4616-9559-b69272b70d75', digital-fuesim-manv | health: 100000, digital-fuesim-manv | assignedPersonnelIds: {}, digital-fuesim-manv | assignedMaterialIds: {}, digital-fuesim-manv | timeSpeed: 1, digital-fuesim-manv | visibleStatusChanged: false, digital-fuesim-manv | remarks: '', digital-fuesim-manv | treatmentTime: 0, digital-fuesim-manv | metaPosition: { digital-fuesim-manv | type: 'coordinates', digital-fuesim-manv | position: { x: 1461906.6224264638, y: 6871667.368664204 } digital-fuesim-manv | } digital-fuesim-manv | }, digital-fuesim-manv | value: PositionBase { digital-fuesim-manv | type: undefined, digital-fuesim-manv | x: 1461906.6224264638, digital-fuesim-manv | y: 6871667.368664204 digital-fuesim-manv | }, digital-fuesim-manv | property: 'position', digital-fuesim-manv | children: [ digital-fuesim-manv | ValidationError { digital-fuesim-manv | target: PositionBase { digital-fuesim-manv | type: undefined, digital-fuesim-manv | x: 1461906.6224264638, digital-fuesim-manv | y: 6871667.368664204 digital-fuesim-manv | }, digital-fuesim-manv | value: 1461906.6224264638, digital-fuesim-manv | property: 'x', digital-fuesim-manv | children: undefined, digital-fuesim-manv | constraints: { whitelistValidation: 'property x should not exist' } digital-fuesim-manv | }, digital-fuesim-manv | ValidationError { digital-fuesim-manv | target: PositionBase { digital-fuesim-manv | type: undefined, digital-fuesim-manv | x: 1461906.6224264638, digital-fuesim-manv | y: 6871667.368664204 digital-fuesim-manv | }, digital-fuesim-manv | value: 6871667.368664204, digital-fuesim-manv | property: 'y', digital-fuesim-manv | children: undefined, digital-fuesim-manv | constraints: { whitelistValidation: 'property y should not exist' } digital-fuesim-manv | }, digital-fuesim-manv | ValidationError { digital-fuesim-manv | target: PositionBase { digital-fuesim-manv | type: undefined, digital-fuesim-manv | x: 1461906.6224264638, digital-fuesim-manv | y: 6871667.368664204 digital-fuesim-manv | }, digital-fuesim-manv | value: undefined, digital-fuesim-manv | property: 'type', digital-fuesim-manv | children: [], digital-fuesim-manv | constraints: { isLiteralUnion: 'Value must be a correct LiteralUnion' } digital-fuesim-manv | } digital-fuesim-manv | ] digital-fuesim-manv | } digital-fuesim-manv | ] digital-fuesim-manv | } digital-fuesim-manv | ] digital-fuesim-manv exited with code 0 ```
anonym-HPI commented 1 year ago

This probably resulted in another error, the backend shouldn't be down and returning error code 0, but instead error code 1.

Just restarted the container and got also this, maybe these are just a result of restarting the container:

``` | ❌ An error occurred while loading exercises. digital-fuesim-manv | /usr/local/app/backend/node_modules/typeorm/driver/postgres/PostgresQueryRunner.js:211 digital-fuesim-manv | throw new QueryFailedError_1.QueryFailedError(query, parameters, err); digital-fuesim-manv | ^ digital-fuesim-manv | digital-fuesim-manv | QueryFailedError: terminating connection due to administrator command digital-fuesim-manv | at PostgresQueryRunner.query (/usr/local/app/backend/node_modules/typeorm/driver/postgres/PostgresQueryRunner.js:211:19) digital-fuesim-manv | at runMicrotasks () digital-fuesim-manv | at processTicksAndRejections (node:internal/process/task_queues:96:5) digital-fuesim-manv | at async UpdateQueryBuilder.execute (/usr/local/app/backend/node_modules/typeorm/query-builder/UpdateQueryBuilder.js:83:33) digital-fuesim-manv | at async Promise.all (index 1306) digital-fuesim-manv | at async migrateInDatabase (file:///usr/local/app/backend/dist/src/database/migrate-in-database.js:60:13) digital-fuesim-manv | at async file:///usr/local/app/backend/dist/src/exercise/exercise-wrapper.js:252:17 digital-fuesim-manv | at async Promise.all (index 12) digital-fuesim-manv | at async file:///usr/local/app/backend/dist/src/exercise/exercise-wrapper.js:251:13 digital-fuesim-manv | at async EntityManager.transaction (/usr/local/app/backend/node_modules/typeorm/entity-manager/EntityManager.js:72:28) { digital-fuesim-manv | query: 'UPDATE "action_wrapper_entity" SET "actionString" = $1, "index" = $2 WHERE ("index" = $3 AND "exerciseId" = $4)', digital-fuesim-manv | parameters: [ digital-fuesim-manv | '"{\\"type\\":\\"[Vehicle] Load vehicle\\",\\"vehicleId\\":\\"e85c0bde-2c6f-49aa-a41f-4fab5dda7373\\",\\"elementToBeLoadedId\\":\\"f94b44fd-4c6b-41ef-9878-0352aa4ba77e\\",\\"elementToBeLoadedType\\":\\"personnel\\"}"', digital-fuesim-manv | 1306, digital-fuesim-manv | 1306, digital-fuesim-manv | 'da423a91-81cb-4a3b-b15c-58216d4c7d95' digital-fuesim-manv | ], digital-fuesim-manv | driverError: error: terminating connection due to administrator command digital-fuesim-manv | at Parser.parseErrorMessage (/usr/local/app/backend/node_modules/pg-protocol/dist/parser.js:287:98) digital-fuesim-manv | at Parser.handlePacket (/usr/local/app/backend/node_modules/pg-protocol/dist/parser.js:126:29) digital-fuesim-manv | at Parser.parse (/usr/local/app/backend/node_modules/pg-protocol/dist/parser.js:39:38) digital-fuesim-manv | at Socket. (/usr/local/app/backend/node_modules/pg-protocol/dist/index.js:11:42) digital-fuesim-manv | at Socket.emit (node:events:513:28) digital-fuesim-manv | at addChunk (node:internal/streams/readable:315:12) digital-fuesim-manv | at readableAddChunk (node:internal/streams/readable:289:9) digital-fuesim-manv | at Socket.Readable.push (node:internal/streams/readable:228:10) digital-fuesim-manv | at TCP.onStreamRead (node:internal/stream_base_commons:190:23) { digital-fuesim-manv | length: 116, digital-fuesim-manv | severity: 'FATAL', digital-fuesim-manv | code: '57P01', digital-fuesim-manv | detail: undefined, digital-fuesim-manv | hint: undefined, digital-fuesim-manv | position: undefined, digital-fuesim-manv | internalPosition: undefined, digital-fuesim-manv | internalQuery: undefined, digital-fuesim-manv | where: undefined, digital-fuesim-manv | schema: undefined, digital-fuesim-manv | table: undefined, digital-fuesim-manv | column: undefined, digital-fuesim-manv | dataType: undefined, digital-fuesim-manv | constraint: undefined, digital-fuesim-manv | file: 'postgres.c', digital-fuesim-manv | line: '3192', digital-fuesim-manv | routine: 'ProcessInterrupts' digital-fuesim-manv | }, digital-fuesim-manv | length: 116, digital-fuesim-manv | severity: 'FATAL', digital-fuesim-manv | code: '57P01', digital-fuesim-manv | detail: undefined, digital-fuesim-manv | hint: undefined, digital-fuesim-manv | position: undefined, digital-fuesim-manv | internalPosition: undefined, digital-fuesim-manv | internalQuery: undefined, digital-fuesim-manv | where: undefined, digital-fuesim-manv | schema: undefined, digital-fuesim-manv | table: undefined, digital-fuesim-manv | column: undefined, digital-fuesim-manv | dataType: undefined, digital-fuesim-manv | constraint: undefined, digital-fuesim-manv | file: 'postgres.c', digital-fuesim-manv | line: '3192', digital-fuesim-manv | routine: 'ProcessInterrupts' digital-fuesim-manv | } ```
anonym-HPI commented 1 year ago

I kept a backup of the database before trying the branch, so you can change the branch without needing a migration 21

benn02 commented 1 year ago

I don't understand this it seems like there is a patient with the property metaPosition, but this cant be because everywhere where I added this in 16 I removed it in 18, and I didn't add any of those in 20

benn02 commented 1 year ago

Also, this indicates a bigger flaw in migration 18 and possibly 16

benn02 commented 1 year ago

If I read the logs correctly, There is an add patient action with a patient that has a metaPosition even thou delete typedAction.patient.metaPosition is called on those Actions in 18 and those actions are not touched in 19 and 20.

benn02 commented 1 year ago

I think since the migration works from very old states to the newest dev and the States that are broker can't be fixed we can close this issue since there is nothing more we can do

anonym-HPI commented 1 year ago

I think since the migration works from very old states to the newest dev and the States that are broker can't be fixed we can close this issue since there is nothing more we can do

Agreed, but do you know what fixed it in the end? Have not seen anything new committed to dev making changes to migration?

benn02 commented 1 year ago

The problem was #597, and it got fixed with #612 but if #597 is applied (which was the case) then it can't be restored and will always fail after.