rpuig2001 / CDM

CDM
GNU General Public License v3.0
22 stars 9 forks source link

Debrief after CTL LFMN #61

Closed Iwhite67 closed 2 years ago

Iwhite67 commented 2 years ago

Hello, i will go write here some issue, this issue is update in real time

rpuig2001 commented 2 years ago

The crash is due to ctots. I will look for it.

Iwhite67 commented 2 years ago

On Slave or master or both ?

rpuig2001 commented 2 years ago

Both

rpuig2001 commented 2 years ago

CTOT are not take if new traffic are connect without .cdm reload: Did you want to modify the ctot.txt or show the predefined ctots. If you do NOT want to modify them it should work fine. At least it did for us.

in Slave, if i make a cdm reload, he don't take TSAT all ready setup, he come few minute after: Some other atc that have the times, can become a master and after forcing the refresh with ".cdm refresh" you will have the times again. So you can swap roles.

from the start, TWR have all time ES crash with CDM, me in slave, i have crash after 10:00, i try to understand why but i don't found the reason: We had the same problem and I will try to solve it, that's is due to the CTOT afaik, but if you know what it can be, I would be greatful.

Master have Crash at 11:52 UTC, is good to have a save of all timing for backup after crash: That should not happen, but could be for CTOTs. Let me know if it happens again.

Iwhite67 commented 2 years ago

Did you want to modify the ctot.txt or show the predefined ctots. If you do NOT want to modify them it should work fine. At least it did for us.

No edit, all Slot with CID are set before start

Some other atc that have the times, can become a master and after forcing the refresh with ".cdm refresh" you will have the times again. So you can swap roles.

in this case of this day, not possible because all slave crashing

rpuig2001 commented 2 years ago

Good to know. Will keept that and solve it for the next one ;)

rpuig2001 commented 2 years ago

Did all controllers had the same ctot file or url set up?

Iwhite67 commented 2 years ago

Did all controllers had the same ctot file or url set up?

Normaly, yes

rpuig2001 commented 2 years ago

Could you please confirm. This was our issue for the slave crash.

Iwhite67 commented 2 years ago

two slave atc have CTOT from url, Master from File, one slave atc no ctot

Iwhite67 commented 2 years ago

i thinks, is good to slave no take info from a file but only from Flightstrip and master put CTOT into flightstrip because actualy, CTOT are not put into flightstrip with TSAT

rpuig2001 commented 2 years ago

That's the thing. I checked it with the ctot.txt file and transfering ctots there's no crash. Without the ctot file, the ctot is not transfered. but I can't see the crash.

rpuig2001 commented 2 years ago

i thinks, is good to slave no take info from a file but only from Flightstrip and master put CTOT into flightstrip because actualy, CTOT are not put into flightstrip with TSAT

Did someone with slave and the ctot file or url had a crash?

Iwhite67 commented 2 years ago

Yes me

if in practice, Slave can only have a light version of CDM (Without CTOT, Taxizone, ETC), with just take info from flightstrip ?

Iwhite67 commented 2 years ago

but 1hours after crash, i can reload the CDM without crash

rpuig2001 commented 2 years ago

Yes me

if in practice, Slave can only have a light version of CDM (Without CTOT, Taxizone, ETC), with just take info from flightstrip ?

It's actually this. I've never heard of a crash until today. After checking it several times I can't reproducte the crash to debug it or see the problem in the code.

Iwhite67 commented 2 years ago

i thinks is more and side of flightstrip data.

i check when we remake a event with cdm

rpuig2001 commented 2 years ago

Problem found line 2076. Just to keep the problem, I will solve it asap:

                        //CTOT
                        if (remarks.find("CTOT") != string::npos) {
                            string rmkCtot = remarks.substr(remarks.find("CTOT") + 4, 4);
                            if (hasCtot) {
                                if (slotList[pos].ctot != rmkCtot) {
                                    slotList[pos].ctot = rmkCtot;
                                    if (!hasCtot) {
                                        slotList[pos].hasCtot = true;
                                    }
                                }
                            }
                            else {
                                slotList[pos].hasCtot = true;
                            }
                        }
                        else if (hasCtot) {
                            slotList[pos].hasCtot = false;
                        }
rpuig2001 commented 2 years ago

Would you be able to test it if I pass you a new DLL? If you have the playback or time to check it?

Iwhite67 commented 2 years ago

Would you be able to test it if I pass you a new DLL? If you have the playback or time to check it?

i don't have a playback

Iwhite67 commented 2 years ago

i stop for today, if you want, i'm available for make test tomorrow

rpuig2001 commented 2 years ago

Good I will let you know if I can test it tomorrow. Thank you for your time @Iwhite67 ;)