monotone-commits-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Monotone-commits-diffs] org.debian.monotone: 9252c6a2acadf35c098d437bf8


From: code
Subject: [Monotone-commits-diffs] org.debian.monotone: 9252c6a2acadf35c098d437bf84fbcbe515dbf69
Date: Mon, 11 Mar 2013 21:54:20 +0100 (CET)

revision:            9252c6a2acadf35c098d437bf84fbcbe515dbf69
tag:                 debian-monotone-0.43-2
date:                2009-04-07T05:07:11
author:              address@hidden
branch:              org.debian.monotone
changelog:
Add a hack to the fatal signal handlers to invoke gdb and get a full stack
trace on crash.  This won't fix anything, but by activating this mode
in the testsuite, we can get more detail on the alpha and sparc FTBFSes.

manifest:
format_version "1"

new_manifest [b1ac9039896c4c3bbaf15ccc35c5871ac10f1059]

old_revision [a47c58f580e7dd246231c1b40d4044739c4c1b86]

add_file "patches/90-gdb-stacktrace-on-crash.diff"
 content [9b823af97b480a2ed638801c885c0045722749ee]

patch "changelog"
 from [491ea84d67a01cb9b7ae7e41e22bcbdbdf424504]
   to [4d05e82ecc253ba60113fa3b37a75c061ed77065]

patch "control"
 from [7f11743edcf3a1230c1832adc94c898cd993f222]
   to [d24a9375cd00461d4c260854fce56d99a643e5d0]

patch "patches/series"
 from [60165b9a40ea66e79f8716a9f31f6999c957c530]
   to [f14ffdd20dc6a7f1a058bb1d4a1ed7aacc516440]

patch "rules"
 from [e036629708781bf015fa5311c9e93f736cf74a9e]
   to [aefe7ae2c0beee3d9a17d2dda16e92f40732085e]
============================================================
--- changelog	491ea84d67a01cb9b7ae7e41e22bcbdbdf424504
+++ changelog	4d05e82ecc253ba60113fa3b37a75c061ed77065
@@ -3,6 +3,10 @@ monotone (0.43-2) unstable; urgency=low
   * Using quilt for patches to upstream code.
   * Backport upstream fix for unreliable test "spawn_redirected_hook_helper";
     should fix FTBFS on powerpc and mips.
+  * Temporarily introduce a mode where the fatal signal handler invokes
+    gdb to print a stack trace, and activate it in the testsuite.
+    This will hopefully reveal the cause of the alpha and sparc FTBFSes.
+    Temporarily add build-dep on gdb for this.
 
  -- Zack Weinberg <address@hidden>  Mon, 06 Apr 2009 17:00:59 -0700
 
============================================================
--- control	7f11743edcf3a1230c1832adc94c898cd993f222
+++ control	d24a9375cd00461d4c260854fce56d99a643e5d0
@@ -7,7 +7,7 @@ Build-Depends: debhelper (>= 7), autotoo
 Homepage: http://monotone.ca/
 Vcs-Browser: http://viewmtn.angrygoats.net/branch/changes/net.venge.monotone
 Build-Depends: debhelper (>= 7), autotools-dev, po-debconf, quilt, patch,
- libboost-dev (>= 1.34.1-2) | libboost1.35-dev | libboost1.37-dev,
+ gdb, libboost-dev (>= 1.34.1-2) | libboost1.35-dev | libboost1.37-dev,
  libz-dev, libbotan1.8-dev, libsqlite3-dev, libpcre3-dev, libidn11-dev,
  liblua5.1-0-dev, libpcre3-dev
 Build-Depends-Indep: texinfo, xpdf-utils, ps2eps, texlive-generic-recommended,
============================================================
--- /dev/null	
+++ patches/90-gdb-stacktrace-on-crash.diff	9b823af97b480a2ed638801c885c0045722749ee
@@ -0,0 +1,78 @@
+Add a hack to the fatal signal handlers to invoke gdb and get a full stack
+trace on crash.  This won't fix anything, but by activating this mode
+in the testsuite, we can get more detail on the alpha and sparc FTBFSes.
+============================================================
+--- monotone-0.43.orig/unix/main.cc
++++ monotone-0.43.orig/unix/main.cc
+@@ -36,12 +36,18 @@
+ 
+ #include "base.hh"
+ #include <signal.h>
++#include <stdlib.h>
++#include <string.h>
+ #include <time.h>
+-#include <string.h>
++#include <unistd.h>
+ #include <sys/resource.h>
+-#include <unistd.h>
++#include "lexical_cast.hh"
+ 
++using std::string;
++using boost::lexical_cast;
++
+ static char const * argv0;
++static char const * gdb_cmdline;
+ 
+ // a convenient wrapper
+ inline void
+@@ -68,13 +74,18 @@ bug_signal(int signo)
+ static void
+ bug_signal(int signo)
+ {
+-  write_str_to_stderr(argv0);
+-  write_str_to_stderr(": fatal signal: ");
+-  write_str_to_stderr(strsignal(signo));
+-  bug_report_message();
+-  write_str_to_stderr("do not send a core dump, but if you have one, "
+-                      "\nplease preserve it in case we ask you for "
+-                      "information from it.\n");
++  if (gdb_cmdline)
++    system(gdb_cmdline);
++  else
++    {
++      write_str_to_stderr(argv0);
++      write_str_to_stderr(": fatal signal: ");
++      write_str_to_stderr(strsignal(signo));
++      bug_report_message();
++      write_str_to_stderr("do not send a core dump, but if you have one, "
++                          "\nplease preserve it in case we ask you for "
++                          "information from it.\n");
++    }
+ 
+   raise(signo);
+   // The signal has been reset to the default handler by SA_RESETHAND
+@@ -129,6 +140,24 @@ main(int argc, char ** argv)
+ 
+   argv0 = argv[0];
+ 
++  char *ev = getenv("MTN_STACKTRACE_ON_CRASH");
++  string gdb_cmd;
++  if (ev && ev[0])
++    {
++      // Allocate this now so we don't have to do it from inside a signal
++      // handler.  Its scope is this function, so it's live as long as
++      // needed.
++      gdb_cmd = ("gdb -batch -silent -ex 'set pagination off' -ex 'bt' "
++                 "-ex 'frame 4' -ex 'info registers' "
++                 "-ex 'disas $pc $pc+1' -- '");
++      gdb_cmd += argv0;
++      gdb_cmd += "' ";
++      gdb_cmd += lexical_cast<string>(getpid());
++
++      gdb_cmdline = gdb_cmd.c_str();
++    }
++    
++
+   bug_signal_action.sa_flags   = SA_RESETHAND;
+   bug_signal_action.sa_handler = &bug_signal;
+   sigemptyset(&bug_signal_action.sa_mask);
============================================================
--- patches/series	60165b9a40ea66e79f8716a9f31f6999c957c530
+++ patches/series	f14ffdd20dc6a7f1a058bb1d4a1ed7aacc516440
@@ -1 +1,2 @@ 00upstream-fix-test-spawn-redirected-hoo
 00upstream-fix-test-spawn-redirected-hook-helper.diff
+90-gdb-stacktrace-on-crash.diff
============================================================
--- rules	e036629708781bf015fa5311c9e93f736cf74a9e
+++ rules	aefe7ae2c0beee3d9a17d2dda16e92f40732085e
@@ -50,7 +50,11 @@ export DH_VERBOSE = 1
 export DISABLE_NETWORK_TESTS = 1
 export DH_VERBOSE = 1
 
+# This is a hack to get more detail out of the alpha and sparc testsuite
+# crashes.
+export MTN_STACKTRACE_ON_CRASH = 1
 
+
 # Building
 
 config.status: configure

reply via email to

[Prev in Thread] Current Thread [Next in Thread]