[OpenAFS] AFS 1.8.2 , bus error on FreeBSD

Benjamin Kaduk kaduk@mit.edu
Mon, 8 Apr 2019 18:09:58 -0500


You may be able to run with this patch:

diff --git a/src/lwp/lwp.c b/src/lwp/lwp.c
index 496e773e00..0904ebff3e 100644
--- a/src/lwp/lwp.c
+++ b/src/lwp/lwp.c
@@ -353,6 +353,8 @@ LWP_CreateProcess(void *(*ep) (void *), int stacksize,
int priority, void *parm,
        stackptr = (char *)(8 * (((long)stackmemory + 7) / 8));
 #endif /* !AFS_DARWIN_ENV */
 #endif
+       /* Gross hack to change stack alignment. */
+       stackptr += 8;
        if (priority < 0 || priority >= MAX_PRIORITIES) {
            free(temp);
 #ifndef AFS_AIX32_ENV

If that doesn't work, I'd try compiling (everything) with gcc -O0 and see
if that helps -- the stack alignment only becomes an issue when some of the
newer fancy instructions are used.

-Ben

On Mon, Apr 08, 2019 at 08:50:19AM +0200, Andreas Ladanyi wrote:
> I cant see crashes when compiling with gcc. The "bos" binary was built. 
> But "bus error" occurs when executing the "bos" binary.
> 
> if i understand you correctly the error is in the LWP code. There is a 
> workaround for this issue only for clang. So if i use clang to compile 
> the "bos" binary could start without "bus error" ?
> 
> 
> Am 07.04.19 um 20:44 schrieb Benjamin Kaduk:
> > I don't think that's a requirement, no.
> > (Were the crashes with a gcc-compiled version?)
> >
> > -Ben
> >
> > On Sun, Apr 07, 2019 at 08:17:44PM +0200, Andreas Ladanyi wrote:
> >> Ok so i have to compile OpenAFS 1.8 with clang instead of gcc at FreeBSD ?
> >>
> >>
> >> Am 06.04.19 um 04:33 schrieb Benjamin Kaduk:
> >>> On Fri, Apr 05, 2019 at 08:39:23AM +0200, Andreas Ladanyi wrote:
> >>>> Hi,
> >>>>
> >>>> i compiled afs 1.8.2 on freebsd 11.2. When i want to execute bos command
> >>>> it shows me a "Bus Error".  If i understand the problem correctly the
> >>>> problem is that bos wants to access memory which CPU physically cant access.
> >>>>
> >>>> Do i have to set some flags at configure time, before make ?
> >>> The LWP code ends up with a misaligned stack for the green thread and it's
> >>> kind of messy to track down a fix that works on all OS versions and with
> >>> all compilers.
> >>>
> >>> The ports collection makefile adds -mstackrealign for clang, to work around
> >>> this issue.  The hope is that for OpenAFS 2.0 we'll have LWP entirely gone
> >>> and not need to worry about this any more...
> >>>
> >>> -Ben
> >>> _______________________________________________
> >>> OpenAFS-info mailing list
> >>> OpenAFS-info@openafs.org
> >>> https://lists.openafs.org/mailman/listinfo/openafs-info
> > _______________________________________________
> > OpenAFS-info mailing list
> > OpenAFS-info@openafs.org
> > https://lists.openafs.org/mailman/listinfo/openafs-info