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: