View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000862 | LDMud 3.5 | Runtime | public | 2018-02-04 18:19 | 2021-05-31 19:44 |
Reporter | gulahr | Assigned To | zesstra | ||
Priority | normal | Severity | crash | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
OS | Ubuntu | OS Version | 17.10 | ||
Target Version | 3.5.2 | Fixed in Version | 3.5.2 | ||
Summary | 0000862: Segmentation fault during startup | ||||
Description | I 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. | ||||
Tags | No tags attached. | ||||
Attached Files | 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 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 | ||||
|
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... |
|
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...) |
Date Modified | Username | Field | Change |
---|---|---|---|
2018-02-04 18:19 | gulahr | New Issue | |
2018-02-04 18:19 | gulahr | File Added: driver.log | |
2018-02-04 18:19 | gulahr | File Added: stacktrace | |
2018-02-04 19:00 | zesstra | Project | LDMud => LDMud 3.5 |
2018-02-04 19:04 | zesstra | Status | new => confirmed |
2018-02-04 19:04 | zesstra | Note Added: 0002450 | |
2018-07-24 12:41 | zesstra | Target Version | => 3.5.2 |
2019-04-05 19:32 | zesstra | Assigned To | => zesstra |
2019-04-05 19:32 | zesstra | Status | confirmed => assigned |
2019-04-05 19:34 | zesstra | Status | assigned => resolved |
2019-04-05 19:34 | zesstra | Resolution | open => fixed |
2019-04-05 19:34 | zesstra | Fixed in Version | => 3.5.2 |
2019-04-05 19:34 | zesstra | Note Added: 0002473 | |
2021-05-31 19:44 | Gnomi | Relationship added | has duplicate 0000893 |