dworkin / dgd

Dworkin's Game Driver, an object-oriented database management system originally used to run MUDs.
https://www.dworkin.nl/dgd/
GNU Affero General Public License v3.0
103 stars 31 forks source link

Corrupted ansi graphics on kotaka, triggered by recompile of dgd #69

Closed shentino closed 2 years ago

shentino commented 2 years ago

For some reason I can reliably get corrupted ansi output from connecting to my test mud when I use the newly compiled dgd, but not a previously compiled version.

I tested this locally and confirmed.

No fatal signal so I can't give a stack trace.

I'm going to see if I can finger the triggering commit.

shentino commented 2 years ago

My guess at this point is something funky involving integer handling.

shentino commented 2 years ago

1.6.19 confirmed bad 1.6.18 confirmed good

I'm going to do a bisect

shentino commented 2 years ago

Commit cdcdf2bb45b75be04dd087333f808b8682768dac reliably triggers the issue.

The LPC code involved is kotaka::/home/Text/lwo/ansi/painter.c which takes a grid of characters and colors and renders an ANSI color coded buffer using nested loops.

Let me know if you need any more information.

shentino commented 2 years ago

A stack trace doesn't seem to be applicable here, what exactly do you need?

Should I attach screenshots and a copy of the LPC code in question?

shentino commented 2 years ago

Before cdcd2fb: \<redacted>

After cdcdf2b: \<redacted>

shentino commented 2 years ago

The only difference is in which version of DGD I compile.

Both screenshots were generated from a cold boot of kotaka.

shentino commented 2 years ago

To be clear, I assumed it was my own code at fault at first, but the fact that changing which commit of DGD I compile seems to be the only way to trigger this combined with it having worked before seems to rule out my own code as a culprit.

I made sure not to change anything in the LPC between the two compilations of DGD.

shentino commented 2 years ago

...that's weird, your "how to reproduce" comment doesn't seem to appear in the issue itself.

I'll whip up a reproduction kit and instructions soon.

On Mon, Feb 14, 2022 at 12:00 AM Felix A. Croes @.***> wrote:

How to reproduce?

— Reply to this email directly, view it on GitHub https://github.com/dworkin/dgd/issues/69#issuecomment-1038767326, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAMHOIASULU6QEZIMZ7NODU3CZDRANCNFSM5OKHDLUQ . You are receiving this because you authored the thread.Message ID: @.***>

shentino commented 2 years ago

Your request for reproduction instructions came through just fine via email. For some reason your comment didn't show up in the issue itself.

Stand by, this is going to take a bit.

There's a few different pieces of game data involved that I'll need to track down and include.

dworkin commented 2 years ago

Should be fixed by https://github.com/dworkin/dgd/commit/9d4805c0198cf12385750c14eae0f1042cc64dc3.

shentino commented 2 years ago

Fix confirmed