Hi -

We're all familiar with the "It's always a bug in X" line.  The usual
suspects include QEMU, KVM, Intel, the compiler, the NIC, the network,
etc.  But of course never Akaros.  (For those unfamiliar, it's almost
always a bug in Akaros).

Here's my latest: It's a bug in Inferno!

If you write to a Plan 9 chan, but only part of the write makes it
(e.g. you try to write 10K, but only 1K makes it), sys_write() should
return the amount written (1K).

Our bug was that we'd always return 10K - the amount attempted.  In
k/s/n/sysfile.c, syswrite() -> rwrite().  Here's the guts:

        m = devtab[c->type].write(c, va, n, off);  
        /* other stuff */
        return n;

Doh!

That bug isn't in Plan 9:
https://github.com/brho/plan9/blob/89d43d2262ad43eb4b26c2a8d6a27cfeddb33828/nix/sys/src/nix/port/sysfile.c#L788

But our sysfile.c came from Inferno, not from NIX / Plan 9, since the
port was done before the Plan 9 GPLv2 release.  Turns out that bug is
also in Inferno, at least the copy of source I have from it.  Doh Doh!

Good times.  That probably took 5 hours or so to track down.

Barret

-- 
You received this message because you are subscribed to the Google Groups 
"Akaros" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to