• event thread chucked up a core dump

    From Nigel Reed@1:103/705 to GitLab issue in main/sbbs on Fri Oct 3 22:52:43 2025
    open https://gitlab.synchro.net/main/sbbs/-/issues/981

    ```
    Core was generated by `/sbbs/exec/sbbs t! d'.
    Program terminated with signal SIGSEGV, Segmentation fault.
    Download failed: Invalid argument. Continuing without source file ./string/../sysdeps/x86_64/multiarch/strcmp-sse4_2.S.

    #0 __strcasecmp_l_sse42 () at ../sysdeps/x86_64/multiarch/strcmp-sse4_2.S:174

    warning: 174 ../sysdeps/x86_64/multiarch/strcmp-sse4_2.S: No such file or directory
    [Current thread is 1 (Thread 0x722a111fa6c0 (LWP 3112408))]
    (gdb) bt
    #0 __strcasecmp_l_sse42 () at ../sysdeps/x86_64/multiarch/strcmp-sse4_2.S:174 #1 0x0000722a17566793 in read_value (fp=0x722a00064ba0, section=0x722a175acb8c "Events", key=0x0, value=0x722a111f5830 "pX\037\021*r",
    literals_supported=false) at ini_file.c:290
    #2 0x0000722a1756e197 in iniReadDateTime (fp=0x722a00064ba0, section=0x722a175acb8c "Events", key=0x0, deflt=0) at ini_file.c:2492
    #3 0x0000722a17061ac3 in event_thread (arg=0x722a0d32e750) at main.cpp:2893
    #4 0x0000722a16a9caa4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
    #5 0x0000722a16b29c3c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
    ```

    ```
    (gdb) bt full
    #0 __strcasecmp_l_sse42 () at ../sysdeps/x86_64/multiarch/strcmp-sse4_2.S:174 No locals.
    #1 0x0000722a17566793 in read_value (fp=0x722a00064ba0, section=0x722a175acb8c "Events", key=0x0, value=0x722a111f5830 "pX\037\021*r",
    literals_supported=false) at ini_file.c:290
    p = 0x722a111f4fe0 "mshighsc"
    vp = 0x722a111f4ff1 "Sep 28 2025 00:00:00"
    str = "mshighsc\000 \000Sep 28 2025 00:00:00\000\000\000\200s\241\373)r\000\000\020Q\037\021*r\000\000\200s\241\373)r\000\000\200s\241\373)r\000\000\300\024\006\000*r\000\000pP\037\021*r\000\000\266\314'\027*r\000\000\320\002\243\373)r\000\000\320\002\243\373)r\000\000pP\037\021*r\000\000\v\314'\027*r\000\0000W\006\000*r\000\000\320\002\243\373)r\000\000\260P\037\021*r\000\000\240\245'\027*r\000\000\020Q\037\021*r\000\000\200\024\006\000*r\000\0000W\006\000*r\000\000\320\002\243\373)r\000\000\000\000\000\000\000\000\000\000"...
    #2 0x0000722a1756e197 in iniReadDateTime (fp=0x722a00064ba0, section=0x722a175acb8c "Events", key=0x0, deflt=0) at ini_file.c:2492
    buf = "pX\037\021*r\000\000Ճ\024\027*r\000\000 [\037\021*r\000\0000\000\000\000*r\000\000\200\000\000\000\000\000\000\000\020Ѣ\373)r\000\000\377\377\377\377\000\000\000\000`\212w\027*r\000\000@\2243\r*r\000\000h6\000\f*r\000\000\240X\037\021*r\000\000\341\226\037\027*r\000\000\000\001\000\000\000\000\000\0000\001\020\000*r\000\000\360X\037\021*r\000\000\205W!\027*r\000\0000W\006\000*r\000\0000W\006\000*r\000\000\000\001\000\000\000\000\000\000\200\000\000\000\000\000\000\0000\001\020\000*r\000\000\020\222\023\000*r\000\000\000\000\000\000\000\000\372\377\220J\006\000*r\000\000 Y\037\021*r\000\000\020Ѣ"...
    value = 0x0
    #3 0x0000722a17061ac3 in event_thread (arg=0x722a0d32e750) at main.cpp:2893
    str = "/sbbs/data/DIGDIST.q??\000\000\000ow", '\000' <repeats 4069 times>
    i = 2
    j = 0
    file = 31
    offset = 15
    check_semaphores = false
    packed_rep = true
    l = 0
    l32 = 0
    now = 1759204756
    start = 0
    lastsemchk = 0
    lastnodechk = 0
    node = {status = 0 '\000', errors = 0 '\000', action = 0 '\000', useron = 0, connection = 65535, misc = 128, aux = 1, extaux = 0}
    g = {gl_pathc = 0, gl_pathv = 0x0, gl_offs = 0, gl_flags = 260, gl_closedir = 0x0, gl_readdir = 0x0, gl_opendir = 0x0,
    gl_lstat = 0x0, gl_stat = 0x0}
    sbbs = 0x722a0d32e750
    event_code = "TRASHMAN\000\000\000\000\000\000\000\000"
    __FUNCTION__ = "event_thread"
    ini_file = "/sbbs/ctrl/time.ini", '\000' <repeats 4077 times>
    fp = 0x722a00064ba0
    #4 0x0000722a16a9caa4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
    ret = <optimized out>
    pd = <optimized out>
    out = <optimized out>
    unwind_buf = {cancel_jmp_buf = {{jmp_buf = {125525001479872, 4259198492463149680, 125525001479872, -328, 2, 125525035028640,
    4259198492450566768, 4259201397179757168}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0,
    cleanup = 0x0, canceltype = 0}}}
    not_first_call = <optimized out>
    #5 0x0000722a16b29c3c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
    No locals.
    ```


    Nothing really in the log to indicate why.
    --- SBBSecho 3.30-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to GitLab note in main/sbbs on Sat Oct 4 14:19:12 2025
    https://gitlab.synchro.net/main/sbbs/-/issues/981#note_7698

    Appreciate the backtrace.

    Does your `ctrl/time.ini` file appear to be corrupted?

    Is this reproducible (e.g. still happening)?

    As for the crash, some NULL pointers appear in that backtrace that shouldn't be there (e.g. the `key` argument to `iniReadDateTime()` is `0x0`) which suggests either the `scfg_t` (stored in the heap) was corrupted, or the stack got corrupted during these calls to ini_file.c functions while parsing `time.ini`.

    Since the scfg_t element that's used for key argument isn't a pointer in the first place (it's an array of char), I can't really imagine how it'd be set to NULL even through corruption. So that kind of points to stack corruption (e.g. in functions within ini_file.c).
    --- SBBSecho 3.30-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)

Novedades:

Servidor de Quake 3 Arena Online! - Conectate a ferchobbs.ddns.net, puerto 27960 y vence con tu equipo!