View Issue Details

IDProjectCategoryView StatusLast Update
0000862LDMud 3.5Runtimepublic2021-05-31 21:44
Reportergulahr Assigned Tozesstra  
PrioritynormalSeveritycrashReproducibilityalways
Status resolvedResolutionfixed 
OSUbuntuOS Version17.10 
Target Version3.5.2Fixed in Version3.5.2 
Summary0000862: Segmentation fault during startup
DescriptionI compiled and installed revision 2aa52c15942c6edfcd32dce6e391043c0caa36ab with morgengrauen settings and I get a segmentation fault during the startup.

The option --with-malloc=sysmalloc fixes the issue, but I'll send you the stacktrace and driver log anyway.
TagsNo tags attached.

Relationships

has duplicate 0000893 closedGnomi LDMud 3.2 Driver stops because of smalloc.c:3458 

Activities

gulahr

2018-02-04 19:19

reporter  

driver.log (2,172 bytes)   
2018.01.25 21:50:43 Seeding PRNG from /dev/urandom.
2018.01.25 21:50:43 LDMud 3.5.0 (3.5.0-1-g2aa52c15) (development)
2018.01.25 21:50:43 Hostname 'ux303' address '127.0.1.1'
2018.01.25 21:50:43 reference_prog: secure/master/misc.c ref 1 (epilog)
2018.01.25 21:50:43 reference_prog: secure/master/userinfo.c ref 1 (epilog)
2018.01.25 21:50:43 reference_prog: secure/master/network.c ref 1 (epilog)
2018.01.25 21:50:43 reference_prog: secure/master/domain.c ref 1 (epilog)
2018.01.25 21:50:43 reference_prog: secure/master/guild.c ref 1 (epilog)
2018.01.25 21:50:43 reference_prog: secure/master/file_access.c ref 1 (epilog)
2018.01.25 21:50:43 reference_prog: secure/master/players_deny.c ref 1 (epilog)
2018.01.25 21:50:43 reference_prog: secure/master.c ref 1 (epilog)
2018.01.25 21:50:43 reference_prog: secure/master/misc.c ref 2 (inheritance)
2018.01.25 21:50:43 reference_prog: secure/master/userinfo.c ref 2 (inheritance)
2018.01.25 21:50:43 reference_prog: secure/master/network.c ref 2 (inheritance)
2018.01.25 21:50:43 reference_prog: secure/master/domain.c ref 2 (inheritance)
2018.01.25 21:50:43 reference_prog: secure/master/guild.c ref 2 (inheritance)
2018.01.25 21:50:43 reference_prog: secure/master/file_access.c ref 2 (inheritance)
2018.01.25 21:50:43 reference_prog: secure/master/players_deny.c ref 2 (inheritance)
]Loading PLDenylists
2018.01.25 21:50:43 reference_prog: secure/simul_efun/simul_efun.c ref 1 (epilog)
2018.01.25 21:50:43 reference_prog: secure/simul_efun/simul_efun.c ref 2 (get_simul_efun)
]Preloading gestartet: Thu Jan 25 21:50:43 2018

]/std/preload_file             :  36 Objekte
]
]/secure/errord                                     R O O T       2018.01.25 21:50:43 reference_prog: secure/errord-structs.c ref 1 (epilog)
2018.01.25 21:50:43 reference_prog: secure/errord.c ref 1 (epilog)
2018.01.25 21:50:43 reference_prog: secure/errord-structs.c ref 2 (inheritance)
]( 0.04 s)
]/secure/materialdb                                 R O O T       2018.01.25 21:50:43 reference_prog: secure/materialdb.c ref 1 (epilog)
]Datei /sys/materials.h existiert bereits, loesche sie
]Headerdatei erfolgreich in /sys/materials.h geschrieben
driver.log (2,172 bytes)   
stacktrace (11,503 bytes)   
GNU gdb (Ubuntu 8.0.1-0ubuntu1) 8.0.1
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from bin.install/ldmud...done.
(gdb) r
Starting program: /home/schleusi/dateien/homemud/install/bin.install/ldmud 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
2018.01.25 22:37:55 Seeding PRNG from /dev/urandom.
2018.01.25 22:37:55 LDMud 3.5.0 (3.5.0-1-g2aa52c15) (development)
2018.01.25 22:37:55 Hostname 'ux303' address '127.0.1.1'
]Loading PLDenylists
]Preloading gestartet: Thu Jan 25 22:37:55 2018

]/std/preload_file             :  36 Objekte
]
]/secure/errord                                     R O O T       ]( 0.02 s)
]/secure/materialdb                                 R O O T       ]Datei /sys/materials.h existiert bereits, loesche sie
]Headerdatei erfolgreich in /sys/materials.h geschrieben

Program received signal SIGSEGV, Segmentation fault.
__GI___rewinddir (dirp=dirp@entry=0x55555728fc48) at ../sysdeps/posix/rewinddir.c:34
(gdb) bt full
#0  __GI___rewinddir (dirp=dirp@entry=0x55555728fc48) at ../sysdeps/posix/rewinddir.c:34
No locals.
#1  0x000055555559f719 in f_get_dir (sp=0x55555627ff10 <value_stack_array+304>) at files.c:757
        i = <optimized out>
        regexpr = 0x7fffffffae10 "MATGROUP_*"
        nqueries = 1
        j = <optimized out>
        namelen = <optimized out>
        do_match = true
        in_top_dir = false
        de = <optimized out>
        st = {st_dev = 2054, st_ino = 3805594, st_nlink = 4, st_mode = 16893, st_uid = 1000, st_gid = 1000, __pad0 = 0, st_rdev = 0, st_size = 4096, st_blksize = 4096, st_blocks = 8, st_atim = {
            tv_sec = 1516913075, tv_nsec = 80343536}, st_mtim = {tv_sec = 1516913275, tv_nsec = 97704194}, st_ctim = {tv_sec = 1516913275, tv_nsec = 97704194}, __glibc_reserved = {0, 0, 0}}
        ec = {head = {fun = 0x55555559e840 <get_dir_error_handler>}, dirp = 0x55555728fc48, v = 0x55555719b7d0}
        w = <optimized out>
        count = 35
        dirp = 0x55555728fc48
        pathlen = <optimized out>
        p = <optimized out>
        v = 0x55555719b7d0
        path = "doc/materials/groups\000MATGROUP_*", '\000' <repeats 4065 times>...
        mask = <optimized out>
        fpath = 0x555557289028
#2  0x00005555555b3120 in eval_instruction (first_instruction=first_instruction@entry=0x55555720905a "\307\003\031\233\067", initial_sp=<optimized out>) at interpret.c:7691
        code = 14
        pc = 0x55555720a109 "\026\""
        fp = <optimized out>
        sp = <optimized out>
        num_arg = <optimized out>
        instruction = 321
        full_instr = <optimized out>
        expected_stack = <optimized out>
        ap = 0x55555627ff00 <value_stack_array+288>
        use_ap = false
        __PRETTY_FUNCTION__ = "eval_instruction"
#3  0x00005555555bef4d in apply_low (fun=fun@entry=0x555557190ae8, ob=ob@entry=0x55555718fa10, num_arg=num_arg@entry=1, b_ign_prot=b_ign_prot@entry=true) at interpret.c:15960
        funstart = 0x55555720905a "\307\003\031\233\067"
        fx = <optimized out>
        progp = <optimized out>
        save_csp = 0x55555627ba68 <control_stack_array+680>
        ix = <optimized out>
#4  0x00005555555bfbc3 in int_apply (fun=fun@entry=0x555557190ae8, ob=ob@entry=0x55555718fa10, num_arg=num_arg@entry=1, b_ign_prot=b_ign_prot@entry=true, b_use_default=b_use_default@entry=true)
    at interpret.c:16038
No locals.
#5  0x00005555555c0065 in sapply_int (fun=0x555557190ae8, ob=ob@entry=0x55555718fa10, num_arg=num_arg@entry=1, b_find_static=b_find_static@entry=true, b_use_default=b_use_default@entry=true) at interpret.c:16200
        expected_sp = 0x55555627fe90 <value_stack_array+176>
#6  0x00005555555df32f in reset_object (ob=ob@entry=0x55555718fa10, arg=5) at object.c:882
No locals.
#7  0x0000555555607ad3 in load_object (lname=lname@entry=0x5555562ea7e0 <buf> "secure/master", create_super=create_super@entry=false, depth=depth@entry=0, isMasterObj=isMasterObj@entry=false, 
    chain=chain@entry=0x0) at simulate.c:2201
        svp = 0x5555571dd3a0
        j = <optimized out>
        save_current = 0x5555571a8140
        ob = <optimized out>
        save_command_giver = <optimized out>
        i = <optimized out>
        c_st = {st_dev = 2054, st_ino = 3809311, st_nlink = 1, st_mode = 33204, st_uid = 1000, st_gid = 1000, __pad0 = 0, st_rdev = 0, st_size = 28223, st_blksize = 4096, st_blocks = 56, st_atim = {
            tv_sec = 1516913275, tv_nsec = 65704006}, st_mtim = {tv_sec = 1516913075, tv_nsec = 148344026}, st_ctim = {tv_sec = 1516913075, tv_nsec = 148344026}, __glibc_reserved = {0, 0, 0}}
        name_length = <optimized out>
        name = <optimized out>
        fname = <optimized out>
        prog = <optimized out>
        nlink = {prev = 0x0, name = 0x5555571b03d9 "secure/materialdb"}
#8  0x0000555555607e53 in lookfor_object (str=<optimized out>, bLoad=bLoad@entry=true) at simulate.c:2482
        ob = <optimized out>
        pName = 0x5555562ea7e0 <buf> "secure/master"
        isMasterObj = false
#9  0x000055555560c7d7 in f_load_object (sp=0x55555627fe80 <value_stack_array+160>) at simulate.c:4467
        ob = <optimized out>
#10 0x00005555555b31c2 in eval_instruction (first_instruction=<optimized out>, initial_sp=initial_sp@entry=0x55555627fe80 <value_stack_array+160>) at interpret.c:7641
        code = 35
        pc = 0x7fffffffc581 "\030"
        fp = <optimized out>
        sp = <optimized out>
        num_arg = <optimized out>
        instruction = 254
        full_instr = <optimized out>
        expected_stack = <optimized out>
        ap = 0x55555627fe80 <value_stack_array+160>
        use_ap = false
        __PRETTY_FUNCTION__ = "eval_instruction"
#11 0x00005555555bf67b in int_call_lambda (lsvp=lsvp@entry=0x55555627fe60 <value_stack_array+128>, num_arg=num_arg@entry=1, external=external@entry=true) at interpret.c:17238
        def = <optimized out>
        code = "\003#\030\000\000\000\000\000"
        p = <optimized out>
        min = <optimized out>
        i = 254
        sp = 0x55555627fe80 <value_stack_array+160>
        l = <optimized out>
#12 0x000055555560d632 in v_limited (sp=0x55555627fe80 <value_stack_array+160>, num_arg=3) at simulate.c:5232
        context = {rt = {last = 0x55555711bcd8, type = -2}, max_array = 20000, max_mapping = 60000, max_map_keys = 20000, max_eval = 1500000, max_byte = 200000, max_file = 200000, max_callouts = 1250, 
          use_cost = -100, eval_cost = 4256, max_memory = 0, used_memory = 12613360}
        argp = 0x55555627fe60 <value_stack_array+128>
        limits = {rt = {last = 0x55555585fa10 <apply_return_value>, type = -1281153536}, max_array = 20000, max_mapping = 60000, max_map_keys = 20000, max_eval = 5000000, max_byte = 200000, max_file = 200000, 
          max_callouts = 1250, use_cost = 0, eval_cost = 21845, max_memory = 0, used_memory = 93824992591232}
        cl_args = 1
#13 0x00005555555b2f61 in eval_instruction (first_instruction=first_instruction@entry=0x5555571d0b00 "b\026\376", <incomplete sequence \360>, initial_sp=<optimized out>) at interpret.c:7840
        code = 26
        min_arg = <optimized out>
        max_arg = <optimized out>
        numarg = 3
        pc = 0x5555571d0b16 "c\220\251c}\001)\036\001\017\064k\016b\n@\036"
        fp = <optimized out>
        sp = <optimized out>
        num_arg = <optimized out>
        instruction = 394
        full_instr = <optimized out>
        expected_stack = <optimized out>
        ap = 0x55555627fe60 <value_stack_array+128>
        use_ap = false
        __PRETTY_FUNCTION__ = "eval_instruction"
#14 0x0000555555608eb0 in catch_instruction (flags=<optimized out>, offset=<optimized out>, i_sp=i_sp@entry=0x555556332240 <inter_sp>, i_pc=i_pc@entry=0x5555571d0b00 "b\026\376", <incomplete sequence \360>, 
    i_fp=i_fp@entry=0x55555627fdf0 <value_stack_array+16>, reserve_cost=4000, i_context=0x0) at simulate.c:461
        rc = <optimized out>
        old_out_of_memory = false
#15 0x00005555555b53f0 in eval_instruction (first_instruction=first_instruction@entry=0x5555571d0a9a "a\001\004\036", initial_sp=<optimized out>) at interpret.c:9074
        offset = <optimized out>
        flags = <optimized out>
        reserve_cost = <optimized out>
        pc = 0x5555571d0b00 "b\026\376", <incomplete sequence \360>
        fp = <optimized out>
        sp = <optimized out>
        num_arg = <optimized out>
        instruction = 31
        full_instr = <optimized out>
        expected_stack = <optimized out>
        ap = 0x55555627fe50 <value_stack_array+112>
        use_ap = <optimized out>
        __PRETTY_FUNCTION__ = "eval_instruction"
#16 0x00005555555bedee in apply_low (fun=fun@entry=0x55555656a738, ob=ob@entry=0x5555571a8140, num_arg=num_arg@entry=1, b_ign_prot=b_ign_prot@entry=true) at interpret.c:15839
        funstart = 0x5555571d0a9a "a\001\004\036"
        progp = <optimized out>
        save_csp = 0x55555627b8d0 <control_stack_array+272>
        ix = 258725
#17 0x00005555555bfbc3 in int_apply (fun=fun@entry=0x55555656a738, ob=ob@entry=0x5555571a8140, num_arg=num_arg@entry=1, b_ign_prot=b_ign_prot@entry=true, b_use_default=b_use_default@entry=false)
    at interpret.c:16038
No locals.
#18 0x00005555555c0065 in sapply_int (fun=fun@entry=0x55555656a738, ob=0x5555571a8140, num_arg=num_arg@entry=1, b_find_static=b_find_static@entry=true, b_use_default=b_use_default@entry=false)
    at interpret.c:16200
        expected_sp = 0x55555627fde0 <value_stack_array>
#19 0x00005555555c08b2 in apply_master_ob (fun=0x55555656a738, num_arg=num_arg@entry=1, external=external@entry=false) at interpret.c:16520
        eval_cost_reserve = 1024
        reserve_used = false
        error_recovery_info = {rt = {last = 0x5555562ea6e0 <toplevel_context>, type = 2}, flags = 16843009, con = {text = {{__jmpbuf = {4294967196, -5964697898716371659, -1, 0, 0, 0, -545936914279176907, 
                  -5964696634603346635}, __mask_was_saved = 0, __saved_mask = {__val = {140737488342208, 93824992992577, 140737488342160, 93825020236168, 0, 140737488342160, 93825022242720, 93823561629696, 
                    93825021808392, 0, 93825022400218, 93825022392464, 72057594037928043, 140737488341888, 140737488342160, 15807664038300820992}}}}}}
        save_sp = 0x55555627fdf0 <value_stack_array+16>
        save_csp = 0x55555627b848 <control_stack_array+136>
        result = <optimized out>
#20 0x000055555557454a in preload_objects (eflag=<optimized out>) at backend.c:1469
        prefiles = <optimized out>
        ret = <optimized out>
        ix0 = 1
        num_prefiles = 36
        ix = <optimized out>
#21 0x00005555555659a9 in main (argc=<optimized out>, argv=<optimized out>) at main.c:687
        i = 5
        p = 0x7fffffffccf8 "\005"
        set = {__val = {8192, 0 <repeats 15 times>}}
        rc = 0
(gdb) q
stacktrace (11,503 bytes)   

zesstra

2018-02-04 20:04

administrator   ~0002450

Thank you!
It seems, we have yet another interference between system libs and our own malloc implementation. Our default replacement of the system malloc seems to get increasingly problematic. Maybe we will find another solution, but we will probably change that default soon...

zesstra

2019-04-05 21:34

administrator   ~0002473

The driver now uses by default the system memory allocator, not our own allocator. This solves the immediate issue.
(Rewriting our memory allocator would solve the fundamental issue, but that has to wait...)

Issue History

Date Modified Username Field Change
2018-02-04 19:19 gulahr New Issue
2018-02-04 19:19 gulahr File Added: driver.log
2018-02-04 19:19 gulahr File Added: stacktrace
2018-02-04 20:00 zesstra Project LDMud => LDMud 3.5
2018-02-04 20:04 zesstra Status new => confirmed
2018-02-04 20:04 zesstra Note Added: 0002450
2018-07-24 14:41 zesstra Target Version => 3.5.2
2019-04-05 21:32 zesstra Assigned To => zesstra
2019-04-05 21:32 zesstra Status confirmed => assigned
2019-04-05 21:34 zesstra Status assigned => resolved
2019-04-05 21:34 zesstra Resolution open => fixed
2019-04-05 21:34 zesstra Fixed in Version => 3.5.2
2019-04-05 21:34 zesstra Note Added: 0002473
2021-05-31 21:44 Gnomi Relationship added has duplicate 0000893