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

Re: Bug#200215: some debug info... gdb and strace broken on casals?



On Thu, Sep 18, 2003 at 02:38:45PM +0200, Thiemo Seufer wrote:
> Brendan O'Dea wrote:
> >On Wed, Sep 03, 2003 at 10:03:25AM -0500, Drew Scott Daniels wrote:
> >>On Tue, 2 Sep 2003, Colin Watson wrote:
> >>
> >>> > Have you had any luck figuring out why recent perl uploads FTBFS on mips?
> >>>
> >>> No. Sorry. I could've sworn I'd mailed a report of how far I'd got
> >>> somewhere, but can't find it in my mail archives just now. Inserting a
> >>> no-op PerlIO_printf(Perl_error_log, "") before the point of the crash in
> >>> doio.c seemed to "fix" it, which points to dodgy memory handling
> >>> elsewhere or something; don't have enough mips expertise to follow
> >>> through properly though, and gdb and strace being semi-broken on
> >>> casals.debian.org really doesn't help. Feel free to quote this wherever.
> >
> > I've managed to get a smallish test case for this bug (which appears to
> > be kernel/gcc/libc related).
> 
> It is a glibc bug. The 'struct msqid_ds' definition doesn't match the
> kernel one. I believe the appended patch fixes it, but haven't tested
> it yet.
> 
> Btw, this means IPC is mostly broken ATM, which is probably causing
> those autobuilder timeouts. I observe hanging make processes eating
> cpu time on unstable.

It has nothing to do with buildd timeouts.

> 2003-09-18  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
> 
> 	* sysdeps/unix/sysv/linux/mips/bits/msq.h (msqid_ds): Add missing
> 	padding.
> 
> 
> Index: sysdeps/unix/sysv/linux/mips/bits/msq.h
> ===================================================================
> RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/mips/bits/msq.h,v
> retrieving revision 1.1
> diff -u -p -r1.1 msq.h
> --- sysdeps/unix/sysv/linux/mips/bits/msq.h     26 Aug 2002 01:49:55 -0000      1.1
> +++ sysdeps/unix/sysv/linux/mips/bits/msq.h     18 Sep 2003 10:24:45 -0000
> @@ -39,15 +39,24 @@ struct msqid_ds
>  {
>    struct ipc_perm msg_perm;    /* structure describing operation permission */
>    __time_t msg_stime;          /* time of last msgsnd command */
> +#if __WORDSIZE == 32
> +  unsigned long int __unused1;
> +#endif
>    __time_t msg_rtime;          /* time of last msgrcv command */
> +#if __WORDSIZE == 32
> +  unsigned long int __unused2;
> +#endif
>    __time_t msg_ctime;          /* time of last change */
> +#if __WORDSIZE == 32
> +  unsigned long int __unused3;
> +#endif
>    unsigned long int __msg_cbytes; /* current number of bytes on queue */
>    msgqnum_t msg_qnum;          /* number of messages currently on queue */
>    msglen_t msg_qbytes;         /* max number of bytes allowed on queue */
>    __pid_t msg_lspid;           /* pid of last msgsnd() */
>    __pid_t msg_lrpid;           /* pid of last msgrcv() */
> -  unsigned long int __unused1;
> -  unsigned long int __unused2;
> +  unsigned long int __unused4;
> +  unsigned long int __unused5;
>  };
> 
>  #ifdef __USE_MISC

The minimum kernel version needs to be raised to 2.4.19 for this change,
as the structure changed in kernel space between 2.4.18 and 2.4.19, causing
the problem.

-- 
Ryan Murray, Debian Developer (rmurray@cyberhqz.com, rmurray@debian.org)
The opinions expressed here are my own.



Reply to: