View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0000824 | LDMud 3.3 | Runtime | public | 2013-08-17 19:31 | 2020-11-13 16:15 |
| Reporter | Claudius | Assigned To | Gnomi | ||
| Priority | normal | Severity | crash | Reproducibility | unable to reproduce |
| Status | closed | Resolution | unable to reproduce | ||
| Product Version | 3.3.720 | ||||
| Summary | 0000824: remove_from_free_list: block 0x1aa40e0, magic match failed | ||||
| Description | The driver crashed unexpectedly, leaving the attached output on stdout and in the debug file. The settings file used to compile the binary is also attached. The driver is usually executed as # bin/ldmud -sf/home/nightfall/mud//tmp/nightfall.swp --debug-file=nightfall.debug.log -m /home/nightfall/mud//lib 4242 Unfortunately, no core dump was recorded, I will try to provide proper backtraces if the issue occurs again. | ||||
| Tags | No tags attached. | ||||
| Attached Files | debug-file (778 bytes)
2013.08.17 20:07:57 remove_from_free_list: block 0x301d008, magic match failed: expected 839130950, found 271
2013.08.17 20:07:57 Current object was secure/master
2013.08.17 20:07:57 Dump of the call chain:
' do_scope' in ' obj/tool/extool.c' ('obj/tool/extool#22653') line 78
' execute_scope' in 'obj/tool/extool/tscope.c' ('obj/tool/extool/tscope') line 118
' valid_read' in 'secure/master.c (/secure/master/access.ic)' (' secure/master') line 59
'query_wiz_level' in 'secure/master.c (/secure/master/userinfo.ic)' (' secure/master') line 169
' get_wiz_level' in 'secure/master.c (/secure/master/userinfo.ic)' (' secure/master') line 160
'find_userinfo_secure' in 'secure/master.c (/secure/master/userinfo.ic)' (' secure/master') line 51
settings (19,652 bytes)
#!/bin/sh
#
#-------------------------------------------------------------------------
# Example configuration settings file
#-------------------------------------------------------------------------
# configure --with-<foo> allows to specify a lot of options in one go by
# evaluation the file settings/<foo>. Since configure provides defaults
# for all options, the file needs to list only those options which are
# to set differently.
#
# This file documents the available options and their default values.
#
# On/off options must be specified like this:
# enable_<option>=yes to enable it
# enable_<option>=no
# or disable_<option> to disable it
#
# Value options must be specified like this:
# with_<option>=<value>
#
# Number values can be given in decimal or sedecimal. Strings must
# be given without surrounding quotes.
#
# In both cases no whitespace is allowed around the '=' and nothing
# else may appear on the line, except a trailing comment!
#
# Configure will strip everything from this file which doesn't match one
# of its option specification patterns, allowing us to make the files
# self-executable.
#-------------------------------------------------------------------------
exec ./configure --prefix=/home/nightfall/mud --with-setting=nightfall $*
exit 1
#----------- Commandline Argument Defaults ----------
# These options provide default settings for those options which can
# also be set on the commandline.
# Enable this if you are using a 2.4.5 mudlib or one of its derivates.
enable_compat_mode=no
# The name of the master object.
with_master_name=secure/master
# Define ALLOW_FILENAME_SPACES if the driver should accept space characters
# in filenames. If it is not defined, a hardcoded test for space characters
# is activated.
enable_filename_spaces=no
# --- Runtime limits ---
# Maximum size of array. If 0, any size is allowed.
with_max_array_size=5000
# Maximum number of entries in a mapping. If 0, any size is allowed.
with_max_mapping_keys=5000
# Maximum number of values in a mapping. If 0, any size is allowed.
with_max_mapping_size=15000
# Maximum size of a file to be read with read_file()
# If 0, any size is allowed.
with_read_file_max_size=50000
# Maximum number of bytes read or written with read/write_bytes().
# If 0, any size is allowed.
with_max_byte_transfer=50000
# Maximum number of callouts at one time.
# If 0, any number is allowed.
with_max_callouts=0
# If PThreads are used, this is the max amount of data held pending
# for writing. If the amount is exceeded, the oldest data blocks
# are discarded.
# If 0, any amount of data is allowed.
with_pthread_write_max_size=100000
# --- Timing ---
# If an object is left alone for this time, it will be 'cleaned up'.
# The time should be substantially longer than the swapping time.
with_time_to_clean_up=14400
# If an object is left alone for this time, its program and variables
# are swapped into a file to conserve memory.
# The time to swap variables should be longer than the time to swap
# programs, because swapping variables is quite expensive.
# Both times should be shorter than the cleanup time and are given
# in seconds.
# A swapping time <= 0 disables that particular swapping feature.
with_time_to_swap=900
with_time_to_swap_variables=1800
# This time determines the interval before an object is reset again.
# The actual length of the intervals is determined somewhat randomly
# to make the game less predictable.
with_time_to_reset=1800 # seconds
# --- Memory ---
# These three options determine how much memory is held in reserve.
# There must be enough memory to allow the garbage collector to swap
# in all objects one at a time.
with_reserved_user_size=7000000
with_reserved_master_size=1000000
with_reserved_system_size=2000000
# This value gives the upper limits for the total allocated memory.
# A value of 0 means 'unlimited'.
with_max_malloced=1000000000
with_hard_malloc_limit=1000000000
with_soft_malloc_limit=850000000
# If these values are >0, the driver will reserve this amount of memory
# on startup for large resp. small blocks, reducing the block fragmentation.
# The value should be a significantly large multiple of the large resp.
# small chunk size.
# As a rule of thumb, reserve enough memory for the first couple of days
# of uptime.
with_min_malloced=0
with_min_small_malloced=0
# The granularity of the timing in seconds. No two timed events can
# happen faster after each other than this time.
with_alarm_time=2
# The time to elapse between two heartbeats. If this time is not an
# even multiple of ALARM_TIME, the next even multiple will be used.
with_heart_beat_interval=2
# If synchronous heartbeats are enabled, all heartbeats happen at
# the same time, regardless of when within one ALARM_TIME granule
# they have been started.
# If this is disabled, heartbeats are executed as soon as possible (for
# example some objects would beat on even seconds, others on odd).
enable_synchronous_heart_beat=yes
# --- Interpreter ---
# If strict-euids is enabled, the driver enforces the (correct) use
# of euids, ie. load_object() and clone_object() require the current
# object to have a non-zero euid.
enable_strict_euids=yes
# The maximum number of eval-ticks for one execution. If this
# is exceeded, the execution is aborted.
with_max_cost=10000000
# --- Communication ---
# The Input escape character.
# If this character is typed as first on the line, the normal input_to()s
# are bypassed.
with_input_escape="!"
# The TCP port to listen for connections on.
# This value is used only when no ports are given on the commandline.
with_portno=4242
# This is the number of the UDP port to use.
# If set to -1, and no number is given on the commandline, the port will
# not be created.
with_udp_port=4246
# The maximum number of ports to listen for connections on.
with_maxnumports=20
# Select the ERQ service to use.
# 'no': the driver is compiled without erq support.
# 'erq': the driver is compiled with erq support, the Makefiles
# are set up to compile the standard erq.
# 'xerq': the driver is compiled with erq support, the Makefiles
# are set up to compile Brian's xerq.
enable_erq=xerq
# Max size of a packet received from/send to the ERQ.
# TODO: Do the current erqs compile this in?
with_erq_max_reply=1024
with_erq_max_send=1024
#----------- Compilation Options ----------
# To change these options, the config.h must be recreated and the
# driver recompiled.
# The optimization level in the generated Makefile
# Settings: no, low, med, high
with_optimize=med
# If TRACE_CODE is enable, the driver keeps a log of TOTAL_TRACE_LENGTH
# most recently execute bytecode instructions.
enable_trace_code=yes
with_total_trace_length=4096
# Enable these for runtime statistics:
# COMM_STAT: number and size of outgoing packets
# APPLY_CACHE_STAT: number of hits and misses in the apply cache
enable_comm_stat=yes
enable_apply_cache_stat=yes
# The name of the swapfile used by the driver to swap out objects (if
# enabled), relative to the mudlib directory. The driver will append
# '.<hostname>' to the file.
with_swap_file=nightfall.swp
# Enable support for IPv6 (assuming your system supports it).
enable_use_ipv6=yes
# Enable the use of pthreads for background socket IO.
enable_use_pthreads=no
# --- Memory ---
# Which memory manager to use. Possible defines are
# default: slaballoc is selected.
# smalloc: Satoria's malloc. Second fastest, uses the least memory,
# supports garbage collection, not fully threadsafe.
# slaballoc: Slab allocator. Fastest, reduces fragmentation,
# supports garbage collection, not fully threadsafe.
# ptmalloc: ptmalloc from www.malloc.de, supports GC, threadsafe.
# sysmalloc: the normal system malloc(), threadsafe.
with_malloc=default
# Define this to let the memory allocator request memory from the system
# directly using sbrk() (assuming the system supports it).
# If not defined, the memory allocator will use malloc().
# Supported by: MALLOC_smalloc, MALLOC_slaballoc
enable_malloc_sbrk=yes
# Define this to annotate all allocations with a magic word to find
# simple misuses of memory (like multiple frees).
# Supported by: MALLOC_smalloc, MALLOC_slaballoc
enable_malloc_check=yes
# Enable this to annotate all allocations with 'file:line' of the
# driver source allocating it.
enable_malloc_trace=no
# Enable this in addition to SMALLOC_TRACE to also annotate all allocations
# with file:line of the lpc program responsible for it.
enable_malloc_lpc_trace=no
# Define this to log all calls to esbrk() (the system memory allocator).
# Works best if MALLOC_TRACE is defined.
# This define is useful if your mud keeps growing in total memory size
# instead of re-using the memory already allocated.
# Supported by: MALLOC_smalloc, MALLOC_slaballoc
enable_malloc_sbrk_trace=no
# --- Wizlist ---
# The name of the file (relative to the mudlib) to hold the Wizlist
# information. The driver reads it on startup.
# If disabled ('with_wizlist_file=no'), a wizlist file can still be
# given on the commandline.
with_wizlist_file=WIZLIST
# --- Access Control ---
# Enable this to have access control.
enable_access_control=yes
# The name of the file from where the access permissions are read.
with_access_file=ACCESS.ALLOW
# Enable this to log all connection attempts.
enable_access_log=no
# The name of the file where all connections are logged.
with_access_log=access.allow.log
# --- Language ---
# Enable this if you want the efun parse_command().
enable_use_parse_command=yes
# Enable this if you want the efun set_light() and the simple 2.4.5 light
# system.
enable_use_set_light=no
# Enable this if you want the efun set_is_wizard().
enable_use_set_is_wizard=no
# Enable this if you want the efun process_string().
enable_use_process_string=yes
# Enable SHARE_VARIABLES if a clone's variables are to be assigned
# from the current blueprint's variables. Undefine it if clones
# should be initialized by __INIT().
enable_share_variables=no
# Define USE_SYSTEM_CRYPT if you want crypt() to be implemented by your
# operating system (assuming it offers this function). This makes your
# programm smaller and may even let you take advantage of improvements
# of your OS, but may also prohibit transporting encrypted date like
# passwords between different systems.
# Undefine USE_SYSTEM_CRYPT if you want to use the driver's portable
# crypt() implementation.
enable_use_system_crypt=no
# Define USE_LPC_NOSAVE if you want to use the keyword 'nosave' to
# specify variables not be save by save_object(). The old keyword 'static'
# works in either case.
enable_lpc_nosave=yes
# Enable support for mySQL (assuming your system supports it).
#
# 'no' : mySQL support is not compiled in
# 'yes' : mySQL support is compiled in, the libmysqlclient is expected
# in the normal library search path.
# <path>: mySQL support is compiled in, <path> is added to the link paths
# and should be the path to libmysqlclient,
# e.g. enable_use_mysql=/usr/local/lib/mysql .
# The include files are searched in /usr/local/mysql/include,
# /usr/local/include, <path>, and <path>/include.
# The libraries are searched in the default path, <path>/lib/mysql,
# <path>/lib and <path>, in this order.
enable_use_mysql=yes
# Enable support for PostgreSQL (assuming your system supports it).
#
# 'no' : PostgreSQL support is not compiled in
# 'yes' : PostgreSQL support is compiled in, the libmysqlclient is expected
# in the normal library search path.
# <path>: PostgreSQL support is compiled in, <path> is added to the link paths
# and should be the path to libpq,
# e.g. enable_use_syql=/usr/local/pgsql .
# The include files are searched in /usr/local/pgsql/include,
# /usr/local/include, <path>, and <path>/include.
# The libraries are searched in the default path, <path>/lib/pgsql,
# <path>/lib, <path>, /usr/local/pgsql/lib, in this order.
enable_use_pgsql=no
# Enable support for SQLite-3 (assuming your system supports it).
#
# 'no' : SQLite-3 support is not compiled in
# 'yes' : SQLite-3 support is compiled in, the libmysqlclient is expected
# in the normal library search path.
# <path>: SQLite-3 support is compiled in, <path> is added to the link paths
# and should be the path to libpq,
# e.g. enable_use_sqlite=/usr/local/sqlite .
# The include files are searched in /usr/local/sqlite/include,
# /usr/local/include, <path>, and <path>/include.
# The libraries are searched in the default path, <path>/lib/sqlite,
# <path>/lib, <path>, /usr/local/sqlite/lib, in this order.
enable_use_sqlite=no
# Enable support for MCCP (Mud Control Compression Protocol).
enable_use_mccp=no
# Enable support for TLS (Transport Layer Security).
#
# 'no': TLS support is not compiled it
# 'gnu': TLS support using GnuTLS is compiled in if found.
# 'ssl': TLS support using OpenSSL is compiled in if found.
# 'yes': TLS support using either OpenSSL or GnuTLS is compiled in if found.
# The configuration script looks first for OpenSSL, then GnuTLS.
# If both are available, OpenSSL is used.
enable_use_tls=no
# The optional path to the TLS installation. When set, the configuration
# script will add {tls_path}/include and {tls_path}/lib to the include resp.
# library search paths.
with_tls_path=
# Enable support for alists.
enable_use_alists=yes
# Enable call_other()s on arrays of objects.
enable_lpc_array_calls=no
# Enable PCRE instead of traditional regexps
# 'no': use traditional regexps by default
# 'no-builtin': use traditional regexps by default, or the builtin PCRE
# package if PCRE is requested
# 'builtin': use PCRE package by default, using the builtin package
# 'yes': use the system's PCRE package if available, otherwise the
# the builtin package
enable_use_pcre=no
# Enable obsolete and deprecated efuns.
enable_use_deprecated=yes
# --- Runtime limits ---
# Maximum size of a socket send buffer.
with_set_buffer_size_max=65536
# CATCH_RESERVED_COST is the default value added to the eval cost for the time
# executing code guarded by a catch() statement, so that an eval_cost-too-big
# error can still be caught and handled.
# To catch an evalcost-too-big in an object that called (recursive)
# master functions, CATCH_RESERVED_COST should be greater than
# MASTER_RESERVED_COST.
with_catch_reserved_cost=2000
# MASTER_RESERVED_COST is the total reserve available for master applies.
# It is halved for every descent into another master apply.
with_master_reserved_cost=512
# With this option enable, expensive operations like string additions
# have additional evalcosts depending on the amount of data handled.
enable_dynamic_costs=no
# Define the maximum stack size of the virtual machine. It must be big
# enough to hold all local variables, arguments and temporary values.
with_evaluator_stack_size=2000
# Maximum function call depth for normal program execution
with_max_user_trace=60
# Maximum function call depth during error handling.
# It must be bigger than MAX_USER_TRACE (check at compile time).
with_max_trace=65
# Maximum number of bits in a bit string.
# The limit is more based on considerations of speed than memory consumption.
with_max_bits=24576
# Maximum number of players in the game
with_max_players=100
# Allowed number of ed commands per backend cycle (for faster file upload).
with_allowed_ed_cmds=40
# --- Compiler ---
# Compiler stack size. This value affects the complexity the compiler can
# parse.
with_compiler_stack_size=400
# Maximum number of local variables
with_max_local=50
# Maximum size of an expanded preprocessor definition.
with_defmax=65000
# --- Internal Tables ---
# Define the size of the shared string hash table (max: 65536).
# If you set it to about 1/5 of the number of distinct strings, you will
# get a hit ratio very close to 1. If the size is a power of two,
# hashing will be faster.
with_htable_size=4096
# Size of the object hash table (max: 65536). Set it to about 1/4 of
# the number of objects in the game, though this value is not very critical.
with_otable_size=1024
# Size of the hash table for defines, reserved words, identifiers, and
# efun names. This should be several times smaller than HTABLE_SIZE.
# Max: 65536.
with_itable_size=256
# Size of the apply cache, expressed in the bitsize of its indices.
# The number of entries is 2**cache_bits.
with_apply_cache_bits=12
# Select whether compiled regular expressions shall be cached, and
# how big the cache shall be (max: 65536).
enable_rxcache_table=yes
with_rxcache_table=8192
# --- Current Developments ---
# These options can be used to disable developments-in-progress if their
# code turns out to be interrrupting.
# Define this to enable LPC structs.
enable_use_structs=yes
# Define this to enable the new inline closure syntax.
enable_use_new_inlines=yes
# --- Profiling ---
# For profiling of the VM instruction implementations, refer to the Makefile
# Enable usage statistics of VM instructions.
enable_opcprof=no
# If opcprof is enabled, this option includes the instruction names
# into the statistic.
enable_verbose_opcprof=no
# --- Standard Debugging ---
# These options are 'standard' debugging options.
# Enable basic run time sanity checks. This will use more time
# and space, but nevertheless you are strongly encouraged to keep
# it defined.
enable_debug=yes
# Enable debug output from the LPC compiler.
enable_yydebug=no
# Disable inlining. Use this to debug obscure crashes, or for
# speed tests.
enable_no_inlines=no
# Activate debug prints in the telnet machine (lots of output).
enable_debug_telnet=no
# Activate allocation debug prints in the malloc module (lots of output).
# Supported by: MALLOC_smalloc, MALLOC_slaballoc
enable_debug_malloc_allocs=no
# The DEBUG level for the ERQ daemon:
# 0 : no debug output
# 1 : standard debug output
# 2 : verbose debug output
with_erq_debug=0
# --- Specific Debugging ---
# These options have been introduced to debug specific problems and will
# be removed again later.
# Trace changes to the tot_alloc_object and tot_alloc_object_size statistics,
# in order to find the status bugs (enables commandline option
# --check-object-stat). Will produce a decent amount of output on stderr.
enable_check_object_stat=no
# Activate total mapping size consistency check code. It has a small impact on
# the execution speed. This define was used to find the inaccuracy in the
# mapping statistic.
enable_check_mapping_total=no
# Activate object refcount check code. It will produce a decent amount of log
# output. It will also fatal() the driver as soon as it detects an
# inconsistency in the list of destructed objects.
enable_check_object_ref=no
# Activate object referencing checking code during the GC. It will print error
# messages to gcout when an object or program is referenced as something else.
# No penalty for using. Requires MALLOC_TRACE to work. Incompatible with
# DUMP_GC_REFS.
enable_check_object_gc_ref=yes
# Sometimes the GC stumbles over invalid references to memory blocks (namely
# 'Program referenced as something else'). Define this macro to get a detailed
# dump of all found references (Warning: LOTS of output!).
# Incompatible with CHECK_OBJECT_GC_REF.
enable_dump_gc_refs=no
stdout (13,296 bytes)
2013.08.17 20:07:57 remove_from_free_list: block 0x1aa40e0, magic match failed: expected 3752850158, found 3752850414
2013.08.17 20:07:57 Current object was secure/master
obj/tool/extool/tscope obj/tool/extool/tscope.c line 150
0x2bf0e7b: 31 10 local (0: 23) line 150
0x2bf0e7d: 31 13 local (1: 24)
0x2bf0e7f: 10 103 cstring0 (2: 25)
0x2bf0e81: 15 const0 (3: 26) line 151
0x2bf0e82: 177 push_indexed_map_lvalue (4: 27)
0x2bf0e83: 42 (void)= (2: 25)
0x2bf0e84: 31 13 local (0: 23)
0x2bf0e86: 242 10 copy (1: 24)
0x2bf0e88: 31 0 local (1: 24)
0x2bf0e8a: 31 2 local (2: 25)
0x2bf0e8c: 18 3 clit (3: 26)
0x2bf0e8e: 177 push_indexed_map_lvalue (4: 27) line 152
0x2bf0e8f: 42 (void)= (2: 25) line 153
0x2bf0e90: 31 8 local (0: 23)
0x2bf0e92: 31 0 local (1: 24)
0x2bf0e94: 31 2 local (2: 25)
0x2bf0e96: 18 4 clit (3: 26)
0x2bf0e98: 65 map_index (4: 27)
0x2bf0e99: 43 + (2: 25)
0x2bf0e9a: 31 0 local (1: 24)
0x2bf0e9c: 31 2 local (2: 25)
0x2bf0e9e: 18 5 clit (3: 26)
0x2bf0ea0: 177 push_indexed_map_lvalue (4: 27)
0x2bf0ea1: 42 (void)= (2: 25) line 154
0x2bf0ea2: 16 const1 (0: 23)
0x2bf0ea3: 126 9 push_local_variable_lvalue (1: 24)
0x2bf0ea5: 42 (void)= (2: 25) line 156
0x2bf0ea6: 181 foreach_next (0: 23)
0x2bf0b76: 31 2 local (0: 23) line 76
0x2bf0b78: 39 6 && (1: 24)
0x2bf0b7a: 31 0 local (0: 23)
0x2bf0b7c: 31 2 local (1: 24)
0x2bf0b7e: 15 const0 (2: 25)
0x2bf0b7f: 65 map_index (3: 26)
0x2bf0b80: 39 10 && (1: 24)
0x2bf0b82: 31 8 local (0: 23)
0x2bf0b84: 31 0 local (1: 24)
0x2bf0b86: 31 2 local (2: 25)
0x2bf0b88: 18 5 clit (3: 26)
0x2bf0b8a: 65 map_index (4: 27)
0x2bf0b8b: 49 >= (2: 25)
0x2bf0b8c: 105 793 lbranch_when_zero (1: 24)
0x2bf0b8f: 31 0 local (0: 23) line 78
0x2bf0b91: 31 2 local (1: 24)
0x2bf0b93: 16 const1 (2: 25)
0x2bf0b94: 65 map_index (3: 26)
0x2bf0b95: 126 5 push_local_variable_lvalue (1: 24)
0x2bf0b97: 42 (void)= (2: 25) line 79
0x2bf0b98: 31 0 local (0: 23)
0x2bf0b9a: 31 2 local (1: 24)
0x2bf0b9c: 18 3 clit (2: 25)
0x2bf0b9e: 65 map_index (3: 26)
0x2bf0b9f: 242 10 copy (1: 24)
0x2bf0ba1: 126 13 push_local_variable_lvalue (1: 24)
0x2bf0ba3: 42 (void)= (2: 25) line 80
0x2bf0ba4: 31 0 local (0: 23)
0x2bf0ba6: 31 2 local (1: 24)
0x2bf0ba8: 18 2 clit (2: 25)
0x2bf0baa: 65 map_index (3: 26)
0x2bf0bab: 19 2 nclit (1: 24)
0x2bf0bad: 52 == (2: 25)
0x2bf0bae: 105 lbranch_when_zero (1: 24)
0x2bf0d0f: 31 5 local (0: 23) line 118
0x2bf0d11: 257 file_size (1: 24)
secure/master secure/master.c (/secure/master/access.ic) line 19
0x13fa84a: 98 772 clear_locals (0: 32) line 19
0x13fa84d: 31 1 local (0: 32) line 23
0x13fa84f: 109 branch_when_non_zero (1: 33)
0x13fa856: 10 118 cstring0 (0: 32) line 25
0x13fa858: 126 5 push_local_variable_lvalue (1: 33)
0x13fa85a: 42 (void)= (2: 34)
0x13fa85b: 31 2 local (0: 32) line 26
0x13fa85d: 28 switch (1: 33)
0x13fa89a: 99 save_arg_frame (0: 32) line 45
0x13fa89b: 31 0 local (1: 33)
0x13fa89d: 31 1 local (2: 34)
0x13fa89f: 112 call_function (3: 35)
0x13fae6a: 98 514 clear_locals (0: 38) line 249
0x13fae6d: 31 0 local (0: 38) line 252
0x13fae6f: 109 branch_when_non_zero (1: 39)
0x13fae76: 31 0 local (0: 38) line 254
0x13fae78: 15 const0 (1: 39)
0x13fae79: 187 no_warn_deprecated (2: 40)
0x13fae7a: 62 index (2: 40)
0x13fae7b: 28 switch (1: 39)
0x13fae7f: 31 0 local (0: 38) line 256
0x13fae81: 16 const1 (1: 39)
0x13fae82: 187 no_warn_deprecated (2: 40)
0x13fae83: 62 index (2: 40)
0x13fae84: 109 branch_when_non_zero (1: 39)
0x13fae8a: 31 0 local (0: 38) line 257
0x13fae8c: 10 120 cstring0 (1: 39)
0x13fae8e: 355 14 explode (2: 40)
0x13fae90: 10 7 cstring0 (1: 39)
0x13fae92: 10 141 cstring0 (2: 40)
0x13fae94: 169 2 aggregate (3: 41)
0x13fae97: 44 - (2: 40)
0x13fae98: 126 2 push_local_variable_lvalue (1: 39)
0x13fae9a: 42 (void)= (2: 40) line 258
0x13fae9b: 27 break (0: 38) line 260
0x13fb062: 107 branch (0: 38) line 301
0x13fb07b: 99 save_arg_frame (0: 38)
0x13fb07c: 31 2 local (1: 39)
0x13fb07e: 10 148 cstring0 (2: 40)
0x13fb080: 447 39 member (3: 41)
0x13fb082: 100 restore_arg_frame (2: 40)
0x13fb083: 126 3 push_local_variable_lvalue (1: 39)
0x13fb085: 41 = (2: 40)
0x13fb086: 17 nconst1 (1: 39)
0x13fb087: 53 != (2: 40)
0x13fb088: 111 37 bbranch_when_non_zero (1: 39)
0x13fb08a: 31 2 local (0: 38) line 303
0x13fb08c: 24 return (1: 39)
0x13fa8a2: 100 restore_arg_frame (2: 34) line 45
0x13fa8a3: 126 4 push_local_variable_lvalue (1: 33)
0x13fa8a5: 42 (void)= (2: 34)
0x13fa8a6: 27 break (0: 32) line 46
0x13fa8c0: 31 4 local (0: 32) line 47
0x13fa8c2: 10 120 cstring0 (1: 33)
0x13fa8c4: 359 18 implode (2: 34)
0x13fa8c6: 126 0 push_local_variable_lvalue (1: 33)
0x13fa8c8: 42 (void)= (2: 34)
0x13fa8c9: 31 4 local (0: 32) line 49
0x13fa8cb: 203 sizeof (1: 33)
0x13fa8cc: 61 ! (1: 33)
0x13fa8cd: 40 5 || (1: 33)
0x13fa8cf: 31 1 local (0: 32)
0x13fa8d1: 10 41 cstring0 (1: 33)
0x13fa8d3: 52 == (2: 34)
0x13fa8d4: 108 402661123 branch_when_zero (1: 33)
0x13fa8d9: 31 4 local (0: 32) line 51
0x13fa8db: 15 const0 (1: 33)
0x13fa8dc: 187 no_warn_deprecated (2: 34)
0x13fa8dd: 62 index (2: 34)
0x13fa8de: 10 124 cstring0 (1: 33)
0x13fa8e0: 52 == (2: 34)
0x13fa8e1: 108 6401 branch_when_zero (1: 33)
0x13fa8e4: 31 4 local (0: 32) line 53
0x13fa8e6: 15 const0 (1: 33)
0x13fa8e7: 187 no_warn_deprecated (2: 34)
0x13fa8e8: 62 index (2: 34)
0x13fa8e9: 10 125 cstring0 (1: 33)
0x13fa8eb: 52 == (2: 34)
0x13fa8ec: 39 && (1: 33)
0x13fa8f4: 108 branch_when_zero (1: 33)
0x13fa921: 99 save_arg_frame (0: 32) line 59
0x13fa922: 31 1 local (1: 33)
0x13fa924: 112 call_function (2: 34)
secure/master secure/master.c (/secure/master/userinfo.ic) line 166
0x13fb852: 31 0 local (0: 34) line 166
0x13fb854: 199 objectp (1: 35)
0x13fb855: 108 branch_when_zero (1: 35)
0x13fb861: 31 0 local (0: 34) line 168
0x13fb863: 204 stringp (1: 35)
0x13fb864: 108 8 branch_when_zero (1: 35)
0x13fb866: 99 save_arg_frame (0: 34) line 169
0x13fb867: 31 0 local (1: 35)
0x13fb869: 112 call_function (2: 36)
0x13fb81a: 98 257 clear_locals (0: 37) line 158
0x13fb81d: 31 0 local (0: 37) line 160
0x13fb81f: 39 11 && (1: 38)
0x13fb821: 99 save_arg_frame (0: 37)
0x13fb822: 31 0 local (1: 38)
0x13fb824: 16 const1 (2: 39)
0x13fb825: 112 call_function (3: 40)
0x13fb3c2: 98 514 clear_locals (0: 42) line 24
0x13fb3c5: 193 extern_call (0: 42) line 27
0x13fb3c6: 39 && (1: 43)
0x13fb3ce: 108 6401 branch_when_zero (1: 43)
0x13fb3d1: 31 0 local (0: 42) line 29
0x13fb3d3: 204 stringp (1: 43)
0x13fb3d4: 109 6401 branch_when_non_zero (1: 43)
0x13fb3d7: 8 11 identifier (0: 42) line 31
0x13fb3d9: 31 0 local (1: 43)
0x13fb3db: 187 no_warn_deprecated (2: 44)
0x13fb3dc: 62 index (2: 44)
0x13fb3dd: 126 2 push_local_variable_lvalue (1: 43)
0x13fb3df: 41 = (2: 44)
0x13fb3e0: 109 branch_when_non_zero (1: 43)
0x13fb471: 31 2 local (0: 42) line 46
0x13fb473: 15 const0 (1: 43)
0x13fb474: 187 no_warn_deprecated (2: 44)
0x13fb475: 62 index (2: 44)
0x13fb476: 109 6401 branch_when_non_zero (1: 43)
0x13fb479: 227 14 time (0: 42) line 48
0x13fb47b: 18 8 clit (1: 43)
0x13fb47d: 187 no_warn_deprecated (2: 44)
0x13fb47e: 126 2 push_local_variable_lvalue (2: 44)
0x13fb480: 131 index_lvalue (3: 45)
0x13fb481: 42 (void)= (2: 44)
0x13fb482: 31 2 local (0: 42) line 49
0x13fb484: 18 3 clit (1: 43)
0x13fb486: 187 no_warn_deprecated (2: 44)
0x13fb487: 62 index (2: 44)
0x13fb488: 109 branch_when_non_zero (1: 43)
0x13fb494: 31 2 local (0: 42) line 51
0x13fb496: 15 const0 (1: 43)
0x13fb497: 18 8 clit (2: 44)
0x13fb499: 16 const1 (3: 45)
0x13fb49a: 44 - (4: 46)
0x13fb49b: 67 .. (3: 45)
0x13fb49c: 253 deep_copy (1: 43)
0x13fb49e: 126 2 42 31 1 109 8 10
' do_scope' in ' obj/tool/extool.c' ('obj/tool/extool#22653') line 78
' execute_scope' in 'obj/tool/extool/tscope.c' ('obj/tool/extool/tscope') line 118
' valid_read' in 'secure/master.c (/secure/master/access.ic)' (' secure/master') line 59
'query_wiz_level' in 'secure/master.c (/secure/master/userinfo.ic)' (' secure/master') line 169
' get_wiz_level' in 'secure/master.c (/secure/master/userinfo.ic)' (' secure/master') line 160
'find_userinfo_secure' in 'secure/master.c (/secure/master/userinfo.ic)' (' secure/master') line 51
2013.08.17 20:07:57 LDMud aborting on fatal error.
[xerq] read: Resource temporarily unavailable
2013.08.17 20:07:58 [xerq] Demon exiting.
| ||||
|
|
Setting to feedback until the core dump is available. (I wish you luck concerning the uptime, although it would be nice to find the root of the problem...) Oh, BTW: With the core dump we will need the corresponding executable _with_ debug symbols. So, it must be compiled with -g (or even better with -ggdb) and not stripped. configure usually adds the -g, but you might double-check. And I *seriously* recommend to use enable_malloc_trace=yes and enable_malloc_lpc_trace=yes. At least when searching for memory problems. But to be honest, we have them enabled by default all the time. They increase memory cosumption, but RAM is cheap enough nowadays... These flags make it so much easier to know which driver code and LPC code is responsible for a memory allocation. (Although it may not help in this case, but you never know...) |
|
|
I still can't find the cause of this, therefore closing this ticket. The magic word was off by 0x100 in both cases. The LPC trace is the same in both cases. But the settings (malloc_trace/malloc_lpc_trace) were different, so all block sizes and offsets towards the magic word should be different. This points to a problem in the allocator itself, but I haven't found anything there that could change the magic word in that manner. |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2013-08-17 19:31 | Claudius | New Issue | |
| 2013-08-17 19:31 | Claudius | File Added: debug-file | |
| 2013-08-17 19:31 | Claudius | File Added: settings | |
| 2013-08-17 19:32 | Claudius | File Added: stdout | |
| 2013-08-17 20:58 | zesstra | Note Added: 0002194 | |
| 2013-08-17 20:58 | zesstra | Status | new => feedback |
| 2013-09-29 20:45 | Claudius | Status | feedback => new |
| 2013-09-29 21:21 | zesstra | Status | new => acknowledged |
| 2013-10-01 10:40 | Gnomi | Assigned To | => Gnomi |
| 2013-10-01 10:40 | Gnomi | Status | acknowledged => assigned |
| 2020-11-13 16:15 | Gnomi | Status | assigned => closed |
| 2020-11-13 16:15 | Gnomi | Resolution | open => unable to reproduce |
| 2020-11-13 16:15 | Gnomi | Note Added: 0002557 |