While attempting to compile Bison (yeah, still gnawing at that
bone!) I have managed to jam cpp more or less solid.  That's compiling
scan-code-c.c which reduces to compiling scan-code.c.

However, it does not seem to be Bison that's at fault: it seems that an
invocation of alloc() tries to set a lock and never succeeds or gives up.

This is a summary, with some help from acid, subject to some very limited
knowledge on my part:

        term% acid 3208
        /proc/3208/text:386 plan 9 executable
        /sys/lib/acid/port
        /sys/lib/acid/386
        acid: lstk()
        sleep()+0x7 /sys/src/libc/9syscall/sleep.s:5
        lock(lk=0x1f2f8)+0xb7 /sys/src/libc/port/lock.c:25
        plock(p=0x18310)+0x16 /sys/src/libc/port/malloc.c:81
        poolalloc(p=0x18310,n=0x20)+0xf /sys/src/libc/port/pool.c:1223
        malloc(size=0x18)+0x1c /sys/src/libc/port/malloc.c:207
        domalloc(size=0x18)+0xf /sys/src/cmd/cpp/cpp.c:271
        lookup(tp=0xab4a8,install=0x1)+0x74 /sys/src/cmd/cpp/nlist.c:213
        dodefine(trp=0xdfffeeac)+0x40 /sys/src/cmd/cpp/macro.c:23
        control(trp=0xdfffeeac)+0x4b2 /sys/src/cmd/cpp/cpp.c:133
        process(trp=0xdfffeeac)+0xec /sys/src/cmd/cpp/cpp.c:70
        main(argc=0xb,argv=0xdfffef0c)+0x8a /sys/src/cmd/cpp/cpp.c:35
        _main+0x31 /sys/src/libc/386/main9.s:16
        acid: lstk()
        sleep()+0x7 /sys/src/libc/9syscall/sleep.s:5
        lock(lk=0x1f2f8)+0xb7 /sys/src/libc/port/lock.c:25
                i=0x3e8
        plock(p=0x18310)+0x16 /sys/src/libc/port/malloc.c:81
                pv=0x1f2f8
        poolalloc(p=0x18310,n=0x20)+0xf /sys/src/libc/port/pool.c:1223
                v=0x1928
        malloc(size=0x18)+0x1c /sys/src/libc/port/malloc.c:207
                v=0x18310
        domalloc(size=0x18)+0xf /sys/src/cmd/cpp/cpp.c:271
                p=0x0
        lookup(tp=0xab4a8,install=0x1)+0x74 /sys/src/cmd/cpp/nlist.c:213
                h=0x6f
                np=0x1
        dodefine(trp=0xdfffeeac)+0x40 /sys/src/cmd/cpp/macro.c:23
                dots=0x0
                tp=0xab4a8
                np=0x27100
                args=0x3e
                narg=0x204b6
                err=0x6
                atp=0x27140
                def=0x3876
                tap=0x204b6
        control(trp=0xdfffeeac)+0x4b2 /sys/src/cmd/cpp/cpp.c:133
                tp=0xab498
                np=0x27100
        process(trp=0xdfffeeac)+0xec /sys/src/cmd/cpp/cpp.c:70
                anymacros=0x80000020
        main(argc=0xb,argv=0xdfffef0c)+0x8a /sys/src/cmd/cpp/cpp.c:35
                ebuf=0x3a707063
                tr=0xab498
        _main+0x31 /sys/src/libc/386/main9.s:16
        acid: 

I've no idea how to track this problem down, let alone fix it.  But this
problem is reproducible, albeit not using a small code base.  It is
mildly possible that my Plan 9 installation is not altogether pristine
and is causing this situation, but I can't think how.

++L

Reply via email to