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