From 38bd20f4f58e8025bd3ffc718cb7e40a4bde6396 Mon Sep 17 00:00:00 2001 From: Rick Reed Date: Fri, 16 Mar 2012 15:46:39 -0700 Subject: Demote rare debug slogan of message discarding to debug build --- erts/emulator/beam/bif.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/erts/emulator/beam/bif.c b/erts/emulator/beam/bif.c index 06a1230ca0..03c436210f 100644 --- a/erts/emulator/beam/bif.c +++ b/erts/emulator/beam/bif.c @@ -1869,6 +1869,7 @@ do_send(Process *p, Eterm to, Eterm msg, int suspend, Eterm *refp) { } else if (is_external_pid(to)) { dep = external_pid_dist_entry(to); if(dep == erts_this_dist_entry) { +#if DEBUG erts_dsprintf_buf_t *dsbufp = erts_create_logger_dsbuf(); erts_dsprintf(dsbufp, "Discarding message %T from %T to %T in an old " @@ -1879,6 +1880,7 @@ do_send(Process *p, Eterm to, Eterm msg, int suspend, Eterm *refp) { external_pid_creation(to), erts_this_node->creation); erts_send_error_to_logger(p->group_leader, dsbufp); +#endif return 0; } return remote_send(p, dep, to, to, msg, suspend); @@ -1907,6 +1909,7 @@ do_send(Process *p, Eterm to, Eterm msg, int suspend, Eterm *refp) { } else if (is_external_port(to) && (external_port_dist_entry(to) == erts_this_dist_entry)) { +#if DEBUG erts_dsprintf_buf_t *dsbufp = erts_create_logger_dsbuf(); erts_dsprintf(dsbufp, "Discarding message %T from %T to %T in an old " @@ -1917,6 +1920,7 @@ do_send(Process *p, Eterm to, Eterm msg, int suspend, Eterm *refp) { external_port_creation(to), erts_this_node->creation); erts_send_error_to_logger(p->group_leader, dsbufp); +#endif return 0; } else if (is_internal_port(to)) { int ret_val; -- cgit v1.2.3 From e2c11e89563f0c11794c91193b29bce00ca9c740 Mon Sep 17 00:00:00 2001 From: Rick Reed Date: Tue, 22 May 2012 12:28:09 -0700 Subject: Add missing error string to syslog logging in epmd --- erts/epmd/src/epmd.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/erts/epmd/src/epmd.c b/erts/epmd/src/epmd.c index 5d5c3a1c3c..5dd4a2cc2e 100644 --- a/erts/epmd/src/epmd.c +++ b/erts/epmd/src/epmd.c @@ -486,7 +486,11 @@ static void dbg_gen_printf(int onsyslog,int perr,int from_level, #ifdef HAVE_SYSLOG_H if (onsyslog) { - erts_vsnprintf(buf, DEBUG_BUFFER_SIZE, format, args); + int len; + len = erts_vsnprintf(buf, DEBUG_BUFFER_SIZE, format, args); + if (perr != 0 && len < sizeof(buf)) { + erts_snprintf(buf+len, sizeof(buf)-len, ": %s", strerror(perr)); + } syslog(LOG_ERR,"epmd: %s",buf); } #endif -- cgit v1.2.3 From 345af4a0c8d68b9369c3556fa6d911854c123d3f Mon Sep 17 00:00:00 2001 From: Rick Reed Date: Wed, 13 Feb 2013 08:48:18 -0800 Subject: Add run queue index to process dump info --- erts/doc/src/crash_dump.xml | 3 +++ erts/emulator/beam/break.c | 1 + 2 files changed, 4 insertions(+) diff --git a/erts/doc/src/crash_dump.xml b/erts/doc/src/crash_dump.xml index c59741f250..885b7c3bb4 100644 --- a/erts/doc/src/crash_dump.xml +++ b/erts/doc/src/crash_dump.xml @@ -246,6 +246,9 @@ Last scheduled in for | Current call The current function of the process. These fields will not always exist. + Run queue + The identifier of the scheduler run queue in which the process is + running. Spawned by The parent of the process, i.e. the process which executed or . diff --git a/erts/emulator/beam/break.c b/erts/emulator/beam/break.c index 7d4f52ee23..08265b590d 100644 --- a/erts/emulator/beam/break.c +++ b/erts/emulator/beam/break.c @@ -256,6 +256,7 @@ print_process_info(int to, void *to_arg, Process *p) p->current[1], p->current[2]); } + erts_print(to, to_arg, "Run queue: %d\n", erts_get_runq_proc(p)->ix); erts_print(to, to_arg, "Spawned by: %T\n", p->parent); approx_started = (time_t) p->approx_started; -- cgit v1.2.3 From 5d5f9c1857029d7e8e1de141e29d20dd3de929be Mon Sep 17 00:00:00 2001 From: Rick Reed Date: Wed, 13 Feb 2013 08:49:20 -0800 Subject: Add thread index to allocator enomem dump slogan --- erts/doc/src/crash_dump.xml | 28 +++++++++++++++------------- erts/emulator/beam/erl_alloc.c | 4 ++-- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/erts/doc/src/crash_dump.xml b/erts/doc/src/crash_dump.xml index 885b7c3bb4..d3de29b876 100644 --- a/erts/doc/src/crash_dump.xml +++ b/erts/doc/src/crash_dump.xml @@ -85,20 +85,22 @@ operating system.

"<A>: Cannot allocate <N> - bytes of memory (of type "<T>")." - The system - has run out of memory. <A> is the allocator that failed - to allocate memory, <N> is the number of bytes that - <A> tried to allocate, and <T> is the memory block - type that the memory was needed for. The most common case is - that a process stores huge amounts of data. In this case - <T> is most often , , - , or . For more information on - allocators see - erts_alloc(3). + bytes of memory (of type "<T>", thread + <I>em>)." - The system has run out of memory. <A> + is the allocator that failed to allocate memory, <N> is the + number of bytes that <A> tried to allocate, <T> is the + memory block type that the memory was needed for, and <I> is the + thread identifier. The most common case is that a process stores huge + amounts of data. In this case <T> is most often + , , + , or . + For more information on allocators see + erts_alloc(3). "<A>: Cannot reallocate <N> - bytes of memory (of type "<T>")." - Same as - above with the exception that memory was being reallocated - instead of being allocated when the system ran out of memory. + bytes of memory (of type "<T>", thread + <I>em>)." - Same as above with the exception that memory + was being reallocated instead of being allocated when the system ran + out of memory. "Unexpected op code N" - Error in compiled code, file damaged or error in the compiler. "Module Name undefined" "Function diff --git a/erts/emulator/beam/erl_alloc.c b/erts/emulator/beam/erl_alloc.c index 05ac24e04d..90cd227fae 100644 --- a/erts/emulator/beam/erl_alloc.c +++ b/erts/emulator/beam/erl_alloc.c @@ -1873,8 +1873,8 @@ erts_alc_fatal_error(int error, int func, ErtsAlcType_t n, ...) size = va_arg(argp, Uint); va_end(argp); erl_exit(1, - "%s: Cannot %s %lu bytes of memory (of type \"%s\").\n", - allctr_str, op, size, t_str); + "%s: Cannot %s %lu bytes of memory (of type \"%s\", thread %d).\n", + allctr_str, op, size, t_str, ERTS_ALC_GET_THR_IX()); break; } case ERTS_ALC_E_NOALLCTR: -- cgit v1.2.3 From baad9722c84ecb41d2278ac9912d30e42c3b4409 Mon Sep 17 00:00:00 2001 From: Rick Reed Date: Wed, 24 Jul 2013 16:51:30 -0700 Subject: Add number of entries to mnesia copy debug message --- lib/mnesia/src/mnesia_loader.erl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/mnesia/src/mnesia_loader.erl b/lib/mnesia/src/mnesia_loader.erl index 4afbea1cc2..530317bcdd 100644 --- a/lib/mnesia/src/mnesia_loader.erl +++ b/lib/mnesia/src/mnesia_loader.erl @@ -208,7 +208,8 @@ do_get_network_copy(Tab, Reason, Ns, Storage, Cs) -> set({Tab, load_node}, Node), set({Tab, load_reason}, Reason), mnesia_controller:i_have_tab(Tab), - dbg_out("Table ~p copied from ~p to ~p~n", [Tab, Node, node()]), + dbg_out("Table ~p copied from ~p to ~p (~b entries)~n", + [Tab, Node, node(), mnesia:table_info(Tab, size)]), {loaded, ok}; Err = {error, _} when element(1, Reason) == dumper -> {not_loaded,Err}; -- cgit v1.2.3