• LORD2: Catch global application errors

    From Rob Swindell@VERT to GitLab note in main/sbbs on Wed Mar 23 00:15:10 2022
    https://gitlab.synchro.net/main/sbbs/-/merge_requests/166#note_2494

    Why would a JS exception in lord2 cause "sbbs to crash"? Please elaborate.

    -Rob

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Eugene So@VERT to GitLab note in main/sbbs on Fri Apr 1 15:44:26 2022
    https://gitlab.synchro.net/main/sbbs/-/merge_requests/166#note_2508

    I can test in further detail. However, what I found is when the application was not catching overall exceptions, this door would randomly stop working and it would result in sbbs also halting. After adding the try-catch loop, the door still occasionally crashes, but now sbbs remains operational and we can then use the error-log from the door return result to debug the issue.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to GitLab note in main/sbbs on Fri Apr 1 17:39:20 2022
    https://gitlab.synchro.net/main/sbbs/-/merge_requests/166#note_2509

    Yes, please provide more details. It would be highly unusual for a crashing JS application to result in sbbs also halting. If the application (lord2.js in this case) is invoked as an external program, configured in SCFG->External Programs->Online Programs, that should not be able to happen. Additionally, setting the "Use Shell or New Context" option to 'Yes' should prevent any misbehaving JS application from corrupting the JS runtime used by the BBS (e.g. for command shells, etc.).

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Eugene So@VERT to GitLab note in main/sbbs on Sat Apr 2 08:46:04 2022
    https://gitlab.synchro.net/main/sbbs/-/merge_requests/166#note_2510

    I'm unable to reproduce the sbbs crash unfortunately. The computer that it originally happened on had a bad hard disk, so that may have been part of the problem. In any case, I still think it's a good idea to wrap the application in a try-catch.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deucе@VERT to GitLab note in main/sbbs on Thu Sep 29 15:24:32 2022
    https://gitlab.synchro.net/main/sbbs/-/merge_requests/166#note_2752

    Synchronet effectively wraps JS doors in a try/catch already (along with a new global and some other niceties). This try/catch would only serve to lower the amount of information about the error.

    ---
    ï¿­ Synchronet ï¿­ Vertrauen ï¿­ Home of Synchronet ï¿­ [vert/cvs/bbs].synchro.net