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

Re: Bug#67099: segfault on m68k



On Thu, 13 Jul 2000, Chris Lawrence wrote:

> On Jul 13, Bjoern Brill wrote:
[...]
> > I can confirm this. See captured session below. System is a Macintosh,
> > Quadra 700.
> 
> Hmm, I suspect readline.  See if this script segfaults:
> 
> ---
> #!/usr/bin/python
> import readline
> 
> print raw_input("Enter something here: ")
> ---
> 
> Then try it without the "import readline".  If this segfaults, it's a
> bug in python-base (probably a misdeclared dependency).
>

segfaults neither with nor without "import readline" on this box.

I noticed something different, but strange: stracing reportbug several
times, I invariably got (much stuff, only last few lines shown):

stat("/etc/reportbug.conf", {st_mode=S_IFREG|0644, st_size=1997, ...}) = 0
open("/etc/reportbug.conf", O_RDONLY)   = 4
read(4, "#", 1)                         = 1
fstat(4, {st_mode=S_IFREG|0644, st_size=1997, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xc0014000
read(4, " Example configuration file for "..., 4096) = 1996
read(4, "", 4096)                       = 0
stat("/home/fsmath/brill/.reportbugrc", 0xeffff794) = -1 ENOENT (No such file or directory)
close(4)                                = 0
munmap(0xc0014000, 4096)                = 0
getuid()                                = 502
pipe([4, 5])                            = 0
fork()                                  = 15818
close(5)                                = 0
fstat(4, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
lseek(4, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
fstat(4, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xc0014000
read(4, "/dev/tty1\n", 4096)            = 10
read(4, "", 4096)                       = 0
--- SIGCHLD (Child exited) ---
close(4)                                = 0
wait4(15818, [WIFEXITED(s) && WEXITSTATUS(s) == 0], 0, NULL) = 15818
munmap(0xc0014000, 4096)                = 0
write(2, "Please enter the name of the pac"..., 110Please enter the name of the package in which you have found a problem,
or type one of these bug categories:

) = 110
--- SIGSEGV (Segmentation fault) ---
+++ killed by SIGSEGV +++

looking at the strace, I saw reportbug wants to read ~/.reportbugrc
and I don't have one, so I created an empty one and now reportbug
invariably segfaults AT A DIFFERENT PLACE:

--- SIGCHLD (Child exited) ---
close(4)                                = 0
wait4(15847, [WIFEXITED(s) && WEXITSTATUS(s) == 0], 0, NULL) = 15847
munmap(0xc0014000, 4096)                = 0
stat("/etc/reportbug.conf", {st_mode=S_IFREG|0644, st_size=1997, ...}) = 0
open("/etc/reportbug.conf", O_RDONLY)   = 4
read(4, "#", 1)                         = 1
fstat(4, {st_mode=S_IFREG|0644, st_size=1997, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xc0014000
read(4, " Example configuration file for "..., 4096) = 1996
read(4, "", 4096)                       = 0
stat("/home/fsmath/brill/.reportbugrc", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
open("/home/fsmath/brill/.reportbugrc", O_RDONLY) = 5
close(4)                                = 0
munmap(0xc0014000, 4096)                = 0
read(5, "", 1)                          = 0
close(5)                                = 0
getuid()                                = 502
--- SIGSEGV (Segmentation fault) ---
+++ killed by SIGSEGV +++

I suspect the following reason: on this m68k box, most programs linked
against libpthread.so segfault without visible reason, usually a short
time after fork()ing (for example, nscd silently dies because of this, as
does ypbind). Now /usr/bin/python IS linked against libpthread and we have
definitely fork()ed since we get a SIGCHLD.


Björn
--
Bj"orn Brill <brill@fs.math.uni-frankfurt.de>
Frankfurt am Main, Germany






Reply to: