Re: openldap on alpha
"Christopher C. Chimelis" <chris@debian.org> writes:
> On Thu, 8 Jun 2000 dan@mid-hudson.com wrote:
>
> > I've installed openldap 1.2.10 on my alpha ds-10s and it seems to run, but
> > every time I query it, it logs a few messages:
> >
> > slapd(5341): unaligned trap at 0000000120038d6c: 000003ffffbffc04 2d 2
> > slapd(5341): unaligned trap at 0000000120038d6c: 000003ffffbffc0c 2d 2
> >
> > Everything seems to function, but I plan on using the database for a
> > number of things, so a few lines of errors on each query is going to be a
> > mess. Any suggestions or pointers?
>
> Ok...first off, their not errors, but rather warnings that some memory
> accesses are being performed on data that's not perfectly aligned on the
> proper boundaries. I'll see if I can figure out what's going on, but if
Worse than that, this is also a memory corruption bug (see #63185).
BenC: should I raise the severity to Important?
> you're handy with gdb, you can probably figure it out as well and point me
> in the right direction :-)
Don't bother tracking this, as I've already submitted a patch. In the
future, the attached program (which gives you a shell from which any
programs you run will die with SIGBUS immediately on unaligned traps)
should prove useful. (that is, if Gnus decides not to eat the
attachment :P)
/****
From: "Christian Groessler" <cpg@aladdin.de>
To: axp-list@redhat.com
Date: Thu, 19 Aug 1999 10:52:55 +0100
Subject: Re: Unaligned traps et al
The following program creates a subshell and all programs
started from therein will SIGBUS on unaligned accesses.
***/
/* 28-May-98, chris */
#ifndef __linux__
#include <sys/sysinfo.h>
#else
#include <asm/sysinfo.h>
#include <asm/unistd.h>
static int setsysinfo(unsigned long op, void *buffer, unsigned long size,
int *start, void *arg, unsigned long flag)
{
syscall(__NR_osf_setsysinfo, op, buffer, size, start, arg, flag);
}
#endif
void trap_unaligned(void)
{
unsigned int buf[2];
buf[0] = SSIN_UACPROC;
buf[1] = UAC_SIGBUS | UAC_NOPRINT;
setsysinfo(SSI_NVPAIRS, buf, 1, 0, 0, 0);
}
#include <stdio.h>
int main()
{
trap_unaligned();
printf("creating subshell with SIGBUS setting!\n");
execl("/bin/bash","/bin/bash",(char *)0);
return(0); /* not reached */
}
--
David Huggins-Daines - dhd@debian.org
Reply to: