Commit graph

24 commits

Author SHA1 Message Date
Vladislav Vaintroub
f812f8e1ab MDEV-30475 Windows, mtr - Remove outdated instructions on how to install post-mortem debugger
Also, use standard C:\symbols location for OS debugging symbols cache,
rather than own invention C:\cdb_symbols.
2023-01-26 12:32:15 +01:00
Marko Mäkelä
9f8fc983d5 MDEV-30242 MTR fails to report stack traces of all threads by default
An unfortunate change to the default behavior of the handling of
core dumps was implemented in
commit e9be5428a2
by making MTR_PRINT_CORE=small the default value, that is, to
only display the stack trace of one thread in crash reports.
Many if not most failures that occur in regression tests are
sporadic and involve race conditions or deadlocks. To be able to
analyze such failures, having the stack traces of all active threads
is a must, because CI environments typically do not save any core dumps.

While the environment variable MTR_PRINT_CORE could be set in CI
environments to compensate for the unfortunate change, it is better
to revert to the old default (dumping all threads) so that
no explicit action will be required from maintainers of independent
CI systems. In that case, if something fails once in a blue moon,
we can have some hope of diagnosing it based on the output.

We fix this regression by defaulting the unset environment variable
MTR_PRINT_CORE to "medium".
2022-12-16 09:59:09 +02:00
Aleksey Midenkov
1bdcffb028 MDEV-29025 Refactoring: moved out core_wanted() out of mysql-test-run.pl 2022-07-18 23:16:17 +03:00
Aleksey Midenkov
e9be5428a2 MDEV-28931 MTR prints detailed stack trace unconditionally
66832e3a introduced change that prints core dumps in very detailed
format. That's completely out of user-friendliness but serves as a
measure for debugging hard-reproducible bugs.

The proper way to implement this:

  1. it must be controlled by command-line and environment variable;
  2. detailed traces must be default for buildbots only, for user
     invocations normal stack traces should be printed.

Options for control are: MTR_PRINT_CORE and --print-core that accept
the following values:

  no	         Don't print core
  short	       	 Print stack trace of failed thread
  medium	 Print stack traces of all threads
  detailed       Print all stack traces with debug context
  custom:<code>  Use debugger commands <code> to print stack trace

Default setting is: short (see env_or_default() call in pre_setup())

For environment variable wrong values are silently ignored (falls back
to default setting, see env_or_default()).

Command-line option --print-core (or -C) overrides environment
variable. Its default value is 'short' if not specified explicitly
(same env_or_default() call in pre_setup()). Explicit values are
checked for validity.

--print-method option can specify by which debugger we print
cores. For Windows there is only one choice: cdb. For Unix the values
are: gdb, dbx, lldb, auto. Default value is: auto

In 'auto' we try to use all possible debuggers until success.
2022-07-18 23:16:17 +03:00
Aleksey Midenkov
83f7d25c44 MDEV-28931 Cleanup: try GDB to print core first
Do we still need this Sun Studio hack?
2022-07-18 23:16:17 +03:00
Sergei Golubchik
6f6c74b0d1 Merge branch '10.2' into 10.3 2022-04-21 10:05:50 +02:00
Daniel Black
66832e3a64 mtr: extend gdb backtace info
bt full - to include args and locals.

set print sevenbit on
  - it is more useful to be able to see the exact bytes
    (in case something is dumped as a string and not hexadecimal digits)
set print static-members off
  - there are many interesting (non-const) static members
set frame-arguments all
  - even non-printables are useful to see.

Let's make our bb logs give a little bit more detail on those
hard to reproduce bugs.

Tests on rhel7's gdb-7.6.1-120.el7
2022-04-14 19:55:26 +10:00
Marko Mäkelä
be85d3e61b Merge 10.2 into 10.3 2019-05-14 17:18:46 +03:00
Vicențiu Ciorbaru
cb248f8806 Merge branch '5.5' into 10.1 2019-05-11 22:19:05 +03:00
Vicențiu Ciorbaru
5543b75550 Update FSF Address
* Update wrong zip-code
2019-05-11 21:29:06 +03:00
Sergey Vojtovich
9692f37d29 Added support for lldb core analysis in mtr 2018-05-21 16:34:11 +00:00
Elena Stepanova
b3dac63f9b Produce better diagnostics when backtrace attempt fails 2017-02-01 02:14:37 +02:00
Vladislav Vaintroub
c91fdb66db Windows , mtr : allow cdb to print core dumps also if --parallel > 1 2016-09-26 13:03:02 +02:00
sayantan dutta
af0e25725e Bug #16403186 - MTR ON WINDOWS SHOULD NOT TRY TO START CDB IF RUNNING WITH PARALLEL 2013-03-28 11:47:43 +05:30
Bjorn Munch
83f3aa148b Silly mistake in gdb output: replaced print with resfile_print,
but the latter only takes one argument, duh!
Fixed by concatenating the args (replace , with .)
2011-10-05 15:16:20 +02:00
Bjorn Munch
cb15b0712d WL #5680 MTR results written to file with well defined format
Added --result-file option, which will produce var/mtr-results.txt
Output has a simple format:

<tag> : <value>  for general info on test run
{
  <tag> : <value>
  ....
}                for each test

Output from failed tests are included but may be truncated.
See WL for more details.
2011-05-09 16:07:43 +02:00
Bjorn Munch
5a85609d6b Fixed copyright headers in mtr src files 2011-01-18 11:03:44 +01:00
Vladislav Vaintroub
37085905e5 change order of cdb parameters to workaround a bug , where command (-c) is not evaluated if -i ,-y or -z contains an invalid path.
cdb would hang then waiting for user input, which is bad for use in scripts
2009-03-24 14:44:21 +01:00
Bjorn Munch
dd6356acca Bug #43074 MTR2 is not accessing core dumps when a path is too long
Executable path is truncated in core
If we see truncated path, try to guess using strings and grep
If that doesn't work either, use known mysqld path
2009-03-20 16:39:06 +01:00
Vladislav Vaintroub
34d066a21c Bug#42788 lib\My\CoreDump.pm needs to be ported for Windows.
- output callstacks from crash using cdb debugger which is part 
of "Debugging Tools for Windows". Output  other interesting 
information - function parameters, possibly source code fragment
and other goodies of  "!analyze" cdb extension.
2009-02-12 17:13:56 +01:00
Bjorn Munch
089663f9a7 Bug #40399 Please make mtr print stack trace after every failure
SIGABRT is sent to relevant processes after a timeout


client/mysqltest.cc:
  Fixed signal handlers to mysqltest actually dumps core
mysql-test/lib/My/CoreDump.pm:
  Added support for dbx
mysql-test/lib/My/SafeProcess.pm:
  Added dump_core to force process to dump core
mysql-test/lib/My/SafeProcess/safe_process.cc:
  Traps SIGABRT and sends this on to child
mysql-test/mysql-test-run.pl:
  When test times out, force core dumps on mysqltest and servers
2009-01-21 10:34:01 +01:00
Sven Sandberg
906fc6bb95 BUG#38817: please make mtr analyze crashes better
Post-push fixes making it work on pushbuild's valgrind host, and clarifying the output.


mysql-test/lib/My/CoreDump.pm:
  - Improved parsing of mtr output so that it works on pushbuild's "valgrind" host.
  - Added stack trace for the thread that coredumped, to make output more readable when there are many threads.
  - Added explanation of what the output consists of.
  - Added early removal of temp file.
2008-10-13 18:14:30 +02:00
Magnus Svensson
c61516c381 Improve gdb coredump 2008-10-06 10:49:12 +02:00
Magnus Svensson
258c88471f Bug#38817 please make mtr analyze crashes better 2008-09-06 08:57:05 +02:00